XML Schemaアプリケーションに問題があります。最初のケースでは、要素を参照するシーケンスが1つありました。この場合は動作しますが、1つの要素onlyone
がmain
の要素、またはonlyone
の要素がproblem
の要素(main
の要素ではありません)を許可する要求があります。私は多くの解決策を特にシーケンスに分割し、要素をproblem
という新しい定義要素として参照しようとしました。これは動作しますが、problem
にcomplexType
を追加すると、エラーとして警告されます。私はそこに新しい要素problem
が要求される条件が必要です。XSD検証エラー:cos-element-consistent:要素が要素と一貫性がありません
XSD:
<xs:sequence>
<xs:sequence>
<xs:element ref="el1" minOccurs="1" maxOccurs="1"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="el2" minOccurs="0" maxOccurs="1"/>
<xs:element name="problem" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="inside1" maxOccurs="unbounded"/>
<xs:element ref="inside2" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element ref="onlyone" minOccurs="0" maxOccurs="1"/>
</xs:choice>
<xs:element ref="el3" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="el1" minOccurs="1" maxOccurs="1"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="el2" minOccurs="0" maxOccurs="1"/>
<xs:element name="problem" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="inside1" maxOccurs="unbounded"/>
<xs:element ref="onlyone" minOccurs="0" maxOccurs="1"/>
<xs:element ref="inside2" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:element ref="el3" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:sequence>
そして保存するときにXMLSpyには、私を書き込みます
Element 'problem' is not consistent with element 'problem' a cos-element-consistent.1: Both type definitions ('{anonymous}' and '{anonymous}') must be named.