DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13420>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13420 Complex Validation not catching error Summary: Complex Validation not catching error Product: Xerces2-J Version: 2.1.0 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Critical Priority: Other Component: DOM AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] JAVA LISTING (A) ---------------- import org.w3c.dom.*; import org.apache.xerces.parsers.*; import org.xml.sax.InputSource; import java.io.*; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class Validate implements ErrorHandler { public static void main(String[] args) throws Exception { try { InputSource src = new InputSource(new FileInputStream ("envelope.xml")); DOMParser parser = new DOMParser(); parser.setFeature ("http://xml.org/sax/features/validation",true); parser.setFeature ("http://apache.org/xml/features/validation/schema",true); parser.setFeature ("http://apache.org/xml/features/validation/dynamic", true); String schemas = "urn:xml-soap-address-demo address.xsd http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/"; parser.setProperty ("http://apache.org/xml/properties/schema/external-schemaLocation",schemas); parser.setErrorHandler(new Validate()); parser.parse(src); Document doc = parser.getDocument(); Node root = doc.getDocumentElement(); System.out.println("ROOT: " + root.getNodeName()); } catch (Exception e) { System.out.println("Exc: " + e.getMessage()); e.printStackTrace(); } } public void error(SAXParseException e) throws SAXException { System.out.println("ERROR: " + e.getMessage()); } public void fatalError(SAXParseException e) throws SAXException { System.out.println("FATAL ERROR: " + e.getMessage()); } public void warning(SAXParseException e) throws SAXException { System.out.println("WARNING: " + e.getMessage()); } } INSTANCE DOCUMENT (B) envelope.xml --------------------- <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns1:addEntry xmlns:ns1="urn:AddressFetcher" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <nameToRegister xsi:type="xsd:string">Ben</nameToRegister> <xaddress xmlns:ns2="urn:xml-soap-address-demo" xsi:type="ns2:address"> <city xsi:type="xsd:string">Cambridge</city> <phoneNumber xsi:type="ns2:phone"> <areaCode xsi:type="xsd:int">607</areaCode> <exchange xsi:type="xsd:string">339</exchange> <number xsi:type="xsd:string">1540</number> </phoneNumber> <state xsi:type="xsd:string">MA</state> <streetName xsi:type="xsd:string">JFK</streetName> <streetNum xsi:type="xsd:int">50</streetNum> <zip xsi:type="xsd:int">2138</zip> </xaddress> </ns1:addEntry> </SOAP-ENV:Body> </SOAP-ENV:Envelope> XML SCHEMA (C) address.xsd -------------- <xsd:schema targetNamespace="urn:xml-soap-address-demo" xmlns:tns="urn:xml-soap- address-demo" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="address"> <xsd:all> <xsd:element name="city" type="xsd:string"/> <xsd:element name="phoneNumber" type="tns:phone"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="streetName" type="xsd:string"/> <xsd:element name="streetNum" type="xsd:int"/> <xsd:element name="zips" type="xsd:int"/> </xsd:all> </xsd:complexType> <xsd:complexType name="phone"> <xsd:all> <xsd:element name="areaCode" type="xsd:int"/> <xsd:element name="exchange" type="xsd:string"/> <xsd:element name="number" type="xsd:string"/> </xsd:all> </xsd:complexType> </xsd:schema> BUG DESCRIPTION --------------- When I run the java code in (A), no validation errors are reported on instance document (B). However, notice that the schema document specifies "zips" and the instance document has element <zip>. When I turn off the dynamic validation feature, the proper validation error is reported. So for some reason, the dynamic validation is ignoring part of a complex type even though a grammar exists for that type. If this is not a bug, please advise. Thanks you. Ben Szekely IBM Internet Technologies --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
