I'm trying to use castor 1.3 as the validator of incoming xml
documents. This is a basic XML schema contains only built-in types:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:basic="http://www.example.com/test"
targetNamespace="http://www.example.com/test">
<xs:element name = "BuiltinElement" type="basic:BuiltinTypes"/>
<xs:complexType name="BuiltinTypes">
<xs:sequence>
<xs:element name="StringElement" type="xs:string" />
<xs:element name="IntegerElement" type="xs:integer"/>
<xs:element name="BooleanElement" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
After generate java and descriptor classes, I try to validation some
xml instances in ValidateTest.java. Parser validation is disabled by
default. This is my validation related configurations in
castor.properties:
org.exolab.castor.parser.validation=false
org.exolab.castor.parser.namespaces=false
org.exolab.castor.marshalling.validation=true
ValidateTest.java:
public static void main( String[] args ) {
String filename = args[0];
try {
BuiltinTypes builtin01 =
BuiltinTypes.unmarshalBuiltinTypes(new FileReader(filename));
StringWriter myWriter = new StringWriter();
Marshaller m1 = new Marshaller( myWriter );
m1.marshal(builtin01);
System.out.println( "Castor Output:" );
System.out.println( myWriter.getBuffer().toString() );
System.out.println( "" );
}
catch( Exception e ) {
e.printStackTrace();
}
}
}
Castor validation works fine with string and integer types, while once
I input the following instance with invalid boolean type, castor
doesn't raise any validation exception but treat wrong input as false:
<?xml version="1.0"?>
<BuiltinElement>
<StringElement>abc</StringElement>
<IntegerElement>111</IntegerElement>
<BooleanElement>whatever</BooleanElement>
</BuiltinElement>
Castor Output:
<?xml version="1.0" encoding="UTF-8"?>
<BuiltinTypes xmlns="http://www.example.com/test">
<StringElement>abc</StringElement>
<IntegerElement>111</IntegerElement>
<BooleanElement>false</BooleanElement>
</BuiltinTypes>
It seems castor in-object validation doesn't validate boolean type
well in this case. Is there anything wrong with my code or
configurations?
Thanks,
Andrew
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email