<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="None">
	<name>Einführung</name>
	<content>
		<section id="a1">
			<name>Einführung </name>
			<para id="intro">
			XML steht für E<term>x</term>tended <term>M</term>arkup <term>L</term>anguage, welche eine Beschreibungssprache, ja sogar eine Meta Auszeichnungssprache für Daten als auch für Dokumente ist. XML besteht aus diversen Regeln, welche den Aufbau des Dokumentes, die Struktur und die Semantik bestimmen. Im Gegensatz zu HTML C oder TeX  ist XML nicht schon durch einen festgelegten Satz vordefiniert, welcher z.B. die Anzahl wie auch die Namen der Elemente vorgibt. Dieser  Nachteil wird von XML nicht aufgegriffen. XML ist eine Meta Auszeichnungssprache, in der man die gefragten Tags nach Bedarf definieren kann. Jeder Tag ist erlaubt, wenn er bestimmte allgemeine Regeln erfüllt. 
XML dient vor allem dem Austausch von Daten zwischen diversen operativen Systemen. Da diese Sprache nicht firmenspezifisch und zusätzlich noch leicht zu lesen und anzuwenden ist, ist sie auch ein geeignetes Mittel um den Datentransfer zwischen verschiedenen Firmen abzuwickeln. 
			 </para>
<figure id="fig2">										<name/>										<media type="image/gif" src="intro.gif"/>
										<caption>XML - Extended Markup Language</caption>									</figure>
<exercise id="ex_1.1">
				<problem>
					<para id="prob_1.1">
						 Bevor Sie sich intensiver mit XML beschäftigen, machen Sie zuvor noch ein kurzes Brainstorming über XML!					</para>
				</problem>
				<solution>
					<para id="sol_1.1">
						Lesen Sie unten nach!					 </para>
				</solution>
			</exercise>
		</section>
		<section id="geschi">
			<name> Geschichtlicher Überblick von XML</name>
				<list id="g_list">
					<name/>
					<item>1969 entwickelt Charles Goldfarb bei IBM die Generalized Markup Language (GML)</item> 
					<item>1980 ANSI veröffentlicht den ersten Entwurf von SGML</item> 
					<item>1986 ISO verabschiedet SGML</item>
					<item>1989 Bernes-Lee schlägt ein SGML-basiertes Hypertext System vor</item>
					<item>1990 Bernes-Lee entwickelt HTML, HTTP und URL. Das World Wide Web nimmt seinen Anfang mit zwei Maschinen in Cern.</item>
					
					<item>1994 Gründung des World Wide Web Consortiums (W3C)</item>
					<item>1995 HTML 2.0</item>
					<item>1998 XML 1.0</item>
					<item>2000 XHTML 1.0 (Reformulierung von HTML in XML); XML 1.0 (2nd Edition) <link src="#fuss1">¹</link> </item>
					
				</list> 
				  
			<para id="fuss1"><term>¹</term><foreign>

Dr. Klaus Schild, Institut für Informatik,<link src="http://www.inf.fu-berlin.de/inst/ag-nbi/lehre/0304/V_EBXML/Folien/Einfuehrung.pdf">XML
Standards für das E-Business</link> downgeloadet am: 22.11.2004

</foreign> </para>
<exercise id="ex_1.2">
				<problem>
					<para id="prob_1.2">
						 Warum glauben Sie, entwickelte man 1998 XML?					</para>
				</problem>
				<solution>
					<para id="sol_1.2">
						Lesen Sie im Kapitel "Vorteile von XML" und "XML im E-Business" nach! 					 </para>
				</solution>
			</exercise>
		</section>
		<section id="a2">
			<name>XML Werkzeuge </name>
			<para id="intro1">
			XML ist ein rein textbasiertes  Format und kann so mit jedem gewöhnlichen Texteditor erstellt und bearbeitet werden. Mit diesem können jedoch nur einfache XML Dokumente erstellt werden, da die typischen XML Editorfunktionen wie z.b. Ausschneiden, Kopieren und die Darstellung des XML Dokumentes in einer Baumstruktur fehlen. Die durch die Schachtelung entstehende Baumstruktur wird in XML Editoren graphisch wiedergegeben. Komplexere Editoren überprüfen neben der Wohlgeformtheit  auch die Validität des XML Dokumentes. Die Überprüfung der Wohlgeformtheit kann auch als einfaches Parsen bezeichnet werden und die Überprüfung der Validität als validierendes Parsen. Ein Dokument parsen heißt, die Struktur und die Syntax erkennen und weiterzuverarbeiten. Durch die  Baumstruktur wird ein weiteres Verarbeiten erleichtert. Im www angebotene Editoren wären XML Spy oder XML Buddy. 
			</para>
			<exercise id="ex_1">
				<problem>
					<para id="prob_1">
						 Welche weitere XML Tools kennen Sie?
					</para>
				</problem>
				<solution>
					<para id="sol_1">
						XML Editor CookTop, XMLSPY, Oxygen, MLView, Saxon, MS Visual Studio
					 </para>
				</solution>
			</exercise>
		</section>
		<section id="a3">
			<name> XML Anwendungen </name>
			<para id="And">
				Eine XML Anwendung wird dann als eine solche bezeichnet, wenn sie auf der Auszeichnungssprache XML basiert. Eine XML Anwendung wird meist dann benützt, wenn man Daten für ein spezielles Fachgebiet, wie z.B.: die Chemical Markup Language (CML) für Chemie,  Vector Markup Language (VML), Scalable Vector Graphics (SVG) oder MathML benötigt.
			</para>
			<table frame="all" id="tab1">
				<name>Beispiel </name>
				<tgroup cols="1" align="left" colsep="1" rowsep="1">
					<tbody valign="top">
						<row>
							<entry>
								<code type="block"> 
&lt;?xml version="1.0"?&gt;
&lt;CML&gt;
&lt;MOL TITLE="Water"&gt;
	&lt;ATOMS&gt;
		&lt;ARRAY BUILTIN="ELSYM"&gt;H O H&lt;/ARRAY&gt;
	&lt;/ATOMS&gt;
	&lt;BONDS&gt;
		&lt;ARRAY BUILTIN="ATID1"&gt;1 2&lt;/ARRAY&gt;
		&lt;ARRAY BUILTIN="ATID2"&gt;2 3&lt;/ARRAY&gt;
		&lt;ARRAY BUILTIN="ATID3"&gt;1 1&lt;/ARRAY&gt;
	&lt;/BONDS&gt;
&lt;/MOL&gt;
&lt;/CML&gt;					
							 </code>
							</entry>
						</row>
					</tbody>
				</tgroup>
			</table>
			<para id="aus">
			Aus diesem Beispiel ist ersichtlich, dass XML oder eine XML Anwendung nicht durch vordefinierte Elementnamen eingeschränkt ist. Mit einer XML Anwendung, in diesem Fall mit CML, kann man selbst sinnvolle Namen vergeben und verwenden. Die einzige Bedingung die XML, vorschreibt ist, sich an gewisse Regeln zu halten und die selbst vergebenen Namen in einer internen oder externen Dokument Type Definition (DTD) festzulegen. Diese werden in einem späteren Abschnitt noch genauer behandelt. In diesem Fall ist es sicherlich einfacher und unkomplizierter das Dokument mit einer passenden Namensgebung und Struktur aufzubauen. 
			</para>
			<para id="ein">
			Ein Beispiel das im E-Business Anwendung fände, wäre folgendes. Es stellt den Aufbau eines Lieferscheines dar. Mittels einer XML-Anwendung können diese Daten automatisch in die operativen Systeme eines Unternehmens übertragen werden.
			</para>
			<table frame="all" id="tab2">
				<name>Beispiel </name>
				<tgroup cols="1" align="left" colsep="1" rowsep="1">
					<tbody valign="top">
						<row>
							<entry>
								<code type="block"> 

&lt;?xml version="1.0"?&gt;
&lt;Lieferschein&gt;
	&lt;Lieferdatum&gt; 21. September 2005 &lt;/Lieferdatum&gt;
	&lt;Lieferscheinnummer&gt; 1234567890 &lt;/Lieferscheinnummer&gt;
	&lt;Adresse des Lieferers&gt;		
		&lt;Vorname&gt; Hans &lt;/Vorname&gt;
		&lt;Zuname&gt; Maier &lt;/Zuname&gt;
		&lt;Straße&gt; Altenbergerstraße 69 &lt;/Straße&gt;
		&lt;Postleitzahl&gt; 4040 &lt;/Postleitzahl&gt;	
		&lt;Ort&gt; Linz &lt;/Ort&gt;
		&lt;eMail&gt; h.maier@gmx.at &lt;/eMail&gt;
	&lt;/Adresse des Lieferers&gt;
	&lt;Adresse des Belieferten&gt;
&lt;Vorname&gt; Friedrich &lt;/Vorname&gt;
		&lt;Zuname&gt; Müller &lt;/Zuname&gt;
		&lt;Straße&gt; Mengerstraße 23 &lt;/Straße&gt;
		&lt;Postleitzahl&gt; 4040 &lt;/Postleitzahl&gt;	
		&lt;Ort&gt; Linz &lt;/Ort&gt;
		&lt;eMail&gt; friedrich.mueller@khg-heim.uni-linz.ac.at &lt;/eMail&gt;
	&lt;/Adresse des Belieferten&gt;
	&lt;Liefergut&gt; Steinkohle &lt;/Liefergut&gt;
	&lt;Liefermenge&gt; 50 kg &lt;/Liefermenge&gt;
&lt;/Lieferschein&gt;					
							 </code>
							</entry>
						</row>
					</tbody>
				</tgroup>
			</table>
		</section>
		<section>
			<name> Ein erstes XML Dokument</name>
			<para id="das_">
				Das einfachste, wohlgeformte XML Dokument  besteht aus der XML Deklaration 
<code>&lt;?xml version="1.0"&gt; </code>und einem Element <code> &lt;Preis&gt; </code>samt seinem Inhalt.

			</para><figure id="fig1">
										<name/>
										<media type="image/gif" src="deklaration.gif"/>
										<caption>Aufbau eines einfachen XML Dokuments.</caption>
									</figure>
			
			<para id="es_">
				es könnte auch so lauten:
			</para>
			<table frame="all" id="tab4">
				<name>Beispiel </name>
				<tgroup cols="1" align="left" colsep="1" rowsep="1">
					<tbody valign="top">
						<row>
							<entry>
								<code type="block"> 
&lt;?xml version="1.0"?&gt;
&lt;GELDEINHEITEN&gt;
	20 Euro
&lt;/GELDEINHEITEN&gt;				
							 </code>
							</entry>
						</row>
					</tbody>
				</tgroup>
			</table>
			<para id="Wie_">
			Wie schon im obigen Abschnitt erwähnt, bleibt die Namensgebung der Elemente dem Autor selbst überlassen. Beide Beispiele sind gleichwertig
			</para>
			<para id="nachdem_">
			Nachdem dieser Code eingegeben worden ist, sollten sie es unter einem passenden Dateinamen wie z.B. Lieferung.xml abspeichern. Die Namenserweiterung von .xml ist Standard. Nachdem das Dokument erstellt wurde, können Sie es in einen Browser (Mozilla, Netscape, Opera, Amaya) laden und dort öffnen. Die Formatierung hängt von den unterschiedlichen Browsern ab. Der Browser weiß zum Beispiel nicht, in wie fern er das Element Lieferung anzeigen soll. Um dieses Problem zu beheben, wird an die Datei auch noch eine Stylesheetdatei angehängt. 
			</para>
		</section>
		<section>
			<name> Skripten, Zeichensätze</name>
			<para id="XML_">
			XML wurde mit dem Unicode Zeichensatz verfasst. Jedoch erlaubt XML auch die Verwendung von Untergruppen des Unicodes wie z.b.: UTF-8, UTF-16. Es besteht nun die Möglichkeit, dem Prozessor mitzuteilen, welchen Zeichensatz man verwenden möchte. Das geschieht, indem sie in der XML Deklaration auch noch die encoding Angabe anführen.
		</para>
			<table frame="all" id="tab5">
				<name>Beispiel </name>
				<tgroup cols="1" align="left" colsep="1" rowsep="1">
					<tbody valign="top">
						<row>
							<entry>
								<code type="block"> 
&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;?xml version="1.0" encoding="UTF-16"?&gt;
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;				
							 </code>
							</entry>
						</row>
					</tbody>
				</tgroup>
			</table>
			<table frame="all" id="tab6">
				<name>Unterschiedliche Zeichenkodierungen </name>
				<tgroup cols="2" align="left" colsep="1" rowsep="1">
					<tbody valign="top">
						<row>
							<entry>
								UTF-8	
							</entry>
							<entry>
								Internationaler Zeichensatz (8 Bit)
							</entry>
						</row>
						<row>
							<entry>
								UTF-16
							</entry>
							<entry>
								Internationaler Zeichensatz (16 Bit)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-1
							</entry>
							<entry>
								Westeuropa (Latin-1)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-2
							</entry>
							<entry>
								Osteuropa (Latin-2)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-3
							</entry>
							<entry>
								Südeuropa (Latin-3)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-4
							</entry>
							<entry>
								Nordeuropa (Latin-4)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-5
							</entry>
							<entry>
								Kyrillisch
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-6
							</entry>
							<entry>
								Arabisch
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-7
							</entry>
							<entry>
								Griechisch
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-8
							</entry>
							<entry>
								Hebräisch
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-9
							</entry>
							<entry>
								Türkisch (Latin-5)
							</entry>
						</row>
						<row>
							<entry>
								ISO-8859-10
							</entry>
							<entry>
								Nordisch (Latin-6)
							</entry>
						</row>
					</tbody>
				</tgroup>
			</table>
					<exercise id="ex_2">
				<problem>
					<para id="prob_2">
						 Erstellen Sie ein einfaches XML Dokument mit der Einbindung des Hebräischen Zeichencodes!
					</para>
				</problem>
				<solution>
					<para id="sol_2">
						<code type="block"> 
&lt;?xml version="1.0" encoding="ISO-8859-8" ?&gt;
&lt;Ware&gt;
	Öl
&lt;/Ware&gt;
						</code>
					 </para>
				</solution>
			</exercise>
		</section>
	</content>
</document>
