2012-10-23 100 views
0

我有一組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的文件包含一個該文件定義的稱爲「文檔」的元素。 xsd文件正在被接收特定「文檔」類型消息的web服務使用。

男人的事情是,我需要有一堆元素「文檔」,但不同類型。

現在我想將幾個消息合併爲一個。我創建了以下代碼:

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

但是,我收到錯誤消息,指出此文檔包含已存在於目標名稱空間中的元素。這個名字就是「文件」。

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

回答

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"> 
+0

我是不是要目標名稱添加到每個XSD?做完像你之後說我得到一個錯誤,指出鏈接到DOC1:message_1被禁止 – kbeat

+0

不確定,但聽起來不錯。 –

相關問題