要素がxs:anyType
の次のXMLスキーマを持つ。xsd:anyType要素の検証を無効にする
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="payloadAny" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XMLのどれ例:要素にXSIあるとき
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payloadAny>
<anything>anyContent</anything>
</payloadAny>
</root>
現在、問題を発見し、このようなタイプ属性:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payloadAny>
<anything xsi:type="ForeignType">anyContent</anything>
</payloadAny>
</root>
このXMLを持ちますxsi:type
属性は、xs:anyTyp
要素を持つXMLスキーマに対してもはや検証されません。
E [Xerces] cvc-elt.4.2: 'foreignType'を要素 'anything'の型定義に解決できません。代わりに
<element type="xs:anyType"/>
の<xs:any/>
要素を使用している場合
、検証がのprocessContents属性を使用して無効にすることができます。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="any">
<xs:sequence>
<xs:any processContents="skip"/>
</xs:sequence>
</xs:complexType>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="payloadAny" type="any"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
質問は今、次のとおりです。
なぜ<xs:any/>
対
<element type="xs:anyType"/>
でこのような違いがあるどのように
xs:anyType
要素で
xsi:type
検証を無効にする(
processContents="skip
のような)