Wyrażenie XPath w moich plikach zewnętrznych wiążących nie można kierować elementy w moich schematów XML, które są importowane do mojego WSDL.Zastosowanie zewnętrznego pliku wiązania JAXB do schematu elementów importowanych z WSDL
Wszystko działa jeśli robię wiążące inline dostosowywania ale naprawdę chciałem mieć zewnętrznych plików wiążących w ten sposób nigdy nie przypadkowo nadpisać (odświeżania) Pliki zawierające moje dostosowania.
Początek mojego pliku wiązania:
<jaxb:bindings
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
version="2.1">
<jaxb:bindings schemaLocation="../wsdl/localhost_7001/ExampleSessionBean/ExampleSessionBeanService.wsdl#types?schema1">
<jaxb:bindings node="//xs:schema[@targetNamespace='urn:myExample']">
Moja WSDL zawiera:
<types>
<xsd:schema>
<xsd:import namespace="urn:myExample" schemaLocation="http://localhost:7001/ExampleSessionBean/ExampleSessionBeanService?xsd=1"/>
</xsd:schema>
<xsd:schema>
<xsd:import namespace="http://ejbs/" schemaLocation="http://localhost:7001/ExampleSessionBean/ExampleSessionBeanService?xsd=2"/>
</xsd:schema>
</types>
Bez względu na to, co robię XPath nie mogą znaleźć coś w XSD: import'ed schematów. Błąd pojawia się:
[ERROR] XPath evaluation of "//xs:schema[@targetNamespace='urn:myExample']" results in empty target node
Próbowałem dostępu do xs: schema według numeru indeksu zamiast nazw i że nie działa. Wygląda na to, że moje wyrażenia XPath nie mogą dotrzeć do elementów z zaimportowanych schematów ... czy mimo to można to naprawić?
to jest Java SE 7 Projekt rozwijany pod NetBean 7.2. Używam NetBeans, aby zrobić wszystkie moje rzeczy wsimport, jeśli to ma znaczenie, ale wynik polecenia wygląda dość standardowo dla RI/Metro.
EDIT: Wyjaśniłem, że mogę uzyskać zewnętrzny plik wiążący do pracy, jeśli używam SCD. Ten przykład XPath nie działa:
<bindings node="//xsd:schema[@targetNamespace='urn:myExample']">
<bindings node="//xs:complexType[@name='myType']">
<class name="MyClass"/>
</bindings>
</bindings>
Ale ten przykład z SCD robi.
<bindings scd="x-schema::tns" xmlns:tns="urn:myExample">
<bindings scd="~tns:myType">
<class name="MyClass"/>
</bindings>
</bindings>
Czy jest to znana rzecz, w której XPath nie działa w plikach xjb podczas używania wsimport, ale SCD robi?
próbowałem tego. Ale teraz pojawia się następujący błąd "SCD" ~ tns: myelement "nie pasuje do żadnego komponentu schematu" – wib