我需要修改sn 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:(验证{doc(“ el1.xml”)})// element(*,Axiom)
当在对模式有效的格式良好的xml上使用时,应返回所有类型的公理,这些公理是以下元素:等价,包含,实例化,相关于。目前,Oxygen对xquery表示以下说法:未知类型名称Q {http://www.cs.manchester.ac.uk/pgt/COMP60411/el}公理
除非您在查询中由“导入模式”声明引用的模式中声明了类型名称“ Axiom”,否则不能使用类型名称“ Axiom”,或以某种等效的方式(由供应商定义)将查询处理器所知道的方式。错误消息告诉我,查询处理器尚未了解该架构,而不是您需要修改该架构。
此外:引用Q {http://www.cs.manchester.ac.uk/pgt/COMP60411/el} Axiom的错误消息表明必须在某处声明一个默认名称空间。您没有向我们展示任何声明该名称空间的内容;实际上,您似乎已经仔细地修剪了从架构或查询中声明名称空间的内容。由于您的问题表明您怀疑与名称空间有关的问题,因此这似乎毫无帮助。