Ich möchte eine XML-Datei gegen RELAXNG-Schema zur Verfügung gestellt validieren. Die Suche im Internet hat mir Hinweise gegeben, wie man eine Schema-Instanz mit SchemaFactory erstellen kann, indem man die entsprechende Schema-Sprache bereitstellt. So nach meiner Anforderung habe ich verwendet:XML-Validierung
SchemaFactory.newInstance (XMLConstants.RELAXNG_NS_URI);
Aber die folgende Ausnahme wurde zum Laufe geworfen:
Exception in thread "main" java.lang.IllegalArgumentException: Nein SchemaFactory, die das Schema Sprache angegeben implementiert: http://relaxng.org/ns/structure/1.0 konnte
bei javax geladen werden. xml.validation.SchemaFactory.newInstance (SchemaFactory.java:207)
Ich verwende Java6 und beobachtet, dass nur 'W3C_XML_SCHEMA_NS_URI' funktioniert. Rest aller Schema-URIs löst die ähnliche Ausnahme aus.
Ich bin ziemlich neu in der Verwendung der XML-Validierungs-APIs. Kann mir bitte jemand die entsprechende Verwendung zur Verfügung stellen, falls ich es nicht richtig mache?
Dank & Grüße,
Keya
Hallo, Danke für die Antwort. Ich benutzte, wie du vorgeschlagen hast, Trang, um das Rng in xsd umzuwandeln. Aber ich bekomme Fehler beim Ausführen. Es folgt der Befehl mit dem Fehler: $ java -jar trang.jar -I rng -Oxsd config_schema.rng config_schema.xsd xml-validation/trang-20081028/config_schema.rng: 1: 1: fatal: Inhalt ist im Prolog nicht erlaubt. $ Können Sie mir einen Vorschlag zum oben genannten Fehler geben? –
Stellen Sie sicher, dass zwischen dem Start der Datei und dem Beginn der Schemadefinition keine Leerzeichen oder Kommentare vorhanden sind. – skaffman
Danke. Neben Whitespaces habe ich auch die Erweiterung .rng anstelle von .rnc verwendet. Mit der richtigen Erweiterung wurde das RNG-Schema in XSD konvertiert. –