我在为XML文档生成XML Schema时遇到了一些问题。 XML文档应如下所示:
<HEADER>
<ID>64639</ID>
....
<INCIDENT>
<HEADER>64639</HEADER>
</INCIDENT>
<INCIDENT>
<HEADER>64639</HEADER>
</INCIDENT>
....
</HEADER>
到目前为止,我实现了以下结构:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:element name="HEADER">
<xsd:complexType>
<xsd:all>
<xsd:element minOccurs="1" name="ID" nillable="false" type="xsd:integer"/>
</xsd:all>
</xsd:complexType>
<xsd:key name="SYS_C0032500">
<xsd:selector xpath="."/>
<xsd:field xpath="ID"/>
</xsd:key>
<xsd:keyref name="SYS_C0032500_HEADER.ID_INCIDENT.HEADER_" refer="SYS_C0032500">
<xsd:selector xpath="INCIDENT"/>
<xsd:field xpath="HEADER"/>
</xsd:keyref>
</xsd:element>
<xsd:element name="INCIDENT">
<xsd:complexType>
<xsd:all>
<xsd:element minOccurs="1" name="HEADER" nillable="false" type="xsd:integer"/>
</xsd:all>
</xsd:complexType>
<xsd:key name="IDK">
<xsd:selector xpath="."/>
<xsd:field xpath="HEADER"/>
</xsd:key>
</xsd:element>
</xsd:schema>
此任务的标准是使用和元素来模拟数据库约束。目前我收到一条错误消息:
引擎名称:Xerces 严重性:错误 描述:cvc-complex-type.2.4.d:从元素'INCIDENT'开始发现无效内容。此时不会有子元素。 出发地点:3:6 结束地点:3:14 网址:http://www.w3.org/TR/xmlschema-1/#cvc-complex-type
我的另一个问题来自更多的INCIDENT部分。当没有maxOccurs属性时,如何添加更多INCIDENT元素?
感谢您的帮助!
此致 乔
答案 0 :(得分:2)
在示例实例文档中,HEADER的内容模型似乎是“一个ID后跟一个或多个INCIDENT”。在XSD中:
<xsd:element name="HEADER">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ID" nillable="false" type="xsd:integer"/>
<xsd:element name="INCIDENT" minOccurs="1" maxOccurs="unbounded" type="..."/>
</xsd:all>
</xsd:complexType>
...