users@jaxb.java.net

enumeration with empty string as value

From: Lisa Bahler <bahler_at_RESEARCH.TELCORDIA.COM>
Date: Mon, 02 Dec 2002 23:05:18 -0700

I am unable to produce classes for a schema that contains an enumeration
that has the empty string "" as a value.

As an example, I have modified po.xsd from SampleApp6 to look like:

<xsd:simpleType name="USState">
  <xsd:annotation>
     <xsd:appinfo>
        <jxb:typesafeEnumClass/>
     </xsd:appinfo>
     <xsd:documentation>
          This is a localized way to map this simple type definition
          to a typesafe enum class. See jxb:globalBindings
          @typesafeEnumBase above for a global way to accomplish this
          for all simple type definitions similar to this one.
      </xsd:documentation>
  </xsd:annotation>
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="AK"/>
    <xsd:enumeration value="AL"/>
    <xsd:enumeration value="AR"/>
    <xsd:enumeration value="CA"/>
    <xsd:enumeration value="MA"/>
<!-- *****This next line is added by me.***** -->
    <xsd:enumeration value="" />
    <!-- and so on ... -->
  </xsd:restriction>
</xsd:simpleType>

This is what I get when I try to generate classes:

$ test.bat
parsing a schema...
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
        at com.sun.msv.verifier.identity.IDConstraintChecker.feedAttribute(IDCon
straintChecker.java:218)
        at com.sun.msv.verifier.Verifier.startElement(Verifier.java:204)
        at org.iso_relax.verifier.impl.VerifierFilterImpl.startElement(Unknown S
ource)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXP
arser.java:459)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Abst
ractXMLDocumentParser.java:221)
        at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNames
paceBinder.java:874)
        at org.apache.xerces.impl.XMLNamespaceBinder.emptyElement(XMLNamespaceBi
nder.java:591)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElemen
t(XMLDocumentFragmentScannerImpl.java:747)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1477)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XM
LDocumentFragmentScannerImpl.java:329)
        at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:525)
        at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.jav
a:581)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1175)
        at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
        at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
        at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
        at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.
java:151)
        at com.sun.xml.xsom.impl.parser.XSOMParser.parse(XSOMParser.java:116)
        at com.sun.tools.xjc.Driver.loadXMLSchemaGrammar(Driver.java:511)
        at com.sun.tools.xjc.Driver.loadGrammar(Driver.java:404)
        at com.sun.tools.xjc.Driver.run(Driver.java:268)
        at com.sun.tools.xjc.Driver.main(Driver.java:88)

Is there some customization that will get me past this?

Thanks,
Lisa