Einleitung
XML Sprachkonstrukte
XML Anwendungen
Stand und Ausblick
HTML
SGML
XML
eXtensible
Markup
Language
W3C Recommendation,
10. Feb. 1998
von SGML, TEI, HTML Leuten
Basis für viele Dinge
nicht erweiterbar
nur einfache Struktur
keine Validierung
HTML Beispiel (1)
<HTML> <HEAD> <TITLE>Beispiel </TITLE> </HEAD> <BODY> <H1>Überschrift</H1> <P>Ein Paragraph mit Text ...</P> </BODY> </HTML>
HTML Beispiel (2)
<UL> <LI>Eine ungeordnete <LI>Liste <LI>it verschiedenen <LI>Punkten </UL>
Metasprache zur Definition von HTML
komplexe Struktur
Definition von optionalen Tags
strenge Validierung
Spezifikation: 200+ Seiten
XML Spezifikation: 40 Seiten
SGML Beispiel (1)
<!ELEMENT COMPANY - - (NAME?,PRODUCT?) > <!ELEMENT NAME - O (#PCDATA)> <!ELEMENT PRODUCT - - (ITEM*)> <!ELEMENT ITEM - O (#PCDATA)> <!ENTITY ... > <!ATTLIST COMPANY type (non-profit | limited | corp) >
SGML Beispiel (2)
<COMPANY type=corp > <NAME>All you want <PRODUCT> <ITEM>Apartments <ITEM>Automobiles <ITEM>... </PRODUCT> </COMPANY>
Teilmenge von SGML
einfache Spezifikation
offener Standard
International, Unicode
keine optionalen Tags
Syntax Prüfbar
Validierbar
effizient
verbesserte Links, XLL
Style Sheets, XSL
Dokument: .xml
<?xml version="1.0"?> <!DOCTYPE personals SYSTEM "personal.dtd"> <personals> <person id="H.MARUYAMA" > <name><family>MARUYAMA</family> <given>Hiroshi</given></name> <email>maruyama@jp.ibm.com</email> <link subordinates=" N.URAMOTO K.TAMURA "/> </person> <person id="N.URAMOTO"> <name><family>URAMOTO</family> <given>Naohiko</given></name> <email>uramoto@jp.ibm.com</email> <link manager=" H.MARUYAMA"/> </person> <person id="K.TAMURA"> <name> <family>TAMURA</family> <given>Kent</given> </name> <!-- This URL is mail address.--> <url href="mailto:kent@trl.ibm.co.jp"/> <url href="mailto:tkent@jp.ibm.com"/> <link manager="H.MARUYAMA"/> </person> </personals>
Description / Definition: .dtd
<?xml encoding="US-ASCII"?> <!ELEMENT personals (person)+> <!ELEMENT person (name,email*,url*,link?)> <!ATTLIST person id ID #REQUIRED> <!ELEMENT family (#PCDATA)> <!ELEMENT given (#PCDATA)> <!ELEMENT name (#PCDATA|family|given)*> <!ELEMENT email (#PCDATA)> <!ELEMENT url EMPTY> <!ATTLIST url href CDATA #REQUIRED> <!ELEMENT link EMPTY> <!ATTLIST link manager IDREF #IMPLIED subordinates IDREFS #IMPLIED>
XML-Namespace,
Namensräume
XLink, XML Linking Language,
Verweise aus XML Dokumenten heraus
XPointer, XML Pointer Language,
Zeiger in XML Dokumente hinein
XPath, XML Path Language,
Wird in XSLT und XPointer benötigt,
Zeichenketten die einen bestimten Teil
eines XML Dokuments bezeichnen
XSL, Extensible Stylesheet Language
Stildefinitionen
XSLT, XSL Transformatons
XML Stiltransformationen
XML Schema: Structures, Datatypes
Bedingungen (Constraints) für Dokumentstrukturen und Datentypen
Document Type Definition
"wellformed" XML Dokumente
geht ohne DTD
"valid" XML Dokumente
nur bezüglich einer DTD
Referenz per URI oder Inline
XML verlangt korrekte Schachtelung der Elemente
leere Elemente sind speziell gekennzeichnet
nur ein einziges "root" Element
Attributwerte in Quotes
Entities brauchen eine DTD
Elementnamen sind Case-sensitiv
White-Space im Inhalt ist relevant
mehrere Zeichensätze sind verwendbar
es gibt nur wenige reservierte Zeichen
XML Deklaration
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
Deklaration des Dokumenttyps
<!DOCTYPE book SYSTEM fileurl > <!DOCTYPE memo [ ... ] > <!DOCTYPE html PUBLIC bezeichner url >
Dokument-Instanz
<book> <head> ... </head> <body> ... </body> </book>
Elemente
<!ELEMENT name Inhalt > <name> ... </name>
Attribute
<!ATTLIST element AttName AttTyp Default > <element AttName="wert" >
Entities
<!ENTITY name wert > &name; <!ENTITY % name wert > %name;
Character Data, CDATA
<![CDATA[ dies ist kein <tag/> ]]>
Parsed Character Data, PCDATA
Mischung aus CDATA und Elementen
Anweisungen, Processing Instructions
<?php ... ?>
Kommentare
<!-- ... -->
Leerraum, White-Space
ist im Inhalt signifikant
Folgen
(from, to, subject, message, signature)
Auswahl
(para|list|image)
Wiederholungsoperatoren
+
einmal oder mehr*
nullmal oder mehr?
nullmal oder einmal
beliebiger Inhalt
(#PCDATA)
beliebige Zusammensetzungen
(head, (p|list|image)*, div+, (#PCDATA|em|strong))
leeres Element
EMPTY
beliebiges Element
ANY
Attribut Typ
CDATA
ZeichenkettenID
BezeichnerIDREF
Verweis auf BezeichnerIDREFS
Folge von IDREFENTITY
ENTITIES
Folge von ENTITYsNMTOKEN
NMTOKENS
Folge von NMTOKENsENUMERATION
Aufzählung von WertenNOTATION
Festlegung von Wertformaten(EN|FR|GR)
Enumeration, AufzählungAttribut Default
#IMPLIED
wird von der Anwendung erkannt#REQUIRED
muss angegeben werden#FIXED wert
fester Wertwert
DefaultwertBeispiel
jahr #FIXED "2000" lang (EN|FR|GR) "EN" bez ID #IMPLIED href CDATA #REQUIRED
Beschreibung des Dokumententyps
<?xml encoding="US-ASCII"?> <!ELEMENT personals (person)+> <!ELEMENT person (name,email*,url*,link?)> <!ATTLIST person id ID #REQUIRED> <!ELEMENT family (#PCDATA)> <!ELEMENT given (#PCDATA)> <!ELEMENT name (#PCDATA|family|given)*> <!ELEMENT email (#PCDATA)> <!ELEMENT url EMPTY> <!ATTLIST url href CDATA #REQUIRED> <!ELEMENT link EMPTY> <!ATTLIST link manager IDREF #IMPLIED subordinates IDREFS #IMPLIED>
XML Dokument entsprechend dieser DTD
<?xml version="1.0"?> <!DOCTYPE personals SYSTEM "personal.dtd"> <personals> ... <person id="K.TAMURA"> <name> <family>TAMURA</family> <given>Kent</given> </name> <!-- This URL is mail address.--> <url href="mailto:kent@trl.ibm.co.jp"/> <url href="mailto:tkent@jp.ibm.com"/> <link manager="H.MARUYAMA"/> </person> </personals>
Überprüfung ob der Inhalt eines XML Dokumentes einer gegebenen DTD entspricht.
Die Java Klassen zur Verarbeitung von XML-Daten gehören ab J2SDK 1.4 standartmässig zum Lieferumfang. Bis zum J2SDK 1.3 muss einzusätzliches Softwarepaket installiert werden.
Zur Überprüfung benutzen wir Shell-Scripte.
JDK 1.4 und die xercesSamples.jar
von
xml.apache.org
valid (JDK 1.4 Version):
#!/bin/sh VALIDPATH="/home/.../java/lib/xercesSamples.jar" export CLASSPATH="$VALIDPATH:$CLASSPATH" /usr/java/j2sdk1.4.1_01/bin/java sax.Counter -p org.apache.crimson.parser.XMLReaderImpl -v $*
valid.bat (JDK 1.4 Version):
set VALIDPATH=u:\xerces\xercesSamples.jar set CLASSPATH=%VALIDPATH%;%CLASSPATH% java sax.Counter -p org.apache.crimson.parser.XMLReaderImpl -v %1
Hilfe:
usage: java sax.Counter (options) uri ... options: -p name Select parser by name. -x number Select number of repetitions. -n | -N Turn on/off namespace processing. -np | -NP Turn on/off namespace prefixes. NOTE: Requires use of -n. -v | -V Turn on/off validation. -s | -S Turn on/off Schema validation support. NOTE: Not supported by all parsers. -f | -F Turn on/off Schema full checking. NOTE: Requires use of -s and not supported by all parsers. -dv | -DV Turn on/off dynamic validation. NOTE: Requires use of -v and not supported by all parsers. -m | -M Turn on/off memory usage report -t | -T Turn on/off "tagginess" report. --rem text Output user defined comment before next parse. -h This help screen.
Verwendung:
valid datei.xhtml
Alternativ können Sie die Klasse
Counter.java
selbst kompilieren und wie gewohnt benutzen:
java Counter -v datei.xhtml
SVG Scalable Vector Graphics, Vektorgrafik
SMIL Synchronized Multimedia Integration Language
CML Chemical Markup Language
MML Mathematical Markup Language
RDF
Resource Description Framework
PICS, CDF, CRP
OSD Open Software Distribution
OASIS, Organization for the Advancement of Structured Information Standards
OFX, Open Financial Exchange
CommerceNet, EDI B2B, e-Commmerce Framework, EDI via XML
Ariba - cXML, Transaktionen: Aufträge, Rechnungen, Änderungsaufträge
finXML, XML für Finanzmärkte, Zinssätze, Währungsumtausch, Bonds, Geldmärkte, Anlagen, Optionen
Acord, XML Standards für die Versicherungswirtschaft
Rosettanet, IT supply chain alignment, server-to-server business exchange
OBI, Open Buying Initiative
Open Travel Alliance
Open Trading Protocol
Open Financial Excange
SAX
Simple API for XML
XML4J
XML-Parser in Java von IBM, mit DTD und DOM1,
ist in Xerces aufgegangen
msxml
XML-Parser in Java von Microsoft, mit DOM1 ohne DTD
Xalan,
Xerces
Tools der Apache XML Aktivitäten
Koala
XSL Processor, wird nicht mehr weiter entwickelt
Lotus
XSL Processor, ist in Xalan aufgegangen
26. April 2004
XML 1.0,
W3C Recommendation, 10. Feb. 1998
Second Edition, 6. October 2000
XML 1.1,
W3C Recommendation, 4. Feb. 2004
Last edited 15. April 2004
Änderungen bezüglich der Zeichensätze Unicode, UTF-8, UTF-16
XSL Transormations (XSLT) 1.0,
W3C Recommendation, 16. Nov. 1999
XML Path Language (XPath) 1.0,
W3C Recommendation, 16. Nov. 1999
XML Names, Namespaces in XML
W3C Recommendation, 17. Jan. 1999
Associating Style Sheets with XML documents
W3C Recommendation, 29. June 1999
XSL 1.0, (jetzt nur Formatting)
W3C Recommendation, 15. Oktober 2001
XML Linking Language (XLink),
W3C Recommendation, 2. Juni 2001
XML Base (XBase),
W3C Recommendation, 27. June 2001
XML Pointer Language (XPointer),
W3C Recommendation, 25 March 2003
XML Schema, Part 1 Structures, Part 2 Datatypes,
W3C Recommendation, 2. Mai 2001
XML Protocol, SOAP
SOAP 1.1, W3C Note, 8. May 2001
SOAP 1.2, W3C Recommendation, 24. Juni 2003
XML Query 1.0 and XPath 2.0 Data Model,
W3C Working Draft, 12. November 2003
XML Path Language (XPath) 2.0,
W3C Working Draft, 12. November 2003
XML Signature Syntax and Processing,
W3C Recommendation, 12. February 2002,
IETF Request for Comments: 3275, March 2002
Canonical XML 1.0,
W3C Recommendation, 15 March 2001
XML Information Set (Second Edition),
W3C Recommendation, 4. February 2004
XML Forms 1.0,
W3C Recommendation, 14. Oktober 2003
Web Services Description Language (WSDL) 1.2,
W3C Working Draft, 11. Juni 2003
Web Ontology Language (OWL) 1.0,
W3C Recommendation, 10. Februar 2004
RDF Schema,
W3C Recommendation, 10. Februar 2004
RDF Site Summary (RSS) 1.0,
(RSS WG) Recommendation, 9. Dezember 2000
© Universität Mannheim, Rechenzentrum, 1998-2005.
Heinz KredelLast modified: Sat Apr 9 11:51:28 CEST 2005