Autor Thema: coole xml/webservices links (semi-strukturiert)  (Gelesen 2853 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
coole xml/webservices links (semi-strukturiert)
« am: 21.09.05 - 11:27:58 »
Hi,

für Strukturierung kauft Bücher. Da sich vielleicht mehrere Leute mit den Thema beschäftigen wollen (oder wie es hier oft heisst müssen) ein paar Granaten von Links:

Übersicht über die aktuellen xml-specs und technologien.
Allgemein
http://kensall.com/big-picture/bigpix22.html
Hier gibt es eine Menge von guten Tutorials. Z.T. in Deutsch übersetzt:
http://www.zvon.org/

Guru: http://www.cafeconleche.org/
(das 10 horseshoes Buch "Processing xml in Java" ist als html files umsonst da. Ausserdem eine Menge Nachrichten tutorials, etc.) 

xslt section
Xslt dient der Transformation von xml Dateien in ein anderes Text Format (anderes xml-format, html, csv, txt, uvam.). Es ist nicht einfach. Ähnelt ein bischen Lotus Formelsprache. Mittlerweile gibt es 2.0 aber das ist vielfach noch nicht implementiert. ich empfehle dieses Buch, falls man schnell eine Lösung braucht:
http://www.amazon.de/exec/obidos/ASIN/0596003722/qid=1127298338/sr=8-1/ref=sr_8_xs_ap_i1_xgl/028-9496007-5489363

In WSAD gibt es auch einen xslt debugger. Es gibt dafür auch standalone Anwendungen.

Einfache xslt engine:
http://saxon.sourceforge.net/
Beziehe mich hier auf die gratis xslt1.0 Lösung.
wie benutzen?
mit installierten java 1.4 einfach auf Kommandozeile:

java -jar saxon.jar inputXML xsltFile > outputXML

Ein bischen Java Code -> sehr simpel. 
(saxon.jar im classpath und das xslt auch im classpath).
Code
/* DXLConverter.java
 * Created on 21.09.2005
 */
package de.gad.lotus;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ResourceBundle;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

/**
 * Add one sentence class summary here. Add class description here.
 * 
 * @author Axel Janssen
 * @version 0.01, 21.09.2005
 */
public class DXLConverter {

	private Source xsl;

	public void setXsl() {
		InputStream fis = getClass().getClassLoader().getResourceAsStream(
				"style2.xslt");
		xsl = new StreamSource(fis);

	}

	public void processFile(InputStream in, OutputStream out) {
		try {
			TransformerFactory xformFactory = TransformerFactory.newInstance();

			Transformer stylesheet = xformFactory.newTransformer(xsl);

			Source request = new StreamSource(in);
			Result response = new StreamResult(out);
			stylesheet.transform(request, response);
		} catch (TransformerException e) {
			System.err.println(e);
			System.exit(0);
		}
	}

	public static void main(String[] args) {
		DXLConverter dxlConverter = new DXLConverter();
		dxlConverter.setXsl();
		InputStream in = null;
		OutputStream out = null;
		try {

			// 5D1FBE65451BB52841257052004160DF
			in = new FileInputStream(
					"C:\\temp\\dxl\\5EB6BD37917F06984125705200361977.xml");
			out = new FileOutputStream(
					"C:\\temp\\dxl\\p5EB6BD37917F06984125705200361977.xml");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.exit(0);
		}
		dxlConverter.processFile(in, out);

	}

}

Q&A section:

Frage: Jemand hat aber gesagt, dass xslt einfach ist.
Antwort: Es ist nicht wahr.
Hier z.B. ein xslt gepostet von Rickard Öberg, dass xml Attribute in xml-Elemente umwandelt:
Code
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:output method="xml"
      encoding="UTF-8"
      indent="yes"
      standalone="no"
      omit-xml-declaration="yes"/>

   <xsl:template match="@*">
      <xsl:element name="{name(.)}">
         <xsl:value-of select="."/>
      </xsl:element>
   </xsl:template>

   <xsl:template match="*">
      <xsl:copy>
         <xsl:apply-templates select="@*|node()"/>
      </xsl:copy>
   </xsl:template>
Die mit   <xsl:template match="@*"> beginnende section ist alles andere als offensichtlich. Deshalb empfehle ich dringend sowas wie O'Reilleys xslt cookbook, wenn man sich mit der Geschichte ein bischen tiefer auseinandersetzt. Immer besser von funktionierenden Code ausgehen.
 


Lotus spezifisches
In diesem Link in das Suchfenster DXL eingeben.
http://www-128.ibm.com/developerworks/views/lotus/libraryview.jsp
Die Artikel sind sehr gut geschrieben, praxisorientiert und einfach verständlich.

kommerzielle add-ons
Viele Leute schwören darauf:
http://www.systinet.com/
« Letzte Änderung: 22.09.05 - 16:51:42 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz