0

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

message_i.xsd

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

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

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

问题是我需要有一堆元素“文档”,但类型不同。

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

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

但我收到错误消息,指出此文档包含目标命名空间中已存在的元素。这个名字就是“文档”。

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

4

1 回答 1

1

如果没有在每个 xsd 中定义每个复杂类型,就看不到这一点,但是

为每个 xsd 添加一个命名空间

例如

<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"> 
于 2012-10-23T15:53:51.553 回答