# optionale Elemente mit defaultwerten werden in xml miterzeugt



## devxml (15. Sep 2011)

Hallo, habe folgendes Problem: 

in der XSD sind elemente Definiert die defaultwerte besitzen und optional sind. Meine denke ist dass wenn das element nicht in der erzeugten xml vorhanden ist, soll das in der XSD definierte element  mit dem entsprechenden defaultwert geliefert werden. Nun ist die sache aber so dass castor den default-element beim erzeugen der XML miterzeugt, trotz dass dieses gar nicht gesetzt wurde.

falls es von bedeutung ist: das Element ist optional, mit defaultwert, nillable und basiert auf einem einfachem Typ (Boolean)

Hat einer ne idee was ich falsch mache?


----------



## devxml (15. Sep 2011)

Ein Element basiert auf dem Typ "PricesType", dieser Typ enthält ein Element welches auf dem Typ "ActivationType" basiert. Um genau diesen geht es hier, denn das Element "activemon" wird stets miterzeugt trotz dass es nicht gesetzt wurde.

[XML]
  <!-- ... -->
  <xs:complexType name="PricesType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="price">
        <xs:complexType>
          <xs:complexContent mixed="false">
            <xs:extension base="ActivationType">
              <xs:sequence>
                <xs:element name="type">
                  <xs:simpleType>
                    <xs:restriction base="PriceType">
                      <xs:totalDigits value="9" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
                <xs:element name="value">
                  <xs:simpleType>
                    <xs:restriction base="xs:int">
                      <xs:totalDigits value="9" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:element>
              </xs:sequence>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ActivationType">
    <xs:sequence>
      <xs:element minOccurs="0" default="T" nillable="true" name="activemon" type="BooleanType"/>
      <xs:element minOccurs="0" default="T" nillable="true" name="activetue" type="BooleanType"/>
      <!-- ... -->
    </xs:sequence>
  </xs:complexType>
  <!-- ... -->
[/XML]


----------



## Wildcard (15. Sep 2011)

EMF kann das und JAXB AFAIK auch. Bei Castor habe ich auf die schnelle nichts entsprechendes gefunden.


----------

