2012-07-30 84 views
-1

我有2个独立的XSD,它们具有一些通用属性。我想创建另一个XSD,并将所有常用属性都放在单独的XSD中,并将它们导入到我已有的2个XSD中,而不是在两个XSD中重复或重复它们。在XSD中的导入及其实现

这样的实现有没有参考?

+0

你是什么意思的“这种实施的参考”?这可以使用xsd:import和xsd:include完成。 这里有一个问题以前可能会提供帮助。 http://stackoverflow.com/questions/2357943/whats-the-difference-between-xsdinclude-and-xsdimport – user1187008 2012-07-30 13:31:22

+0

http://www.liquid-technologies.com/Tutorials/XmlSchemas/XsdTutorial_04.aspx帮助..谢谢。 – nisha 2012-07-30 13:35:49

+0

[在XSD中导入常用属性]的可能重复(http://stackoverflow.com/questions/11716829/importing-common-attributes-in-xsd) – 2012-07-30 14:27:45

回答

0

我们这样做是这样的:

共享 “图书馆” 的xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns="http://www.common.namespace/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.common.namespace/"> 
    <xs:attribute name="ACommonAttribute" type="xs:float" default="1.7"/> 
</xs:schema> 

左XSD具有相同的目标命名空间:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns="http://www.common.namespace/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.common.namespace/"> 
    <xs:include schemaLocation="Common.xsd"/> 
    <xs:element name="MyLeftElement"> 
     <xs:annotation> 
      <xs:documentation>Comment describing your root element</xs:documentation> 
     </xs:annotation> 
     <xs:complexType> 
      <xs:attribute ref="ACommonAttribute"/> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

不同的目标命名空间权XSD(需要一个如果包含声明,则改为导入)

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns="http://another.namespace/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:libs="http://www.common.namespace/" targetNamespace="http://another.namespace/"> 
    <xs:import namespace="http://www.common.namespace/" schemaLocation="Common.xsd"/> 
    <xs:complexType name="RightComplexType"> 
     <xs:sequence> 
      <xs:element name="Bit"> 
       <xs:complexType> 
        <xs:attribute ref="libs:ACommonAttribute"/> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 
相关问题