XML Schema氧气验证问题

时间:2012-09-18 10:43:30

标签: xml xsd oxygenxml

我在为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元素?

感谢您的帮助!

此致  乔

1 个答案:

答案 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>
    ...