X4Document-Interfaces
Prozessbausteine, also Instanzen z. B. eines Adapters können zahlreiche Dokument-Arten einlesen und ausgeben: XML-Dokumente, aber auch Text- oder Binärdaten. Über das X4Document
-Interface können Adapter auf Dokumente zugreifen bzw. mit der X4DocumentFactory
als Ergebnis der Adapter-Operation ein Ausgabe-Dokument erzeugen. Dies kann eine X4Document
-Instanz von einem dom4j-Baum sein, ein java.io.InputStream
oder ein Byte-Array.
Wenn in X4-Prozessen XSL-Transformationen einen DOM-basierten Input erhalten, dann lassen sich Zeichenkodierungs-Probleme vermeiden. Bei Byte-basierten Dokumenten wird das Byte-Array ohne Zusatzinformationen an den XML-Parser gegeben.
Methoden von X4Document
de.softproject.integration.util.x4documents.X4Document | ||
---|---|---|
public byte[] getAsByteArray() | Gibt den Inhalt als Byte-Array zurück | |
public byte[] getAsByteArray(String encoding) | Gibt den Inhalt als Byte-Array mit in encoding angegebener Zeichenkodierung zurück | |
public java.io.InputStream getAsInputStream() | Gibt den InputStream vom Zugriff auf den Dokument-Inhalt zurück | |
public org.dom4j.Document getAsDocument() throws org.dom4j.DocumentException | Gibt den Inhalt als dom4J-DOM-Baum zurück | |
public org.dom4j.Document getAsDocument(String encoding) throws org.dom4j.DocumentException, java.io.UnsupportedEncodingException | Gibt den Inhalt als dom4J-DOM-Baum mit in encoding angegebener Zeichenkodierung zurück | |
public void parseWithHandler (ContentHandler chandler) throws SAXException, IOException | Gibt den Inhalt an bereitgestellte org.sax.ContentHandler-Instanz weiter (flush) | |
public String getMimeType() | Gibt den MIME-Typ des Dokuments zurück | |
public String getEncoding() | Gibt die Zeichenkodierung des Dokuments zurück | |
public void setMimeType(String mimeType) | Setzt den MIME-Typ des Dokuments | |
public void setEncoding(String encoding) | Setzt die Zeichenkodierung des Dokuments |
Methoden der X4DocumentFactory
| ||
---|---|---|
public static X4Document createX4Document(byte[] bytes, String encoding, String mimeType) | Gibt die | |
public static X4Document createDocument(Document doc, String encoding, String mimeType) | Gibt die | |
public static X4Document createX4Document(InputStream is, String encoding, String mimeType) throws X4DocumentException | Gibt die |
Beispiel
public class X4DocumentTest {
public static void main(String[] args) {
InputStream is = null;
try {
is = new FileInputStream("Sample.xml");
// create a new X4Document
X4Document x4doc = X4DocumentFactory.createX4Document(is,
"cp-1252", "text/xml");
// get content as a dom4j document
System.out.println(x4doc.getAsDocument().asXML() + "\n");
// get content as a byte array
System.out.println(new String(x4doc.getAsByteArray())
+ "\n");
// parse the x4document's content
SAXContentHandler chandler = new SAXContentHandler();
x4doc.parseWithHandler(chandler);
System.out.println(chandler.getDocument().asXML() + "\n");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (is != null)
try {
is.close();
} catch (IOException ioex) {
}
}
}
}