XSD:一起使用的不同文件中具有相同名称的元素

时间:2012-10-23 15:26:29

标签: xml xsd

我有一组XSD文件,每个文件都有以下结构:

message_i.xsd

<xs:complexType name="message_i">
    <!-- definition of message -->
</xs:complexType>

<xs:element name="document" type="message_i"></xs:element>

因此,每个xsd文件都包含一个名为“document”的元素,该文件定义了该文件。接收特定“文档”类型消息的Web服务正在使用xsd文件。

男人的事情是我需要有一堆元素“文档”但不同类型。

现在我想将几条消息合并为一条消息。我创建了以下代码:

<!-- some data -->
<xs:element name="document1" type="message1">
<xs:element name="document4" type="message4">    
<xs:element name="document5" type="message5">

但是我收到错误声明该文档包含目标命名空间中已存在的元素。那个名字就是“文件”。

如何创建包含不同消息的元素?

1 个答案:

答案 0 :(得分:1)

如果没有在每个xsd中定义每个复杂类型,但是

,则无法看到

为每个xsd添加命名空间

e.g。

<xs:schema xmlns:DOC1="http://www.mySite.Com/DOC1" />

然后您的复杂类型将是DOC1:message_i

所以你可以拥有,

<xs:element name="document1" type="DOC1:message_i">
<xs:element name="document4" type="DOC2:message_i">
<xs:element name="document5" type="DOC3:message_i">