Hallo...
ich schreibe gerade eine XSD die später eine XML-Datei validieren soll welche zum austausch von Daten zwischen verschiedenen Applikationen dient.
Hier zwei Bsp. die fast die gleiche XML-Datei zulassen.
Welche ist besser:
Eine flache Hierarchie
<xs:element name="options1">
<xs:complexType>
<xs:sequence>
<xs:element name="main" type="main-type"/>
<xs:element name="remote" type="remote-type"/>
<xs:element name="db" type="db-type"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="main-type">
<xs:sequence>
<xs:element name="modelname" type="xs:string"/>
<xs:element name="modelpath" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="remote-type">
<xs:sequence>
<xs:element name="pc" type="xs:string"/>
<xs:element name="weiter" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="db-type">
<xs:sequence>
<xs:element name="constring" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Oder eine tiefe Hierarchie
<xs:element name="options2">
<xs:complexType>
<xs:sequence>
<xs:element name="main">
<xs:complexType>
<xs:sequence>
<xs:element name="modelname" type="xs:string"/>
<xs:element name="modelpath" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="remote">
<xs:complexType>
<xs:sequence>
<xs:element name="pc" type="xs:string"/>
<xs:element name="weiter" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="db">
<xs:complexType>
<xs:sequence>
<xs:element name="constring" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Die Elemente main db und remote haben weitere Complexe Typen bzw. weitere Hierarchie Stufen... diese habe ich aus Übersichtsgründen weggelassen.
DANKE
Wenn die Frage lautet: Machen globale Typen Sinn, dann lautet die Antwort: Ja, wenn sie denn (potentiell) mehrfach verwendet werden.
ich sollte also nur globale typen verwenden wenn ich sie auch wirklich häufiger brauche
sonst halt fall 2... richtig.
Original von John444
ich sollte also nur globale typen verwenden wenn ich sie auch wirklich häufiger brauchesonst halt fall 2... richtig. Ich finde es einfach übersichtlicher wenn zu komplexe typen nicht inline definiert sind.
Außerdem kann man die generierten Klassen aus inline-Typen eigentlich nur als Appetitzügler benutzen, oder als Brechmittel.