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 [EMAIL PROTECTED] GPG: 0x033B81DB - Student of Computer Science - J.K. University of Linz - - <ICQ: 73059068> <Mobile: +43 699 12419541> - - http://adelaide.dnsalias.net -
<?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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
