【发布时间】:2021-01-25 13:19:03
【问题描述】:
我有一个类似于 ::
的 XML (first.xml) <?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:soap="urn://bi.webservices/v6" 后,模式验证失败,因为 second.xml 说未知元素“soap:jobinfo”。我四处寻找,发现 targetNamespace 值应该与命名空间 URI 相同。 请告诉我如何为具有不同 URI 的两个不同命名空间使用相同的 XSD。
【问题讨论】: