next up previous contents
Nächste Seite: 9.2 Skript in XHTML Aufwärts: 9 Anwendung Vorherige Seite: 9 Anwendung   Inhalt

9.1 Beispieldokument

Als Beispieldokument wird ein Auszug vom Computergrafikskript von Olaf Müller und Ralf Kunze aus dem Sommersemester 2002 verwendet. Dieses wurde in einigen Teilen ein wenig überarbeitet um die verschiedenen Funktionen in dem Zusammenspiel von XML Schema und XSLT zu verdeutlichen. Auszug eines Kapitels aus dem Beispieldokument:
<chapter>
 <title>Definition</title>
 <content>
  <definition pres:on="true">
   <term pres:on="false" script:on="true" script:delta="test">
    Grafische Datenverarbeitung</term>
   <comment>
    Der Begriff <newterm>Grafische Datenverarbeitung</newterm> 
    umfaßt              
    <para>
     <keyword pres:on="true">generative Computergrafik</keyword>
	   Erzeugung künstlicher Bilder aus einer Beschreibung: 
	   <list>
      <item>Eingabe der Beschreibung</item>
      <item>Manipulation der Beschreibung</item>
      <item>Ausgabe des zur Beschreibung gehörigen Bildes</item>
     </list>
     <keyword pres:on="true">Bildverarbeitung</keyword>
	   Bildveränderung, so daß der Informationsgehalt leichter 
	   erkennbar wird:
     <list>
      <item>Veränderung von Bilddaten (z.B. Drehung)</item>
      <item>Verbesserung von Bilddaten (z.B. Kontrasterhöhung)
      </item>
      <item>Vereinfachung von Bilddaten (z.B. Farbreduzierung)
      </item>
     </list>
     <keyword pres:on="true">Mustererkennung</keyword>
	   Analyse von Bilddaten durch Zerlegung in bekannte graphische 
	   Objekte:
     <list>
      <item>z.B. wo verläuft die Straße?</item>
      <item>z.B. um welchen Buchstaben handelt es sich?</item>
     </list>
    </para>
   </comment>
  </definition>
  <para>
   In dieser Vorlesung geht es ausschließlich um generative 
   Computergrafik!
  </para>
 </content>
</chapter>
Die Gültigkeit des Dokumentes anhand des vorgegebenen Schemas wurde mit dem XSV und Xerces-J getestet. Beide prüfen die XML-Datei anhand des Schemas, das in der Datei mittels des xsi:schemaLocation-Attributes angegeben ist. Der Aufruf mittels XSV erfolgt im eigenen Verzeichnis durch:
> xsv cgteil1.xml
Ein gekürzter Auszug des Ergebnisses der Validierung mit eingebauten Kommentaren:
<?xml version='1.0'?>
<xsv xmlns='http://www.w3.org/2000/05/xsv'
 docElt="{http://www-lehre.inf.uos.de/~tschnied/lecture}lecture"
 instanceAssessed="true" instanceErrors="0" 
 rootType="[Anonymous]" schemaErrors="0"
 schemaLocs="http://www-lehre.inf.uos.de/~tschnied/lecture -> 
 lecture.xsd" target="file:///D:/Programme/XSV/cgteil1.xml"
 validation="strict" 
 version="XSV 2.2-4 of 2003/01/21 23:23:04">
<!-- Das Schema und das XML-Dokument sind fehlerfrei -->   
<!-- Die Schemadateien, die hinzugeladen werden -->  
 <schemaDocAttempt URI="file:///D:/Programme/XSV/lecture.xsd"
  namespace="http://www-lehre.inf.uos.de/~tschnied/lecture"
  outcome="success" source="schemaLoc"/>
 <schemaDocAttempt URI="file:///D:/Programme/XSV/markedtext.xsd"
  namespace="http://www-lehre.inf.uos.de/~tschnied/lecture"
  outcome="success" source="include"/>
<!-- ... gleiches gilt für die Auspraegungsschemata .. -->
<!-- ... presentation.xsd ... stamp.xsd ... script.xsd -->    
 <schemaDocAttempt URI="http://www.w3.org/1998/Math/MathML"
  namespace="http://www.w3.org/1998/Math/MathML"
  outcome="failure" source="new namespace">
  <notASchema filename="http://www.w3.org/1998/Math/MathML">
     couldn't open
  </notASchema>
 </schemaDocAttempt>
<!-- Suche nach einem Schema zur Validierung fuer MathML -->
<!-- ist fehlgeschlagen -->
 <XMLMessages>
  Error: can't find address for host &quot;www.w3.org&quot; 
  in http URL &quot;http://www.w3.org/1998/Math/MathML&quot;
 </XMLMessages>
</xsv>
Zwar ist in der obigen Ausgabe ein Fehler aufgetreten, da keine Validierung der MathML-Elemente vorgenommen werden konnte, aber dennoch ist das Schema und die XML-Instanz fehlerfrei. Das liegt an der Definition des processContents auf lax bei den MathML-Elementen, siehe Kapitel 8.2.1. Damit wird im XSV zwar diese Meldung ausgegeben, aber das Dokument trotzdem als gültig erkannt, während beim Einsatz von Xerces keine Meldung dazu ausgegeben wird. Zur Validierung kann beim Xerces-J einfach ein mitgeliefertes Beispielprogramm aufgerufen werden, bei dem die entsprechenden Prüfungseigenschaften des Parsers angestellt werden. Für den mitgelieferten SAX-Parser org.apache.xerces.parsers.SAXParser funktioniert das beispielsweise mit einem Zählprogramm für die Elemente und Attribute:
> java sax.Counter -np -v -s -f -dv -m cgteil1.xml

cgteil1.xml: 1820 ms, 743920 bytes 
(433 elems, 810 attrs, 0 spaces, 35224 chars)
Dabei muss natürlich Java und der Xerces korrekt installiert sein und die Xerces-jar-Dateien müssen auf dem Klassenpfad liegen.
next up previous contents
Nächste Seite: 9.2 Skript in XHTML Aufwärts: 9 Anwendung Vorherige Seite: 9 Anwendung   Inhalt
Tanja Schniederberend 2003-06-11