मैं निम्नलिखित सरल XSD दस्तावेज़ (foo.xsd
) मिल गया है:जेएक्सबी एक्सजेसी - XPath मूल्यांकन के परिणाम खाली लक्ष्य नोड में परिणाम?
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:foo">
<xsd:element name="Person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Height">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Short"/>
<xsd:enumeration value="Average"/>
<xsd:enumeration value="Tall"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
और मैं XJC JAXB संकलक है कि "ऊंचाई" तत्व एक का उपयोग करके एक प्रकार सुरक्षित enum वर्ग का उपयोग करना चाहिए करने के लिए संकेत करना चाहते हैं बाहरी बाइंडिंग फ़ाइल है, तो (foo.xjb
) की तरह:
parsing a schema...
[ERROR] XPath evaluation of "//xsd:element[@name='Height']/xsd:simpleType" results in empty target node
line 6 of file:/Users/maerics/src/java/jaxb/foo.xjb
Failed to parse a schema.
:
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
jxb:version="2.0">
<jxb:bindings schemaLocation="foo.xsd">
<jxb:bindings node="//xsd:element[@name='Height']/xsd:simpleType">
<jxb:typesafeEnumClass name="Height" />
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
लेकिन जब मैं कमांड "xjc -b foo.xjb foo.xsd
" मैं निम्नलिखित त्रुटि मिलती है चलाने
XPath अभिव्यक्ति मुझे ठीक लगती है, इसलिए मुझे लगता है कि एक्सएमएल नेमस्पेस से संबंधित कुछ सूक्ष्म समस्या है? मैंने डिफ़ॉल्ट नामस्थान, लक्ष्य नामस्थान आदि का उपयोग करने (या नहीं) के कुछ संयोजनों की कोशिश की है लेकिन हमेशा एक ही त्रुटि है। ध्यान दें कि xjc
एक्सएसडी फ़ाइल के लिए जावा स्रोत उत्पन्न करता है, बिना बाहरी बाइंडिंग फ़ाइल के, अपेक्षित। इसी प्रकार, एक्सएसडी फ़ाइल में एम्बेडेड बाइंडिंग परिभाषाओं का उपयोग अपेक्षित के रूप में काम करता है।
ध्यान दें कि मैक ओएस 10.6.8 पर जावा संस्करण "1.6.0_26" और xjc संस्करण "JAXB 2.1.10 में जेएडीबी 6.10" का उपयोग कर रहा हूं।
क्या कोई यह बता सकता है कि मूल एक्सएसडी को संशोधित किए बिना इस लक्ष्य को कैसे प्राप्त किया जाए?
हा! आंखों की अतिरिक्त जोड़ी के लिए धन्यवाद; हाथ से हाथ लिखने के लिए मुझे यही मिलता है, मुझे लगता है =) – maerics
जैसे ही सिस्टम मुझे देता है बाउंटी ... – maerics
एक ही समस्या थी, हालांकि मेरी समस्या यह थी कि xsd को नामस्थान के रूप में भी घोषित नहीं किया गया था। DOH। –