2014-04-15 167 views
1

我有一個關於我的XML模式(XSD) 定義我的元素的新屬性的問題,我有這樣的定義新屬性的元素XSD

<xs:element name="xyz" type="xs:hexBinary" minOccurs="2"> 

我想添加一個新的屬性「尺寸的元素「我可以在哪裏指定元素」xyz「的大小。我怎樣才能定義這樣做?

感謝您的幫助

回答

1

下面是一個簡單有效的XSD,在你的xyz元素構建的。

<?xml version="1.0" encoding="utf-8" ?> 
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) --> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:complexType name="dummy"> 
     <xs:sequence> 
      <xs:element name="xyz" minOccurs="2"> 
       <xs:complexType> 
        <xs:simpleContent> 
         <xs:extension base="xs:hexBinary"> 
          <xs:attribute name="size" type="xs:int" use="required"/> 
         </xs:extension> 
        </xs:simpleContent> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

具有屬性和/或嵌套元素的任何元件必須是複雜類型。如果存在嵌套元素,則複雜類型的內容模型必須是complexContent;否則,它必須是simpleContent。

這種方法不允許你也限制基類型(這裏是hexBinary)。如果您還需要爲簡單基類型指定約束面,則必須分別創建一個新的簡單類型,即hexBinary的限制,然後使用屬性擴展新類型。