Announcement

Collapse
No announcement yet.

Wert und Attribute in complexType?

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

  • Wert und Attribute in complexType?

    Hallo,
    habe das Problem, dass ich eine XML-Datei vorgegeben habe und dafür eine passende XSD basteln muss.

    In der XML sieht es so aus (kann nicht geändert werden):
    Code:
    <!-- Start of special formula -->
    <formula calc="$1-($2+($1*($2+$1)))" position="1">
    	<var id="1" display="left" position="2" precision="3" index="true">String-Wert1</var>
    	<var id="2" display="right" position="5" precision="2" index="false">String-Wert2</var>
    </formula>
    Dazu habe ich manuell in der XSD geschrieben:
    Code:
    <!-- Definition of var_t Type -->
    <xs:complexType name="var_t">
    	<xs:sequence>
    		<xs:element name="var_value" type="xs:string"/>
    	</xs:sequence>
    	<xs:attribute name="display" type="xs:string" use="optional"/>
    	<xs:attribute name="postition" type="xs:integer" use="optional"/>
    	<xs:attribute name="precision" type="xs:integer" use="optional"/>
    	<xs:attribute name="index" type="xs:boolean" use="optional"/>
    	<xs:attribute name="id" type="xs:integer" use="optional"/>
    </xs:complexType>
    Dadurch ist es in der XML-Datei aber nur möglich den String-Wert wie folgt einzutragen:
    Code:
    <formula calc="$1-($2+($1*($2+$1)))" position="1">
    	<var id="1" display="left" position="2" precision="3" index="true">
    		<var_value>String-Wert1</var_value>
    	</var>
    	<var id="2" display="right" position="5" precision="2" index="false">
    		<var_value>String-Wert2</var_value>
    	</var>
    </formula>
    Wie kann ich das ändern? Wäre euch echt sehr dankbar, versuche da schon etwas länger dran rum.
    Danke für eure Hilfe!

  • #2
    Code:
    <xs:element name="var_value" type="xs:string"/>
    bedeutet minOccurs = maxOccurs = 1. Ändere also diese Schema-Attribute auf die gewünschte Elementanzahl.

    Comment


    • #3
      Originally posted by Thomas Meinike View Post
      Ändere also diese Schema-Attribute auf die gewünschte Elementanzahl.
      Mir geht es nicht darum wie oft ich das Element "var_value" haben will (das würde übrigens per default so passen, dass es nur einmal min und max vorkommen darf), sondern das ich "var_value" am liebsten garnicht verwenden will, da ich den Wert direkt mit dem "var_t"-Typ übergeben möchte. Wie geht das?

      Comment


      • #4
        Siehe http://www.w3.org/TR/xmlschema-0/#complexTfromSimpleT
        Code:
          <xsd:complexType name="var_t">
            <xsd:simpleContent>
              <xsd:extension base="xsd:string">
        	<xsd:attribute name="display" type="xs:string" use="optional"/>
        	<xsd:attribute name="postition" type="xs:integer" use="optional"/>
        	<xsd:attribute name="precision" type="xs:integer" use="optional"/>
        	<xsd:attribute name="index" type="xs:boolean" use="optional"/>
        	<xsd:attribute name="id" type="xs:integer" use="optional"/>
        
               </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>

        Comment


        • #5
          Funktioniert! Danke Martin Honnen!

          Comment

          Working...
          X