Мне нужно изменить схему XSD, чтобы я мог выполнить конкретный XQuery в поисках имени типа
Я пытался поиграться с пространствами имен, но не смог сделать это правильно.
Это XSD-схема:
<xs:group name="Axiom" >
<xs:choice >
<xs:element ref="el-typed:equivalent"/>
<xs:element ref="el-typed:subsumes"/>
<xs:element ref="el-typed:instance-of"/>
<xs:element ref="el-typed:related-to"/>
</xs:choice>
</xs:group>
<xs:element name="equivalent">
<xs:complexType>
<xs:sequence >
<xs:group minOccurs="2" maxOccurs="unbounded" ref="el-typed:ClassExpression"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="subsumes">
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="2" maxOccurs="2" ref="el-typed:ClassExpression"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="instance-of">
<xs:complexType>
<xs:sequence>
<xs:element ref="el-typed:constant"/>
<xs:group ref="el-typed:ClassExpression"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="related-to">
<xs:complexType>
<xs:sequence>
<xs:element ref="el-typed:constant"/>
<xs:element ref="el-typed:constant"/>
</xs:sequence>
<xs:attribute name="prop" use="required" type="xs:NMTOKEN"/>
</xs:complexType>
</xs:element>
И это XQuery:
(validate {doc("el1.xml")})//element(*,Axiom)
При использовании в правильно сформированном XML, действительном для схемы, оно должно вернуть всеАксиомы типа, которые являются элементами: equivalent
, subsumes
, instance-of
, related-to
.
В момент, когда Кислород говорит это о XQuery:
Неизвестный типимя Q {http://www.cs.manchester.ac.uk/pgt/COMP60411/el}Axiom