XML mit externem XSD validieren

Status
Nicht offen für weitere Antworten.
D

despairedNoob

Gast
hi community,

ich hab vor, eine XML-datei im java gegen ein Schema zu validieren.
soweit klappt es auch, aber dann kommt die komische warnung, mit der ich nix anzufangen weiß

Code:
[Warning] :1:1: [url]http://www.w3.org/TR/xml-schema-1#SchemaLocation?java.io.FileInputStream@171732b[/url]

kann mir wer beraten, was das zu heißen hat?

mfg dNoob
 
D

despairedNoob

Gast
kann mir vielleich jemand hier ein klassendiagramm oder ähnliches geben, wo die zusammenhänge der verschiedenstent stream-klassen dargestellt ist?

weil java und streams ist wie also würde man nach der nadel im heuhaufen suchen.. voll unübersichtlich gemacht
 

SamHotte

Top Contributor
Geben kann ich's dir leider nicht, hab es nicht digital. Aber im Buch "Core Java" von Horstmann/Cornell ist eine schöne Übersichtsgrafik ... vielleicht findest du die ja irgendwie online.
 

byte

Top Contributor
Ein paar mehr Informationen wären nicht verkehrt. Welchen Parser benutzt Du zum Validieren? Code?
 
D

despairedNoob

Gast
ich nutze folgenden Parser: org.apache.xerces.parsers.SAXParser

also ich muss die XML-Datei und das Schema als InputStream-Objekte dem parser übergeben, und der soll dann gleich mit validieren... und dann kommt eben die Fehlermeldung.

mach ich da irgendwas falsch?

mfg dNoob
 
G

Guest

Gast
Hi,

also ich kann dir zwar nicht mit der fehlermeldung helfen, aber vielleicht bringt dir eine andere Lösung was.
Hier ist meine, und ich glaube, alle Klassen sind in Java 1.5 mit drin.

Code:
public boolean validate(String xsd, File file)
        {
            try
            { 
                SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
                Source schemaSource =  new StreamSource(new File(xsd));
                Schema schema= schemaFactory.newSchema(schemaSource); 
                Validator validator = schema.newValidator();
                validator.validate(new StreamSource(file));
                return true;
            }
            catch (Exception e)
            {
                System.err.println("Fehler beim Validieren");
                return false;
            }
        }

file ist das xml-File, was validiert werden soll. Und xsd ist die URL zum Schema. (C:\\Temp\\MeinSchema.xsd).
vielleicht hilfts ja....
 
G

Guest

Gast
naja, das mit den File's hab ich auch schon in die reihe gekriegt, aber statt den File's würde ich gern InputStream's nutzen ;-)

im klartext:

statt:
Code:
public boolean validate(String xsd, File file)

hatte ich gern:
Code:
public boolean validate(InputStream xsd,InputStream file)

...und bei der ganzen InputStream-Casterei tauchen bei mir ein paar Unklarheiten auf...

mfG dNoob[/code][/quote]
 
G

Gast

Gast
öhm, dann einfach
Code:
validator.validate(new StreamSource(myInputStream));
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben