- From: Tom Preston <tpreston@amadeusboston.com>
- Date: Thu, 20 Dec 2001 11:51:19 -0500
- To: Thomas Rowland <tomorrwland@yahoo.com>, "'Jakub.Valenta@Deio.net '" <Jakub.Valenta@Deio.net>, "'xmlschema-dev@w3.org '" <xmlschema-dev@w3.org>
- Message-ID: <498B0C8F9141D511927B009027B113873A12BD@email-temp.vacation-corp.com>
I didn't mean to imply "must" in any of my msgs. I was just attempting to give one code example of schema validation using a JAXP 1.1 compliant (specification compliant) parser. My example used Xerces 2, but I didn't mean to imply that other JAXP 1.1 compliant parsers (like the reference implementation) wouldn't work. I'm glad to know that JAXP 1.1 ref impl can also be used. I have only recently been successful validating schema documents with Xerces and was just trying to share what I discovered. The quote: "Currently the JAXP 1.1 specification does not expose XML Schema nor any other non-DTD schema language directly via the API. However, in Xerces-j 1.x parsers, turning on both validation and namespace processing features will cause XML Schema validation to occur." Is from: http://xml.apache.org/~edwingo/jaxp-faq.html I believe that it is talking about the specification and not the reference implementation. Tom -----Original Message----- From: Thomas Rowland [mailto:tomorrwland@yahoo.com] Sent: Wednesday, December 19, 2001 3:11 PM To: Tom Preston; 'Jakub.Valenta@Deio.net '; 'xmlschema-dev@w3.org ' Subject: RE: XML Schema validation using JAXP Q? Hello, I am a little confused by some of the recent comments regarding JAXP 1.1 and XML Schema support. I have successfully validated instance documents, using Xalan and JAXP1.1, against XMLSchema (single and multiple schema, using both include and import). Mr. Preston, you offered the following code and also stated that we must be implementation : // Create a Xerces DOM Parser DOMParser parser = new DOMParser(); // Turn Validation on try { parser.setFeature (" http://xml.org/sax/features/validation <http://xml.org/sax/features/validation> ", true); parser.setFeature (" http://apache.org/xml/features/validation/schema <http://apache.org/xml/features/validation/schema> ",true); parser.setFeature However, the following works quite well for me when validating against XMLSchema. No reference to Xerces other than classpath is needed: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating (true); dbf.setNamespaceAware (true); DocumentBuilder db = dbf.newDocumentBuilder (); db.setErrorHandler (new MyErrorHandler ()); Document d = db.parse (uri); Unless I am missing the point here, or possibly confused between Reference Implementation and Specification, as you included a reference to, JAXP1.1 is XMLSchema-aware while JAXP1.0.1 is not. Tom Rowland Tom Preston <tpreston@amadeusboston.com> wrote: http://xml.apache.org/~edwingo/jaxp-faq.html "Currently the JAXP 1.1 specification does not expose XML Schema nor any other non-DTD schema language directly via the API. However, in Xerces-j 1.x parsers, turning on both validation and namespace processing features will cause XML Schema validation to occur." Therefore, lines of code like setAttribute("http://apache.org/xml/features/validation/schema", true); need be implementation specific. Tom -----Original Message----- From: Jakub.Valenta@Deio.net To: Tom Preston; xmlschema-dev@w3.org Sent: 12/18/01 2:55 AM Subject: RE: XML Schema validation using JAXP Q? Thanks a lot for help, I would like to ask one more think. Is the example, you gave me, going to work with any JAXP compatible parser, or is the validation Xerces proprietary? br, Jakub Tom Preston on 12/17/2001 10:57:20 PM To: Jakub.Valenta@Deio.net, xmlschema-dev@w3.org cc: Subject: RE: XML Schema validation using JAXP Q? You write a trivial java program like this: Compile and run it like this (notice xerces.jar and xml-apis.jar are needed): C:\xml>javac -classpath .;c:\thirdparty\apache\xerces.jar;c:\thirdparty\apache\x ml-apis.jar SchemaValidate.java C:\xml>java -classpath .;c:\thirdparty\apache\xerces.jar;c:\thirdparty\apache\xm l-apis.jar SchemaValidate editor99.xml Error: org.xml.sax.SAXParseException: Datatype error: In element 'allowNull' : tru is not a boolean. NOtice that editor99.xml failed validation. Here is editor99.xml and editor.xsd which it validates against (note the xsi:schemaLocation is defined in the .xml file): ------ editor.xml ------ xmlns="http://www.emilygraham.com/java/other/Editor" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.emilygraham.com/java/other/Editor http://www.emilygraham.com/java/other/editor.xsd"> 1999-05-31T13:20:00 Short Desc firstName lastName tru Blueberry ------ editor.xsd ------ xmlns="http://www.w3.org/2001/XMLSchema" xmlns:e="http://www.emilygraham.com/java/other/Editor" elementFormDefault="qualified"> Editor document definition defines an html based editor /> maxOccurs="1"/> maxOccurs="1"/> maxOccurs="1" /> ------ hope this helps. TOm -----Original Message----- From: Jakub.Valenta@Deio.net [mailto:Jakub.Valenta@Deio.net] Sent: Monday, December 17, 2001 12:26 PM To: xmlschema-dev@w3.org Subject: XML Schema validation using JAXP Q? Hi all, I would like to ask if it is possible to validate xml document against XML Schema using JAXP? At the moment I am using XALAN and it should be XML Schema aware, but I have no clue how to do the vlidation using JAXP. Any help appreciated, Jaub Thomas Rowland Software Engineer 25 Green Pasture Rd. Bethel, CT 06801 (203) 798-8337 tomorrwland@yahoo.com _____ Do You Yahoo!? Check out Yahoo! <http://rd.yahoo.com/O=1/I=mail/footer/*http://shopping.yahoo.com> Shopping and Yahoo! <http://rd.yahoo.com/O=1/I=mail/footer/*http://auctions.yahoo.com> Auctions for all of your holiday gifts!
Received on Thursday, 20 December 2001 11:51:08 UTC