I declared a field in the .xsd as
<xs:element name="data_identifier">
<xs:complexType mixed="true">
<xs:choice minOccurs="0">
<xs:element ref="error"/>
</xs:choice>
</xs:complexType>
</xs:element>
The code that was generated for the Descriptor class appears to create the "desc" twice and the last one wins!! In this case, even though I would like to have to only set the value of an element by using .setContent(), the validator is requiring an error element!
<data_identifier>some content<error>...</error></data_identifier>
I am not wanting to have to create an error element. Am I doing something wrong? Can I turn off validation when marshalling?
//----------------/
//- Constructors -/
//----------------/
public DataIdentifierDescriptor() {
super();
xmlName = "data_identifier";
XMLFieldDescriptorImpl desc = null;
XMLFieldHandler handler = null;
FieldValidator fieldValidator = null;
//-- set grouping compositor
setCompositorAsChoice();
//-- _content
desc = new XMLFieldDescriptorImpl(java.lang.String.class, "_content", "PCDATA", NodeType.Text);
desc.setImmutable(true);
handler = (new XMLFieldHandler() {
public java.lang.Object getValue( java.lang.Object object )
throws IllegalStateException
{
DataIdentifier target = (DataIdentifier) object;
return target.getContent();
}
public void setValue( java.lang.Object object, java.lang.Object value)
throws IllegalStateException, IllegalArgumentException
{
try {
DataIdentifier target = (DataIdentifier) object;
target.setContent( (java.lang.String) value);
}
catch (Exception ex) {
throw new IllegalStateException(ex.toString());
}
}
public java.lang.Object newInstance( java.lang.Object parent ) {
return null;
}
} );
desc.setHandler(handler);
addFieldDescriptor(desc);
//-- validation code for: _content
fieldValidator = new FieldValidator();
{ //-- local scope
StringValidator sv = new StringValidator();
sv.setWhiteSpace("preserve");
fieldValidator.setValidator(sv);
}
desc.setValidator(fieldValidator);
//-- initialize attribute descriptors
//-- initialize element descriptors
//-- _error
desc = new XMLFieldDescriptorImpl(Error.class, "_error", "error", NodeType.Element);
handler = (new XMLFieldHandler() {
public java.lang.Object getValue( java.lang.Object object )
throws IllegalStateException
{
DataIdentifier target = (DataIdentifier) object;
return target.getError();
}
public void setValue( java.lang.Object object, java.lang.Object value)
throws IllegalStateException, IllegalArgumentException
{
try {
DataIdentifier target = (DataIdentifier) object;
target.setError( (Error) value);
}
catch (Exception ex) {
throw new IllegalStateException(ex.toString());
}
}
public java.lang.Object newInstance( java.lang.Object parent ) {
return new Error();
}
} );
desc.setHandler(handler);
desc.setRequired(true);
desc.setMultivalued(false);
addFieldDescriptor(desc);
//-- validation code for: _error
fieldValidator = new FieldValidator();
fieldValidator.setMinOccurs(1);
desc.setValidator(fieldValidator);
} //-- com.rainhail.insurance.edas.xml.producer.DataIdentifierDescriptor()
