| Author |
XML schema validation program error
|
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
I have a program to apply xml schema to an xml using the validaition api.
I am using jre 1.6
import are as follows:
The line/statement throwing the error is as follows:
The exception is:
java.lang.NoClassDefFoundError: javax/xml/validation/SchemaFactory
Priety.
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
Classpath problem and nedded JAR files are:
http://www.findjar.com/class/javax/xml/validation/SchemaFactory.html
|
[LEARNING bLOG] | [Freelance Web Designer] | [and "Rohan" is part of my surname]
|
 |
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
Sagar thanks.
My code is now running.
New problems now.
My xsd is as follows:
My xml is as follows:
I run my code and get the following exception:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'pen'.
How to get around this.
I have mentioned the pen element in the schema.
Also.
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
Do I need to mention: http://www.w3.org/2001/XMLSchema as the namespace.
Would something else work in there?
I read somewhere that its just a string.
The namespace thing is getting too confusing.
Do I need to associate with a namespace when my xsd is on machine.
What is the namespace saving me from.
What is the use of mentioning a namespace url if my machine is not connected to the network?
Priety.
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
First of all, UseCodeTags
Priety Sharma wrote:
I run my code and get the following exception:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'pen'.
Clearly, in your schema file you haven't define the element "pen", you can define like this:
The namespace thing is getting too confusing.
Do I need to associate with a namespace when my xsd is on machine.
What is the namespace saving me from.
What is the use of mentioning a namespace url if my machine is not connected to the network?
All this doubt can be answered by simple Googleing and namespace has nothing to do with networks, its just like a "package name" assigned to differentiate the other elements with same name.
|
 |
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
Yes,
I am now using code tags.
Still continue to get the following error:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'pen'.
The xml and the schema now look like this:
XML:
XSD/Schema:
Why is it now working now.
Clearly I have defined the pen element now.
Also I have made the XML with a single element pen and the schema also simply specifies the pen element.
What wrong this time?
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
Well, its my guess, but give it a try:
and please go through this tutorial for XML schema concepts.
http://www.w3schools.com/Schema/schema_complex_empty.asp
|
 |
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
Hi
Tried what you said but same result.
Finally took a valid xml and xsd example from W3schools.
Passed it to a validator site.
It showed the result as xml is valid.
Provide the paths to the same xml and xsd to the code.
Same end result.
Got this exception again:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'shiporder'.
The xml is:
Thd xsd is:
Even this is not passed a valid by the code:
So pasting the code for xml validation here:
Is this a problem with the java api.
Why is not passing this xml as valid?
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
Set namespace awareness to true on the DocumentBuilderFactory, like
|
 |
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
Sagar Thanks!
That line of code made it work.
Its (the xml) now getting parsed by the xsd.
Thanks a million.
I hope am now able to proceed with learning more xsd rules.
|
 |
Sagar Rohankar
Ranch Hand
Joined: Feb 19, 2008
Posts: 2896
|
|
Honestly speaking, I never parsed XML using the Schema, what it really takes me to conclude the answer was a little Googling and API browsing
I hope next time, before posting the question you should do the above two things I had suggested.
|
 |
Priety Sharma
Ranch Hand
Joined: Jun 10, 2008
Posts: 156
|
|
Yes Sagar. I will definitely search better from now onwards.
To tell you the truth I had tried to search info on xml schemas and I should have searched for the code part too. I assumed that the code is 100% correct.
Thanks.
|
 |
 |
|
|
subject: XML schema validation program error
|
|
|