Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


JAXB

JAXB

Das Java-Spezialprogramm "xjc" ist in der Lage, aus einem XML Schema Dokument passende Java Klassen zu generieren.

xjc.exe <SCHEMADATEI>

generiert umgehend zwei Dateien, z.B. ObjectFactory.java und Orte.java.

Zudem ist es möglich, dem Unmarshaller noch das Schemadokument zuzuweisen, dadurch wird das XML Input Dokument auch gleich validiert.

 public static void JaxBinding() {
  JAXBContext jaxbContext;
  SchemaFactory factory;
  Schema schema;
  Unmarshaller umsh;
  String xmlfile = "C:/wg/Ort_Elemente.xml";
  try {
    jaxbContext = JAXBContext.newInstance(Orte.class);
    factory = SchemaFactory.newInstance(
              XMLConstants.W3C_XML_SCHEMA_NS_URI);
    schema = factory.newSchema(
             new StreamSource(
                 new File("C:/wg/Ort_Elemente.xsd")));
    umsh = jaxbContext.createUnmarshaller();
    umsh.setSchema(schema);
    Orte x = (Orte)umsh.unmarshal(new File(xmlfile));
    java.util.List listOrte = x.ort;
    for (int i = 0; i < listOrte.size(); i++) {
     Orte.Ort ort = (Orte.Ort) listOrte.get(i);
     System.out.println(ort.getName());
     for(int m=0; m<ort.getMensch().size(); m++){
      Orte.Ort.Mensch mm = ort.getMensch().get(m);
      System.out.println( "\t" + mm.getVorname() 
                         + " " + mm.getName() );
     }
    } 
  } catch (JAXBException e) {
  } catch (SAXException e) {
  }
 }

Das Resultat:

Neustadt
	Hugo Holzflos
	Nicole Nixlos
	Stefan Sprachlos
	Stefan Sagblos
	Siggi Sorglos
	Heini Herzlos
Darmstadt
	Rudi Rhodos
	Karl Kolos
	Simone Sinnlos
	Horst Hirnlos
	Werner Wertlos
	Ludwig Lustlos
Kapstadt
	Willi Wasistlos
	Rita Ruhelos
	Susi Schlaflos
	Lotte Rielos
	Betty Bodenlos
	Martin Muehelos
	Liane Leinenlos

qrpic/JAXB.jpg

wg / 31. August 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de