Announcement

Collapse
No announcement yet.

XML Schema - Verschachtelte Elemente mit Attributen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Schema - Verschachtelte Elemente mit Attributen

    Hallo liebes Entwicklerforum!

    Ich schreibe derzeit ein XML-Schema um unsrem Team die arbeit leichter zu machen, dabei bin ich auf folgendes Problem gestoßen:

    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <Controls>
       <Control type="List" dataObject="Parameter">
          <Values columns="5" width="200" heigth="100">
             <List name="List1">
                <StartRow row="5"/>
             </List>
          </Values
       </Control>
    </Controls>
    Wie würde für dieses XML-File der xsd-code aussehen?

    Ich habe die daten ein bisschen verändert, also nicht darauf achten was drinnen steht es geht mir rein um die Syntax.

    Mein Hauptproblem ist, das ich nicht Elemente & Attribute gleichzeitig festlegen kann.

    Hoffe auf schnelle und hilfreiche Antworten & bedanke mich im Vorraus!

    AlexanderS
    Zuletzt editiert von AlexanderS; 05.07.2010, 15:27. Reason: edit

  • #2
    Hi also falls ich deine Frage richtig verstanden habe ist die Lösung die du suchst der complexType.

    Hier ein möglicher Ansatz für dein Beispiel. Denke nicht das es jetzt die beste Lösung ist, weiss ja nicht genau was du vorhast.

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
    	<!-- root-element -->
    	<xsd:element name="Controls" type="ControlsType" />
    	
    	<xsd:complexType name="ControlsType">
    		<xsd:sequence>
    			<xsd:element name="Control" type="ControlType" 
    				minOccurs="1" maxOccurs="1"/>
    		</xsd:sequence>
    	</xsd:complexType>
    	
    	<xsd:complexType name="ControlType">
    		<xsd:sequence>
    			<xsd:element name="Values"/>
    		</xsd:sequence>
    		<xsd:attribute name="type"	type="valueType" />	
    		<xsd:attribute name="dataObject" type="dataObjectType" />
    	</xsd:complexType>
    	
    	<xsd:simpleType name="valueType">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="List" />
    		</xsd:restriction>
    	</xsd:simpleType>
    	
    	<xsd:simpleType name="dataObjectType">
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="Parameter" />
    		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:schema>

    Comment


    • #3
      Danke!

      Vielen Dank für diese schnelle und hilfreiche Antwort.

      Mein Gesamtschema sieht zwar anders aus aber aus deiner Syntax hab ich die für mich passende Lösung entnommen.


      Code:
      <xsd:complexType name="ControlType">
      		<xsd:sequence>
      			<xsd:element name="Values"/>
      		</xsd:sequence>
      		<xsd:attribute name="type"	type="valueType" />	
      		<xsd:attribute name="dataObject" type="dataObjectType" />
      	</xsd:complexType>
      Dies Ist im Grunde genommen der Block der mir geholfen hat, vielen Dank.

      AlexanderS

      Comment

      Working...
      X