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