7
我有一個XML(first.xml)看起來像::如何處理多個名稱空間具有不同的URI在XSD
<?xml version="1.0" encoding="utf-8"?>
<saw:jobInfo xmlns:saw="com.analytics.web/report/v1.1">
<saw:jobStats>...........</saw:jobStats>
<saw:detailedInfo> .....</saw:detailedInfo>
<saw:fileInfo>..........</saw:fileInfo>
</saw:jobInfo>
的以下XML(second.xml)的與上述相同但具有一個不同的命名空間。
<?xml version="1.0" encoding="utf-8"?>
<soap:jobInfo xmlns:soap="urn://bi.webservices/v6">
<soap:jobStats>...........</saw:jobStats>
<soap:detailedInfo> .....</saw:detailedInfo>
<soap:fileInfo>..........</saw:fileInfo>
</soap:jobInfo>
正如我有相同的元素和屬性的XML兩種的我使用的是相同的XSD文件來驗證這兩個名字。
XSD文件::
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="com.analytics.web/report/v1.1"
xmlns="com.analytics.web/report/v1.1"
xmlns:saw="com.analytics.web/report/v1.1"
xmlns:soap="urn://bi.webservices/v6"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
包括的xmlns後:肥皂= 「甕://bi.webservices/v6」 模式驗證失敗second.xml說未知元素 「肥皂:JOBINFO」。我戳了一下,發現targetNamespace的值應該和命名空間的URI相同。 請讓我知道如何爲具有不同URI的兩個不同名稱空間使用相同的XSD。
@@彼得魯杜米特:非常感謝您的答覆。由於有許多XSD,我無法制作Chameleon.XSD。請用圖表或示例來解釋它,以便我能更好地理解它。 – prathima 2012-03-21 13:34:04
@prathima,我已經更新了我的回覆,只是時機...如果你有非常複雜的包含其他命名空間的模式,那麼你無法達到你想要的,變色龍與否。變色龍的想法是假定構成它的模式的名稱空間。所以你可以在不同的名字空間中有相同的結構,而不會有重複。有一點要記住,一個XSD =一個名稱空間。 – 2012-03-21 13:39:13