[jdom-interest] Re: XML Schema Validation
Kenworthy, Edward
edward.kenworthy at exchange.co.uk
Wed May 9 05:49:03 PDT 2001
Hi Larry
Ah ! That's interesting, thanks. What happens if the XML document doesn't
conform to the schema ? Does the builder give up or do you end up with a
Document that is flagged as non-conforming that you can still work with ? (I
would prefer the latter as in my app whilst documents do have schemas it is
valid for them to be non-conforming as in incomplete (eg Element foo should
have child bar, but it doesn't yet) but not for them to be invalid (eg
Element foo cannot have a child wibble.) Uhm, hope that made sense.
Edward
-----Original Message-----
From: Larry Davies [mailto:Larry_Davies at notes.compaid.com]
Sent: 09 May 2001 13:15
To: jdom-interest at jdom.org
Subject: [jdom-interest] Re: XML Schema Validation
To answer the questions some are having regarding using schemas, the answer
is
Yes/No. As others have mentioned, JDOM does not in and of itself validate
schemas. The underlying parser (like Xerces) validates the xml document
against
a schema. I recently had some problems getting my XML document to parse and
validate against a schema using JDOM Beta 6. I got it to work now. You
have to
be using a version of a parser that will validate with schemas. I used
Xerces
version 1.3.0. FYI, the older version of Xerces 1.2.0 does not work for
schema
validation. To validate the document using JDOM, I believe you must
instantiate
the builder as follows: SAXBuilder builder = new SAXBuilder(true). In
addition,
you must have your XML document point to your schema. The following is a
snippet from my XML document and Schema document.
Schema:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2000/10/XMLSchema"
xmlns:cs="http://localhost"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
targetNamespace="http://localhost">
XML document:
<Data xmlns="http://localhost"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xsi:schemaLocation="http://localhost mySchema.xsd">
The localhost reference could be your domain name and the mySchema.xsd is
the
name for your schema document. I believe you may also need to tell JDOM
to use the namespace http://localhost. Not 100% sure on that, but I believe
it
did not work for me until I did that.
Anyway, there may be other ways, but this worked fine for me.
Thanks.
_______________________________________________
To control your jdom-interest membership:
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhos
t.com
More information about the jdom-interest
mailing list