2013-05-23 11 views
5

मैं जावा प्रोग्रामर और वेब सेवाओं के लिए नया जावा प्रोग्रामर हूं। मैं एक एक्सएमएल दस्तावेज़ बनाने की कोशिश कर रहा हूं जो एक एक्सएसडी (जिसे मैंने नहीं लिखा) के अनुरूप है जिसमें नीचे स्निपेट है। मैं जो करना चाहता हूं उसे मेलिंग की प्रतिलिपि बनाने के लिए इस वेब सेवा को कॉल करना है। कॉपी नामक एक तत्व है, जो अमूर्त प्रकार "tns: copyRequest" का है। चूंकि तत्व का प्रकार सार है, ग्रहण मुझे बताता है कि मैं एक नहीं बना सकता। एक CopyMailingRequest प्रकार है (जो मुझे लगता है कि यह वही है), लेकिन मुझे यकीन नहीं है कि इसे कैसे चालू किया जाए, क्योंकि उस प्रकार का कोई तत्व नहीं है। मैं क्या खो रहा हूँ?एक अमूर्त प्रकार के XSD तत्व को तत्काल कैसे करें

<xs:element name="copy" nillable="true" type="tns:CopyRequest"/> 

<xs:complexType name="CopyMailingRequest"> 
    <xs:complexContent> 
    <xs:extension base="tns:CopyRequest"> 
     <xs:sequence> 
     <xs:element name="fromId" type="tns:MailingId"/> 
     </xs:sequence> 
    </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 

<xs:complexType name="StandardMailingId"> 
    <xs:complexContent> 
    <xs:extension base="tns:MailingId"/> 
    </xs:complexContent> 
</xs:complexType> 

<xs:complexType name="MailingId"> 
    <xs:complexContent> 
    <xs:extension base="tns:ObjectId"/> 
    </xs:complexContent> 
</xs:complexType> 

<xs:complexType name="CopyRequest" abstract="true"> 
    <xs:sequence> 
    <xs:element name="newName" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 

उत्तर

9

यह आसान का पालन करने के लिए, नीचे एक न्यूनतम संशोधित स्कीमा है बनाने के लिए (एक मनमाना targetNamespace साथ स्कीमा तत्व जोड़े, और ObjectId के लिए एक डमी परिभाषा जोड़ा):

<?xml version="1.0" encoding="utf-8" ?> 
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) --> 
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" xmlns:tns="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="copy" nillable="true" type="tns:CopyRequest"/> 

    <xs:complexType name="CopyMailingRequest"> 
     <xs:complexContent> 
      <xs:extension base="tns:CopyRequest"> 
       <xs:sequence> 
        <xs:element name="fromId" type="tns:MailingId"/> 
       </xs:sequence> 
      </xs:extension> 
     </xs:complexContent> 
    </xs:complexType> 

    <xs:complexType name="StandardMailingId"> 
     <xs:complexContent> 
      <xs:extension base="tns:MailingId"/> 
     </xs:complexContent> 
    </xs:complexType> 

    <xs:complexType name="MailingId"> 
     <xs:complexContent> 
      <xs:extension base="tns:ObjectId"/> 
     </xs:complexContent> 
    </xs:complexType> 

    <xs:complexType name="ObjectId"/> 

    <xs:complexType name="CopyRequest" abstract="true"> 
     <xs:sequence> 
      <xs:element name="newName" type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

यह वही एक है स्वचालित रूप से (और वैध) उत्पन्न नमूना XML XSD के लिए दिखाई देगा:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) --> 
<copy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CopyMailingRequest" xmlns="http://tempuri.org/XMLSchema.xsd"> 
    <newName>newName1</newName> 
    <fromId/> 
</copy> 

यहाँ मुख्य बिंदु xsi:type="CopyMailingRequest" है; इस प्रकार आप अपने परिदृश्य में एक ठोस प्रकार प्रदान करते हैं।

संबंधित मुद्दे