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]

Reply via email to