Thoughts on the current state of ASN.1 and XML technologies.

XBinder 2.3 Release


XBinder 2.3 is on the verge of release. New features include:

  • Support for Visual Studio 2012
  • 64-bit Windows libraries
  • Java and C# support for nillable elements (C & C++ already supported)

Log in to your account page to download XBinder 2.3, or register for an evaulation!

Java and C# Nillable Elements

The new support for nillable elements is pretty easy to work with.  A nillable element is modeled using XBNillableElem.  XBNillableElem is a wrapper class that contains a value representing an XSD type and a flag that indicates whether that value has been nilled or not. For example, you may have some XSD such as:

            <complexType name="MyComplex">
               <xsd:sequence>
                  <xsd:element name="an_element" type="xsd:string"/>
               </xsd:sequence>
               <xsd:attribute name="an_attribute" type="xsd:string" use="required"/>
            </xsd:complexType>

            [...]
               <!-- An element inside some complex type -->
               <xsd:element name="myComplexElem" type="MyComplex" nillable="true"/>
            [...]

You will then have a field generated such as:

protected XBNillableElem<MyComplex> myComplexElem;

When creating a value for myComplexElem, you may create a nilled or not-nilled element. If you create a nilled element, you will not need to populate “an_element” (it is not present when the element is nilled), but you will need to populate “an_attribute” (it is present when the element is nilled).  Here is an example of populating myComplexElem as being nilled:

   MyComplex myComplex = new MyComplex();
   myComplex.setAn_attribute("attribute value");
   outerobj.setMyComplexElem( new XBNillableElem<MyComplex>
                                       myComplex, true /*nilled*/) );
  1. No comments yet.

You must be logged in to post a comment.

  1. No trackbacks yet.