1

XSD を検証しようとすると、エラーが発生します

S4s-elt-invalid-content.1: '#AnonType_Apps' のコンテンツが無効です。要素 'sequence' が無効であるか、配置が間違っているか、または頻繁に発生します。

何をすべきかわからない

    <?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name ="Apps">
   <xs:complexType>
       <xs:attribute name ="List_Type" use="required">
          <xs:simpleType>
          <xs:restriction base="xs:string">
               <xs:enumeration value="new releases"/>
               <xs:enumeration value="top rated"/>
               <xs:enumeration value="category list"/>
           </xs:restriction>
           </xs:simpleType>
          </xs:attribute>
        <xs:attribute name ="Server_IP" type="xs:string" fixed="10.144.50.55"/>
        <xs:sequence>
        <xs:element name ="App" minOccurs="1" maxOccurs="20">
           <xs:complexType>
                 <xs:attribute name ="device_type" use="optinal" >
                 <xs:simpleType>
                 <xs:restriction base="xs:string">
                       <xs:enumeration value="tablet"/>
                       <xs:enumeration value="phone"/>
                    </xs:restriction>
            </xs:simpleType>
            </xs:attribute>
                 <xs:attribute name ="app_id" type="xs:string"/>  
                 <xs:attribute name ="installed" type="xs:boolean" default="false"/>
                 <xs:sequence>
                 <xs:element name ="app_name" type="xs:string"></xs:element>
                 <xs:element name ="catogry" minOccurs="1" maxOccurs="3"></xs:element>
                 <xs:element name ="version" type="xs:string"></xs:element>
                 <xs:element name ="description" type="xs:string"></xs:element>
                 <xs:element name ="reviews" use="required">
                    <xs:complexType>
                       <xs:sequence>
                       <xs:element name ="review" minOccurs="0" maxOccurs="unbounded">
                          <xs:complexType>
                          <xs:all>
                             <xs:element name ="reviewer_name" type="xs:string"></xs:element>
                             <xs:element name ="review_date">
                                <xs:complexType>
                                   <xs:restriction base="xs:string">
                                      <xs:pattern value="\d{4}\-\d{2}\-\d{2}"/>
                                   </xs:restriction>
                                 </xs:complexType>
                             </xs:element>
                             </xs:all>
                           </xs:complexType>
                       </xs:element>
                       </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name ="review_time">
                   <xs:complexType>
                      <xs:restriction base="xs:string">
                          <xs:pattern value="\d{2}:\d{2}:\d{}"/>
                      </xs:restriction>
                   </xs:complexType>
               </xs:element>
               <xs:element name ="content" type="xs:string"></xs:element>
               <xs:element name ="rating">
                  <xs:complexType>                                
                      <xs:restriction base="xs:float">
                         <xs:minInclusive value="0" />
                         <xs:maxInclusive value="5" />
                     </xs:restriction>
                 </xs:complexType>
             </xs:element>
            </xs:sequence>
         </xs:complexType>
       </xs:element>
       </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>
4

2 に答える 2

0

要素内ではcomplexType、コンテンツ モデルが最初に来て、属性宣言が最後に来ます。最も外側のsequence要素を移動して、複合型の最初の子にします。

この種の問題を警告するために、スキーマ文書を編集するための構文認識エディターを見つけてみてください。

このフラグメントのその他の構文上の問題:

  • 他のcomplexType要素には、属性宣言を最初に置くという同じ構文エラーがあります。

  • の型をratingxs:float の制限にしたい場合は、複合型ではなく、単純型にする必要があります。

  • review_timeと についても同様ですreview_date

  • の型のパターンはreview_time正当な正規表現ではありません: 中かっこには、さまざまな形式で部分式 (一致する文字列) の最小および/または最大出現回数に関する情報が含まれる場合がありますが、何かを含まなければならないため、正当な正規表現で\d{}はありません。表現。空の中括弧を削除するか、必要に応じて作成する\d{1}か、必要な内容を記述してください。

  • 要素には という名前のxs:element属性がありませんuse。私はあなたが言うことを意味するかもしれないと思います<xs:element name="reviews" minOccurs="1" maxOccurs="1">...

  • 属性はuse値を受け入れませんoptinal

エディターをゲット!

于 2012-10-10T15:55:15.237 に答える
0

xs:sequence 要素は、complexType 要素の直後に続く必要があります。

review_date 要素と review_time 要素は、制限付きの simpleType にする必要があります。

これらの問題を修正すると、xsd は有効に見えます。

于 2012-10-10T15:47:10.973 に答える