2013-02-13 21 views
7

Steuerelement xsd.exe Tool generiert Klassen für angegebene Xsd-Datei. Es folgt ein Muster zur Benennung des Typs. Zum Beispiel wirdKönnen wir Typnamen in xsd.exe Werkzeug generierte Klasse

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

xsd.exe /c Students.xsd 

Students.cs-Datei generiert. Wenn der Typ für Elemente angezeigt wird

Er generiert den Typ, indem er dem übergeordneten Elementnamen vorangestellt wird, wenn das Element untergeordnet ist. Können wir diesen Namen kontrollieren? Ich brauche den Typnamen genauso wie den Elementnamen. Studenten => Student, Department => Abteilung

Vielen Dank im Voraus

Antwort

16

Im Allgemeinen ein den Namen der generierten Klassen nicht anpassen kann, wenn xsd.exe mit - im Gegensatz zu Mechanismen anderswo erhältlich, z.B. Ein JAXB-Benutzer über eine benutzerdefinierte JAXB-Bindungsdatei.

Allerdings hängen die generierten Klassennamen für xsd.exe vom Authoring-Stil ab. Was Sie beschrieben, wird generiert, wenn der Authoring-Stil, wie unten in die „russischen Puppe“, das heißt konformes ist:

<?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> 

Wenn Sie seinen Stil zu etwas anderes ändern (dies einer Jalousie genannt wird):

<?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> 

Sie werden diese Klassen generiert werden immer:

enter image description here