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