2013-02-13 35 views
7

xsd.exe उपकरण में टाइप नाम को नियंत्रित कर सकते हैं दिए गए xsd फ़ाइल के लिए कक्षाएं उत्पन्न करता है। यह प्रकार नामकरण के लिए एक पैटर्न का पालन करता है। उदाहरण के लिए,क्या हम xsd.exe उपकरण जेनरेट कक्षा

<Students> 
    <Student Name="A" RollNo="1" Address="Some Address"> 
    <Department Id="20" Name="CSE"/> 
    </Student> 
</Students> 

xsd.exe /c Students.xsd 

छात्र.cs फ़ाइल उत्पन्न होती है। यदि हम तत्वों के लिए प्रकार

Element  Type Name 
Students Students 
Student  StudentsStudent 
Department StudentsStudentDepartment 

तत्व तत्व है तो यह मूल तत्व नाम उपसर्ग करके प्रकार उत्पन्न करता है। क्या हम इस नाम को नियंत्रित कर सकते हैं? मुझे तत्व नाम के समान प्रकार के नाम की आवश्यकता है। छात्र => छात्र, विभाग => विभाग

धन्यवाद अग्रिम में

उत्तर

16

सामान्य तौर पर, एक उत्पन्न वर्गों के नाम जब xsd.exe का उपयोग कर अनुकूलित नहीं कर सकते हैं - कहीं और उपलब्ध तंत्र के विपरीत, के लिए उदाहरण के लिए एक कस्टम JAXB बाध्यकारी फ़ाइल के माध्यम से एक JAXB उपयोगकर्ता।

हालांकि, xsd.exe के लिए उत्पन्न वर्ग नाम संलेखन शैली पर निर्भर करते हैं। आप क्या वर्णित है, उत्पन्न होता है जब लेखन शैली "रूसी गुड़िया" यानी नीचे के रूप में करने के लिए अधिक से अधिक अनुरूप है:

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="Students"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element name="Student"> 
      <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="Department"> 
       <xsd:complexType> 
        <xsd:attribute name="Id" type="xsd:unsignedByte" use="required" /> 
        <xsd:attribute name="Name" type="xsd:string" use="required" /> 
       </xsd:complexType> 
       </xsd:element> 
      </xsd:sequence> 
      <xsd:attribute name="Name" type="xsd:string" use="required" /> 
      <xsd:attribute name="RollNo" type="xsd:unsignedByte" use="required" /> 
      <xsd:attribute name="Address" type="xsd:string" use="required" /> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

आप कुछ अलग करने के लिए अपनी शैली बदल लेते हैं (यह एक वेनिस अंधा कहा जाता है):

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="Students" type="Students"/> 
    <xsd:complexType name="Students"> 
     <xsd:sequence> 
      <xsd:element name="Student" type="Student"/> 
     </xsd:sequence> 
    </xsd:complexType> 
    <xsd:complexType name="Student"> 
     <xsd:sequence> 
      <xsd:element name="Department" type="Department"/> 
     </xsd:sequence> 
     <xsd:attribute name="Name" type="xsd:string" use="required"/> 
     <xsd:attribute name="RollNo" type="xsd:unsignedByte" use="required"/> 
     <xsd:attribute name="Address" type="xsd:string" use="required"/> 
    </xsd:complexType> 
    <xsd:complexType name="Department"> 
     <xsd:attribute name="Id" type="xsd:unsignedByte" use="required"/> 
     <xsd:attribute name="Name" type="xsd:string" use="required"/> 
    </xsd:complexType> 
</xsd:schema> 

आप हो रही हो जाएगा इन कक्षाओं में उत्पन्न:

enter image description here