2013-09-26 55 views
0

我想要一個架構這個XML不能把限制XML元素和屬性,同時

<person> 
    <name age="12" code="abc">Jack</name> 
</person> 

Age must be between 10-90, code must be 3 letters, Name must be atmost 5 letters. 

我不能夠把限制爲元素「名」和它的屬性限制相同的complexType

這是我所做的。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="person"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="name"> 
       <xs:complexType> 
        <xs:simpleContent> 
         <xs:extension base="xs:string"> 
          <xs:attribute name="age"> 
           <xs:simpleType> 
            <xs:restriction base="xs:integer"> 
             <xs:minInclusive value="10"/> 
             <xs:maxInclusive value="90"/> 
            </xs:restriction> 
           </xs:simpleType> 
          </xs:attribute> 
          <xs:attribute name="code"> 
           <xs:simpleType> 
            <xs:restriction base="xs:string"> 
             <xs:pattern value="[a-z][a-z][a-z]"/> 
            </xs:restriction> 
           </xs:simpleType> 
          </xs:attribute> 
         </xs:extension> 
        </xs:simpleContent> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

我不知道在哪裏把我限制的名稱元素。請幫助。

回答

0

只是想通了。

<xs:simpleType name="nameRes"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="5"/> 
    </xs:restriction> 
</xs:simpleType> 

現在應該將此類型定義爲擴展基礎值。 :P