Hi,
I found a possible bug in jaxb-1.0-ea: "Validate errorjava.lang.NullPointerException"
This error happenes when validate option field (?) itself is an NESTED element.
Case one:
---------------------------------
<!ELEMENT ALIMPRS (STATUS, CONFIRMNUM?, OPERCONFDT?)>
<!ELEMENT CONFIRMNUM (#PCDATA) >
<!ELEMENT OPERCONFDT (#PCDATA) >
validation code:
public void validate(Validator v)
throws StructureValidationException
{
v.validate(_STATUS);
}
==> no problem! CONFIRMNUM and OPERCONFDT are simple ELEMENT
Case two:
---------------------------------
<!ELEMENT ALIMPRQ (USERINFO, ALTPROV*, PAYINFO?)>
<!ELEMENT USERINFO EMPTY>
<!ATTLIST USERINFO
USERID CDATA #REQUIRED
USERPASS CDATA #IMPLIED
>
...
<!ELEMENT PAYINFO (ACCTINFO, AMOUNT) >
<!ELEMENT AMOUNT (#PCDATA) >
Validation Code:
public void validate(Validator v)
throws StructureValidationException
{
v.validate(_USERINFO);
for (Iterator i = _ALTPROV.iterator(); i.hasNext(); ) {
v.validate(((ValidatableObject) i.next()));
}
v.validate(_PAYINFO);
}
==> Problem: the PAYINFO is not allow 'null' ==> cause the error
This happens when PAYINFO has nested ELEMENTS.
The correct code for validate PAYINFO? shall be:
if ( _PAYINFO != null)
v.validate(_PAYINFO);
Don't know if this problem fix in the newest version?
Thank you and happy holiday!
Yuemin Wang