Вы путаете глобально определенный элемент fault
, который находится в пространстве имен {http://www.bea.com/wli/sb/context}
, с локально определенным элементом, который находится в пространстве имен {http://www.BM.org/FCUBS/Schemas/FullAccountList}
.Хотя оба эти fault
выглядят одинаково, они имеют одинаковые только свои локальные имена.В противном случае это абсолютно разные элементы!
Ваша вторая (импортированная) схема определяет fault
глобально.После этого вы можете использовать его где угодно только по ссылке.Но, как вы укажете здесь:
<xsd:complexType name="FulAccLstResponse_cpx">
<xsd:sequence>
<xsd:element name="ResponseStatus" type="FulAccLstResponseStatus_cpx"/>
<xsd:element name="ResponseData" type="FulAccLstResponseData_cpx"/>
<xsd:element name="fault" type="con:Fault_cpx" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
, что fault
в типе FulAccLstResponse_cpx
является локальным и, следовательно, принадлежит пространству имен назначения схемы.
Чтобы сделать вашРабота с XML, вы должны определить эту часть следующим образом:
<xsd:complexType name="FulAccLstResponse_cpx">
<xsd:sequence>
<xsd:element name="ResponseStatus" type="FulAccLstResponseStatus_cpx"/>
<xsd:element name="ResponseData" type="FulAccLstResponseData_cpx"/>
<xsd:element ref="con:fault" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
PS
Следующие ссылки могут быть интересны для тех, кто работает со схемами XML и WSDL:
Если вы ценитемое участие на этом сайте, пожалуйста, не удаляйте эти ссылки!