外部バインディングファイルのXPath式は、自分のWSDLにインポートされるXMLスキーマの要素をターゲットにできません。WSDLからインポートされたスキーマ要素への外部JAXBバインディングファイルの適用
私はインラインバインディングのカスタマイズを実行するとすべてが実行されますが、実際に私のカスタマイズを含むファイルを誤って上書き(リフレッシュ)することはありません。
私のバインディングファイルの先頭:
<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']">
私のWSDLが含まれていますimport'edスキーマ:
<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>
がどんなに私は何をすべきかXPathは、XSDで何かを見つけることはできません。私が手にエラーがある:私はXSにアクセスしようとした
[ERROR] XPath evaluation of "//xs:schema[@targetNamespace='urn:myExample']" results in empty target node
:インデックス番号の代わりに、名前空間でスキーマをし、それはどちらか動作しません。私のXPath式は、インポートされたスキーマの要素に到達できないようです...これを修正するにはどうしますか?
これは、NetBean 7.2で開発されているJava SE 7プロジェクトです。 NetBeansを使ってすべてのwsimportを実行していますが、コマンド出力はRI/Metroの標準となります。
EDIT: SCDを使用すると、外部バインディングファイルが動作するようになることがわかりました。このXPathの例は機能しません。
<bindings node="//xsd:schema[@targetNamespace='urn:myExample']">
<bindings node="//xs:complexType[@name='myType']">
<class name="MyClass"/>
</bindings>
</bindings>
ただし、このSCDの例は動作します。
<bindings scd="x-schema::tns" xmlns:tns="urn:myExample">
<bindings scd="~tns:myType">
<class name="MyClass"/>
</bindings>
</bindings>
これは既知のことですが、wsimportを使用していてもSCDではXPathはxjbファイルでは機能しません。
私はこれを試してみました。しかし、今私は次のエラー 'SCD '〜tns:myelement"スキーマのコンポーネントと一致しませんでした。 " – wib