У меня есть 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 пространства имен. Пожалуйста, дайте мне знать, как использовать один и тот же XSD для двух разных пространств имен с разными URI.