You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by Reinhard Brandstädter <r....@gmx.at> on 2003/12/30 15:27:59 UTC
Schema validation with SAX or DOMParser?
Hi!
I'm very unsucessful in validating a XML file against a XSD. I've read
several hints about setting the validation features but all I've tried
renders either in errors or exceptions.
Here is what I did:
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
DefaultHandler handler = new ParseErrorHandler();
XMLReader reader = parser.getXMLReader();
reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation","eventconfigs.xsd");
reader.setFeature("http://xml.org/sax/features/validation", true);
reader.setFeature("http://xml.org/sax/features/validation/schema",
true);
parser.parse(cfg_file, handler);
}
catch (SAXException ex) {
ex.printStackTrace();
}
catch (ParserConfigurationException ex) {
ex.printStackTrace();
}
When parsing the files (example XML and XSD attached) I get an error:
org.xml.sax.SAXNotRecognizedException:
http://xml.org/sax/features/validation/schema
I've also tried to use a DOMParser but without any sucess.
Thanks for any help on that!
Reinhard
--
Reinhard Brandstaedter r.brandstaedter@gmx.at GPG: 0x033B81DB
- Student of Computer Science - J.K. University of Linz -
- <ICQ: 73059068> <Mobile: +43 699 12419541> -
- http://adelaide.dnsalias.net -
Re: Schema validation with SAX or DOMParser?
Posted by Reinhard Brandstädter <r....@gmx.at>.
Gurdev Parmar wrote:
> Features:
> http://apache.org/xml/features/validation/schema to true.
> http://xml.org/sax/features/namespaces to true
> http://xml.org/sax/features/validation to true
It was my own stupidity that kept me from validating the file:
as you can see I only set the validation feature:
>>reader.setFeature("http://xml.org/sax/features/validation", true);
>>reader.setFeature("http://xml.org/sax/features/validation/schema",true);
the second feature string was incorrect - late night programming ;-)
Reinhard
--
Reinhard Brandstaedter r.brandstaedter@gmx.at GPG: 0x033B81DB
- Student of Computer Science - J.K. University of Linz -
- <ICQ: 73059068> <Mobile: +43 699 12419541> -
- http://adelaide.dnsalias.net -
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org
Re: Schema validation with SAX or DOMParser?
Posted by Gurdev Parmar <Gu...@oracle.com>.
I, personally, set the following features and properties for my
requirements and it works:
Features:
http://apache.org/xml/features/validation/schema to true.
http://xml.org/sax/features/namespaces to true
http://xml.org/sax/features/validation to true
JAXP property:
http://java.sun.com/xml/jaxp/properties/schemaLanguage to
http://www.w3.org/2001/XMLSchema
Reinhard Brandstädter wrote:
> Hi!
>
> I'm very unsucessful in validating a XML file against a XSD. I've read
> several hints about setting the validation features but all I've tried
> renders either in errors or exceptions.
>
> Here is what I did:
>
> try {
> SAXParserFactory factory = SAXParserFactory.newInstance();
> SAXParser parser = factory.newSAXParser();
> DefaultHandler handler = new ParseErrorHandler();
> XMLReader reader = parser.getXMLReader();
>
> reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation","eventconfigs.xsd");
>
> reader.setFeature("http://xml.org/sax/features/validation", true);
> reader.setFeature("http://xml.org/sax/features/validation/schema",
> true);
>
> parser.parse(cfg_file, handler);
> }
> catch (SAXException ex) {
> ex.printStackTrace();
> }
> catch (ParserConfigurationException ex) {
> ex.printStackTrace();
> }
>
> When parsing the files (example XML and XSD attached) I get an error:
>
> org.xml.sax.SAXNotRecognizedException:
> http://xml.org/sax/features/validation/schema
>
> I've also tried to use a DOMParser but without any sucess.
> Thanks for any help on that!
>
> Reinhard
>
>
>------------------------------------------------------------------------
>
><?xml version="1.0"?>
><events xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:noNamespaceSchemaLocation="eventconfigs.xsd">
> <!-- a default send object -->
> <eventconfig>
> <event type="send">
> </event>
> <eventrep>
> <class name="visualization.objects.NativeSVG" reuse="true" idstring="sendevents_all">
> <svg xmlns="http://www.w3.org/2000/svg">
> <text x="20" y="25" font-family="Verdana" font-size="12" fill="black">
> Send Events: ${countstatistics_eventtype_all}
> </text>
> </svg>
> </class>
> <class name="visualization.objects.NativeSVG" reuse="true" idstring="sendevents-${processid}">
> <svg xmlns="http://www.w3.org/2000/svg">
> <rect x="# 20 + 20*${processid}" y="#300 - 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" width="15" height="# 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" fill="green"/>
> <text x="# 20 + 20*${processid}" y="#290 - 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" font-family="Verdana" font-size="10" fill="black"># round(100*${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})</text>
> </svg>
> </class>
> <class name="visualization.objects.NativeSVG" onlyonce="true" idstring="plabelsend-${processid}">
> <svg xmlns="http://www.w3.org/2000/svg">
> <text x="# 20 + 20*${processid}" y="#315" font-family="Verdana" font-size="12" fill="black">P${processid}</text>
> </svg>
> </class>
> </eventrep>
> </eventconfig>
> <!-- a default receive object -->
> <eventconfig>
> <event type="receive">
> </event>
> <eventrep>
> <class name="visualization.objects.NativeSVG" reuse="true" idstring="recvevents_all">
> <svg xmlns="http://www.w3.org/2000/svg">
> <text x="220" y="25" font-family="Verdana" font-size="12" fill="black">
> Recv Events: ${countstatistics_eventtype_all}
> </text>
> </svg>
> </class>
> <class name="visualization.objects.NativeSVG" reuse="true" idstring="recvevents-${processid}">
> <svg xmlns="http://www.w3.org/2000/svg">
> <rect x="# 220 + 20*${processid}" y="# 300 - 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" width="15" height="# 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" fill="red"/>
> <text x="# 220 + 20*${processid}" y="# 290 - 270*(${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})" font-family="Verdana" font-size="10" fill="black"># round(100*${countstatistics_eventtype_processor}/${countstatistics_eventtype_all})</text>
> </svg>
> </class>
> <class name="visualization.objects.NativeSVG" onlyonce="true" idstring="plabelrecv-${processid}">
> <svg xmlns="http://www.w3.org/2000/svg">
> <text x="# 220 + 20*${processid}" y="#315" font-family="Verdana" font-size="12" fill="black">P${processid}</text>
> </svg>
> </class>
> </eventrep>
> </eventconfig>
></events>
>
>
>------------------------------------------------------------------------
>
><?xml version="1.0" encoding="UTF-8"?>
><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:element name="events">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="eventconfig" maxOccurs="unbounded">
> <xs:complexType>
> <xs:sequence>
> <!-- the event representation -->
> <xs:element name="event">
> <xs:complexType mixed="true">
> <xs:choice minOccurs="0" maxOccurs="unbounded">
> <!-- the event's parameters -->
> <xs:element name="parameter">
> <xs:complexType>
> <xs:attribute name="name" use="required"/>
> <xs:attribute name="value" type="xs:integer" use="required"/>
> <xs:attribute name="min" type="xs:integer"/>
> <xs:attribute name="max" type="xs:integer"/>
> </xs:complexType>
> </xs:element>
> </xs:choice>
> <xs:attribute name="type" type="xs:string" use="required"/>
> <xs:attribute name="processid" type="xs:integer"/>
> </xs:complexType>
> </xs:element>
> <!-- the event representation -->
> <xs:element name="eventrep">
> <xs:complexType>
> <xs:sequence>
> <!-- the class for the graphical object -->
> <xs:element name="class" maxOccurs="unbounded">
> <xs:complexType>
> <xs:sequence>
> <xs:any/>
> </xs:sequence>
> <xs:attribute name="name" type="xs:string" use="required"/>
> <xs:attribute name="reuse" type="xs:boolean"/>
> <xs:attribute name="idstring" type="xs:string"/>
> <xs:attribute name="onlyonce" type="xs:boolean"/>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
></xs:schema>
>
>
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
>For additional commands, e-mail: xerces-j-user-help@xml.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org