Uploaded image for project: 'XMLBeans'
  1. XMLBeans
  2. XMLBEANS-220

XmlObject.xmlText(XmlOptions) outputs xsi:nil="true" where schema definition is minOccurs="0" and default value for nillable="false"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • Version 2
    • None
    • XmlObject
    • None
    • Windows XP, JDK 1.4.2_05

    Description

      We have defined a type in the schema as...

      <xsd:complexType name="MyType">
      <xsd:element name="mandatoryElement" type="xsd:string"/>
      <xsd:element name="optionalElement" minOccurs="0" type="xsd:string"/>
      </xsd:complexType>

      According to the XML Schema specification, false is the default value for the optional 'nillable' attribute on xsd:element. So the 'optionalElement' element is nillable='false'.

      We instantiate an instance of the MyType class, set the mandatory element and get the value of xmlText()...

      MyType type = MyType.Factory.newInstance();
      type.setMandatoryElement("someValue");
      String xmlText = type.xmlText();

      The value of xmlText generated by XMLBeans v2.0 is...

      <MyType>
      <mandatoryElement>someValue</mandatoryElement>
      <optionalElement xsi:nil="true"/>
      </MyType>

      BUT, we would expect (given that optionalElement is NOT nillable) to see the following...

      <MyType>
      <mandatoryElement>someValue</mandatoryElement>
      </MyType>

      Our investigations into the XMLBeans API suggests that it is not possible (via XmlOptions, etc) to suppress the xsi: attributes, so we believe this may be a bug? We are at no point explicitly setting the optionalElement to null.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jim.mcslim James Webster
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: