2012-08-24 17 views
5

साथ जिम्मेदार बताते हैं मैं एक xml टुकड़ा है जिसके लिए मैं XSDXSD वाक्य रचना नाम स्थान

<root xmlns="http://xmlns.oracle.com/sca/1.0" xmlns:id="http://xmlns.oracle.com/id/1.0"> 
    <service name="Book" id:number="465"/> 
</root> 

निम्नलिखित XSD त्रुटि JAXB वर्ग पीढ़ी देता है लिखने के लिए की जरूरत है। \ Program Files \ जावा \ jdk1.7.0_06 \ बिन> xjc -p परीक्षण C: \ book.xsd एक स्कीमा को पार्स ... [ERROR] src

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/sca/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="root"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="service"> 
      <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="xs:string"> 
       <xs:attribute type="xs:string" name="name"/> 
       <xs:attribute ref="ns:number" xmlns:ns="http://xmlns.oracle.com/id/1.0"/> 
       </xs:extension> 
      </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    </xs:schema> 

त्रुटि

सी है -resolve.4.2: घटक 'एनएस: संख्या' को हल करने में त्रुटि। यह पता चला था कि 'ns: number' नामस्थान 'http://xmlns.oracle.com/id/1.0' में है, लेकिन इस नामस्थान से घटक एस स्कीमा दस्तावेज़ फ़ाइल से संदर्भित नहीं हैं:/C:/book । xsd '। यदि यह गलत नामस्थान है, तो शायद 'ns: number' के उपसर्ग को बदलने के लिए एस की आवश्यकता है। यदि यह सही नामस्थान है, तो उचित 'आयात' टैग 'फ़ाइल:/C: /book.xsd' में जोड़ा जाना चाहिए। फ़ाइल 10 की लाइन:/सी: /book.xsd

उत्तर

8

आपको वास्तव में कम से कम XSD फ़ाइलों को नेमस्पेस के रूप में आवश्यकता है क्योंकि एक एक्सएसडी फ़ाइल केवल एक नामस्थान या कोई भी लक्षित नहीं कर सकती है।

चूंकि आपका मूल तत्व एक नामस्थान में है, और दूसरे में विशेषता है, तो आपको कम से कम दो फाइलों की आवश्यकता है। आप उन्हें xsd के माध्यम से "लिंक" करते हैं: आयात

शीर्ष XSD:

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xsd:schema xmlns="http://xmlns.oracle.com/sca/1.0" xmlns:id="http://xmlns.oracle.com/id/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:import schemaLocation="xsd-syntax-for-xml-attributes-with-namespace1.xsd" namespace="http://xmlns.oracle.com/id/1.0" /> 
    <xsd:element name="root"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element name="service"> 
      <xsd:complexType> 
      <xsd:attribute name="name" type="xsd:string" use="required" /> 
      <xsd:attribute ref="id:number" use="required" /> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

XSD-वाक्य रचना के लिए एक्सएमएल-गुण-साथ-namespace1.xsd

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xsd:schema xmlns="http://xmlns.oracle.com/id/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/id/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:attribute name="number" type="xsd:unsignedShort" /> 
</xsd:schema> 
0

उपयोग के नीचे दो स्कीमा

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/sca/1.0" xmlns:id="http://xmlns.oracle.com/id/1.0" xmlns:sca="http://xmlns.oracle.com/sca/1.0"> 
    <xs:import namespace="http://xmlns.oracle.com/id/1.0" schemaLocation="id.xsd"/> 
    <xs:element name="root"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="sca:service"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="service"> 
    <xs:complexType> 
     <xs:attribute name="name" use="required" type="xs:NCName"/> 
     <xs:attribute ref="id:number" use="required"/> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

आईडी

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/id/1.0" xmlns:id="http://xmlns.oracle.com/id/1.0" xmlns:sca="http://xmlns.oracle.com/sca/1.0"> 
    <xs:import namespace="http://xmlns.oracle.com/sca/1.0" schemaLocation="Untitled2.xsd"/> 
    <xs:attribute name="number" type="xs:integer"/> 
</xs:schema>