Ошибка: недопустимое пространство имен для объявления атрибута: http://www.w3.org/2001/XMLSchema-instance

Я пытаюсь создать новый проект SOAP в SOAPUI через импорт файла wsdl. Начальная часть wsdl выглядит так:

<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions targetNamespace="http://sap.com/xi/SAPGlobal20/Global" name="BusinessPartnerSUITEBulkReplicateRequestIn" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://sap.com/xi/SAPGlobal20/Global" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attribute type="xs:string" name="nil"/>
</xs:schema>
<xs:schema xmlns="http://sap.com/xi/SAP_BS_FND/MDG/Global2" targetNamespace="http://sap.com/xi/SAP_BS_FND/MDG/Global2" xmlns:ns1="http://ariba.com/xi/SupplierManagement" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:schema targetNamespace="http://ariba.com/xi/SupplierManagement" xmlns:tns="http://ariba.com/xi/SupplierManagement" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" xmlns:mdg="http://sap.com/xi/SAP_BS_FND/MDG/Global2" xmlns:sapg20="http://sap.com/xi/SAPGlobal20/Global" xmlns:sm="http://ariba.com/xi/SupplierManagement" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xs:import namespace="http://sap.com/xi/SAP_BS_FND/MDG/Global2"/>
<xs:import namespace="http://www.w3.org/2001/XMLSchema-instance"/>
<xs:element type="tns:BPSUITEBulkRplctConfMsg" name="BusinessPartnerSUITEBulkReplicateConfirmationMessage"/>
<xs:element type="tns:BPSUITEBulkRplctReqMsg" name="BusinessPartnerSUITEBulkReplicateRequestMessage"/>
<xs:element type="tns:BPSUITERplctConfMsg" name="BusinessPartnerSUITEReplicateConfirmationMessage"/>
<xs:element type="tns:BPSUITERplctReqMsg" name="BusinessPartnerSUITEReplicateRequestMessage"/>
<xs:complexType name="BPSUITEBulkRplctReqMsg">
<xs:sequence>
<xs:element type="tns:BusinessDocumentMessageHeader" name="MessageHeader"/>
<xs:element type="tns:BPSUITERplctReqMsg" name="BusinessPartnerSUITEReplicateRequestMessage" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

Я получаю сообщение об ошибке:

Ошибка: недопустимое пространство имен для объявления атрибута: http://www.w3.org/2001/XMLSchema-instance

Пожалуйста помоги.

1 ответ

Решение

Если вы откроете путь https://www.w3.org/2001/XMLSchema-instance в веб-браузере вы получите следующее сообщение:

Пространство имен экземпляра схемы XML
[...]
Эта схема никогда не должна использоваться как таковая: Рекомендация схемы XML запрещает объявление атрибутов в этом пространстве имен

Это должно объяснить вашу ошибку.
Чтобы исправить это, поищите определения атрибутов с префиксомxsi: или, что более вероятно:

Поскольку вы определили xs:schema с targetNamespace нравиться

<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:attribute type="xs:string" name="nil"/>
</xs:schema>

либо удалите атрибут, либо лучше измените это пространство имен.
Скорее всего, это проблема.

Другие вопросы по тегам