<xsd:any/>
실제로 "모든"요소와 일치하지 않습니다. 오히려 범위 내의 스키마에서 어딘가에 선언 된 요소와 일치합니다. 어떤 :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:any/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
그럼에도 불구하고, 다음 쿼리가 실패합니다
import schema namespace my = "http://www.example.com/";
validate { <my:root><my:Child/></my:root> }
내 때문에 : 아이가 아무데도 선언되지
예를 들어, 다음과 같은 스키마 요소가 포함 XSD를 정의합니다. 다음과 같이 스키마가 변경되었을 경우
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:any/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Child" type="xs:anyType"/>
</xs:schema>
다음 쿼리는 성공합니다. 물론 xsd : any와 일치하는 요소는 다른 네임 스페이스에있을 수 있습니다.
귀하의 경우 스키마 (xs : schema 루트 요소의 직접 하위 항목)에서 "book"및 "title"요소를 선언하면 도움이됩니까? –
또한 xsd : any 태그에 processContents = "skip"속성을 추가하여 문제를 피할 수 있습니다. xsd : any와 일치하는 요소를 선언해야한다고 요구하지는 않습니다. –