2017-05-17 4 views
1

私は子供を持つ複雑な要素を持っていて、それらの子は属性を持っています。すべて正常に動作しますが、今は複雑なメイン要素の属性を追加する必要がありました。ここで、XSDにXML属性宣言を挿入しますか?

<xs:element name="route"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element name="origin"> 
     <xs:complexType> 
     <xs:attribute name="name"/> 
     <xs:attribute name="category"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:enumeration value="1sub1sub1"/> 
       <xs:enumeration value="2sub1sub1"/> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:attribute> 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 

を、どのように私は、ルート要素に属性を追加します:

これは私がうまく働いていたコードでしたか?私はこのようにそれを行う場合は、属性が彼の文脈intを許可されていないというエラーを出力します

<xs:element name="route"> 
<xs:complexType> 
<xs:attribute name="foobar"/> 
    <xs:sequence> 
    <xs:element name="origin"> 
     <xs:complexType> 
     <xs:attribute name="name"/> 
     <xs:attribute name="category"> 
      <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:enumeration value="1sub1sub1"/> 
       <xs:enumeration value="2sub1sub1"/> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:attribute> 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 

答えて

0

xs:complexType最後宣言として属性宣言を追加します。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="route"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="origin"> 
      <xs:complexType> 

      <!-- WITHOUT child elements--> 
      <!-- Add attribute declarations here --> 
      <xs:attribute name="name"/> 
      <xs:attribute name="category"> 
       <xs:simpleType> 
       <xs:restriction base="xs:string"> 
        <xs:enumeration value="1sub1sub1"/> 
        <xs:enumeration value="2sub1sub1"/> 
       </xs:restriction> 
       </xs:simpleType> 
      </xs:attribute> 

      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 

     <!-- WITH child elements--> 
     <!-- Add attribute declarations here --> 
     <xs:attribute name="foobar"/> 

    </xs:complexType> 
    </xs:element> 
</xs:schema> 
関連する問題