2012-07-30 85 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> 
相關問題