<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Onlinemagazin: devmag.net &#187; XML</title>
	<atom:link href="http://www.devmag.net/category/xml/feed" rel="self" type="application/rss+xml" />
	<link>http://www.devmag.net</link>
	<description>Regelmäßig neue Artikel rund um das Homepage Bauen mit HTML, CSS, AJAX, PHP und XML.</description>
	<lastBuildDate>Sun, 30 Oct 2011 18:38:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>SimpleXML PHP 5 und XML: Einfach einfach!!</title>
		<link>http://www.devmag.net/php/65-simplexml-php-5-und-xml-einfach-einfach.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=simplexml-php-5-und-xml-einfach-einfach</link>
		<comments>http://www.devmag.net/php/65-simplexml-php-5-und-xml-einfach-einfach.html#comments</comments>
		<pubDate>Fri, 09 Jan 2009 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=65</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Entities, oder einfach Abkürzungen


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html' rel='bookmark' title='Permanent Link: Entities, oder einfach Abkürzungen'>Entities, oder einfach Abkürzungen</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="float: right;margin: 4px;"><div class="adslot-468" >
<script type="text/javascript"><!--
google_ad_client = "pub-7748812030658677";
/* 468x60, Erstellt 20.08.09 */
google_ad_slot = "9850520828";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></p> <p><img src="http://www.devmag.net/wp-content/uploads/illu_php_simple_xml.gif" width="60" height="60" align="left" class="illu" alt="SimpleXML PHP 5 und XML: Einfach einfach!!" />Die  neue PHP-Version 5 (PHP5) enth&auml;lt  neben zahlreichen anderen Neuerungen auch die Erweiterung SimpleXML. Mit ihr kann XML auf erstaunlich einfache Art in ein PHP Objekt &uuml;berf&uuml;hrt und verarbeitet werden.<span id="more-65"></span>       <p>Bisher  ist SimpleXML  auf experimenteller Basis ver&ouml;ffentlicht worden, so dass sich bis zur Erscheinung der finalen Version von PHP 5 noch einiges ver&auml;ndern kann. Insbesondere Funktionsnamen und &auml;hnliches k&ouml;nnten betroffen sein. SimpleXML muss nicht  mehr mitinstalliert werden. In den neuen <a href="http://www.php.net/downloads.php" target="_blank">PHP5 Distributionen</a> wird SimpleXML standardm&auml;&szlig;ig mitkonfiguriert.<br>
&nbsp;<br>
Und simpel ist SimpleXML in der Tat. Ein einfaches XML Dokument, wie z.B. artikel.xml kann in wenigen Schritten mit SimpleXML verarbeitet werden.</p>
<p>artikel.xml:</p>
<p><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;<br>
  &lt;artikel&gt;<br>
     &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
     &lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt;<br>
     &lt;inhalt&gt;Der Artikelinhalt an sich&lt;/inhalt&gt;<br>
  &lt;/artikel&gt;</code><br>
&nbsp;<br>
Um beispielsweise an den Inhalt des &lt;teaser&gt; Elementes zu gelangen, bedarf es nur weniger Zeilen Code:</p>
<p>simplexml_1.php:<br>
&nbsp;<br>
<code>&lt;?php<br>
&nbsp;<br>
if (file_exists('artikel.xml')) {<br>
   $xml = simplexml_load_file('artikel.xml');<br>
&nbsp;<br>
echo $xml-&gt;teaser[0];<br>
&nbsp;<br>
} else {<br>
   exit('Konnte Datei nicht laden.');<br>
}<br>
?&gt;</code><br>
&nbsp;<br>
Durch die simplexml_load_file() Funktion wird die XML Datei eingelesen und <strong>direkt in ein Objekt &uuml;berf&uuml;hrt</strong>. Auf die Elemente des Objektes kann jetzt wie auf normale Objekte zugegriffen werden. Die Ausgabe erfolgt &uuml;ber das $xml Objekt, welches nichts anderes als das Wurzelelement &lt;artikel&gt; darstellt. </p>
<p>Dabei erfolgt der Zugriff auf die Elemente jeweils &uuml;ber Arrays. Da in unserem Fall nur ein Element innerhalb des <strong>Wurzelelementes</strong> &lt;artikel&gt; als &lt;teaser&gt; Element verwendet wird, geschieht der Zugriff auf den Inhalt dieses Elementes mit dem Arrayindex 0. W&auml;ren zwei &lt;teaser&gt; Elemente verwendet, w&uuml;rde man &uuml;ber den Index 1 auf das zweite Element zugreifen.</p>
<p>Um zu verstehen, wie bei SimpleXML die Daten in Objekten gespeichert werden, kann man sich mit der var_dump() Funktion von PHP schlicht <strong>den gesamten Inhalt</strong> des Objektes ausgeben lassen. Man &auml;ndert den Code einfach wie folgt ab:</p>
<p>simplexml_1.php:</p>
<p><code>&lt;?php<br>
&nbsp;<br>
if (file_exists(&quot;artikel.xml&quot;)) {<br>
   $xml = simplexml_load_file(&quot;artikel.xml&quot;');<br>
&nbsp;<br>
var_dump($xml);<br>
} <br>
else {<br>
   exit(&quot;Konnte Datei nicht laden. &quot;);<br>
}<br>
?&gt;</code></p>
<p>Die Ausgabe nach Aufruf des Skriptes  sieht wie folgt aus:</p>
<p><code>object(SimpleXMLElement)#1 (3) <br>
{ <br>
[&quot;titel&quot;]=&gt; string(9) &quot;Der Titel&quot; <br>
[&quot;teaser&quot;]=&gt; string(35) &quot;Der Teaser, eine kurze Beschreibung&quot; <br>
[&quot;inhalt&quot;]=&gt; string(25) &quot;Der Artikelinhalt an sich&quot; <br>
}</code><br>
&nbsp;<br>
Darin erkennt man die gesamte Struktur des XML Dokumentes wieder. SimpleXML erkennt, dass das Dokument genau aus einem Element object(SimpleXMLElement)#1  besteht, welches drei object(SimpleXMLElement)#1 (3) untergeordnete Elemente beherbergt. Diese Elemente, ihr Datentyp und deren Inhalte werden dann in  geschweiften Klammern angegeben.</p>
<p>Wenn man bedenkt, dass zum Parsen eines XML Dokumentes mit dem ereignisorientierten
    Parser <a href="/webprog/php_xml_expat_1.htm">Expat</a> mindestens drei Funktionen
    definiert werden mussten, ist der hierzu notwendige Aufwand mit SimpleXML
    nicht vergleichbar.</p>
<p><strong>Komplexere XML Dokumente und SimpleXML?</strong><br>
Auch komplexe XML Dokumente lassen sich mit SimpleXML rasch bearbeiten. Folgendes XML Dokument ist fast identisch mit dem Beispiel oben, es wurde jedoch  mit Attributen und weiteren Elementen versehen.<br>
&nbsp;<br>
artikel_2.xml:</p>
<p> <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt; <br>
 &lt;content&gt;<br>
 &lt;artikel id=&quot;1&quot;&gt;<br>
 &lt;meta&gt;<br>
&nbsp; &lt;keywords&gt;ein,netter,artikel&lt;/keywords&gt; <br>
&nbsp; &lt;description&gt;ein,lustiger,artikel&lt;/description&gt; <br>
&nbsp; &lt;/meta&gt;<br>
&nbsp; &lt;titel&gt;Der Titel&lt;/titel&gt; <br>
&nbsp; &lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt; <br>
&nbsp; &lt;inhalt&gt;Der Artikelinhalt&lt;/inhalt&gt; <br>
&nbsp; &lt;/artikel&gt;<br>
 &lt;artikel id=&quot;2&quot;&gt;<br>
 &lt;meta&gt;<br>
&nbsp; &lt;keywords&gt;ein,zweiter,netter,artikel&lt;/keywords&gt; <br>
&nbsp; &lt;description&gt;ein,zweiter,lustiger,artikel&lt;/description&gt; <br>
&nbsp; &lt;/meta&gt;<br>
&nbsp; &lt;titel&gt;Der zweite Titel&lt;/titel&gt; <br>
&nbsp; &lt;teaser&gt;Der zweite Teaser, eine kurze Beschreibung&lt;/teaser&gt; <br>
&nbsp; &lt;inhalt&gt;Der zweite Artikelinhalt&lt;/inhalt&gt; <br>
&nbsp; &lt;/artikel&gt;<br>
&nbsp; &lt;/content&gt;</code><br>
&nbsp;<br>
Da SimpleXML ausgesprochen modular aufgebaut ist und viele Schnittstellen zu weiteren PHP- beziehungsweise XML Technologien aufweist, k&ouml;nnen komplexe Untersuchungen von XML Dokumenten zum Beispiel &uuml;ber den in SimpleXML integrierten <strong>XPath Prozessor</strong> durchgef&uuml;hrt werden. Das hei&szlig;t, man kann &uuml;ber die Pfadangaben in XPath auf die gesuchten Elemente zugreifen.</p>
<p>Dies soll im folgenden Beispiel geschehen &#8211; es soll lediglich der vom Besucher angefragte Artikel angezeigt werden. Der gew&uuml;nschte Artikel wird durch die <strong>ID</strong> identifiziert, die im &lt;artikel&gt; Element als Attribut definiert ist. Diese ID wird &uuml;ber den URL an das PHP Programm &uuml;bergeben. </p>
<p>simplexml2.php</p>
<p><code>&lt;?php</code></p>
<p><code>$id = $_GET['id'];</code></p>
<p><code>if (file_exists(&quot;test.xml&quot;)) {</code></p>
<p><code>   $xml = simplexml_load_file(&quot;test.xml&quot;);</code></p>
<p><code>   $path =&quot;/content/artikel[@id=&quot;.$id.&quot;]&quot;;</code></p>
<p><code>   if (!$res = $xml-&gt;xpath($path)) {<br>
   echo &quot;Artikel nicht vorhanden!&quot;;<br>
   }<br>
   else {<br>
   echo &quot;&lt;h1&gt;&quot;.$res[0]-&gt;titel.&quot;&lt;/h1&gt;&quot;;<br>
   echo &quot;&lt;p&gt;&lt;b&gt;&quot;.$res[0]-&gt;teaser.&quot;&lt;/b&gt;&lt;/p&gt;&quot;;<br>
   echo &quot;&lt;p&gt;&quot;.$res[0]-&gt;inhalt.&quot;&lt;/p&gt;&quot;;<br>
   }<br>
}<br>
 else {<br>
   exit(&quot;Konnte Datei nicht laden.&quot;);<br>
}<br>
?&gt;</code><br>
&nbsp;<br>
Auf den gew&uuml;nschten Artikel wird &uuml;ber den XPath Pfad /content/artikel[@id=&quot;.$id.&quot;] zugegriffen. Die Anfrage wird &uuml;ber die xpath() Methode verarbeitet und das Ergebnis der Variable $res zur&uuml;ckgegeben. In diesem Array sind nun alle Elemente des gesuchten <strong>Artikel-Objektes</strong> gespeichert. Auf diese kann wie auf ein Objekt zugegriffen werden.</p>
<p><img src="http://www.devmag.net/wp-content/uploads/php_simple_xml.gif" alt="Screenshot" width="278" height="228" border="1"><br>
<span>Das Ergebnis beim Aufruf mit id=1</span></p>
<p>Nat&uuml;rlich kann man ein solches Problem auch ohne XPath l&ouml;sen, SimpleXML stellt die dazu notwendigen Funktionen zur Verf&uuml;gung &#8211; doch bietet SimpleXML gerade durch die Schnittstelle zu XPath viele weitere <strong>M&ouml;glichkeiten f&uuml;r die dynamische Programmierung</strong>. SimpleXML sollte also nicht untersch&auml;tzt werden.</p>
<p>Weitere Informationen  zu <a href="http://php.net/simplexml%20" target="_blank">SimpleXML und PHP5</a>.</p>
(<a href="/informationen/autoren.htm">tf</a>) </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html' rel='bookmark' title='Permanent Link: Entities, oder einfach Abkürzungen'>Entities, oder einfach Abkürzungen</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/php/65-simplexml-php-5-und-xml-einfach-einfach.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entities, oder einfach Abkürzungen</title>
		<link>http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=entities-oder-einfach-abkurzungen</link>
		<comments>http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html#comments</comments>
		<pubDate>Wed, 08 Oct 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=94</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:SimpleXML PHP 5 und XML: Einfach einfach!!


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/php/65-simplexml-php-5-und-xml-einfach-einfach.html' rel='bookmark' title='Permanent Link: SimpleXML PHP 5 und XML: Einfach einfach!!'>SimpleXML PHP 5 und XML: Einfach einfach!!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_dtd_xml_enity.gif" width="60" height="60" class="illu" align="left" alt="Entities, oder einfach Abk&uuml;rzungen"/>              XML bzw. DTDs bieten &uuml;ber Enities die M&ouml;glichkeit, Abk&uuml;rzungen
              zu definieren. Diese Abk&uuml;rungen werden dann im XML Code durch
              den definierten Wert f&uuml;r das Entity ersetzt...<span id="more-94"></span>            <p>Innerhalb einer DTD kann sogenannte <b>Entities</b> definieren.
              Entity steht f&uuml;r &quot;Eintrag&quot;. Ein Entity ist eine Art
              Abk&uuml;rzung f&uuml;r z.B. ein h&auml;ufig vorkommendes Zeichen,
              oder eine Zeichenkette. Wird diese Abk&uuml;rzung dann in einem
              XML Dokument ersetzt, dann wird der Entity bei der Ausgabe durch
              den wirklichen Wert aus der DTD ersetzt. <br>
              <b><br>
              Enities erstellen</b><br>
              Ein Entity ist schnell in einer DTD definiert. <br>
              <br>
              <code>&lt;!ENTITY name &quot;Thiemo Fetzer&quot;&gt;</code><br>
              <br>
              Hinter dem einleitenden <code>&lt;!ENTITY</code> steht der Name
              des Entities, &uuml;ber welchen er sp&auml;ter angesprochen wird.
              In den folgenden Anf&uuml;hrungsstrichen steht dann der Wert, f&uuml;r
              den das Entity stehen soll.<br>
              <br>
              Auf diese Entities muss in dem XML Dokument eindeutig verwiesen
              werden. So ist es durchaus m&ouml;glich, das innerhalb des XML Dokumentes
              die Zeichenkette &quot;name&quot; vorkommt. Man muss eindeutig bezeichnen,
              das es sich bei &quot;name&quot; um einen Entity handelt.<br>
              Das geht in XML wie folgt:<br>
              <code><br>
              &amp;entity;</code><br>
              Oder f&uuml;rs Beispiel<br>
              <code>&amp;name;</code> <br>
              <br>
              Der XML Parser kann so genau erkennen, das auf einen Enity verwiesen
              wird.<br>
              Die Namen der Enities m&uuml;ssen gewissen Regeln folgen. Sie m&uuml;ssen
              mit einem Buchstaben beginnen, sie d&uuml;rfen nur aus Buchstaben
              (keine Sonderzeichen, oder deutsche Umlaute), und aus Unterstrichen
              bestehen. <br>
              <b><br>
              Ein Beispiel</b><br>
              <b><br>
              data.xml</b> <br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt;<br>
              &lt;!DOCTYPE data SYSTEM &quot;data.dtd&quot;&gt; <br>
              <br>
              &lt;user&gt;<br>
              &lt;name&gt;Mein Name&lt;/name&gt; <br>
              &lt;nic&gt;Nic&lt;/nic&gt;<br>
              &lt;signatur&gt;&amp;signatur;&lt;/signatur&gt;<br>
              &lt;/user&gt; </code><br>
              <b><br>
              data.dtd</b> <br>
              <br>
              <code> &lt;!ELEMENT user (name, nic, signatur)&gt;<br>
              &lt;!ELEMENT name (#PCDATA)&gt;<br>
              &lt;!ELEMENT nic (#PCDATA)&gt;<br>
              &lt;!ELEMENT signatur (#PCDATA)&gt;<br>
              &lt;!ENITY signatur &quot;Keine Signatur&quot;&gt;</code><br>
              <b><br>
              Das Ergebnis im Browser</b><br>
              <br>
              <img src="http://www.devmag.net/wp-content/uploads/dtd_xml_entity_1.gif" width="294" height="125" border="1" alt="Ein Entity im Browser"><br>
              <b>Ein Entity im Browser</b><br>
              <b><br>
              <br>
              Entities in DTDs</b><br>
              <br>
              Auch das ist m&ouml;glich, so k&ouml;nnen Sie Entities auch in einer
              DTD selbst verwenden. <br>
              Somit k&ouml;nnen Sie lange Attributlisten einmal definieren, und
              dann &uuml;ber Entities einf&uuml;gen, und wiederverwenden.<br>
              Die Verwendung der Entities innerhalb der DTD sieht jedoch ein wenig
              anders aus. <br>
              <br>
              Die Definition des Entities:<br>
              <br>
              <code>&lt;!ENTITY % name &quot;&quot;&gt;</code> <br>
              <br>
              Verwendet wird das Entity jetzt innerhalb der DTD so:<br>
              <br>
              <code>%name;</code> <br>
              <br>
              Besonders einleuchtend ist die Verwendung von Entities innerhalb
              einer DTD, bei der Definition von Attributen.<br>
              Bei diesen m&uuml;ssen Sie viele m&ouml;gliche Werte definieren.
              Mit Entities definieren Sie die Attribute einmal in einem Entity,
              und k&ouml;nnen diese dann beliebig oft wieder verwenden.<br>
              <br>
              <b>data.dtd</b> <br>
              <br>
              <code>&lt;!ELEMENT user (name, nic, signatur)&gt;<br>
              &lt;!ELEMENT name (#PCDATA)&gt;<br>
              &lt;!ELEMENT telefon (#PCDATA)&gt;<br>
              &lt;!ENTITY % typen &quot;art (privat|buero|mobil) #REQUIRED&quot;&gt;<br>
              &lt;!ATTLIST telefon </code><code>%typen;&gt; <br>
              </code><code>&lt;!ELEMENT nic (#PCDATA)&gt;<br>
              &lt;!ELEMENT email (#PCDATA)&gt;<br>
              &lt;!ATTLIST email %typen;&gt;</code><code><br>
              &lt;!ELEMENT signatur (#PCDATA)&gt;<br>
              &lt;!ENTITY signatur &quot;Keine Signatur&quot;&gt; <br>
              </code><br>
              <b>data.xml</b> <br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt;<br>
              &lt;!DOCTYPE data SYSTEM &quot;data.dtd&quot;&gt; <br>
              <br>
              &lt;user&gt;<br>
              &lt;name&gt;Mein Name&lt;/name&gt;<br>
              &lt;telefon art=&quot;privat&quot;&gt;123456&lt;/telefon&gt;</code><code><br>
              &lt;nic&gt;Nic&lt;/nic&gt;<br>
              &lt;email art=&quot;buero&quot;&gt;buero@irgendwo.de&lt;/email&gt;<br>
              &lt;signatur&gt;&amp;signatur;&lt;/signatur&gt;<br>
              &lt;/user&gt; </code><br>
              <b></b><br>
              Die Attributliste wird als Entity %typen; definiert, mit dieser
              Zeile.<br>
              <code>&lt;!ENTITY % typen &quot;art (privat|buero|mobil) #REQUIRED&quot;&gt;</code>
              <br>
              <br>
              Wichtig ist, das Sie das Leerzeichen nach dem % nicht vergessen,
              sonst wird das ganze selbst als Entity betrachtet.<br>
              <br>
              Das Entity selbst wird in der DTD darauf zwei mal verwendet. In
              der Definition der Attribute des Elementes <b>telefon</b>, und in
              der Attributsdefinition des Elementes <b>email</b>.<br>
              <br>
              Sie k&ouml;nnen Entities auf diese weise noch viel komplexer verschachtelt,
              und auch weiter strukturiert verwenden. Entities sind eine Erleichterung
              f&uuml;r die Arbeit mit XML und DTDs.<br>
             </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/php/65-simplexml-php-5-und-xml-einfach-einfach.html' rel='bookmark' title='Permanent Link: SimpleXML PHP 5 und XML: Einfach einfach!!'>SimpleXML PHP 5 und XML: Einfach einfach!!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Schema &#8211; Datentypen bzw. Elementwerte</title>
		<link>http://www.devmag.net/xml/97-xml-schema-datentypen-bzw-elementwerte.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xml-schema-datentypen-bzw-elementwerte</link>
		<comments>http://www.devmag.net/xml/97-xml-schema-datentypen-bzw-elementwerte.html#comments</comments>
		<pubDate>Wed, 14 May 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=97</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Was ist XML Schema? &#8211; Einführung in XML Schema XML Schema &#8211; Elemente und Attribute


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/95-was-ist-xml-schema-einfuhrung-in-xml-schema.html' rel='bookmark' title='Permanent Link: Was ist XML Schema? &#8211; Einführung in XML Schema'>Was ist XML Schema? &#8211; Einführung in XML Schema</a></li>
<li><a href='http://www.devmag.net/xml/96-xml-schema-elemente-und-attribute.html' rel='bookmark' title='Permanent Link: XML Schema &#8211; Elemente und Attribute'>XML Schema &#8211; Elemente und Attribute</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_schema_datentypen.gif" width="60" height="60" class="illu" align="left" alt="XML Schema - Datentypen bzw. Elementwerte ">            Mit XML Schema kann man eigentliche &quot;eigene&quot; Datentypen
              erstellen, indem man die Daten, die eingegeben werden d&uuml;rfen,
              gekonnt begrenzt.<span id="more-97"></span>            <p>Mit XML Schema kann man bis zu einem gewissen Grad,<b> eigene Datentypen</b>
              schaffen. Das bedeutet, dass man z.B. das Element &quot;Postleitzahl&quot;
              so definieren kann, das es nur aus maximal f&uuml;nf Zahlen bestehen
              darf, damit das Dokument g&uuml;ltig ist. So kann man &uuml;ber
              XML Schema auf diese Weise sehr spezifisch festlegen, welche Daten,
              bzw. Datenmengen ein Element aufnehmen darf. Diese Bedingungen muss
              der bestimmte Wert einhalten, damit das Element, und somit das gesamte
              XML Dokument g&uuml;ltig ist.<br>
              Nehmen wir einmal nur ein kleines Beispiel. Sie haben innerhalb
              eines XML Dokumentes das Element <b>&lt;alter&gt;</b>. Der Wert
              dieses Elementes soll logischerweise mindestens 0 sein, aber maximal
              120 (wobei das wohl schon hoch gegriffen ist).<br>
              <br>
              Das XML Schema (nur f&uuml;r das Element &quot;alter&quot;) s&auml;he
              so aus:<br>
              <br>
              <code> &lt;xs:element name=&quot;alter&quot;&gt;<br>
              &lt;xs:simpleType&gt;<br>
              <b>&lt;xs:restriction base=&quot;xs:integer&quot;&gt;<br>
              &lt;xs:minInclusive value=&quot;0&quot;/&gt;<br>
              &lt;xs:maxInclusive value=&quot;120&quot;/&gt;<br>
              &lt;/xs:restriction&gt;</b><br>
              &lt;/xs:simpleType&gt;<br>
              &lt;/xs:element&gt; </code><br>
              <br>
              Zun&auml;chst wird, wie wir es kennen das Element definiert, durch
              <b> &lt;xs:element&gt;</b>. Wie Sie im letzten Teil des Workshops
              gelernt haben, muss XML Schema jetzt davon ausgehen, das das Element
              &quot;alter&quot; ein komplexes Element ist. Da dies jedoch nicht
              der Fall ist, wird mit dem n&auml;chsten Befehl <b>&lt;xs:simpleType&gt;</b>
              angegeben, dass es sich um ein einfaches Element handelt. Nun wird
              es interessant. Jetzt kommt die Festlegung, bzw. die Eingrenzung
              des Wertebereichs, durch den Befehl <b>&lt;xs:restriction&gt;</b>.
              <br>
              Im wird eine Basis gegeben, in dem Fall ist es der Datentyp <b>integer</b>,
              also eine Ganzzahl. Von dieser Basis aus, wird das Element weiter
              eingegrenzt. Die folgenden Befehle definieren den Minimalwert, und
              den Maximalwert. Und schon ist das Element in seinem Wertebereich
              eingeschr&auml;nkt worden.<br>
              <br>
              Die Definition kann auch noch ein wenig abge&auml;ndert werden.
              So k&ouml;nnen Sie den Wertebereich einmal definieren, und dann
              auf verschiedene Elemente anwenden.<br>
              Im folgenden wird der Wertetyp &quot;alter&quot; definiert:<br>
              <code>&lt;xs:simpleType <b>name=&quot;alter&quot;</b>&gt;<br>
              &lt;xs:restriction base=&quot;xs:integer&quot;&gt;<br>
              &lt;xs:minInclusive value=&quot;0&quot;/&gt;<br>
              &lt;xs:maxInclusive value=&quot;120&quot;/&gt;<br>
              &lt;/xs:restriction&gt;<br>
              &lt;/xs:simpleType&gt;</code><br>
              Der Name des Typs wird &uuml;ber das name-Attribut definiert. &Uuml;ber
              diesen Namen kann man dann von der Definition eines Elementes auf
              den Datentyp verweisen.<br>
              Das folgende Beispiel definiert ein Element <b>&lt;dein_alter&gt;</b>.
              &Uuml;ber das Attribut type=&quot;&quot; wird auf den Datentyp bzw.
              den Wertebereich verwiesen. Dieser wurde weiter oben definiert.
              Sie k&ouml;nnten jetzt mehrere Elemente mit diesem Wertebereich
              definieren.<br>
              <code>&lt;xs:element name=&quot;dein_alter&quot; <b>type=&quot;alter&quot;
              </b>/&gt;</code></p>
            <h4>Regul&auml;re Ausdr&uuml;cke verwenden<br>
            </h4>
            <p>Bei der Definition von Wertebereichen k&ouml;nnen auch eine Form
              von Regul&auml;ren Ausdr&uuml;cken verwendet werden. <br>
              Die folgende XML Schema Typ-Definition begrenzt den Zeichenbereich
              des Elementes &quot;name&quot; auf das kleine ABC.<br>
              <br>
              <code> &lt;xs:element name=&quot;name&quot;&gt; <br>
              &lt;xs:simpleType&gt;<br>
              &lt;xs:restriction base=&quot;xs:string&quot;&gt;<br>
              <b>&lt;xs:pattern value=&quot;[a-z]&quot; /&gt;<br>
              </b>&lt;/xs:restriction&gt;<br>
              &lt;/xs:simpleType&gt;<br>
              &lt;/xs:element&gt;</code> <br>
              <br>
              Sie k&ouml;nnen die Typ-Definition, wie oben beschrieben, auch wieder
              unabh&auml;ngig vom Element definieren. Bei dieser Begrenzung wird
              als Basis der Datentyp &quot;string&quot;, also Zeichenkette definiert.
              <br>
              Mit dem Befehl<b> xs:pattern</b> wird der Wertebereich in Form eines
              Regul&auml;ren Ausdrucks definiert.<br>
              Mit dem oberen Regul&auml;ren Ausdruck wird nur das kleine ABC aktzeptiert.
              Mit folgendem Regul&auml;ren Ausdruck wird sowohl die Buchstaben
              aus dem Gro&szlig;en, als auch aus dem Kleinen ABC aktzeptiert:<br>
              <code><b>&lt;xs:pattern value=&quot;[a-zA-Z]&quot; /&gt;</b></code><br>
              <br>
              Mit dem n&auml;chsten Beispiel werden nur Zahlen von 0-9 als Wert
              angenommen.<code><br>
              <b>&lt;xs:pattern value=&quot;[0-9]&quot; /&gt;<br>
              </b></code><br>
              Dies bringt uns auf die Anwendung f&uuml;r unsere Postleitzahl.
              Hierbei wird das Element &quot;<b>&lt;plz&gt;</b>&quot; definiert:<code><br>
              <br>
              &lt;xs:element name=&quot;plz&quot;&gt;<br>
              &lt;xs:simpleType&gt;<br>
              &lt;xs:restriction base=&quot;xs:integer&quot;&gt;<br>
              <b>&lt;xs:pattern value=&quot;[0-9][0-9][0-9][0-9][0-9]&quot;/&gt;</b><br>
              &lt;/xs:restriction&gt;<br>
              &lt;/xs:simpleType&gt;<br>
              &lt;/xs:element&gt; <br>
              <br>
              &lt;xs:pattern value=&quot;[0-9][0-9][0-9][0-9][0-9]&quot; /&gt;</code><br>
              Es werden f&uuml;nf Zeichen definiert. Diese d&uuml;rfen nur Werte
              von 0-9 aufnehmen.<br>
              Das Beispiel der Postleitzahl kann auch durch diesen Regul&auml;ren
              Ausdruck erreicht werden:<br>
              <code>&lt;xs:pattern value=&quot;[0-9]{5}&quot; /&gt;</code><br>
              Wie bereits zuvor soll das Element aus f&uuml;nf Zahlen, von 0-9
              bestehen. <br>
              <br>
              Wie Sie sehen lassen sich Regul&auml;re Ausdr&uuml;cke in XML Schema
              bei den &quot;Bedingten Inhalten&quot; sehr gut verwenden.<br>
            </p>
            <h4>Maximale/ Minimale L&auml;nge bei Zeichenketten</h4>
            <p>Folgendes Beispiel definert ein Element &quot;<b>&lt;pseudo&gt;</b>&quot;.
              Dieses soll eine Zeichenkette sein, die aus minimal f&uuml;nf Zeichen,
              und maximal aus 10 Zeichen bestehen.<br>
              <br>
              <code> &lt;xs:element name=&quot;pseudo&quot;&gt;<br>
              &lt;xs:simpleType&gt;<br>
              &lt;xs:restriction base=&quot;xs:string&quot;&gt;<br>
              <b>&lt;xs:minLength value=&quot;5&quot;/&gt;<br>
              &lt;xs:maxLength value=&quot;8&quot;/&gt;</b><br>
              &lt;/xs:restriction&gt;<br>
              &lt;/xs:simpleType&gt;<br>
              &lt;/xs:element&gt; </code><br>
              <br>
              Die Eingrenzung der Zeichenl&auml;nge wird, durch die Elemente <code>&lt;xs:minLength
              /&gt;</code> und <code>&lt;xs:maxLength /&gt;</code> erreicht.</p>
            <h4>Feste Werte definieren</h4>
            <p>&Auml;hnlich wie bei der Definition von Attributen kann man auch
              mit XML Schema feste Werte f&uuml;r ein Element definieren.<br>
              In diesem Beispiel wird ein Element &quot;<b>&lt;werbung&gt;</b>&quot;
              definiert. Dieses Element ist nur g&uuml;ltig, wenn der Wert entweder
              &quot;Banner, Newsletteranzeige oder Textanzeige&quot; ist.<br>
              <br>
              <code>&lt;xs:element name=&quot;werbung&quot;&gt;<br>
              &lt;xs:simpleType&gt;<br>
              &lt;xs:restriction base=&quot;xs:string&quot;&gt;<br>
              <b>&lt;xs:enumeration value=&quot;Banner&quot;/&gt;<br>
              &lt;xs:enumeration value=&quot;Newsletteranzeige&quot;/&gt;<br>
              &lt;xs:enumeration value=&quot;Textanzeige&quot;/&gt;</b><br>
              &lt;/xs:restriction&gt;<br>
              &lt;/xs:simpleType&gt;<br>
              &lt;/xs:element&gt; </code><br>
            </p>
            <p>Was mit DTDs nicht m&ouml;glich war, wird mit XML Schema nun m&ouml;glich.
              der Benutzer kann die Werte, die als g&uuml;ltig gelten sollen,
              sehr genau <b>spezifizieren</b>. So wird kann man also durch eine
              genau Anwendung von XML Schema verhindern, das<b> falsche Daten</b>
              aufgenommen werden. </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/95-was-ist-xml-schema-einfuhrung-in-xml-schema.html' rel='bookmark' title='Permanent Link: Was ist XML Schema? &#8211; Einführung in XML Schema'>Was ist XML Schema? &#8211; Einführung in XML Schema</a></li>
<li><a href='http://www.devmag.net/xml/96-xml-schema-elemente-und-attribute.html' rel='bookmark' title='Permanent Link: XML Schema &#8211; Elemente und Attribute'>XML Schema &#8211; Elemente und Attribute</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/97-xml-schema-datentypen-bzw-elementwerte.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL/ XSLT Workshop Teil 3</title>
		<link>http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xsl-xslt-workshop-teil-2-2</link>
		<comments>http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html#comments</comments>
		<pubDate>Sat, 10 May 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=86</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:XSL/ XSLT Workshop Teil 1 XSL/ XSLT Workshop Teil 2


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 1'>XSL/ XSLT Workshop Teil 1</a></li>
<li><a href='http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 2'>XSL/ XSLT Workshop Teil 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_2.gif" class="illu" width="60" height="60" align="left" alt="XSL/ XSLT Workshop">Im dritten Teil des XSL/ XSLT Workshops lernen Sie kennen, wie man Daten mit XSL filtert, und Sie werden in die Sortier - Anweisung
von XSL eingeführt.<span id="more-86"></span>
        <p>Manchmal ist es notwendig, nur bestimmte Datenteile herauszufiltern 
              Hierf&uuml;r haben Sie bereits im ersten Teil des XSL Workshops 
              die <code>&lt;xsl:for-each&gt;</code> Anweisung kennen gelernt. 
              Diese kann man so erweitern, das man bestimmte XML Daten ausfiltern 
              kann. Als erstes Beispiel w&auml;hlen wir eine XML Buchdatenbank, 
              in der der Titel eines Buches, der Name des Autors, und der Verlag 
              gespeichert sind.<br>
              <br>
              <b>buch.xml<br>
              </b><br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;buch.xsl&quot;?&gt;<br>
              &lt;buch_db&gt;<br>
              &lt;buch&gt;<br>
              &lt;titel&gt;Jetzt lerne ich - XML&lt;/titel&gt;<br>
              &lt;autor&gt;G&uuml;nter Born&lt;/autor&gt;<br>
              &lt;verlag&gt;MUT&lt;/verlag&gt;<br>
              &lt;/buch&gt;<br>
              &lt;buch&gt;<br>
              &lt;titel&gt;Programmieren lernen&lt;/titel&gt;<br>
              &lt;autor&gt;Ignatz Schelz&lt;/autor&gt;<br>
              &lt;verlag&gt;MUT&lt;/verlag&gt;<br>
              &lt;/buch&gt;<br>
              &lt;buch&gt;<br>
              &lt;titel&gt;XML - Das Einsteigerseminar&lt;/titel&gt;<br>
              &lt;autor&gt;Michael Seeboerger-Weichselbaum&lt;/autor&gt;<br>
              &lt;verlag&gt;BHV&lt;/verlag&gt;<br>
              &lt;/buch&gt;<br>
              &lt;buch&gt;<br>
              &lt;titel&gt;SVG - Das Einsteigerseminar&lt;/titel&gt;<br>
              &lt;autor&gt;Helma Spoona&lt;/autor&gt;<br>
              &lt;verlag&gt;BHV&lt;/verlag&gt;<br>
              &lt;/buch&gt;<br>
              &lt;/buch_db&gt; </code><br>
              <br>
              Wie Sie in der XML Datei sehen, taucht der Name des Verlags &ouml;fters 
              auf. Nun will ein Besucher z.B. nur die B&uuml;cher aus dem MUT 
              Verlag sehen. Sie k&ouml;nnten einerseits ein eigenes XML Dokument 
              f&uuml;r die B&uuml;cher des MUT Verlags anlegen, oder einfach die 
              Daten herausfiltern. <br>
              &Uuml;ber das folgende XSL Stylesheet werden nur die B&uuml;cher 
              angezeigt, die auch im MUT Verlag erschienen sind.<br>
              <br>
              <b>buch.xsl</b><br>
              <br>
              <code> &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;buch_db&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Buch.xsl&lt;/title&gt;<br>
              &lt;/head&gt; <br>
              &lt;body&gt;<br>
              &lt;xsl:for-each select=&quot;buch[verlag='MUT']&quot;&gt;<br>
              &lt;xsl:value-of select=&quot;titel&quot; /&gt;&lt;br /&gt;<br>
              &lt;xsl:value-of select=&quot;autor&quot; /&gt;&lt;br /&gt;<br>
              &lt;xsl:value-of select=&quot;verlag&quot; /&gt;&lt;br /&gt;&lt;br 
              /&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt; </code><br>
              <br>
              Die Ausgabe im Browser (IE 6.0) sieht wie folgt aus:<br>
              <br>
              <img src="images/xsl_4.gif" width="156" height="156" border="1" alt="Gefilterte Daten mit XSL"><b><br>
              Gefilterte Daten mit XSL</b> <br>
              <br>
              Der Schl&uuml;ssel liegt wie schon gesagt in <code>&lt;xsl:for-each&gt;</code> 
              Anweisung.<br>
              <code><br>
              &lt;xsl:for-each select=&quot;buch[verlag='MUT']&quot;&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              </code><br>
              Hier wird durch die Angabe im select=&quot;&quot; Teil nur die Daten 
              der B&uuml;cher ausgegeben, deren Verlag MUT ist. Dabei ist <code>buch</code> 
              der Verweis auf das Element &lt;buch&gt;. <br>
              <br>
              Der Filter kann auch anders gestaltet werden:<br>
              <br>
              <code>buch[verlag!='MUT']</code><br>
              Alle B&uuml;cher werden angezeigt, bei denen der Verlag <b>nicht</b> 
              MUT ist.<br>
              Es stehen noch weitere sogenannte Wahrheitsoperatoren zur Verf&uuml;gung.<br>
              <b><br>
              Die XSL Wahrheitsoperatoren</b><br>
            </p>
            <table width="33%" border="1" cellspacing="0" cellpadding="2">
              <tr> 
                <td width="44%">= </td>
                <td width="56%">ist gleich</td>
              </tr>
              <tr> 
                <td width="44%">!= </td>
                <td width="56%">nicht gleich</td>
              </tr>
              <tr> 
                <td height="24" width="44%">&amp;lt;</td>
                <td height="24" width="56%">weniger als</td>
              </tr>
              <tr> 
                <td width="44%">&amp;gt;</td>
                <td width="56%">gr&ouml;&szlig;er als</td>
              </tr>
            </table>
            <p>Die Operatoren &amp;lt; und &amp;gt; lassen sich jedoch nur wirklich 
              sinnvoll auf Ganzahlen anwenden.<br>
              <br>
            <h4> Sortieren der Daten</h4>
            <p>Wir greifen das Beispiel von oben nochmals auf, und wollen jetzt 
              die B&uuml;cher nach den Verlagen sortieren. Dabei sollen die Verlage 
              nach dem ABC sortiert werden. Das kann mit dem XSL Befehl <code>&lt;xsl:sort 
              /&gt;</code><br>
              Befehl erreicht werden.<br>
              <br>
              Das XSL Stylesheet:<br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;buch_db&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Buch.xsl&lt;/title&gt;<br>
              &lt;/head&gt; <br>
              &lt;body&gt;<br>
              &lt;xsl:for-each select=&quot;buch&quot;&gt;<br>
              &lt;xsl:sort select=&quot;verlag&quot; order=&quot;ascending&quot;/&gt;<br>
              &lt;xsl:value-of select=&quot;titel&quot; /&gt;&lt;br /&gt;<br>
              &lt;xsl:value-of select=&quot;autor&quot; /&gt;&lt;br /&gt;<br>
              &lt;xsl:value-of select=&quot;verlag&quot; /&gt;&lt;br /&gt;&lt;br 
              /&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              <br>
              &Uuml;ber den <code>&lt;xsl:sort /&gt;</code> Befehl werden die 
              Inhalte nach dem Verlag sortiert. &Uuml;ber den <code>order=&quot;&quot;</code> 
              Befehl k&ouml;nnen Sie die Reihenfolge bestimmen.<br>
            </p>
            <table width="58%" border="1" cellspacing="0" cellpadding="2">
              <tr> 
                <td>ascending </td>
                <td>Absteigend</td>
              </tr>
              <tr> 
                <td>descending</td>
                <td>Aufsteigend</td>
              </tr>
            </table>
            <p>Desweiteren kann dem Element die Attribute <br>
            </p>
            <table width="100%" border="1" cellspacing="0" cellpadding="2">
              <tr> 
                <td width="25%">Attribut</td>
                <td width="34%">Werte</td>
                <td width="41%">Erkl&auml;rung</td>
              </tr>
              <tr> 
                <td width="25%">case-order</td>
                <td width="34%">upper-first | lower-first</td>
                <td width="41%">Ob Gro&szlig;buchstaben vor oder nach Kleinbuchstaben 
                  kommen. </td>
              </tr>
              <tr> 
                <td width="25%">data-type</td>
                <td width="34%">text | number | qname</td>
                <td width="41%">Der Datentyp nach dem sortiert wird. qname verweist 
                  auf einen selbst generierten Datentyp.</td>
              </tr>
            </table>
            <p>Die Sortieranweisung kann mitunter sehr komplex sein. Hierzu wird 
              in den n&auml;chsten Wochen ein eigener Artikel ver&ouml;ffentlicht. </p>
</p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 1'>XSL/ XSLT Workshop Teil 1</a></li>
<li><a href='http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 2'>XSL/ XSLT Workshop Teil 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zweisamkeit &#8211; XML und HTML</title>
		<link>http://www.devmag.net/xml/90-zweisamkeit-xml-und-html.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zweisamkeit-xml-und-html</link>
		<comments>http://www.devmag.net/xml/90-zweisamkeit-xml-und-html.html#comments</comments>
		<pubDate>Sat, 10 May 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=90</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:HTML Kurs &#8211; Bilder mit dem img-Tag HTML Code optimieren, andere Ansätze HTML mit Zeit &#8211; HTML+Time


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/html/10-html-kurs-bilder.html' rel='bookmark' title='Permanent Link: HTML Kurs &#8211; Bilder mit dem img-Tag'>HTML Kurs &#8211; Bilder mit dem img-Tag</a></li>
<li><a href='http://www.devmag.net/html/3-html-code-optimieren-andere-ansatze.html' rel='bookmark' title='Permanent Link: HTML Code optimieren, andere Ansätze'>HTML Code optimieren, andere Ansätze</a></li>
<li><a href='http://www.devmag.net/html/37-html-mit-zeit-htmltime.html' rel='bookmark' title='Permanent Link: HTML mit Zeit &#8211; HTML+Time'>HTML mit Zeit &#8211; HTML+Time</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_html.gif" width="60" height="60" class="illu" align="left" alt="Zweisamkeit - XML und HTML" />Zum einen kann man XML mit CSS und XSL darstellen, jedoch ist auch
              die direkte Kombination von HTML und XML m&ouml;glich.<span id="more-90"></span>            <p>Die Darstellung von XML mit CSS ist wahrscheinlich nicht zeitgem&auml;&szlig;,
              da CSS auch gar nicht daf&uuml;r gedacht ist. Auch die Darstellung
              von XML mit XSL ist f&uuml;r so manch einen Entwickler einfach zu
              Komplex. HTML hilft hier weiter. <br>
              So kann &uuml;ber einen XML Namensraum die HTML Definition, bzw.
              die XHTML Definition, da diese XML konform ist, in einem XML Dokument
              eingegliedert werden. Deshalb kann man XML mit XHTML kombinieren.<br>
              <br>
              Ein Beispiel:<br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;?xml-stylesheet type=&quot;text/css&quot; href=&quot;style.css&quot;?&gt;
              <br>
              &lt;inhalt xmlns:html=&quot;http://www.w3.org/Profiles/XHTML-transitional&quot;&gt;<br>
              &lt;logo&gt;<br>
              &lt;html:img src=&quot;/images/logo.gif&quot; width=&quot;200&quot;
              height=&quot;100&quot; /&gt; <br>
              &lt;/logo&gt; <br>
              &lt;beschreibung&gt;<br>
              &lt;html:p&gt;Das devmag ist ein Onlinemagazin f&uuml;r alle Internetnutzer,
              die eine Homepage erstellen, verwalten und weiterentwickeln wollen!&lt;/html:p&gt;<br>
              &lt;/beschreibung&gt; <br>
              &lt;todo&gt;<br>
              &lt;html:ul&gt; <br>
              &lt;html:li&gt;Neues Webmasterlexikon&lt;/html:li&gt;<br>
              &lt;html:li&gt;Ladezeitoptimierung&lt;/html:li&gt;<br>
              &lt;html:li&gt;Redaktionssystem entwickeln, und integrieren&lt;/html:li&gt;<br>
              &lt;/html:ul&gt;<br>
              &lt;/todo&gt; <br>
              &lt;html:br /&gt;<br>
              &lt;anregungen&gt;<br>
              &lt;html:bold&gt;Weitere Anregungen?&lt;html:br /&gt;<br>
              &lt;html:a href=&quot;mailto:redaktion@devmag.net&quot;&gt;<br>
              redaktion@devmag.net<br>
              &lt;/html:a&gt;<br>
              &lt;/html:bold&gt; <br>
              &lt;/anregungen&gt;<br>
              &lt;/inhalt&gt; </code><br>
              <br>
              Sie sehen hier eigentlich ein totales Durcheinander, doch es ist
              sehr genau strukturiert, und gibt formatierte XML Daten aus. Es
              muss jedoch ein Stylesheet angegeben sein, auch wenn sich in diesem
              keine Definitionen befinden. Ansonsten wird die XML Datei nicht
              dargestellt, da diese nur als Datenbank gehandhabt wird.<br>
              <br>
              M&ouml;chten Sie &uuml;ber das Stylesheet einzelne XHTML Elemente
              formatieren, dann m&uuml;ssen Sie das ebenfalls &uuml;ber den Namespace
              tun.<br>
              Sie m&ouml;chten z.B. den P - Tag f&uuml;r einen Blocksatz in dem
              stylesheet formatieren, die Definition k&ouml;nnte so aussehen:<br>
              <br>
              <code> html\:p {<br>
              font-family: Arial;<br>
              font-size: 13px;<br>
              color: red;<br>
              font-weight: bold;<br>
              } </code><br>
              <br>
              Wichtig ist das <b>html\:</b> vor dem jeweiligen Tag, oder der Klasse.<br>
              <br>
              Sie m&uuml;ssen die CSS Anweisungen nicht in einem externen Stylesheet
              auslagern, die Definitionen k&ouml;nnen Sie ebenfalls innerhalb
              des XML Dokumentes machen.<br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;?xml-stylesheet type=&quot;text/css&quot;?&gt; &lt;!-- Internes
              Stylesheet --&gt;<br>
              &lt;inhalt xmlns:html=&quot;http://www.w3.org/Profiles/XHTML-transitional&quot;&gt;<br>
              &lt;html:style&gt;<br>
              html\:p {<br>
              font-family: Arial;<br>
              font-size: 13px;<br>
              color: red;<br>
              font-weight: bold;<br>
              }<br>
              &lt;/html:style&gt; </code><br>
              <br>
              Mit der Kombination von XML Daten und &quot;alten&quot; HTML, bzw.
              XHTML Elementen haben Sie eine weitere M&ouml;glichkeit kennen gelernt,
              XML im Browser darzustellen.<br>
              Diese Methode klappt normalerweise nur bei den aktuellsten Browsern,
              die &uuml;ber einen XML Parser verf&uuml;gen.<br>
              <br></p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/html/10-html-kurs-bilder.html' rel='bookmark' title='Permanent Link: HTML Kurs &#8211; Bilder mit dem img-Tag'>HTML Kurs &#8211; Bilder mit dem img-Tag</a></li>
<li><a href='http://www.devmag.net/html/3-html-code-optimieren-andere-ansatze.html' rel='bookmark' title='Permanent Link: HTML Code optimieren, andere Ansätze'>HTML Code optimieren, andere Ansätze</a></li>
<li><a href='http://www.devmag.net/html/37-html-mit-zeit-htmltime.html' rel='bookmark' title='Permanent Link: HTML mit Zeit &#8211; HTML+Time'>HTML mit Zeit &#8211; HTML+Time</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/90-zweisamkeit-xml-und-html.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL/ XSLT Workshop Teil 1</title>
		<link>http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xsl-xslt-workshop-teil-1</link>
		<comments>http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html#comments</comments>
		<pubDate>Tue, 29 Apr 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=85</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:XSL/ XSLT Workshop Teil 2 XSL/ XSLT Workshop Teil 3


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 2'>XSL/ XSLT Workshop Teil 2</a></li>
<li><a href='http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 3'>XSL/ XSLT Workshop Teil 3</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_2.gif" class="illu" width="60" height="60" align="left" alt="XSL/ XSLT Workshop">Mit XSL kann man XML Daten darstellen. XSLT transformiert XML Daten
              in ein beliebiges Format. Diese Einf&uuml;hrung gibt einen Einblick
              in diese beiden Techniken, und deren Anwendung.<span id="more-85"></span>XML ist als reine Datensprache konzipiert. XML kann folglich nicht
              alleine stehen. Die DTD, oder das Schema definiert die verwendeten
              Elemente. Die Darsetllung von XML Daten ist nicht prim&auml;r, sondern
              sekund&auml;r. <br>
              <br>
              Man kann XML Daten zwar bedingt mit CSS darstellen, das ist jedoch
              nicht das gelbe vom Ei, da CSS nie f&uuml;r eine solche Anwendung
              gemacht wurde. CSS entspricht nicht dem Potential von XML. <br>
              <b><br>
              Was ist XSL/ XSLT?</b><br>
              Die Extensible Stylesheet Language, kurs XSL ist eine komplexe Sprache
              zum <b>formatieren</b> von XML. Formatieren hei&szlig;t in dem Sinne,
              die Daten zu sortieren, einzelne Abschnitte z.B. zu nummerieren,
              oder bedingt auszugeben.<br>
              XSL hat eine kleinere Untermenge, und zwar <b>XSLT</b>. XSLT bedeutet
              XSL Transformation, es wandelt XML Daten in andere auf XML basierte
              Sprachen, wie HTML um.<br>
              Ein anschauliches Beispiel ist hierbei eine XML Datenbank, in welcher
              Daten der Autoren gespeichert werden.<br>
              <br>
              <code> &lt;autor&gt;<br>
              &lt;name&gt;Thiemo Fetzer&lt;/name&gt;<br>
              &lt;nic&gt;tf&lt;/nic&gt; <br>
              &lt;email&gt;redaktion@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;</code><br>
              Wird durch XSLT zu<br>
              <code>&lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;Thiemo Fetzer&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;tf&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;redaktion@devmag.net&lt;/td&gt;<br>
              &lt;/tr&gt;</code><br>
              <br>
              Mit XSL k&ouml;nnen Sie jetzt z.B. sagen, das die Autoren nach dem
              ABC angezeigt werden, oder das nur ein bestimmter Autor angezeigt
              wird. <br>
              <b><br>
              Das erste Beispiel f&uuml;r XSL</b><br>
              Die Beispiele funktionieren garantiert mit dem Internet Explorer
              6, da dieser als einer der wenigen XSL kompatibel ist. <br>
              <br>
              <b>autor.xml<br>
              </b> <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              <b>&lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;autor.xsl&quot;?&gt;</b><br>
              &lt;autor&gt;<br>
              &lt;name&gt;Thiemo Fetzer&lt;/name&gt;<br>
              &lt;nic&gt;tf&lt;/nic&gt; <br>
              &lt;email&gt;redaktion@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;</code><br>
              Der hier fett gedruckte Teil verweist auf das XSL Template <b>autor.xsl</b>.
              In dieser Datei befinden sich die XSL Anweisungen.<br>
              <b><br>
              autor.xsl</b> <br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot;<br>
              xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;/&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Autor.xsl&lt;/title&gt;<br>
              &lt;/head&gt; </code><code><br>
              &lt;body&gt;<br>
              &lt;table border=&quot;1&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;Name&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;Nic&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;Email&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;autor/name&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;autor/nic&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;autor/email&quot;/&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/table&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              <br>
              Erstellen Sie einfach einmal diese Dateien, und schauen Sie sich
              das Ergebnis in ihrem Browser an.<br>
              Und siehe da, Sie bekommen eine Tabelle zu sehen, die den Inhalt
              aus der Datei autor.xml ausgibt.<br>
              <b><br>
              </b><img src="http://www.devmag.net/wp-content/uploads/xsl_1.gif" width="458" height="82" border="1" alt="Die Ausgabe"><br>
              <b>Die Ausgabe</b> <br>
              <br>
              Das XSL Stylesheet beginnt ebenfalls mit dem Verweis auf die XML
              Version, da die Befehle der Stylesheets ebenfalls auf <b>XML basieren</b>,
              und deshalb auch den selben <b>Regeln</b> unterworfen sind.<br>
              <code><br>
              &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;</code><br>
              <br>
              Die n&auml;chste Anweisung verweist auf die Version von XSL, und
              definiert den Namespace f&uuml;r die XSL Anweisungen. In diesem
              Fall ist es der Namensraum &quot;<b>xsl</b>&quot;, das hei&szlig;t,
              das jedem XSL Befehl ein <b>xsl:</b> vorangestellt werden muss,
              damit sich die XSL Anweisungen von den anderen Tags eindeutig unterscheiden,
              und es zu keinen Komplikationen kommt. Dieser Befehl umschlie&szlig;t
              das komplette Stylesheet. Nur zwischen diesem Tag k&ouml;nnen XSL
              Befehle stehen, da Sie nur in diesem Bereich definier sind.<br>
              <code><br>
              &lt;xsl:stylesheet version=&quot;1.0&quot;<br>
              xmlns:<b>xsl</b>=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;</code><br>
              <br>
              Die Definition des Namespaces ist hier fett gedruckt. Die folgende
              Adresse verweist auf die W3C Ver&ouml;ffentlichung des XSLT Standards.<br>
              <code><br>
              &lt;xsl:template match=&quot;/&quot;&gt;</code><br>
              <br>
              Mit dieser Zeile beginnt das XSL Template, dieser Befehl umschlie&szlig;t
              das Template. Dies ist auch schon der gr&ouml;&szlig;te Unterschied
              zu CSS. CSS verwendet Regeln, XSL arbeitet mit Templates (Vorlagen).<br>
              Das Attribut <code>match=&quot;/&quot;</code> besagt, das der Browser
              bei dem Wurzelelement, also dem Element in erster Ebene beginnen
              soll. Setzen Sie <code>match=&quot;autor&quot;</code> dann m&uuml;ssen
              Sie dieses &quot;autor&quot; bei folgenden Angaben nicht mehr machen,
              da der Browser in dieser Ebene startet.<br>
              <br>
              Nun beginnt der Teil, der auch im Browser ausgegeben wird. Wie Sie
              sehen hat auch das XSL Template einen Kopf, und einen K&ouml;rper.
              Der interssanteste Teil ist, wie die Daten aus der XML Datei ermittelt
              werden, und dann innerhalb der Tabellenstruktur ausgegeben werden.<br>
              <code><br>
              &lt;xsl:value-of select=&quot;autor/name&quot;/&gt;</code><br>
              &quot;<b>Value-of</b>&quot; bedeutet soviel wie &quot;Wert von&quot;.
              Mit dem Attribut <b>select=&quot;&quot;</b> geben Sie die Quelle,
              in welcher der Wert steht, an. Die Quelle ist &quot;<b>autor/name</b>&quot;.
              <br>
              Da XML ja beliebig ineinander verschachtelt werden kann, muss auch
              die Angabe der Quelle sehr flexibel sein. &quot;<b>autor</b>&quot;
              steht f&uuml;r das Wurzelelement, &quot;<b>name</b>&quot; f&uuml;r
              das untergeordnete <b>&lt;name&gt;</b> Element. Die Unterordnung
              wird durch den<b> /</b> ausgedr&uuml;ckt. <br>
              Das Element &quot;<b>name</b>&quot; k&ouml;nnte jetzt noch die Unterelemente
              &quot;<b>vorname</b>&quot;, &quot;<b>nachname</b>&quot; haben. <br>
              Der Verweis s&auml;he dann so aus:<br>
              <code>&lt;xsl:value-of select=&quot;autor/name/vorname&quot;/&gt;</code><br>
              bzw.<br>
              <code>&lt;xsl:value-of select=&quot;autor/name/nachname&quot;/&gt;</code>
              <br>
              <br>
              Am Anfang haben wir definiert, das der Browser beim Wurzelelement
              anfangen soll. W&uuml;rden Sie hier <br>
              <code>&lt;xsl:template match=&quot;autor&quot;&gt;</code> <br>
              angeben, dann w&uuml;rde der Verweis auf die Quelle nur noch so
              aussehen:<br>
              <code>&lt;xsl:value-of select=&quot;name&quot;/&gt;</code><br>
              <br>
              Nun aber zur&uuml;ck zu dem Beispiel. Es gibt hierbei ja nichts
              mehr interessantes. <br>
              <code>&lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              Es wird zun&auml;chst das Template geschlossen, und darauf das komplette
              Stylesheet.<br>
              <b><br>
              for-each</b> <br>
              <br>
              Das Beispiel hat jedoch noch kaum die St&auml;rken von XSL gezeigt.
              <br>
              Die n&auml;chste Frage, die sich automatisch stellt ist klar, was
              macht man, wenn man mehrere Autoren in der XML Datenbank hat, und
              alle Autoren auf einmal anzeigen lassen will.<br>
              Auch hierf&uuml;r gibt es eine Anweisung, die for-each Anweisung.
              for-each bedeutet soviel wie &quot;f&uuml;r jedes&quot;. Mit ihm
              kann man folglich eine Art Regel aufstellen, die f&uuml;r jedes
              Element gelten soll.<br>
              <br>
              <b>autor.xml<br>
              </b> <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;autor.xsl&quot;?&gt;<br>
              &lt;autoren&gt;<br>
              &lt;autor&gt;<br>
              &lt;name&gt;Thiemo Fetzer&lt;/name&gt;<br>
              &lt;nic&gt;tf&lt;/nic&gt; <br>
              &lt;email&gt;redaktion@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;<br>
              &lt;autor&gt;<br>
              &lt;name&gt;Heinz Mustermann&lt;/name&gt;<br>
              &lt;nic&gt;hm&lt;/nic&gt; <br>
              &lt;email&gt;hm@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;<br>
              &lt;/autoren&gt;</code><br>
              <br>
              Das XSL Stylesheet soll alle Autoren in der Liste ausgeben. Hierf&uuml;r
              m&uuml;ssen wir das obere Stylesheet mit dem for-each Befehl erweitern.<br>
              <br>
              <b>autor.xsl</b> <br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot;<br>
              xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;/&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Autor.xsl&lt;/title&gt;<br>
              &lt;/head&gt; </code><code><br>
              &lt;body&gt;<br>
              &lt;table border=&quot;1&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;Name&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;Nic&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;Email&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;name&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;nic&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;email&quot;/&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              &lt;/table&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              <b><br>
              Die Ausgabe im IE 6</b><br>
              <img src="http://www.devmag.net/wp-content/uploads/xsl_2.gif" width="462" height="98" border="1" alt="Die Ausgabe im IE 6">
              <br>
              <br>
              Die for-each Anweisung ist eine Art Schleife, bei der Code zwischen
              dem &ouml;ffnenden und dem schlie&szlig;enden Element auf jedes
              ausgew&auml;hlte Element angewendet wird.<br>
              <br>
              <code>&lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;name&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;nic&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;email&quot;/&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:for-each&gt;</code> <br>
              <br>
              Durch <b>select=&quot;&quot;</b> kann man auch dieses for-each Anweisungen
              eine Quelle angeben, auf welche Elemente sie angewendet werden.
              Es lassen sich auch mehrere for-each Anweisungen ineinander <b>verschachteln</b>.<br>
              Wir ziehen hierzu nochmals das Beispiel von oben heran. Hierbei
              wird das Element &quot;name&quot; nochmals in &quot;vorname&quot;,
              und &quot;nachname&quot; unterteilt. <br>
              Um trotzdem das Ergebnis von oben zu erhalten, muss eine zweite
              for-each Anweisung verwendet werden, die in die erste verschachtelt
              ist. <br>
              <br>
              <code>&lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td&gt;<b>&lt;xsl:for-each select=&quot;name&quot;&gt;<br>
              &lt;xsl:value-of select=&quot;vorname&quot;/&gt;&lt;br /&gt;<br>
              &lt;xsl:value-of select=&quot;nachname&quot;/&gt;&lt;br /&gt;<br>
              &lt;/xsl:for-each&gt;</b><br>
              &lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;nic&quot;/&gt;&lt;/td&gt;<br>
              &lt;td&gt;&lt;xsl:value-of select=&quot;email&quot;/&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:for-each&gt;</code><br>
              <br>
              Das war der erste Teil des XSL Kurses. Im zweiten Teil lernen Sie
              Bedingte Ausgaben in verschiedenen Formen kennen.<br></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 2'>XSL/ XSLT Workshop Teil 2</a></li>
<li><a href='http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 3'>XSL/ XSLT Workshop Teil 3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSL/ XSLT Workshop Teil 2</title>
		<link>http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xsl-xslt-workshop-teil-2</link>
		<comments>http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html#comments</comments>
		<pubDate>Tue, 29 Apr 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=87</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:XSL/ XSLT Workshop Teil 1 XSL/ XSLT Workshop Teil 3


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 1'>XSL/ XSLT Workshop Teil 1</a></li>
<li><a href='http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 3'>XSL/ XSLT Workshop Teil 3</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_2.gif" class="illu" width="60" height="60" align="left" alt="XSL/ XSLT Workshop">Im ersten Teil des XSL/ XSLT Workshops haben sie einige grundlegende Funktionen von XSL kennen gelernt. Im zweiten Teil des Workshops
              behandeln wir das Thema &quot;bedingte&quot; Ausgaben in XSL.<span id="more-87"></span>Im ersten Teil des XSL/ XSLT Workshops haben Sie die ersten XSL
              Befehle kennen gelernt, und auch schon die ersten Templates mit
              dem for-each Befehl erstellt.<br>
              Im zweiten Teil des Kurses geht es vor allem um die bedingte Ausgabe
              von XML Daten &uuml;ber XSL.<br>
              <br>
              <b>autor.xml<br>
              </b> <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;autor.xsl&quot;?&gt;<br>
              &lt;autoren&gt;<br>
              &lt;autor&gt;<br>
              &lt;name&gt;Thiemo Fetzer&lt;/name&gt;<br>
              &lt;nic&gt;tf&lt;/nic&gt; <br>
              &lt;email&gt;redaktion@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;<br>
              &lt;autor&gt;<br>
              &lt;name&gt;Heinz Mustermann&lt;/name&gt;<br>
              &lt;nic&gt;hm&lt;/nic&gt; <br>
              &lt;email&gt;hm@devmag.net&lt;/email&gt;<br>
              &lt;/autor&gt;<br>
              &lt;/autoren&gt;</code> <br>
              <br>
              Die XML Datenbank, wie im ersten Teil des XSL/ XSLT Workshops. <br>
              <br>
              <b>autor.xsl</b> <br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;/&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Autor.xsl&lt;/title&gt;<br>
              &lt;/head&gt; <br>
              &lt;body&gt;<br>
              &lt;table border=&quot;1&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;Name&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;Nic&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;Email&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;<br>
              &lt;xsl:if test=&quot;name='Thiemo Fetzer'&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;&lt;xsl:value-of select=&quot;name&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;&lt;xsl:value-of select=&quot;nic&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;&lt;xsl:value-of select=&quot;email&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:if&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              &lt;/table&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              <br>
              Der Schl&uuml;ssel liegt in dem Befehl <code>&lt;xsl:if test=&quot;&quot;&gt;</code>.
              Mit diesem wird die Bedingung definiert. Die Syntax sieht grundlegend
              so aus:<br>
              <br>
              <code>&lt;xsl:if test=&quot;Bedingung&quot;&gt;<br>
              &lt;!-- Bedingte Ausgabe --&gt;<br>
              &lt;/xsl:if&gt;</code><br>
              <br>
              Der Code zwischen dem &ouml;ffnenden, und schlie&szlig;enden Tag
              wird nur bearbeitet, wenn die Bedingung &quot;<b>test</b>&quot;
              erf&uuml;llt ist, also wenn das Ergebnis &quot;wahr&quot;, oder
              &quot;true&quot; ist.<br>
              Wichtig bei der Anweisung ist, das <b>jedes</b> Element <b>&lt;autor&gt;</b>
              auf diese Bedingung &uuml;berpr&uuml;ft werden muss. Deshalb wird
              die Bedingung in eine for-each Schleife eingebaut. Dadurch wird
              jedes Element Autor, mit den entsprechenden Unterelementen auf die
              Bedingung &uuml;berpr&uuml;ft.<br>
              <b><br>
              Mehrere Bedingungen definieren</b><br>
              Die XSL Anweisung &quot;if&quot; definiert nur eine Bedingung. Man
              kann nat&uuml;rlich mehrere Bedingungen auch ineinander verschachteln,
              und dadurch ein Ergebnis sehr genau hinausfiltern.<br>
              <br>
              Mit <code>&lt;xsl:choose&gt;</code> k&ouml;nnen Sie mehrere Bedingungen
              nebeneinander definieren, und auch eine Default Ausgabe festlegen.
              Diese wird ausgegeben, wenn der Datensatz auf keine der vorhandenen
              Bedingungen passt.<br>
              <br>
              <code>&lt;xsl:choose&gt;<br>
              &lt;xsl:when test=&quot;Bedingung&quot;&gt;<br>
              &lt;!-- m&ouml;gliche Ausgabe --&gt;<br>
              &lt;/xsl:when&gt;<br>
              &lt;xsl:otherwise&gt;<br>
              &lt;!-- Wenn die erste Bedingung nicht zutrifft --&gt;<br>
              &lt;/xsl:otherwise&gt;<br>
              &lt;/xsl:choose&gt; </code><br>
              <br>
              In diesem Beispiel verwenden wir wiederum die XML Datenbank aus
              dem ersten Beispiel. Lediglich das XSL Template wird wiederum angepasst.<br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;<br>
              &lt;xsl:template match=&quot;/&quot;&gt;<br>
              &lt;html&gt;<br>
              &lt;head&gt;<br>
              &lt;title&gt;Autor.xsl&lt;/title&gt;<br>
              &lt;/head&gt; <br>
              &lt;body&gt;<br>
              &lt;table border=&quot;1&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot;&gt;Name&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;Nic&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;Email&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;<br>
              &lt;xsl:choose&gt;<br>
              &lt;xsl:when test=&quot;name='Thiemo Fetzer'&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot; bgcolor=&quot;red&quot;&gt;&lt;xsl:value-of
              select=&quot;name&quot; /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;&lt;xsl:value-of select=&quot;nic&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;&lt;xsl:value-of select=&quot;email&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:when&gt;<br>
              &lt;xsl:when test=&quot;name='Heinz Mustermann'&quot;&gt;<br>
              &lt;tr&gt;<br>
              &lt;td width=&quot;34%&quot; bgcolor=&quot;yellow&quot;&gt;&lt;xsl:value-of
              select=&quot;name&quot; /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;6%&quot;&gt;&lt;xsl:value-of select=&quot;nic&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;td width=&quot;60%&quot;&gt;&lt;xsl:value-of select=&quot;email&quot;
              /&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;/xsl:when&gt;<br>
              &lt;xsl:otherwise&gt;<br>
              &lt;xsl:value-of select=&quot;name&quot;/&gt;<br>
              &lt;/xsl:otherwise&gt;<br>
              &lt;/xsl:choose&gt;<br>
              &lt;/xsl:for-each&gt;<br>
              &lt;/table&gt;<br>
              &lt;/body&gt;<br>
              &lt;/html&gt;<br>
              &lt;/xsl:template&gt;<br>
              &lt;/xsl:stylesheet&gt;</code><br>
              <br>
              Zun&auml;chst wird wiederum eine normale for-each Schleife ge&ouml;ffnet,
              <code>&lt;xsl:for-each select=&quot;autoren/autor&quot;&gt;</code>.
              Darauf wird direkt der choose Befehl f&uuml;r die Auswahl ge&ouml;ffnet.
              Darauf werden insgesamt zwei Bedingungen definiert. Die erste Bedingung
              &uuml;berpr&uuml;ft, ob der Name <code>&lt;xsl:when test=&quot;name='Thiemo
              Fetzer'&quot;&gt;</code> in diesem Datensatz &quot;Thiemo Fetzer&quot;
              ist. Ist dies der Fall wird der Code dazwischen ausgegeben, und
              die Hintergrundsfarbe auf Rot gesetzt. <br>
              Der Namen &quot;Heinz Mustermann&quot; trifft hier nicht zu, jedoch
              auf die n&auml;chste Bedingung. Hierbei geschieht das gleiche nochmals,
              nur das der Hintergrund der Ausgabe auf Gelb gesetzt wurde.<br>
              Der<code> &lt;xsl:otherwise&gt;</code> Teil w&uuml;rde den Namen
              des Autors aus der Datenbank ausgeben, bei dem diese beiden Bedingungen
              nicht erf&uuml;llt sind.<br>
              <br>
              <img src="http://www.devmag.net/wp-content/uploads/xsl_3.gif" width="464" height="98" border="1" alt="Bedingte XSL Ausgabe"><br>
              <b>Bedingte XSL Ausgabe</b><br>
              <br>
              Im zweiten Teil des XSL Workshops haben Sie also zwei M&ouml;glichkeiten
              kennen gelernt, mit denen Sie XML Daten bedingt und formatiert ausgeben
              k&ouml;nnen.<br>
              Im dritten Teil des XSL Workshops besch&auml;ftigen wir uns vor
              allem mit der sortierten Ausgabe von XML Daten &uuml;ber XSL. </p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/85-xsl-xslt-workshop-teil-1.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 1'>XSL/ XSLT Workshop Teil 1</a></li>
<li><a href='http://www.devmag.net/xml/86-xsl-xslt-workshop-teil-2-2.html' rel='bookmark' title='Permanent Link: XSL/ XSLT Workshop Teil 3'>XSL/ XSLT Workshop Teil 3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/87-xsl-xslt-workshop-teil-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Schema &#8211; Elemente und Attribute</title>
		<link>http://www.devmag.net/xml/96-xml-schema-elemente-und-attribute.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xml-schema-elemente-und-attribute</link>
		<comments>http://www.devmag.net/xml/96-xml-schema-elemente-und-attribute.html#comments</comments>
		<pubDate>Mon, 14 Apr 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=96</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Was ist XML Schema? &#8211; Einführung in XML Schema XML Schema &#8211; Datentypen bzw. Elementwerte


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/95-was-ist-xml-schema-einfuhrung-in-xml-schema.html' rel='bookmark' title='Permanent Link: Was ist XML Schema? &#8211; Einführung in XML Schema'>Was ist XML Schema? &#8211; Einführung in XML Schema</a></li>
<li><a href='http://www.devmag.net/xml/97-xml-schema-datentypen-bzw-elementwerte.html' rel='bookmark' title='Permanent Link: XML Schema &#8211; Datentypen bzw. Elementwerte'>XML Schema &#8211; Datentypen bzw. Elementwerte</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_schema_elemente_attribute.gif" width="60" height="60" class="illu" align="left" alt="XML Schema - Elemente und Attribute"/>XML Schema ist der Nachfolger von Document Type Definitions. In
              XML Schema gibt es einfache, und auch komplexe Elemente. Hier lernen
              Sie die verschiedenen Elemente kennen und Attribute definieren.<span id="more-96"></span>            <p>XML Schema unterscheidet in normalen XML Dokumenten zwischen zwei
              Arten von Elementen, einfache und komplexe. Ein komplexes Element
              hat mehrere untergeordnete Elemente, sie sind also mehrfach verschachtelt.<br>
              <b><br>
              artikel_complex.xml</b> <br>
              <code> &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt; <br>
              &lt;artikel&gt;<br>
              &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
              &lt;teaser&gt;Der Teaser&lt;/teaser&gt;</code><code><br>
              &lt;inhalt&gt;Der Inhalt&lt;/inhalt&gt;<br>
              &lt;/artikel&gt;</code> <br>
              <br>
              Zum Vergleich ein einfaches Element:<br>
              <b><br>
              artikel_simple.xml</b><br>
              <code> &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt; <br>
              &lt;artikel&gt;Der Artikel&lt;/artikel&gt;</code><br>
              <br>
              Nehmen wir als erstes Beispiel gleich mal das obige einfache Element
              &quot;&lt;artikel&gt;&quot;. Das Schema f&uuml;r die Definition
              dieses Elementes sieht so aus:<br>
              <b><br>
              artikel_simple.xsd</b><br>
              <br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt;<br>
              &lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
              <br>
              &lt;xs:element name=&quot;artikel&quot; type=&quot;xs:string&quot;/&gt;<br>
              &lt;/xs:schema&gt; </code><br>
              <br>
              Wie Sie sehen wird das Schema, wird das Schema mit der Definition
              des Namespaces begonnen. Der Tag <code>&lt;xs:schema&gt;&lt;/xs:schema&gt;</code>
              umschlie&szlig;t das komplette Schema. Darauf folgt auch schon die
              Definition des Elementes &quot;artikel&quot;.<br>
              <code><br>
              &lt;xs:element name=&quot;artikel&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              <br>
              &Uuml;ber das Attribut name=&quot;&quot; wird der name des Elementes
              angegeben, welches angesprochen wird. Das Attribut type=&quot;&quot;
              definiert den Datentyp, in dem Fall ist es ein String, also eine
              Zeichenkette.<br>
              <br>
              In dem XML Dokument muss nun auf das Schema verwiesen werden. Es
              geschieht wie bereits im ersten Teil beschrieben auf die selbe Art
              und Wei&szlig;e. Wichtig ist nur, das die Adresse zu dem Schema
              &uuml;ber <code>xsi:noNamespaceSchemaLocation=&quot;artikel_simple.xsd&quot;</code>
              korrekt angegeben wird.<br>
              <br>
              <b>artikel_simple.xml</b><br>
              <code> &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt; <br>
              &lt;artikel xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
              xsi:noNamespaceSchemaLocation=&quot;artikel_simple.xsd&quot;&gt;
              <br>
              Der Artikel<br>
              &lt;/artikel&gt;</code><br>
              <br>
              Im Gegensatz dazu nun das Schema f&uuml;r das komplexe Element:<br>
              <b><br>
              artikel_complex.xsd</b><br>
              <code>&lt;?xml version=&quot;1.0&quot;encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</code><br>
              &nbsp;&nbsp;<code>&lt;xs:element name=&quot;artikel&quot;&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;xs:complexType&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:sequence&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;titel&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;teaser&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;inhalt&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;/xs:sequence&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;/xs:complexType&gt;</code><br>
              &nbsp;&nbsp;<code>&lt;/xs:element&gt;<br>
              &lt;/xs:schema&gt;</code> <br>
              <br>
              Eingeleitet wird das Element durch den <b>fast</b> gleichen Befehl
              <code>&lt;xs:element&gt;</code>. Im name=&quot;&quot; Attribut steht
              der Name des Elementes.<br>
              Der n&auml;chste Befehl <code>&lt;xs:complexType&gt;</code> definiert,
              das es sich bei dem Element um ein komplexes Element handelt.
            <p><code>&lt;xs:complexType&gt;<br>
              &lt;/xs:complexType&gt;</code></p>
            <p></p>
            <p>Die anderen Elemente werden als &quot;einfache&quot; Elemente definiert.<br>
              Diesen Elementen wird ein Datentyp angegeben, dieser gibt an, welche
              Daten in ihm gespeichert werden k&ouml;nnen. In unserem Beispiel
              sind es einfache Strings, also Zeichenketten. Der Datentyp lautet
              &quot;xs:string&quot;.<br>
              <code><br>
              &lt;xs:sequence&gt;</code><br>
              &nbsp;<code>&lt;xs:element name=&quot;titel&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;<code>&lt;xs:element name=&quot;teaser&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;<code>&lt;xs:element name=&quot;inhalt&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              <code>&lt;/xs:sequence&gt;</code> </p>
            <p> Nun muss noch auf das Schema in dem XML Dokument verwiesen werden.
              Das funktioniert auf die gleiche Art, wie bei einfachen Elementen.<br>
              <b><br>
              artikel_complex.xml</b> <br>
              <code> &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt; <br>
              &lt;artikel xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
              xsi:noNamespaceSchemaLocation=&quot;artikel_complex.xsd&quot;&gt;
              <br>
              &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
              &lt;teaser&gt;Der Teaser&lt;/teaser&gt;</code><code><br>
              &lt;inhalt&gt;Der Inhalt&lt;/inhalt&gt;<br>
              &lt;/artikel&gt;</code> <br>
              <br>
              <br>
            <h3>Attribute in XML Schema</h3>
            <p> In XML Schema wird angenommen, das alle Elemente mit Attributen
              komplexe Elemente sind. Einfache Elemente k&ouml;nnen also keine
              Attribute besitzen. <br>
              Ein Attribut wird wie ein einfaches Element definiert. Hierzu dient
              der XML Schema Befehl <code>&lt;xs:attribute /&gt;</code>. Bei folgendem
              Schema wird dieses XML Dokument definiert:<br>
              <b><br>
              artikel.xml</b><br>
              <code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt; <br>
              &lt;artikel xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
              xsi:noNamespaceSchemaLocation=&quot;artikel_schema.xsd&quot; nr=&quot;202&quot;&gt;<br>
              &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
              &lt;teaser&gt;Der Teaser&lt;/teaser&gt;<br>
              &lt;inhalt&gt;Der Artikel selbst&lt;/inhalt&gt;<br>
              &lt;/artikel&gt;</code> <br>
              <br>
              Hinweis: In dem XML Dokument wird bereits auf das XML Schema verwiesen.<br>
              <br>
              <b>artikel_schema.xsd</b><br>
              <code>&lt;?xml version=&quot;1.0&quot;encoding=&quot;ISO-8859-1&quot;?&gt;<br>
              &lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</code><br>
              &nbsp;&nbsp;<code>&lt;xs:element name=&quot;artikel&quot;&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;xs:complexType&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:sequence&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;titel&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;teaser&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>&lt;xs:element
              name=&quot;inhalt&quot; type=&quot;xs:string&quot;/&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;/xs:sequence&gt;</code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code><b>&lt;xs:attribute name=&quot;nr&quot;
              type=&quot;xs:integer&quot;/&gt;</b></code><br>
              &nbsp;&nbsp;&nbsp;&nbsp;<code>&lt;/xs:complexType&gt;</code><br>
              &nbsp;&nbsp;<code>&lt;/xs:element&gt;<br>
              &lt;/xs:schema&gt;</code> <br>
              <br>
              Das Attribut wird, wie Sie sehen au&szlig;erhalb des <code>&lt;xs:sequence&gt;</code>
              Befehls definiert, aber nat&uuml;rlich innerhalb des <code>&lt;xs:complexType&gt;</code>
              Elementes, da wie oben bereits erw&auml;hnt worden war, nur komplexe
              Elemente mit Attributen ausgestattet werden k&ouml;nnen. Attribute
              k&ouml;nnen nat&uuml;rlich auch alle Datentypen beinhalten wie normale
              Elemente. <br>
              <br>
              Wie in DTDs k&ouml;nnen Sie auch in XML Schema den Attributen noch
              einige Eigenschaften geben.<br>
              <br>
              <code>&lt;xs:attribute name=&quot;nr&quot; type=&quot;xs:integer&quot;
              <b>default=&quot;0&quot;</b> /&gt;</code><br>
              Bei dieser Definition wird ein <b>default Wert</b> angegeben. Dieser
              wird verwendet, wenn das Element z.B. nicht gesetzt ist.<br>
              <br>
              <code>&lt;xs:attribute name=&quot;nr&quot; type=&quot;xs:integer&quot;
              <b>fixed=&quot;10&quot;</b> /&gt;</code><br>
              Bei dieser Definition des Attributes wird ein <b>fester Wert </b>angegeben.
              D.h. es kann kein anderer Wert angegeben werden.<br>
              <br>
              <code>&lt;xs:attribute name=&quot;nr&quot; type=&quot;xs:integer&quot;
              <b>use=&quot;optional&quot;</b> /&gt;</code><br>
              Dieses Attribut ist<b> Optional</b>, d.h. es muss nicht angegeben
              werden.<br>
              <br>
              <code>&lt;xs:attribute name=&quot;nr&quot; type=&quot;xs:integer&quot;
              <b>use=&quot;required&quot;</b> /&gt;</code><br>
              Dieses Attribut muss gesetzt werden, damit das Element, und das
              ganze Dokument g&uuml;ltig ist.<br>
              <br>
              XML Schema hat die gleichen M&ouml;glichkeiten wie auch DTDs. XML
              Schema kann jedoch in vielen Dingen noch komplexer als DTDs sein.
              Es lohnt sich nur noch mit XML Schema zu arbeiten.</p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/95-was-ist-xml-schema-einfuhrung-in-xml-schema.html' rel='bookmark' title='Permanent Link: Was ist XML Schema? &#8211; Einführung in XML Schema'>Was ist XML Schema? &#8211; Einführung in XML Schema</a></li>
<li><a href='http://www.devmag.net/xml/97-xml-schema-datentypen-bzw-elementwerte.html' rel='bookmark' title='Permanent Link: XML Schema &#8211; Datentypen bzw. Elementwerte'>XML Schema &#8211; Datentypen bzw. Elementwerte</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/96-xml-schema-elemente-und-attribute.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Darstellung mit CSS</title>
		<link>http://www.devmag.net/xml/89-xml-darstellung-mit-css.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xml-darstellung-mit-css</link>
		<comments>http://www.devmag.net/xml/89-xml-darstellung-mit-css.html#comments</comments>
		<pubDate>Fri, 21 Mar 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=89</guid>
		<description><![CDATA[Weiterf&#252;hrende Links:Komplexe DTD&#8217;s Entities, oder einfach Abkürzungen


Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/93-komplexe-dtds.html' rel='bookmark' title='Permanent Link: Komplexe DTD&#8217;s'>Komplexe DTD&#8217;s</a></li>
<li><a href='http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html' rel='bookmark' title='Permanent Link: Entities, oder einfach Abkürzungen'>Entities, oder einfach Abkürzungen</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml_4.gif" class="illu" width="60" height="60" align="left" alt="XML Darstellung mit CSS" />Mit CSS kann man g&uuml;ltige XML Dokumente bedingt im Browser formatiert ausgeben. Wie CSS in dieser Hinsicht die HTML-Tags ersetzt erfahren Sie hier.<span id="more-89"></span>            <p>Mit XML k&ouml;nnen Sie eigene Tags erstellen. Diese Tags sind
              g&uuml;ltig, sofern die Syntax korrekt ist, und die einzelnen Elemente
              in einer DTD definiert sind.<br>
              Diese Elemente k&ouml;nnen Sie dann ohne Probleme mit CSS darstellen,
              da diese genauso ver&auml;nderbar sind, wie normale HTML-Tags. Die
              Ausgabe von XML &uuml;ber CSS h&auml;ngt jedoch stark vom verwendeten
              Browser ab. Nicht jeder Browser unterst&uuml;tzt die CSS Spezifikationen
              komplett. Dies f&uuml;hrt bei &auml;lteren Browsern schnell zu falschen
              Ausgaben.<br>
              <br>
              Ein Beispiel verdeutlicht die komplexe Verbindung von XML, DTDs
              und CSS.<br>
              <b><br>
              adressen.xml:<br>
              <br>
              &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt;<br>
              &lt;!DOCTYPE adressen SYSTEM &quot;adressen.dtd&quot;&gt; <br>
              &lt;?xml-stylesheet type=&quot;text/css&quot; href=&quot;<font color="#FF0000">adressen.css</font>&quot;
              ?&gt;<br>
              <br>
              &lt;adressen_db&gt;</b></p>
            <p><b>&lt;adresse&gt;<br>
              &lt;anrede&gt;Herr&lt;/anrede&gt;<br>
              &lt;name&gt;Thiemo Fetzer&lt;/name&gt;<br>
              &lt;strasse&gt;Bilharzstrasse 1&lt;/strasse&gt;<br>
              &lt;plz&gt;89081&lt;/plz&gt;<br>
              &lt;ort&gt;Ulm&lt;/ort&gt;<br>
              &lt;/adresse&gt;</b></p>
            <p><b>&lt;adresse&gt;<br>
              &lt;name&gt;Uni Ulm&lt;/name&gt;<br>
              &lt;postfach&gt;7561&lt;/postfach&gt;<br>
              &lt;plz&gt;89077&lt;/plz&gt;<br>
              &lt;ort&gt;Ulm&lt;/ort&gt;<br>
              &lt;/adresse&gt;</b></p>
            <p><b>&lt;/adressen_db&gt;</b></p>
            <p><b>adressen.dtd:<br>
              <br>
              &lt;!ELEMENT adressen_db (adresse)*&gt;</b></p>
            <p><b>&lt;!ELEMENT Adresse (anrede?, name, (postfach | strasse), plz,
              ort)&gt;</b></p>
            <p><b>&lt;!ELEMENT anrede (#PCDATA)&gt;<br>
              &lt;!ELEMENT name (#PCDATA)&gt;<br>
              &lt;!ELEMENT postfach (#PCDATA)&gt;<br>
              &lt;!ELEMENT strasse (#PCDATA)&gt;<br>
              &lt;!ELEMENT plz (#PCDATA)&gt;<br>
              &lt;!ELEMENT ort (#PCDATA)&gt;</b></p>
            <p>Das Stylesheet wird in das XML - Dokument mit der Befehlszeile
              <b><br>
              &lt;?xml-stylesheet type=&quot;text/css&quot; href=&quot;<font color="#FF0000">adressen.css</font>&quot;
              ?&gt;<br>
              </b>eingebunden. Das Stylesheet ist folglich in der selben Verzeichnisebene.<br>
              <b><br>
              adressen.css</b>:<br>
              Insgesamt gibt es acht Elemente, die mit CSS ver&auml;ndert werden.
              Die Adressen sollen im Ergebnis wie als Empf&auml;nger eines Briefes
              dargestellt werden. Das Ergebnis schon vorweg:<br>
              <br>
              <img src="http://www.devmag.net/wp-content/uploads/xml_css1.gif" width="217" height="312" alt="Mit Hilfe von CSS generiert">
              <br>
              <b>Mit Hilfe von CSS generiert</b><br>
              <br>
              <br>
              <b>adressen.css</b><br>
              <br>
              <b>adressen_db {<br>
              position:absolute;<br>
              top: 20;<br>
              left: 40;<br>
              padding: 3;<br>
              border: 1 dotted black;<br>
              font-family: Arial;<br>
              font-size: 10pt;<br>
              }<br>
              adresse {<br>
              width: 150;<br>
              padding-top: 5;<br>
              padding-bottom: 5;<br>
              position: relative;<br>
              background-color: #F5F5F5;<br>
              display: block;<br>
              }<br>
              anrede {<br>
              display: block;<br>
              font-weight: bold;<br>
              }<br>
              name {<br>
              font-weight: bold;<br>
              display: block;<br>
              }<br>
              strasse {<br>
              display: block;<br>
              }<br>
              postfach {<br>
              display: block;<br>
              }<br>
              </b> <br>
              Die Definitionen des Stylesheets sind recht einfach, vorweg ist
              zu sagen, das es immer schwieriger ist, mit CSS das gleiche Ergebnis
              zu kriegen, als mit HTML. <br>
              Die Hauptdefinition des Styles liegt im ersten Teil, bei der Definition
              von <b>adressen_db</b>.<br>
              Alle Inhalte sind bedingt durch die Angaben in dieser Definition
              in einer Ebene. Durch <b>padding: 3;</b> hat der Inhalt 3 px Abstand
              zum Rand. Zudem wird der Rahmen, und die Schriftart und Gr&ouml;&szlig;e
              definiert.<br>
              <br>
              Die Definition des Elementes <b>adresse</b> ist nicht wesentlich
              komplexer. Der einzige wichtige Befehl der verwendet wird ist <b>display:block;</b>
              dieser Befehl gibt an, das der Inhalt als ein Block dargestellt
              werden soll. Damit soll erreicht werden, dass die einzelnen Datens&auml;tze
              getrennt sind. <br>
              Genauso wird mit den anderen Elementen verfahren. Sie werden als
              Block dargestellt, damit jeder Inhalt in einer neuen Zeile steht.
              Die Tags oder Elemente, welche nicht definiert werden, ver&auml;ndern
              sich nach den Definitionen im Wurzelelement, also <b>adressen_db</b>.<br>
              <br>
              Die Darstellung von XML - Dokumenten mit CSS ist speziell f&uuml;r
              Anf&auml;nger im Bereich XML leicht zu verstehen, doch XML und CSS
              hat auch einige Nachteile.<br>
              <br>
              &Auml;ltere Browser k&ouml;nnen mit der Verbindung aus CSS und XML
              noch nichts anfangen. Meist wird als Ergebnis nur ein unformatierter
              Text ausgegeben, und das war ja nicht der Sinn der Sache. Zudem
              ist die Unterst&uuml;tzung, speziell die des CSS 2 Standards noch
              nicht so weit ausgereift.<br>
              Der Schritt zu XSL lohnt sich auf jeden Fall, da die strukturierte
              Ausgabe von Daten zur Zeit von CSS (noch) nicht unterst&uuml;tzt
              wird. <br>
            </p></p>


<p>Weiterf&uuml;hrende Links:<ol><li><a href='http://www.devmag.net/xml/93-komplexe-dtds.html' rel='bookmark' title='Permanent Link: Komplexe DTD&#8217;s'>Komplexe DTD&#8217;s</a></li>
<li><a href='http://www.devmag.net/xml/94-entities-oder-einfach-abkurzungen.html' rel='bookmark' title='Permanent Link: Entities, oder einfach Abkürzungen'>Entities, oder einfach Abkürzungen</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/89-xml-darstellung-mit-css.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Einf&#252;hrung</title>
		<link>http://www.devmag.net/xml/91-xml-einfhrung.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=xml-einfhrung</link>
		<comments>http://www.devmag.net/xml/91-xml-einfhrung.html#comments</comments>
		<pubDate>Sat, 08 Mar 2008 10:00:00 +0000</pubDate>
		<dc:creator>Thiemo</dc:creator>
				<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.devmag.net/?p=91</guid>
		<description><![CDATA[No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.devmag.net/wp-content/uploads/illu_xml.gif" class="illu" width="60" height="60" align="left" alt="XML Einf&uuml;hrung " />In XML wird die Zukunft des modernen Webpublishings gesehen, was macht XML so besonders. Diese Einf&uuml;hrung gibt einen Einblick in die Sprache XML.<span id="more-91"></span>            <p>XML ist aus dem SGML (Standard Generalized Markup Language) entstanden.
              Diese wurde bereits in den 80igern von IBM zum gr&ouml;&szlig;ten
              Teil entwickelt. SGML gilt als Muttersprache aller Markup Sprachen,
              so auch von XML. HTML ist eine winzige Definition, die aus dem SGML
              Standard entsprungen ist. Die Befehlswelt von HTML ist beschr&auml;nkt.
              Es gibt lediglich eine begrenzte Anzahl von <b>formatierenden </b>Befehlen.<br>
              <br>
              XML hat eine komplett andere Datenstruktur. In XML gibt es <b>beschreibende
              </b>Befehle. Die Befehle dienen prim&auml;r der Datenspeicherung
              und Datenbeschreibung.<br>
              Die Formatierung des Inhaltes wird von Stylesheets und anderen Formatierungssprachen
              wie XSL und XSLT bestimmt. <br>
              Ab dem Internet Explorer 5 ist XML integriert. Doch erst mit der
              Version 6 wurden alle Standards implementiert.<br>
              Um ein XML-Dokument zu erstellen ben&ouml;tigt man nur einen Texteditior,
              wie Notepad. Das erste XML-Dokument, welches wir erstellen wollen
              sieht so aus:<br>
              <b><br>
              &lt;?xml version=&quot;1.0&quot; <b>encoding=&quot;ISO-8859-1&quot;
              </b>?&gt;<br>
              &lt;artikel&gt;<br>
              &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
              &lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt;<br>
              &lt;inhalt&gt;Der Artikelinhalt an sich&lt;/inhalt&gt;<br>
              &lt;/artikel&gt;<br>
              </b><br>
              Der Code und die Schreibweise hat kaum Unterschiede zu HTML, auf
              den ersten Blick. In der ersten Zeile des Codes wird die XML Version
              spezifiziert, also die XML Version mit welcher der Inhalt behandelt
              oder geparsed werden soll. Zudem ist das Attribut <b>encoding </b>gesetzt.
              Es gibt den Zeichensatz mit welchem das Dokument behandelt werden
              soll.<br>
              <br>
              <b>Weitere Zeichens&auml;tze:</b><br>
              <br>
              <b> encoding=&quot;UTF-8&quot;<br>
              </b>internationaler Zeichensatz mit 8 Bit Zeichenbreite<br>
              <br>
              <b>encoding=&quot;UTF-16&quot; <br>
              </b>internationaler Zeichensatz mit 16 Bit Zeichenbreite <br>
              <br>
              <b>encoding=&quot;ISO-8859-1&quot; <br>
              </b> ISO-Zeichensatz f&uuml;r westeurop&auml;ische Sprachen<br>
              <br>
              Wie an der Struktur des Dokumentes erkennbar wird, ist eine feste
              <b>Baumstruktur </b>vorhanden. Sie beschreibt die Verschachtelung
              der einzelnen Befehle. Das sogenannte <b>Wurzelelement</b> ist <b>&lt;artikel&gt;
              &lt;/artikel&gt;</b>. Es ist das erste Element, welches den kompletten
              Datensatz umringt. Diesem Wurzelelement sind weitere drei Elemente
              untergeordnet.<br>
              Speichern Sie dieses Dokument einfach einmal als versuch.xml ab,
              und schauen Sie sich das ganze mal mit dem InternetExplorer an.
              Das Ergebnis wird ern&uuml;chternd sein.<br>
              <br>
              <img src="http://www.devmag.net/wp-content/uploads/xml_einfuehrung1.gif" width="431" height="246" alt="Die Ausgabe von versuch.xml">
              <b><br>
              Die Ausgabe von versuch.xml</b><br>
              <br>
              In gewisser Hinsicht k&ouml;nnen Sie sich jedoch freuen, da das
              XML Dokument <b>wohlgeformt </b>ist, und das auf den ersten Versuch.
              <br>
              <b><br>
              Doch was bedeutet eigentlich, das Dokument ist &quot;wohlgeformt&quot;?</b><br>
              <br>
              Dies h&auml;ngt von der korrekten Syntax ab. Hierbei m&uuml;ssen
              folgende Regeln beachtet werden.<br>
              <b><br>
              1. XML Deklaration</b><br>
              <br>
              Die Deklaration des XML Standards am Anfang des Dokumentes ist unabdingbar.<br>
              Sie muss immer vorhanden sein.<b><br>
              <br>
              2. Wurzelelemet</b> <br>
              <br>
              F&uuml;r ein wohlgeformtes Dokument muss auf jeden Fall ein Wurzelelement,
              wie in unserem Beispiel &quot;<b>&lt;artikel&gt; &lt;/artikel&gt;</b>&quot;
              vorhanden sein. Dieses umschlie&szlig;t alle untergeordneten Elemente.<br>
              <br>
              <b>3. Richtige Schreibweise</b><br>
              <br>
              Ein Tippfehler ist schnell geschehen, und wird von XML hart bestraft.
              Achten Sie darauf, das das &ouml;ffnende Element genauso geschrieben
              wird wie das schlie&szlig;ende.<br>
              <b><br>
              4. Attributwerte</b><br>
              <br>
              Im Gegensatz zu HTML m&uuml;ssen Attribute in <b>&quot;&quot; </b>stehen.
              Ein Beispiel:<br>
              <b><br>
              &lt;artikel id=2&gt; &lt;!-- Ung&uuml;ltig --&gt;<br>
              <br>
              &lt;artikel id=&quot;2&quot;&gt; &lt;!-- G&uuml;ltig --&gt;<br>
              <br>
              5. Leere Elemente</b><br>
              <br>
              Es gibt Tags die kein schlie&szlig;enden Tag besitzen, wie z.B.
              den <b>&lt;hr&gt; </b>Tag. XML verlangt jedoch immer ein schlie&szlig;enden
              Tag. Um dies zu erreichen wird von das Ende des jeweiligen Tag ein
              <b>/</b> gesetzt.<br>
              <br>
              Beispiel:<b><br>
              &lt;linie&gt; &lt;!-- Ung&uuml;ltig --&gt;</b><br>
              <b><br>
              &lt;linie /&gt; &lt;!-- G&uuml;ltig --&gt;</b><br>
              <b><br>
              6. Elementnamen </b><br>
              <br>
              Mit XML kann man frei eigene Tags erstellen, jedoch m&uuml;ssen
              diese Elementnamen einige Regeln befolgen.<br>
              Sie d&uuml;rfen nicht mit der Zeichenkette XML beginnen, nicht komplett
              aus Ziffern bestehen, oder mit Ziffern beginnen, und keine Leerzeichen
              enthalten.<br>
              Einige Beispiele:<br>
              <b><br>
              &lt;xml-artikel&gt; &lt;!-- Ung&uuml;ltig --&gt;<br>
              <br>
              &lt;artikel-xml&gt; &lt;!-- G&uuml;ltig --&gt;<br>
              <br>
              &lt;123artikel&gt; &lt;!-- Ung&uuml;ltig --&gt; </b><br>
              <b><br>
              &lt;artikel123&gt; &lt;!-- G&uuml;ltig --&gt;<br>
              <br>
              &lt;artikel 12&gt; &lt;!-- Ung&uuml;ltig --&gt;<br>
              <br>
              </b><b>&lt;artikel-12&gt; &lt;!-- G&uuml;ltig --&gt;</b> <br>
              <b><br>
              7. Gro&szlig; und Kleinschreibung</b><br>
              <br>
              Besonders wichtig ist, das XML einen Unterschied zwischen Gro&szlig;
              und Kleinschreibung macht. <br>
              <b>&lt;Teaser&gt;</b> ist nicht gleich <b>&lt;/teaser&gt;</b>. Es
              sind zwei v&ouml;llig unterschiedliche Elemente.<br>
              <br>
              <b> 8. Kommentare</b> <br>
              <br>
              Sie k&ouml;nnen wie in HTML Kommentare verwenden, und so die XML
              Dokumete und DTDs leichter verst&auml;ndlich machen. Ein Kommentar
              beginnt mit <b>&lt;!-- </b>und endet mit <b>--&gt;</b>. Alles was
              innerhalb der Kommentare steht wird nicht interpretiert.<br>
              <br>
              <br>
              Doch trotz all dieser Regeln ist ein Dokument noch nicht g&uuml;ltig.
              Die G&uuml;ltigkeit besagt, das die verwendeten Elemente definiert
              sein m&uuml;ssen. XML bzw. der Parser muss &quot;wissen&quot; was
              f&uuml;r Elemente verwendet werden, und welchen Inhalt bzw. welche
              Attribute diese Elemente haben k&ouml;nnen. <br>
              Diese Angaben werden in der <b>DTD (Document Type Definition)</b>
              gemacht. <br>
              <br>
              Es gibt zwei Typen von DTDs. Eine interne DTD steht im selben XML
              Dokument, und wird auch nur auf dieses angewendet. Diese Art der
              DTD wird vor allem bei kleinen Dokumenten verwendet. Sollen jedoch
              viele Dokumente mit einer DTD bearbeitet werden, dann ist eine Auslagerung
              der DTD empfehlenswert. <br>
              Zun&auml;chst wollen wir eine kleine interne DTD erstellen.<br>
              <br>
              Wir greifen wieder auf unser erstes Beispiel zur&uuml;ck, dieses
              mal jedoch mit der DTD:<br>
              <br>
              <b>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;
              ?&gt;</b></p>
            <p><b>&lt;!DOCTYPE artikel [<br>
              &lt;!ELEMENT artikel (titel, teaser, inhalt)&gt;<br>
              &lt;!ELEMENT titel (#PCDATA)&gt;<br>
              &lt;!ELEMENT teaser (#PCDATA)&gt;<br>
              &lt;!ELEMENT inhalt (#PCDATA)&gt;<br>
              </b><b>]&gt;</b></p>
            <p><b><br>
              &lt;artikel&gt;<br>
              &lt;titel&gt;Der Titel&lt;/titel&gt;<br>
              &lt;teaser&gt;Der Teaser, eine kurze Beschreibung&lt;/teaser&gt;<br>
              &lt;inhalt&gt;Der Artikelinhalt an sich&lt;/inhalt&gt;<br>
              &lt;/artikel&gt;</b><br>
              <br>
              Wenn Sie diesen Code so ansehen entdecken Sie die DTD bestimmt sehr
              schnell. <br>
              Die gesamte DTD wird von<b> &lt;!DOCTYPE artikel [</b> <b></b> <b></b>
              <b>]&gt;</b> umschlossen. In ihr wird der Name der DTD bestimmt,
              in diesem Fall ist es <b>artikel</b>. Als erstes Element muss immer
              das Wurzelelement definiert werden. Ein Element wird mit <b>&lt;!ELEMENT
              &gt;</b> definiert. <br>
              Die Definition erfolgt einem festen Schema:<br>
              <br>
              <b>&lt;!ELEMENT Name (Inhalt)&gt;</b><br>
              <br>
              Nach ihr kommt der Name des Elementes und ihm untergeordnete Elemente.
              <br>
              Die Definition des Wurzelelementes artikel ist in dieser Zeile der
              DTD:<br>
              <br>
              <b>&lt;!ELEMENT artikel (titel, teaser, inhalt)&gt;</b><br>
              <br>
              Der Inhalt des Wurzelelemetes besteht (nur) aus weiteren Elementen,
              diese werden in der Klammer, jeweils mit einem Komma getrennt, angegeben.<br>
              <br>
              Die einzelnen Unterelmente werden so definiert:<br>
              <br>
              <b>&lt;!ELEMENT titel (#PCDATA)&gt;</b><br>
              <br>
              Das #PCDATA gibt an, das der Inhalt des Elementes jeder beliebige
              Text oder Code sein kann, er darf jedoch keine weiteren Unterelemente
              enthalten. Das Element titel hat keine untergeordneten Elemente.<br>
              <b><br>
              &lt;titel&gt;&lt;fett&gt;Der Titel&lt;/fett&gt;&lt;/titel&gt;<br>
              <br>
              </b>Ist ung&uuml;ltig, da dem Element Titel nicht das Element &lt;fett&gt;
              untergeordnet wurde.<br>
              Doch auch von diesem Ergebnis werden Sie entt&auml;uscht sein, da
              es immer noch keinen formatierten Artikel darstellt. Das System
              ist jetzt jedoch soweit, das eine komplett g&uuml;ltiges und wohlgeformtes
              XML Dokument vorhanden ist.<br>
              <br>
              Die formatierende Ausgabe kann nun in Angriff genommen werden!<br>
                           </p></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.devmag.net/xml/91-xml-einfhrung.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

