Home » xmlbeans-2.5.0-src » org.apache.xmlbeans.samples » enumeration » [javadoc | source]
public class: SchemaEnum [javadoc | source]
This sample illustrates how you can access XML values that are defined in schema as enumerations. When a schema containing enumerations is compiled, the generated Java types represent the schema enumerations with Java enumerations. You can access these through their constants and corresponding int values.

The schemas used by this sample are defined in PriceSummary.xsd and EasyPO.xsd.
Method from org.apache.xmlbeans.samples.enumeration.SchemaEnum Summary:
main,   parseXml,   sortByThreshold,   summarizeItems,   validateXml
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.xmlbeans.samples.enumeration.SchemaEnum Detail:
 public static  void main(String[] args) 
    Receives an PO XML instance and uses its data to create an XML document based another schema, and which summarizes the items in the PO by price.
 public PurchaseOrderDocument parseXml(String xmlFilePath) 

    Creates a File from the XML path provided in main arguments, then parses the file's contents into a type generated from schema.

    Note that this work might have been done in main. Isolating it here makes the code separately available from outside this class.

 public String sortByThreshold(PriceSummaryDocument summaryDoc) 

    This method loops through a price summary XML document to create a string that lists the items grouped by threshold. Unlike the summarizeItems method, which creates a new XML document that contains an attribute whose value is enumerated, this method retrieves values from an enumeration.

    This method illustrates how you can use the int value corresponding to enumerations to specify them in Java switch statements.

 public PriceSummaryDocument summarizeItems(PurchaseOrderDocument poDoc) 

    This method uses values in the incoming XML to construct a new XML document of a different schema. PriceSummary.xsd, the schema for the new document, defines XML enumerations for a price threshold attribute. Items whose price is between $10 and $20 receive a threshold value of "Between10And20Dollars"; items above 20 get a threshold value of "Above20Dollars".

    This method loops through the purchase order items, creating a summary document that specifies their threshold value.

    You can verify this method's work by comparing the resulting XML with the XML in PriceSummary.xml. You can also use this method's return value to test the sortByThreshold method.

 public boolean validateXml(XmlObject xml) 

    Validates the XML, printing error messages when the XML is invalid. Note that this method will properly validate any instance of a compiled schema type because all of these types extend XmlObject.

    Note that in actual practice, you'll probably want to use an assertion when validating if you want to ensure that your code doesn't pass along invalid XML. This sample prints the generated XML whether or not it's valid so that you can see the result in both cases.