Reference XMLSchema-元素引用自身-如何执行?
我有一个任务,需要创建一个具有0个或多个子元素的元素辅助元素。我必须使用key和keyref来创建引用。我搞不懂这些参考资料是怎么起作用的。以下是我到目前为止所写的内容:Reference XMLSchema-元素引用自身-如何执行?,reference,xsd,Reference,Xsd,我有一个任务,需要创建一个具有0个或多个子元素的元素辅助元素。我必须使用key和keyref来创建引用。我搞不懂这些参考资料是怎么起作用的。以下是我到目前为止所写的内容: <xsd:element name="Workers"> <xsd:complexType> <xsd:sequence> <xsd:element name="Worker" maxOccurs="unbounded">
<xsd:element name="Workers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Worker" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="subordinate" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="identyfikator" type="PESEL" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:key name="id">
<xsd:selector xpath="Worker"/>
<xsd:field xpath="@identyfikator"/>
</xsd:key>
<xsd:keyref name="subordinate_ref" refer="id">
<xsd:selector xpath="Worker/subordinate"/>
<xsd:field xpath="@identyfikator"/>
</xsd:keyref>
</xsd:element>
PESEL是我自己的类型,密钥限制很有效,因为我无法在XML文档中创建具有相同密钥的两个worker。但是,我可以将任何内容创建为从属元素,并且不会显示任何警告。据我所知,在这种情况下,我应该只能添加员工作为下属,如果他们已经存在,对吗?如何创建适当的引用?
这是我第一次使用XMLSchema,如果代码太乱,我很抱歉。
提前谢谢 创建一个Worker ComplexType,并使Worker和substance都属于该类型
大致如此:
<!-- Define the below where appropriate. -->
<xsd:element name="Worker" type="WorkerType" />
<xsd:complexType name="WorkerType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="subordinate" type="WorkerType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="identyfikator" type="PESEL" use="required"/>
</xsd:complexType>
<xsd:attribute name="identyfikator" type="xsd:ID" use="required"/>