1
<xs:element name="qualificationRequired" type="ExtendedQualification"/>
    <xs:complexType name="ExtendedQualification">
        <xs:complexContent>
            <xs:extension base="qualifications">
                <xs:element name="other">
                    <xs:element name="skills" type="xs:string"/>
                    <xs:element name="languages" type="xs:string"/>
                </xs:element>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType> 
    </xs:sequence>
</xs:complexType> //closes another complexType above

私のバリデーターは次のエラーを返します:

バリデーターエラー:s4s-elt-must-match.1:「シーケンス」の内容は一致する必要があります(注釈?、(要素|グループ|選択|シーケンス|任意)*)。complexTypeで始まる問題が見つかりました。2行目

バリデーターエラー2:src-resolve:名前'ExtendedQualification'を(n)'タイプ定義'コンポーネントに解決できません。ライン1

なぜこうなった?

4

1 に答える 1

2

<xs:sequence>子としてを含めることはできません<xs:complexType>。あなたはそれを他の場所に置かなければなりません。それを要素にラップして効果的にネストされたタイプにするか<xs:schema>、グローバルタイプとして要素に直接配置します。

エラーメッセージにあるように、中に入れることができるタグは次の<xs:sequence>とおりです。

  • <xs:element>
  • <xs:group>
  • <xs:choice>
  • <xs:sequence>
  • <xs:any>

また、タグを子として<xs:extension>持つことはできません。達成したいことに応じて、、、などでそれら<xs:element>をラップする必要があります。<xs:sequence><xs:choice><xs:all>

最後に、子として他のタグを<xs:element>含めることはできません。<xs:element>それらをシーケンス/選択/すべてなどでラップしてから<xs:complexType>、ネストされたタイプを定義する必要があります。または、すべてを外部に移動して、グローバルタイプとして機能させます。

これが、上記で何をしようとしているのかを定義する有効なドキュメントです。ただし、ドキュメント全体についての洞察はありません。そのため、コンテキストに応じて調整が必要になる場合があります。

<xs:schema version="1.0"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       elementFormDefault="qualified">
<xs:complexType name="blah">    <!-- You said there was a complexType open, I added its opening tag and gave it a placeholder name -->           
    <xs:sequence>               
        <xs:element name="qualificationRequired" type="ExtendedQualification"/>            
    </xs:sequence>
</xs:complexType>
<xs:complexType name="ExtendedQualification"> <!-- the complexType is now removed from your sequence and is a global type-->
    <xs:complexContent>
        <xs:extension base="qualifications">
            <xs:sequence> <!-- you can't have an element here, you must wrap it in a sequence, choice, all, etc. I chose sequence as it seems to be what you meant -->
                <xs:element name="other">
                    <xs:complexType> <!-- same here, an element can't contain other element tags as children. For a complex element, you need a complexType. I defined it as a nested type -->
                        <xs:sequence> <!-- even complexType can't have element tags as children, again, I used a sequenct -->
                            <xs:element name="skills" type="xs:string"/>
                            <xs:element name="languages" type="xs:string"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType> 
</xs:schema>
于 2012-10-28T11:02:06.933 に答える