<?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>W3C Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/w3c/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/w3c/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 23 Mar 2025 15:53:21 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>W3C Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/w3c/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>W3C – Das Rückgrat des modernen Internets</title>
		<link>https://ceosbay.com/2025/03/22/w3c-das-rueckgrat-des-modernen-internets/</link>
					<comments>https://ceosbay.com/2025/03/22/w3c-das-rueckgrat-des-modernen-internets/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 22 Mar 2025 20:17:00 +0000</pubDate>
				<category><![CDATA[Bildung]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Wissenschaft & Forschung]]></category>
		<category><![CDATA[Wissenschaftskommunikation]]></category>
		<category><![CDATA[Barrierefreiheit]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Digitalisierung]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Interoperabilität]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WebAuthn]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Webstandards]]></category>
		<category><![CDATA[Webtechnologien]]></category>
		<category><![CDATA[Zukunft des Webs]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=5487</guid>

					<description><![CDATA[<p>Wenn Du heute eine Website aufrufst, ist Dir wahrscheinlich nicht bewusst, wie viele Standards im Hintergrund dafür sorgen, dass alles reibungslos funktioniert – egal ob Du mit dem Smartphone, dem Laptop oder deinem Smart-TV surfst. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/22/w3c-das-rueckgrat-des-modernen-internets/">W3C – Das Rückgrat des modernen Internets</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn Du heute eine Website aufrufst, ist Dir wahrscheinlich nicht bewusst, wie viele Standards im Hintergrund dafür sorgen, dass alles reibungslos funktioniert – egal ob Du mit dem Smartphone, dem Laptop oder deinem Smart-TV surfst. Ein zentraler Akteur hinter diesen Standards ist das <strong>W3C</strong>, das World Wide Web Consortium.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="871" height="871" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/W3C.jpg?resize=871%2C871&#038;ssl=1" alt="W3C" class="wp-image-5489" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/W3C.jpg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/W3C.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/W3C.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/W3C.jpg?resize=768%2C768&amp;ssl=1 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<h3 class="wp-block-heading">Wer oder was ist das W3C?</h3>



<p>Das <strong>(World Wide Web Consortium)</strong> ist eine internationale Organisation, die sich der Entwicklung offener Standards für das Web verschrieben hat. Gegründet wurde sie 1994 von <strong>Tim Berners-Lee</strong>, dem Erfinder des World Wide Web. Ihr Ziel: Das volle Potenzial des Webs auszuschöpfen – für alle, überall.</p>



<p>Der Leitsatz lautet:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“Leading the Web to its full potential.”</p>
</blockquote>



<h3 class="wp-block-heading">Warum ist das W3C so wichtig?</h3>



<p>Das Web besteht aus einer Vielzahl an Technologien – <a href="https://ceosbay.com/2022/12/29/erklaerung-html/">HTML</a>, <a href="https://ceosbay.com/2023/02/27/erklaerung-css/">CSS</a>, <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a>, SVG, Web <a href="https://ceosbay.com/2023/04/20/api-nahtlose-verbindungen-fuer-innovationen/">APIs</a> und viele mehr. Damit Websites und Webanwendungen unabhängig vom Gerät, Browser oder <a href="https://ceosbay.com/category/technologie/betriebssystem/">Betriebssystem</a> gleich gut funktionieren, braucht es gemeinsame Regeln. Genau diese entwickelt das W3C.</p>



<p>Ein paar zentrale Aufgaben:</p>



<ul class="wp-block-list">
<li><strong>Standardisierung</strong>: Das W3C legt fest, wie grundlegende Webtechnologien funktionieren (z. B. HTML5 oder CSS3).</li>



<li><strong>Interoperabilität</strong>: Standards sorgen dafür, dass Inhalte plattformübergreifend nutzbar sind.</li>



<li><strong>Barrierefreiheit</strong>: Mit den <strong>WCAG-Richtlinien</strong> fördert das W3C die Zugänglichkeit von Websites für Menschen mit Behinderungen. </li>



<li><strong>Datenschutz &amp; Sicherheit</strong>: Das W3C entwickelt auch Sicherheitsstandards wie WebAuthn für sicheres, passwortloses Login.</li>
</ul>



<h3 class="wp-block-heading">Wer steckt dahinter?</h3>



<p>Das Konsortium besteht nicht nur aus technischen Experten. Über 400 Mitgliedsorganisationen aus aller Welt – darunter große Tech-Unternehmen (wie Google, Apple, Microsoft), Universitäten, NGOs und Behörden – arbeiten gemeinsam an der Zukunft des Webs. Alle bringen ihre Perspektiven ein und diskutieren Vorschläge offen und transparent.</p>



<h3 class="wp-block-heading">Wie entstehen neue Webstandards?</h3>



<p>Der Prozess ist strukturiert und besteht aus mehreren Phasen. Zunächst wird ein <strong>Entwurf</strong> vorgestellt, der dann über mehrere Stufen hinweg (z. B. “Working Draft”, “Candidate Recommendation”, “Proposed Recommendation”) verfeinert wird, bis er schließlich als <strong>offizieller W3C-Standard</strong> verabschiedet wird. Dabei werden Feedback, Tests und Kompatibilität sorgfältig geprüft.</p>



<h3 class="wp-block-heading">Fazit: Ohne W3C kein einheitliches Web</h3>



<p>Ob Du eine Website entwickelst, eine App designst oder einfach nur surfst – die Arbeit des W3C betrifft Dich direkt. Dank dieser Organisation ist das Web so offen, flexibel und zugänglich geblieben wie es ist – ein globales, plattformübergreifendes Medium für Information, Kreativität und Innovation.</p>



<p><strong>Tipp für Entwickler:innen:</strong> Wer tiefer einsteigen möchte, kann auf <a href="https://www.w3.org">https://www.w3.org</a> die aktuellsten Spezifikationen, Tutorials und Mitmachmöglichkeiten finden.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/22/w3c-das-rueckgrat-des-modernen-internets/">W3C – Das Rückgrat des modernen Internets</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2025/03/22/w3c-das-rueckgrat-des-modernen-internets/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5487</post-id>	</item>
		<item>
		<title>SHACL &#8211; Validierung von RDF-Daten</title>
		<link>https://ceosbay.com/2025/03/19/shacl-validierung-von-rdf-daten/</link>
					<comments>https://ceosbay.com/2025/03/19/shacl-validierung-von-rdf-daten/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 19 Mar 2025 20:29:00 +0000</pubDate>
				<category><![CDATA[Datenwissenschaft]]></category>
		<category><![CDATA[Informationstechnologie]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Test-Framework]]></category>
		<category><![CDATA[UI-Tests]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache Jena]]></category>
		<category><![CDATA[Datenmodellierung]]></category>
		<category><![CDATA[Datenprüfung]]></category>
		<category><![CDATA[Datenqualität]]></category>
		<category><![CDATA[Datenstrategie]]></category>
		<category><![CDATA[Datenstruktur]]></category>
		<category><![CDATA[Datenvalidierung]]></category>
		<category><![CDATA[Interoperabilität]]></category>
		<category><![CDATA[Knowledge Graph]]></category>
		<category><![CDATA[Ontologie]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[SHACL]]></category>
		<category><![CDATA[SHACL Tools]]></category>
		<category><![CDATA[Shapes Constraint Language]]></category>
		<category><![CDATA[Softwarequalität]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Strukturierte Daten]]></category>
		<category><![CDATA[TopBraid]]></category>
		<category><![CDATA[W3C]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=5416</guid>

					<description><![CDATA[<p>Die Verarbeitung und Validierung von Daten ist in der heutigen datengetriebenen Welt von entscheidender Bedeutung. Besonders im Bereich des Semantic Web, wo RDF (Resource Description Framework) als Standard für die Modellierung von Daten verwendet wird, &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/19/shacl-validierung-von-rdf-daten/">SHACL &#8211; Validierung von RDF-Daten</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die Verarbeitung und Validierung von Daten ist in der heutigen datengetriebenen Welt von entscheidender Bedeutung. Besonders im Bereich des Semantic Web, wo RDF (Resource Description Framework) als Standard für die Modellierung von Daten verwendet wird, ist eine strukturierte Validierung notwendig. Hier kommt die Shapes Constraint Language (kurz: SHACL) ins Spiel. In diesem Blogbeitrag werfen wir einen Blick auf ihre Funktionsweise und zeigen auf, warum sie für strukturierte Daten so wertvoll ist.</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" decoding="async" width="871" height="871" src="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/SHACL-RDF.jpg?resize=871%2C871&#038;ssl=1" alt="" class="wp-image-5427" srcset="https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/SHACL-RDF.jpg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/SHACL-RDF.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/SHACL-RDF.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/ceosbay.com/wp-content/uploads/2025/03/SHACL-RDF.jpg?resize=768%2C768&amp;ssl=1 768w" sizes="(max-width: 871px) 100vw, 871px" /></figure>



<h2 class="wp-block-heading">Was steckt hinter SHACL?</h2>



<p>Es ist eine von der W3C empfohlene Sprache zur Validierung von RDF-Daten anhand vordefinierter Regeln, sogenannter &#8222;Shapes&#8220;. Diese definieren Struktur- und Wertebeschränkungen, die sicherstellen, dass Daten bestimmten Anforderungen genügen.</p>



<p>Mit dieser Sprache lassen sich zum Beispiel folgende Aspekte prüfen:</p>



<ul class="wp-block-list">
<li>Welche Eigenschaften ein RDF-Subjekt besitzen muss.</li>



<li>Welche Datentypen zulässig sind.</li>



<li>Erlaubte Wertebereiche.</li>



<li>Beziehungen zwischen Entitäten in einem Graphen.</li>
</ul>



<h2 class="wp-block-heading">Warum strukturierte Validierung wichtig ist</h2>



<p>RDF-Daten sind flexibel und hochgradig vernetzt. Diese Eigenschaften bieten viele Vorteile, bringen aber auch Herausforderungen mit sich. Ohne klare Validierungsmechanismen können fehlerhafte oder inkonsistente Strukturen entstehen, die die Nutzbarkeit erheblich beeinträchtigen. Die Shapes Constraint Language unterstützt hier durch:</p>



<ul class="wp-block-list">
<li><strong>Sicherung der Datenqualität</strong>: Fehler lassen sich frühzeitig erkennen und korrigieren.</li>



<li><strong>Förderung der Interoperabilität</strong>: Gemeinsame Strukturregeln erleichtern den Datenaustausch.</li>



<li><strong>Automatisierte Prüfprozesse</strong>: Validierungswerkzeuge übernehmen die Überprüfung effizient.</li>
</ul>



<h2 class="wp-block-heading">So funktioniert die Anwendung in der Praxis</h2>



<p>Die Sprache besteht aus drei Hauptkomponenten:</p>



<ol class="wp-block-list">
<li><strong>Shapes Graph</strong>: Enthält die Regeln für die Validierung.</li>



<li><strong>Daten Graph</strong>: Die eigentlichen RDF-Daten, die geprüft werden.</li>



<li><strong>Validierungsengine</strong>: Vergleicht Daten mit den Regeln und meldet Abweichungen.</li>
</ol>



<p>Ein einfaches Beispiel für eine Shape:</p>



<pre class="wp-block-code"><code>@prefix sh: &lt;http://www.w3.org/ns/shacl#&gt; .
@prefix ex: &lt;http://example.org/&gt; .

ex:PersonShape
    a sh:NodeShape ;
    sh:targetClass ex:Person ;
    sh:property &#91;
        sh:path ex:age ;
        sh:datatype xsd:integer ;
        sh:minInclusive 0 ;
        sh:maxInclusive 120 ;
    ] .</code></pre>



<p>Diese Definition prüft, ob Instanzen der Klasse <code>ex:Person</code> ein Attribut <code>ex:age</code> mit einem ganzzahligen Wert zwischen 0 und 120 besitzen.</p>



<h2 class="wp-block-heading">Tools und Ressourcen für Entwickler</h2>



<p>Zur Arbeit mit dieser Validierungssprache gibt es diverse Tools, zum Beispiel:</p>



<ul class="wp-block-list">
<li><strong>TopBraid SHACL API</strong>: Java-basierte Validierungsbibliothek.</li>



<li><strong>SHACL Playground</strong>: Online-Testumgebung für Regeln.</li>



<li><strong>Jena SHACL</strong>: Erweiterung des Apache Jena Frameworks zur Datenprüfung.</li>
</ul>



<h2 class="wp-block-heading">Fazit: Qualität sichern im Semantic Web</h2>



<p>Die Shapes Constraint Language bietet eine effektive Möglichkeit, RDF-Daten strukturiert zu validieren. Sie hilft dabei, konsistente, qualitativ hochwertige und interoperable Daten im Semantic Web zu schaffen. Mit der wachsenden Bedeutung von Knowledge Graphen wird ihre Relevanz weiter steigen.</p>



<p>Welche Erfahrungen hast du mit RDF-Datenprüfung gemacht? Teile deine Meinung gerne in den Kommentaren!</p>



<p>Die Verarbeitung und Validierung von Daten ist in der heutigen datengetriebenen Welt von entscheidender Bedeutung. Besonders im Bereich des Semantic Web, wo RDF (Resource Description Framework) als Standard für die Modellierung von Daten verwendet wird, ist eine strukturierte Validierung notwendig. Hier kommt SHACL (Shapes Constraint Language) ins Spiel. In diesem Blogbeitrag werden wir uns diesen genauer ansehen, seine Funktionsweise erklären und aufzeigen, warum es für RDF-Datenvalidierung so wichtig ist.</p>



<h2 class="wp-block-heading">Was ist SHACL?</h2>



<p>Es ist eine W3C-empfohlene Sprache zur Validierung von RDF-Daten anhand vorgegebener Regeln, die als &#8222;Shapes&#8220; bezeichnet werden. Diese Shapes definieren Struktur- und Wertebeschränkungen, die auf RDF-Daten angewendet werden, um sicherzustellen, dass sie bestimmten Anforderungen entsprechen.</p>



<p>Man kann damit beispielsweise folgende Regeln definieren:</p>



<ul class="wp-block-list">
<li>Welche Eigenschaften ein RDF-Subjekt haben muss.</li>



<li>Welche Datentypen erlaubt sind.</li>



<li>Welche Wertebereiche für bestimmte Eigenschaften zulässig sind.</li>



<li>Beziehungen zwischen RDF-Entitäten.</li>
</ul>



<h2 class="wp-block-heading">Warum SHACL?</h2>



<p>RDF-Daten sind oft hochgradig vernetzt und flexibel, was sowohl ein Vorteil als auch eine Herausforderung ist. Ohne eine strikte Validierung können inkonsistente oder fehlerhafte Daten entstehen, die die Qualität und Nutzbarkeit von Knowledge Graphen oder anderen semantischen Systemen beeinträchtigen. SHACL hilft, solche Probleme zu vermeiden, indem es:</p>



<ul class="wp-block-list">
<li><strong>Datenqualität sichert</strong>: Durch die Validierung gegen definierte Regeln können Fehler frühzeitig erkannt und korrigiert werden.</li>



<li><strong>Interoperabilität verbessert</strong>: Gemeinsame Standards für Datenstrukturen erleichtern den Datenaustausch zwischen Systemen.</li>



<li><strong>Automatisierte Datenprüfung ermöglicht</strong>: SHACL-Validierungswerkzeuge können Daten automatisch überprüfen und Verstöße melden.</li>
</ul>



<h2 class="wp-block-heading">In der Praxis</h2>



<p>SHACL besteht aus drei wesentlichen Komponenten:</p>



<ol class="wp-block-list">
<li><strong>Shapes Graph</strong>: Definiert die Struktur und Regeln für die Validierung.</li>



<li><strong>Daten Graph</strong>: Enthält die RDF-Daten, die validiert werden sollen.</li>



<li><strong>Validierungsengine</strong>: Prüft den Daten Graph gegen den Shapes Graph und gibt Verstöße aus.</li>
</ol>



<p>Ein einfaches Beispiel für eine SHACL-Shape sieht so aus:</p>



<pre class="wp-block-code"><code>@prefix sh: &lt;http://www.w3.org/ns/shacl#&gt; .
@prefix ex: &lt;http://example.org/&gt; .

ex:PersonShape
    a sh:NodeShape ;
    sh:targetClass ex:Person ;
    sh:property &#91;
        sh:path ex:age ;
        sh:datatype xsd:integer ;
        sh:minInclusive 0 ;
        sh:maxInclusive 120 ;
    ] .</code></pre>



<p>Diese SHACL-Definition stellt sicher, dass Instanzen der Klasse <code>ex:Person</code> eine Eigenschaft <code>ex:age</code> haben, die ein ganzzahliger Wert zwischen 0 und 120 sein muss.</p>



<h2 class="wp-block-heading">Werkzeuge</h2>



<p>Es gibt verschiedene Tools zur Arbeit mit SHACL, darunter:</p>



<ul class="wp-block-list">
<li><strong>TopBraid SHACL API</strong>: Eine Java-basierte Implementierung zur Validierung von RDF-Daten.</li>



<li><strong>SHACL Playground</strong>: Eine webbasierte Umgebung zum Testen von SHACL-Definitionen.</li>



<li><strong>Jena SHACL</strong>: Eine Erweiterung des populären Apache Jena-Frameworks zur SHACL-Validierung.</li>
</ul>



<h2 class="wp-block-heading">Fazit</h2>



<p>SHACL ist ein mächtiges Werkzeug zur Validierung von RDF-Daten und hilft dabei, qualitativ hochwertige, interoperable und konsistente Daten im Semantic Web sicherzustellen. Durch die klare Definition von Regeln für RDF-Daten kann SHACL dazu beitragen, die Datenintegrität zu gewährleisten und Fehler frühzeitig zu erkennen. Mit der zunehmenden Nutzung von Knowledge Graphen und vernetzten Daten wird SHACL eine immer wichtigere Rolle in der Datenmodellierung und -validierung spielen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2025/03/19/shacl-validierung-von-rdf-daten/">SHACL &#8211; Validierung von RDF-Daten</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2025/03/19/shacl-validierung-von-rdf-daten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5416</post-id>	</item>
		<item>
		<title>WebSocket &#8211; Echtzeit-Verbindungen</title>
		<link>https://ceosbay.com/2023/09/29/websocket-echtzeit-verbindungen/</link>
					<comments>https://ceosbay.com/2023/09/29/websocket-echtzeit-verbindungen/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 29 Sep 2023 12:10:30 +0000</pubDate>
				<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Datenwissenschaft]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Informationstechnologie]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[asynchrone Kommunikation]]></category>
		<category><![CDATA[Benutzererfahrung]]></category>
		<category><![CDATA[Client-Server-Interaktion]]></category>
		<category><![CDATA[Datenintegrität]]></category>
		<category><![CDATA[Datenpuffer]]></category>
		<category><![CDATA[Datenströme]]></category>
		<category><![CDATA[Datenübertragung]]></category>
		<category><![CDATA[Datenverschlüsselung]]></category>
		<category><![CDATA[Echtzeit-Kommunikation]]></category>
		<category><![CDATA[Echtzeitanwendungen]]></category>
		<category><![CDATA[Echtzeitdaten]]></category>
		<category><![CDATA[Echtzeitreaktion]]></category>
		<category><![CDATA[Framework-Integration]]></category>
		<category><![CDATA[Handshake-Anfrage]]></category>
		<category><![CDATA[IETF]]></category>
		<category><![CDATA[Interaktivität]]></category>
		<category><![CDATA[Lastmanagement]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[Nachrichtenübertragung]]></category>
		<category><![CDATA[Netzwerkoptimierung]]></category>
		<category><![CDATA[Netzwerksicherheit]]></category>
		<category><![CDATA[Niedrige Latenz]]></category>
		<category><![CDATA[Persistente Verbindung]]></category>
		<category><![CDATA[Protokollstandardisierung]]></category>
		<category><![CDATA[Protokollwechsel]]></category>
		<category><![CDATA[Reaktionsfähigkeit]]></category>
		<category><![CDATA[Ressourcennutzung]]></category>
		<category><![CDATA[Server-Push-Mechanismen]]></category>
		<category><![CDATA[sichere Verbindung]]></category>
		<category><![CDATA[Skalierung]]></category>
		<category><![CDATA[Synchronität]]></category>
		<category><![CDATA[Verbindungsstabilität]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WebSocket-Bibliotheken]]></category>
		<category><![CDATA[WebSocket-Endpunkte]]></category>
		<category><![CDATA[WebSockets]]></category>
		<category><![CDATA[Webstandards]]></category>
		<category><![CDATA[Wiederverbindung]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2548</guid>

					<description><![CDATA[<p>In einer Zeit, in der schnelle und reaktionsschnelle Webanwendungen zur Norm werden, spielt die WebSocket-Technologie eine zentrale Rolle. In diesem Blog-Beitrag beleuchte ich, was WebSockets sind, die Geschichte sowie die richtige Implementierung und einige Best &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/29/websocket-echtzeit-verbindungen/">WebSocket &#8211; Echtzeit-Verbindungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In einer Zeit, in der schnelle und reaktionsschnelle Webanwendungen zur Norm werden, spielt die WebSocket-Technologie eine zentrale Rolle. In diesem Blog-Beitrag beleuchte ich, was WebSockets sind, die Geschichte sowie die richtige Implementierung und einige Best Practices.</p>



<h2 class="wp-block-heading">Was ist ein WebSocket?</h2>



<p>WebSockets stellen eine permanente Verbindung zwischen Client und <a href="https://ceosbay.com/2023/08/29/server-evolution-typen-und-best-practices-fuer-den-aufbau/">Server</a> her, über die beide Parteien in Echtzeit Daten senden und empfangen können. Im Gegensatz zu herkömmlichen <a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">HTTP</a>-Verbindungen, die nur einmalige Anfragen zulassen, ermöglicht WebSockets die fortlaufende Kommunikation ohne ständige Neuverbindungen. Dies bedeutet schnellere Datenübertragungsraten und effizientere Netzwerknutzung.</p>



<h2 class="wp-block-heading">Die Entstehung von WebSockets</h2>



<p>Die Notwendigkeit einer Echtzeitkommunikation im Web führte zur Entwicklung des WebSocket-Protokolls. Ursprünglich als Teil des <a href="https://ceosbay.com/2022/12/29/erklaerung-html/">HTML5</a>-Standards vorgeschlagen, verabschiedete das World Wide Web Consortium (W3C) die WebSocket-Spezifikation 2011 als unabhängigen Standard. Parallel dazu entwickelte die IETF (Internet Engineering Task Force) den RFC 6455, der das zugrunde liegende Protokoll definiert.</p>



<h2 class="wp-block-heading">WebSocket einrichten und implementieren</h2>



<p>Die Implementierung von einem WebSocket beginnt mit einer einfachen Handshake-Anfrage über <a href="https://ceosbay.com/2023/07/04/https-und-https-eine-reise-zur-web-sicherheit/">HTTP</a>. Sobald die Handshake-Anfrage erfolgreich abgeschlossen ist, wechselt die Verbindung zum WebSocket-Protokoll.</p>



<h2 class="wp-block-heading">Beispiel in JavaScript (Client-Seite):</h2>



<pre class="wp-block-code"><code><code>var socket = new WebSocket('ws://example.com/socketendpoint'); socket.onopen = function(event) { socket.send('Hallo Server!'); };</code></code></pre>



<p>Viele Programmiersprachen und Frameworks bieten Bibliotheken, um die Implementierung von WebSockets zu vereinfachen. Bibliotheken wie Socket.io für <a href="https://ceosbay.com/2022/11/12/javascript/">JavaScript</a> oder WebSocket-Sharp für <a href="https://ceosbay.com/2023/04/19/c-als-bruecke-zwischen-innovation-und-benutzererfahrung/">C#</a> helfen Entwicklern, schnell leistungsstarke Echtzeitanwendungen zu erstellen.</p>



<h2 class="wp-block-heading">Best Practices und wichtige Überlegungen</h2>



<ol class="wp-block-list">
<li><strong>Sicherheit zuerst:</strong> Verwende immer <code>wss</code> (WebSocket Secure) anstelle von <code>ws</code> für verschlüsselte Verbindungen. Dies verhindert Man-in-the-Middle-Angriffe und schützt Daten.</li>



<li><strong>Lastmanagement:</strong> Bei hoher Netzwerklast kann die Performance leiden. Überwachung und Skalierung sind entscheidend.</li>



<li><strong>Wiederverbindungsstrategien:</strong> Verbindungsabbrüche sind möglich. Implementiere Strategien zur Wiederverbindung, um die Benutzererfahrung zu optimieren.</li>



<li><strong>Nutzungsbeschränkungen:</strong> Um Ressourcen effektiv zu nutzen, sollten Entwickler Überlegungen bezüglich der Menge und Frequenz der gesendeten Daten anstellen.</li>
</ol>



<h3 class="wp-block-heading">Fazit</h3>



<p>WebSocket revolutioniert die Art und Weise, wie Webanwendungen in Echtzeit kommunizieren. Durch seine einfache Implementierung und die Fähigkeit zur schnellen Datenübertragung ebnet es den Weg für interaktive, reaktionsschnelle und leistungsfähige Webanwendungen. Bei der Implementierung sollten Entwickler jedoch stets die Best Practices im Auge behalten, um sicherzustellen, dass ihre Anwendungen nicht nur funktional, sondern auch sicher und zuverlässig sind.</p>



<p>Notiz: Bei der Implementierung von WebSockets sollte man die individuellen Projektanforderungen und die technischen Spezifikationen stets berücksichtigen. Dieser Artikel bietet lediglich einen groben Überblick und dient nicht als umfassendes Handbuch.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/09/29/websocket-echtzeit-verbindungen/">WebSocket &#8211; Echtzeit-Verbindungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/09/29/websocket-echtzeit-verbindungen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2548</post-id>	</item>
		<item>
		<title>SOAP &#8211; Effiziente Möglichkeit, um Daten zwischen Systemen zu übertragen</title>
		<link>https://ceosbay.com/2023/03/23/erklaerung-soap/</link>
					<comments>https://ceosbay.com/2023/03/23/erklaerung-soap/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 17:16:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Body]]></category>
		<category><![CDATA[Child]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[CSV]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Datenaustausch]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Empfänger]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[Kind]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Middleware]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[Protocol]]></category>
		<category><![CDATA[Protokoll]]></category>
		<category><![CDATA[Request]]></category>
		<category><![CDATA[Rest]]></category>
		<category><![CDATA[Richtlinien]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sender]]></category>
		<category><![CDATA[Serverless]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Transaktion]]></category>
		<category><![CDATA[Unternehmensanforderungen]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[Verbindung]]></category>
		<category><![CDATA[Verschlüsselung]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Ware]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1069</guid>

					<description><![CDATA[<p>SOAP (Simple Object Access Protocol) ist ein Netzwerkprotokoll, mit dessen Hilfe man Daten zwischen Systemen austauschen und RPC’s (Remote Procedure Calls) durchführen kann. SOAP ist ein industrieller Standard des World Wide Web Consortiums (W3C). Es &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/23/erklaerung-soap/">SOAP &#8211; Effiziente Möglichkeit, um Daten zwischen Systemen zu übertragen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>SOAP (Simple Object Access Protocol) ist ein Netzwerkprotokoll, mit dessen Hilfe man Daten zwischen Systemen austauschen und RPC’s (Remote Procedure Calls) durchführen kann. SOAP ist ein industrieller Standard des World Wide Web Consortiums (W3C).</p>



<p>Es stützt sich auf <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a> zur Repräsentation der Daten und auf Internet-Protokolle der Transport- und Anwendungsschicht zur Übertragung der Nachrichten. Die gängigste Kombination ist SOAP über https (Hypertext Transfer Protocol) und TCP (Transmission Control Protocol). Man kann SOAP auch über das SMTP (Simple Mail Transfer Protocol) oder JMS (Jakarta Messaging) verwenden.</p>



<p>Die mit der Nachricht übermittelten Nutzdaten man nicht zwingend in <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a> senden. Andere Formate wie Base64 oder CSV sind ebenfalls möglich. Seit Version 1.2. nutzt man die Abkürzung SOAP offiziell nicht mehr als Akronym, da es erstens (subjektiv) keineswegs einfach (Simple) ist und zweitens nicht nur dem Zugriff auf Objekte (Object Access) dient.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>SOAP entstand aus der Weiterentwicklung der Spezifikation für <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-RPC im Jahr 1998. Hauptverantwortlicher Software-Entwickler damals Dave Winer und seine Firma UserLand Software in engem Austausch mit Microsoft. Dave Winter ist übrigens auch für <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a> 2.0 verantwortlich. Einen Beitrag über <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">RSS</a> findet man <a href="https://ceosbay.com/2022/12/28/erklaerung-rss/" target="_blank" rel="noreferrer noopener">hier</a>.</p>



<p>Im Jahr 1999 fand die Veröffentlichung der Version 1.0 von SOAP statt. Dies stellt unter Anderem den Zeitpunkt dar, an dem die Entwicklung mehr Unterstützung fand. Vor allem hat sich IBM im Jahr 2000 der Entwicklung angeschlossen, was dazu führte, dass IBM, Microsoft, DevelopMentor (Don Box) und UserLand Software (Dave Winer) die Spezifikation von SOAP 1.1 beim World Wide Web Consortium (W3C) einreichten. Dabei hat man das Ziel verfolgt, eine Arbeitsgruppe zu gründen, die SOAP weiterentwickeln sollte. Das Ergebnis dieser Arbeitsgruppe ist SOAP Version 1.2, empfing im Juni 2003 die Anerkennung als recommendation (Empfehlung).</p>



<p>Wie zu Beginn des Beitrags erwähnt, hat man SOAP nicht mehr als gebräuchliche(s) Akronym bzw. Abkürzung verstanden. Der Hauptgrund dafür ist die Tatsache, dass sämtliche Deutungen für SOAP, wie Simple Object Access Protocol oder Service Oriented Architecture Protocol, nicht mehr den vollständigen Sinn von SOAP trafen. Dies ermöglichte die Anmeldung von SOAP als Markennamen in den USA.</p>



<h3 class="wp-block-heading">Wie funktioniert SOAP?</h3>



<p>SOAP ist wie zuvor beschrieben, ein Protokoll zum Austausch <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Information-Set-basierter Nachrichten über ein Rechnernetz und hat den Status einer W3C-Empfehlung. Es stellt Regeln für das Nachrichtendesign auf. Regelt, wie Daten in der Nachricht abzubilden und zu interpretieren sind. Es gibt eine Konvention für entfernte Prozeduraufrufe mittels SOAP-Nachrichten vor. SOAP macht keine Vorschriften zur Semantik applikationsspezifischer Daten, die man gegebenenfalls versendet möchte, sondern stellt ein <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> (Siehe meinen Beitrag) zur Verfügung, welches erlaubt, dass man beliebige applikationsspezifische Informationen übertragen kann. </p>



<p>Man kann SOAP für entfernte Prozeduraufrufe ebenso nutzen wie für einfache Nachrichtensysteme. Zum Senden von Nachrichten kann man beliebige Transportprotokolle verwendet. Dazu gehören beispielsweise FTP, SMTP, https oder auch JMS. Aus Gründen der Kompatibilität nutzt man in der Praxis hierzu gängige Netzwerk-Architekturen. Auch ist mittels https die verschlüsselte Übertragung von SOAP-Nachrichten möglich. Das ermöglicht jedoch keine End-to-End-Verschlüsselung. Dies kann man durch WS-Security erreichen. Die Einbindung erfolgt lediglich auf der Ebene der Nachrichten und nicht auf der des unterliegenden Transportprotokolls. Folglich ist es so, dass man das <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a> Information Set der SOAP-Anfrage bei Nutzung von https(S) im Body eines https POST Requests als <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a> an eine gegebene URL schickt.</p>



<p>In der Regel setzt man SOAP da ein, wo der direkte Zugang fremder Systeme zu einer Informationsquelle nicht sinnvoll erscheint. Dies kann sowohl an Kompatibilitätsproblemen zwischen verschiedenen Anwendungsarchitekturen liegen aber auch an diversen Sicherheitsaspekten. So kann man einen (partiellen) Zugriff auf eine Datenbank ermöglichen, ohne dem Anwenderprogramm den direkten Zugang zu ermöglichen. Die Menge der ausführbaren Methoden reglementiert und definiert man über die SOAP-Schnittstelle.</p>



<p>Die Kommunikation mit SOAP ermöglicht die Kopplung von Systemen. Der offene Entwurf ermöglicht jedoch lediglich den Aufbau schwach gekoppelter Systeme. Die Flexibilität des Konzeptes erkauft man sich durch die Nachteile beim Übertragungsvolumen und Rechenaufwand. Dies kann teuer werden, da man das <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Dokument beim Sender zunächst aufbaut und anschließend validiert. Das Konzept verfolgt eigentlich das Ziel eines leichtgewichtigen Protokolls. </p>



<p>Doch durch den flexiblen Einsatzbereich führt die zu übertragende Datei eine Reihe von Metadaten mit sich, die bei der Konstruktion des <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Dokuments weiter anwächst. So führt beispielsweise das einfache Versenden von „Wahr“ oder „Falsch“ zu einem Datenvolumen von mehreren hundert Bytes. In einem stark gekoppelten System sollte dafür theoretisch ein Bit reichen. </p>



<p>Durch die Möglichkeit des flexiblen Aufbaus des Dokuments kann man jedoch auch komplexe Transaktionen in einer Anfrage atomar zusammenfassen, während man in stark gekoppelten Systemen hierzu oftmals mehrere Anfragen erstellen muss. Dies verbessert das Nutzlastverhältnis (Nutzdaten zu Meta-Daten) und den Kommunikationsaufwand (für den Aufbau einer Verbindung, nur ein Senden/Empfangen).</p>



<p>SOAP unterscheidet zwischen dem endgültigen Empfänger und den Zwischenempfängern. Dies ermöglicht es, eine Nachricht über verschiedene „Hops“ zu schicken, bei denen man sogar verschiedene Transportprotokolle verwendet. Beispielsweise kann man zum ersten Hop die Nachricht mittels <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Message Service schicken, im Anschluss über E-Mail und schließlich dem Empfänger mittels https weitergeben. Der Absender muss über die Zwischenhops keine Information haben, die Middleware jedoch schon.</p>



<h3 class="wp-block-heading">Wie ist eine SOAP-Nachricht aufgebaut?</h3>



<p>Eine minimale SOAP-Nachricht besteht aus einem Envelope genannten Element, dem man einen lokalen Namen zuweisen muss. Dieses Element referenziert mittels eines Namensraum-Attributes auf https://www.w3.org/2003/05/soap-envelope. Child dieses Elements muss ein Body-Element sein. Optional kann zuvor ein Header-Element stehen. In diesem kann man Meta-Informationen, beispielsweise zum Routing, zur Verschlüsselung oder zu Transaktionsidentifizierung, unterbringen. Im Body-Element sind die eigentlichen Nutzdaten untergebracht. Dies sieht dann folgendermaßen aus:</p>



<pre class="wp-block-code"><code>&lt;?xml version="1.0"?&gt;
&lt;s:Envelope xmlns:s="https://www.w3.org/2003/05/soap-envelope"&gt;
    &lt;s:Header&gt;
    &lt;/s:Header&gt;
    &lt;s:Body&gt;
    &lt;/s:Body&gt;
&lt;/s:Envelope&gt;</code></pre>



<p>Innerhalb des Body-Elements können sowohl Informationen zum Datenaustausch als auch Anweisungen für einen entfernten Prozeduraufruf stehen. Dies ist vom Empfänger entsprechend zu interpretieren.</p>



<p>Im Header gibt man den nächsten Hop (intermediary) und den endgültigen Empfänger (ultimate recipient) an. Ein intermediary kann beispielsweise die Nachricht verschlüsseln, sie loggen oder die Nachricht aufteilen. Ersteres erlaubt es, dass die Anwendungslogik sich nicht um die Sicherheit der Nachricht kümmern muss. Darum kümmert sich die Middleware. Was eine Middleware ist, erkläre ich in einem anderen Beitrag. Die Möglichkeit, dass Intermediaries beliebige Dinge tun können, ermöglicht EAI (Enterprise Application Integration).</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>Viele Altsysteme verwenden möglicherweise noch SOAP. In der Vergangenheit war es auch die Lösung schlechthin. Heute ist es eher <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST</a>, welches zum Einsatz kommt und in webbasierten Szenarien häufig als die schnellere Alternative gilt.</p>



<p>Zusammengefasst kann man sagen, dass <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST</a> aus einer Reihe von Richtlinien für eine flexible Implementierung besteht und SOAP ein Protokoll mit spezifischen Anforderungen wie <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/" target="_blank" rel="noreferrer noopener">XML</a>-Messaging ist.</p>



<p><a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST-APIs</a> sind schlank und daher ideal für moderne Anwendungen geeignet, wie das Internet of Things (IoT), mobile Anwendungen und Serverless Computing. SOAP-Webservices bieten zwar integrierte Sicherheit und Transaktions-Compliance, die vielen Unternehmensanforderungen entspricht, doch die Erstellung und Wartung ist wesentlich aufwändiger. Darüber hinaus folgen auch viele öffentlich zugängliche APIsheutzutage, den REST-Richtlinien.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/23/erklaerung-soap/">SOAP &#8211; Effiziente Möglichkeit, um Daten zwischen Systemen zu übertragen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/23/erklaerung-soap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1069</post-id>	</item>
		<item>
		<title>CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</title>
		<link>https://ceosbay.com/2023/02/27/erklaerung-css/</link>
					<comments>https://ceosbay.com/2023/02/27/erklaerung-css/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 27 Feb 2023 18:17:00 +0000</pubDate>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Bildschirm]]></category>
		<category><![CDATA[Bildschirmgrößen]]></category>
		<category><![CDATA[Border]]></category>
		<category><![CDATA[Cascading]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS1]]></category>
		<category><![CDATA[CSS2]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Deklaration]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Devices]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwickeln]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[Gerät]]></category>
		<category><![CDATA[Geräteeigenschaften]]></category>
		<category><![CDATA[Gestaltung]]></category>
		<category><![CDATA[Handy]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[Inhalt]]></category>
		<category><![CDATA[Konzept]]></category>
		<category><![CDATA[Konzepte]]></category>
		<category><![CDATA[Margin]]></category>
		<category><![CDATA[Padding]]></category>
		<category><![CDATA[Präsentation]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Responsive]]></category>
		<category><![CDATA[Selektor]]></category>
		<category><![CDATA[Sheets]]></category>
		<category><![CDATA[Size]]></category>
		<category><![CDATA[Smartphones]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web-Entwicklung]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webseite]]></category>
		<category><![CDATA[Webseiten]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[www]]></category>
		<category><![CDATA[www.]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1388</guid>

					<description><![CDATA[<p>Cascading Style Sheets, besser bekannt als CSS, ist eine entscheidende Technologie zur Gestaltung und Präsentation von Inhalten im Web. Seit der Einführung im Jahr 1996 hat CSS die Art und Weise revolutioniert, wie Entwickler das &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/27/erklaerung-css/">CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Cascading Style Sheets, besser bekannt als CSS, ist eine entscheidende Technologie zur Gestaltung und Präsentation von Inhalten im Web. Seit der Einführung im Jahr 1996 hat CSS die Art und Weise revolutioniert, wie Entwickler das Erscheinungsbild von Websites und Webanwendungen gestalten.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>CSS (Cascading Style Sheets) entstand in den 90er Jahren als Reaktion auf die wachsende Komplexität des Webdesigns und das Bedürfnis, eine klarere Trennung zwischen Inhalt (<a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>) und Gestaltung (CSS) zu erreichen. Bis dahin verwendeten Webdesigner und Entwickler hauptsächlich <a href="https://ceosbay.com/2022/12/29/erklaerung-html/" target="_blank" rel="noreferrer noopener">HTML</a>-Tags und -Attribute, um das Design einer Webseite zu kontrollieren. Diese Praxis führte jedoch zu unübersichtlichem und schwer wartbarem Code und schränkte die kreativen Möglichkeiten ein.</p>



<p>Der norwegische Informatiker und Web-Pionier Håkon Wium Lie ist der Hauptentwickler von Cascading Style Sheets. Zusammen mit dem belgischen Informatiker Bert Bos schlug er 1994 die Idee von CSS vor. Lie arbeitete zu dieser Zeit am CERN (der Europäischen Organisation für Kernforschung) und war am Projekt beteiligt, das zum ersten Webbrowser führte, dem WorldWideWeb (später umbenannt in Nexus). Lie und Bos erkannten, dass man eine Lösung für das Design-Problem finden musste, und entwickelten das Konzept der Cascading Style Sheets.</p>



<p>Später übernahm World Wide Web Consortium (W3C) Cascading Style Sheets. Eine internationale Organisation, die Webstandards entwickelt und pflegt. Das W3C veröffentlichte CSS Level 1 (CSS1) im Jahr 1996. Relativ schnell nahm man es als Webstandard auf. Seitdem hat sich Cascading Style Sheets stetig weiterentwickelt und umfasst mittlerweile mehrere Versionen und Module, die unterschiedliche Aspekte des Webdesigns abdecken.</p>



<h3 class="wp-block-heading">Die Syntax von CSS</h3>



<p>Ein CSS besteht aus Regelsätzen, die jeweils aus einem Selektor und einer Deklaration bestehen. Der Selektor bestimmt, auf welche Elemente man die Stilregeln anwendet, während die Deklaration eine oder mehrere Eigenschaften und deren Werte definiert, die man auf die ausgewählten Elemente angewenden möchte.</p>



<h4 class="wp-block-heading">Beispiel:</h4>



<pre class="wp-block-code"><code>h1 {
  color: red;
  font-size: 24px;
}</code></pre>



<h3 class="wp-block-heading">Selektoren</h3>



<p>Selektoren sind die grundlegenden Bausteine eines CSS-Stylesheets. Sie bestimmen, welche HTML-Elemente von den definierten Stilregeln betroffen sind. Es gibt verschiedene Arten von Selektoren, wie z.B. Element-Selektoren, Klassen-Selektoren, ID-Selektoren und Pseudoklassen.</p>



<h3 class="wp-block-heading">Das Box-Modell von CSS</h3>



<p>Eines der grundlegenden Konzepte in CSS ist das Box-Modell. Die Darstellung aller Elemente auf einer Webseite erfolgt als rechteckige Box.</p>



<h4 class="wp-block-heading">Diese bestehen aus den folgenden vier Bereichen:</h4>



<ol class="wp-block-list" type="1">
<li>Inhalt</li>



<li>Padding</li>



<li>Border</li>



<li>Margin.</li>
</ol>



<p>Durch die Manipulation dieser Bereiche kann man das Layout und die Anordnung von Elementen auf der Webseite steuern.</p>



<h3 class="wp-block-heading">Responsive Webdesign</h3>



<p>Das Aufkommen von mobilen Geräten hat die Wichtigkeit von Responsive Webdesign signifikant erhöht. CSS bietet verschiedene Techniken, um Websites auf unterschiedlichen Bildschirmgrößen und Geräten optimal darzustellen. Die bekannteste Technik ist die Verwendung von Media Queries, die es ermöglichen, verschiedene Cascading Style Sheet Regeln abhängig von der Bildschirmgröße oder anderen Geräteeigenschaften anzuwenden.</p>



<h3 class="wp-block-heading">Fazit:</h3>



<p>CSS ist immer noch ein unverzichtbares Werkzeug für Webdesigner und Entwickler. Durch das Verständnis der Grundlagen und der zugrundeliegenden Konzepte kann man das Aussehen und die Benutzererfahrung von Webseiten und Webanwendungen drastisch verbessern. Die Flexibilität und Leistungsfähigkeit von CSS eröffnen eine Welt der kreativen Möglichkeiten und helfen dabei, das Web nach den eigenen Vorstellungen zu gestalten.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/02/27/erklaerung-css/">CSS &#8211; Die Sprache für ansprechendes Webdesign und kreative Freiheit</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/02/27/erklaerung-css/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1388</post-id>	</item>
		<item>
		<title>XML &#8211; Effiziente Datenstrukturierung</title>
		<link>https://ceosbay.com/2022/12/27/erklaerung-xml/</link>
					<comments>https://ceosbay.com/2022/12/27/erklaerung-xml/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 27 Dec 2022 06:59:00 +0000</pubDate>
				<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Metaverse]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Aufbau]]></category>
		<category><![CDATA[Auto]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Base]]></category>
		<category><![CDATA[Consortium]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Datenzentriert]]></category>
		<category><![CDATA[Dokument]]></category>
		<category><![CDATA[Dokumente]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Donauwörth]]></category>
		<category><![CDATA[DTD]]></category>
		<category><![CDATA[Element]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[end]]></category>
		<category><![CDATA[Extensible]]></category>
		<category><![CDATA[GPX]]></category>
		<category><![CDATA[GraphML]]></category>
		<category><![CDATA[Gültigkeit]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Klassifizierung]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lesbarkeit]]></category>
		<category><![CDATA[logisch]]></category>
		<category><![CDATA[logische]]></category>
		<category><![CDATA[Mark]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[Maschine]]></category>
		<category><![CDATA[Maschinen]]></category>
		<category><![CDATA[München]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[physisch]]></category>
		<category><![CDATA[physische]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Prozessoren]]></category>
		<category><![CDATA[PULL]]></category>
		<category><![CDATA[Rest]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[Semistrukturiert]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[Sprache Extensible Markup Language]]></category>
		<category><![CDATA[start]]></category>
		<category><![CDATA[Strukturiert]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Tag]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[Valid]]></category>
		<category><![CDATA[Validität]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Wide]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1063</guid>

					<description><![CDATA[<p>XML (Extensible Markup Language) ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten im Format einer Textdatei, die sowohl von Menschen als auch von Maschinen lesbar ist. Im Endeffekt kann man damit Daten auf gemeinsam nutzbare &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/">XML &#8211; Effiziente Datenstrukturierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>XML (Extensible Markup Language) ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten im Format einer Textdatei, die sowohl von Menschen als auch von Maschinen lesbar ist. Im Endeffekt kann man damit Daten auf gemeinsam nutzbare Weise definieren und speichern. Es unterstützt den Informationsaustausch zwischen Computersystemen wie Websites, Datenbanken und Anwendungen von Drittanbietern. Vordefinierte Regeln erleichtern die Übertragung von Daten als XML-Dateien über ein beliebiges Netzwerk, da der Empfänger diese Regeln verwenden kann, um die Daten genau und effizient zu lesen. Dazu aber im Anschluss etwas mehr und vor allem etwas genauer.</p>



<h3 class="wp-block-heading">Eine wirklich kurze Zeitreise</h3>



<p>Die Extensible Markup Language wurde vom World Wide Web Consortium (W3C) am 10. Februar 1998 veröffentlicht. Die aktuelle Fassung ist die fünfte Ausgabe vom 26. November 2008. Alle bisherigen und aktuellen Publikationen kann man <a href="https://www.w3.org/XML/Core/#Publications" target="_blank" rel="noreferrer noopener">hier</a>&nbsp;einsehen.</p>



<h3 class="wp-block-heading">Was ist XML nun wirklich und was tut es?</h3>



<p>Es ist eine Metasprache, auf deren Basis durch strukturelle und inhaltliche Einschränkungen anwendungsspezifische Sprachen definiert werden. Diese Einschränkungen werden entweder durch eine Document Type Definition (DTD) oder durch ein XML Schema ausgedrückt. Beispiele für XML-Sprachen sind: RSS, MathML, GraphML, XHTML, XAML, Scalable Vector Graphics (SVG), GPX, aber auch das XML-Schema selbst. Auf diese Sprachen gehe ich in zukünftigen Sprachen ein. Besonders SVG hat einen Großteil meiner persönlichen Entwicklung geprägt.</p>



<p>Die Standardzeichenkodierung eines XML-Dokumentes ist UTF-8. XML-bearbeitende Systeme müssen die Kodierungen UTF-8 und UTF-16 beherrschen. XML-Dokumente, die UTF-8 oder UTF-16 verwenden, können in allen Texteditoren, die diese Kodierungen unterstützen, angezeigt und bearbeitet werden. Damit sind so ziemlich alle &#8222;Browser&#8220; gemeint 😉</p>



<p>Wenn das XML-Dokument Binärdaten enthalten soll, müssen diese Daten zu Text konvertiert bzw. umkodiert werden. Dazu kann z. B. die Base64-Kodierung verwendet werden.</p>



<h3 class="wp-block-heading">Das Element</h3>



<p>Die essenzielle Struktureinheit eines XML-Dokumentes ist das Element. Elemente können Text wie auch weitere Elemente als Inhalt enthalten. Elemente bilden die Knoten des Strukturbaumes eines XML-Dokumentes. Der Name eines Elementes kann in Dokumenten ohne Dokumenttypdefinition (DTD) frei gewählt werden. In XML-Dokumenten mit DTD muss der Name eines Elementes in der DTD deklariert sein und das Element muss sich in einer zugelassenen Position innerhalb des Strukturbaumes gemäß DTD befinden. In der DTD wird u. a. der mögliche Inhalt eines jeden Elementes definiert. Elemente sind die Träger der Information in einem XML-Dokument.</p>



<h3 class="wp-block-heading">Tag</h3>



<p>Für die Auszeichnung von Elementen werden Tags verwendet. Auf den ersten Blick sehen XML-Tags fast wie HTML-Tags aus. Start-Tags beginnen mit &lt; und End-Tags mit &lt;/. Bei beiden folgt anschließend der Name des Elements, und sie werden beide durch &gt; geschlossen. Anders als bei den HTML-Tags können Sie jedoch neue Tags erzeugen. Um eine Person zu beschreiben, benutzt man die Tags &lt;person&gt; und &lt;/person&gt;. Um ein Tier zu beschreiben, verwendet man die Tags &lt;tier&gt; und &lt;/tier&gt;. Die Namen der Tags spiegeln im Allgemeinen die Art des Inhalts innerhalb des Elements wider und nicht die Art und Weise, wie der Inhalt formatiert wird.</p>



<h3 class="wp-block-heading">Wohlgeformtheit</h3>



<p>Ein XML-Dokument ist „wohlgeformt“ (well-formed), wenn es alle Regeln einhält.</p>



<h3 class="wp-block-heading">Die Regeln</h3>



<ul class="wp-block-list">
<li>Das Dokument besitzt genau ein Wurzelelement. Als Wurzelelement wird dabei das jeweils äußerste Element bezeichnet, z. B. &lt;html&gt; in XHTML.</li>



<li>Alle Elemente mit Inhalt besitzen einen Start- und einen Endtag (z. B. &lt;eintrag&gt;Eintrag 1&lt;/eintrag&gt;). Elemente ohne Inhalt können mit einem Leertag gekennzeichnet werden (z. B. &lt;eintrag /&gt;).</li>



<li>Die Start- und Endtags sind ebenentreu-paarig verschachtelt. Dies bedeutet, dass alle Elemente geschlossen sind, bevor die End-Auszeichner des entsprechenden Elternelements oder die Beginn-Auszeichner eines Geschwisterelements erscheinen.</li>



<li>Ein Element darf nicht mehrere Attribute mit demselben Namen besitzen.</li>



<li>Attributwerte müssen in Anführungszeichen stehen (&#8222;&#8230;&#8220; oder &#8218;&#8230;&#8216;).</li>



<li>Die Start- und Endtags sind Case sensitive, also beachten die Groß- und Kleinschreibung (z. B. &lt;eintrag&gt;&lt;/Eintrag&gt; ist ungültig).</li>
</ul>



<h3 class="wp-block-heading">Gültigkeit (Validität)</h3>



<p>Verwendet man es für den Datenaustausch, ist es von Vorteil, wenn das Format mittels einer Grammatik (z. B. einer Dokumenttypdefinition oder eines XML-Schemas) definiert ist. Der Standard definiert ein XML-Dokument als gültig (oder englisch valid), wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format einhält.</p>



<h3 class="wp-block-heading">Parser</h3>



<p>Programme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen, nennt man XML-Parser. Prüft der Parser die Gültigkeit, so ist er ein validierender Parser. Darauf gehe ich aber in einem zukünftigen Beitrag genauer ein.</p>



<h3 class="wp-block-heading">Wie sieht die Extensible Markup Language eigentlich aus?</h3>



<pre class="wp-block-code"><code>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
&lt;verzeichnis&gt;
    &lt;titel&gt;Städteverzeichnis&lt;/titel&gt;
    &lt;eintrag&gt;
        &lt;stichwort&gt;München&lt;/stichwort&gt;
        &lt;eintragstext&gt;München ist der Sitz von ...&lt;/eintragstext&gt;
    &lt;/eintrag&gt;
    &lt;eintrag&gt;
        &lt;stichwort&gt;Donauwörth&lt;/stichwort&gt;
        &lt;eintragstext&gt;Donauwörth ist eine Stadt, die ...&lt;/eintragstext&gt;
    &lt;/eintrag&gt;
&lt;/verzeichnis&gt;</code></pre>



<h3 class="wp-block-heading">XML-Dokumente besitzen einen physischen und einen logischen Aufbau.</h3>



<p><strong>Der physische Aufbau</strong></p>



<ul class="wp-block-list">
<li>Die Dokument-Entität (Document entity) enthält das Hauptdokument.</li>



<li>Weitere mögliche Entitäten sind über Entitätenreferenzen (&amp;name; für das Dokument bzw. %name; für die Dokumenttypdefinition) eingebundene Zeichenketten, eventuell auch ganze Dateien, sowie Referenzen auf Zeichenentitäten zur Einbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (&amp;#Dezimalzahl; oder &amp;#xHexadezimalzahl;).</li>



<li>Eine XML-Deklaration wird verwendet, um die Version, Zeichenkodierung und eine mögliche Verarbeitbarkeit ohne DTD zu spezifizieren.</li>



<li>Eine DTD wird verwendet, um Entitäten sowie den erlaubten logischen Aufbau zu spezifizieren. Die Verwendung einer DTD kann in der Deklaration abgewählt werden.</li>
</ul>



<p><strong>Der logische Aufbau</strong></p>



<p>Der logische Aufbau entspricht einer Baumstruktur und ist damit hierarchisch organisiert. Es gibt folgende Baumknoten:</p>



<ul class="wp-block-list">
<li>Elemente, deren physische Auszeichnung mittels eines passenden Paars aus Starttag &lt;Tagname&gt; und End-Tag &lt;/Tagname&gt; oder eines Leertags &lt;Tagname/&gt; erfolgen kann.</li>



<li>Attribute als bei einem Starttag oder Leertag geschriebene zusätzliche Eigenschaften der Elemente in der Syntax Attributname=Attributwert.</li>



<li>Verarbeitungsanweisungen &lt;?Zielname Daten?&gt; (engl. Processing Instructions).</li>



<li>Kommentare &lt;!&#8211; Kommentar-Text &#8211;&gt;.</li>



<li>Text, der als normale Zeichendaten oder in Form eines CDATA-Abschnittes &lt;![CDATA[ beliebiger Text]]&gt; auftreten kann.</li>
</ul>



<p>Ein XML-Dokument muss genau ein Element auf der obersten Ebene enthalten. Unterhalb dieses Dokumentelements können weitere Elemente und Texte verschachtelt werden.</p>



<h3 class="wp-block-heading">Was ist DTD</h3>



<p>Wie vorher kurz ausgeschrieben und angeschnitten, handelt es sich dabei um die Dokumenttypdefinition und beschreibt die Struktur sowie Grammatik von Dokumenten. Sie ist Systembestandteil von XML und per Standard aktiviert.</p>



<p>Werden Dokumente mit Bezug zu einer externen Dokumenttypdefinition oder mit einer integrierten Dokumenttypdefinition erstellt, prüft der Parser das Dokument bereits beim Öffnen (Lesen). Ein Dokument auf Basis einer Dokumenttypdefinition ist stets ein valides Dokument. Die Übereinstimmung des Dokumentinhaltes mit den Regeln der Dokumenttypdefinition steht im Vordergrund. Die technische Lesbarkeit, also auch das Lesen von nicht validen Dokumenten ist nachrangig. Das ist für Volltextdokumente (erzählende Dokumente, engl. narrative documents) vorgesehen und der Haupteinsatzzweck.</p>



<p>Dokumente ohne DTD sind eher für den beliebigen Datenaustausch geeignet. Der Parser prüft diese Dokumente nur nach den Regeln der Wohlgeformtheit. Die technische Lesbarkeit steht hier an erster Stelle. Das Prüfen und Auslesen der eigentlichen Informationen wird mit nachgelagerten Prozessen realisiert.</p>



<h3 class="wp-block-heading">Lesbarkeit</h3>



<p>Wie zu Beginn erwähnt, können alle Webbrowser wie Apple Safari, Google Chrome, Microsoft Edge, Mozilla Firefox, Opera usw. XML-Dokumente mit Hilfe des eingebauten Parsers direkt visualisieren. Dadurch werden keine zusätzlichen PlugIns oder der Gleichen benötigt.</p>



<h3 class="wp-block-heading">Klassifizierung von XML-Dokumenten</h3>



<p>XML-Dokumente lassen sich anhand ihrer Bestimmung und ihres Strukturierungsgrades in dokumentzentrierte und datenzentrierte Dokumente unterteilen. Die Grenze zwischen diesen Dokumentenarten ist fließend. Mischformen können als semistrukturiert bezeichnet werden.</p>



<h3 class="wp-block-heading">Dokumentzentriert</h3>



<p>Das Dokument ist an ein Textdokument angelehnt, dass für den menschlichen Leser größtenteils auch ohne die zusätzliche Metainformation verständlich ist. XML-Elemente werden hauptsächlich zur semantischen Markierung von Passagen des Dokuments genutzt.&nbsp;</p>



<p>Das Dokument ist nur schwach strukturiert. Aufgrund der schwachen Strukturierung ist eine maschinelle Verarbeitung schwierig.</p>



<h3 class="wp-block-heading">Datenzentriert</h3>



<p>Das Dokument ist hauptsächlich für die maschinelle Verarbeitung bestimmt. Es folgt einem Schema, das Entitäten eines Datenmodells beschreibt und definiert, in welcher Beziehung die Entitäten zueinanderstehen und welche Attribute die Entitäten haben. Das Dokument ist somit stark strukturiert und für den unmittelbaren menschlichen Gebrauch weniger geeignet.</p>



<h3 class="wp-block-heading">Semistrukturiert</h3>



<p>Semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist als dokumentzentrierte Dokumente, aber schwächer als datenzentrierte Dokumente.</p>



<p>Es ist typisch für datenzentrierte XML-Dokumente, dass Elemente entweder Elementinhalte oder Textinhalte haben. Der sogenannte gemischte Inhalt (Mixed Content), bei dem Elemente sowohl Text als auch Childs (Kind-Elemente) enthalten, ist für die anderen XML-Dokumente typisch.</p>



<h3 class="wp-block-heading">Verarbeitungskriterien der Extensible Markup Language</h3>



<p>Grundsätzlich sind drei Aspekte beim Zugriff auf ein XML-Dokument von Bedeutung:</p>



<ol class="wp-block-list" type="1">
<li>Wie erfolgt der Zugriff auf die XML-Datei: sequenziell oder wahlfrei?</li>



<li>Wie ist der Ablauf beim Zugriff auf die Daten gestaltet: „Push“ oder „Pull“? (Push bedeutet, dass die Ablaufkontrolle des Programms beim Parser liegt. Pull bedeutet, dass die Ablaufkontrolle im Code, der den Parser aufruft, implementiert ist.)</li>



<li>Wie erfolgt das Baumstrukturmanagement der XML-Daten: hierarchisch oder verschachtelt?</li>
</ol>



<h3 class="wp-block-heading">Programmgesteuerter Zugriff auf XML-Dokumente</h3>



<p>Das Einlesen von XML-Dokumenten erfolgt auf unterster Ebene über eine spezielle Programmkomponente, einem XML-Prozessor, auch XML-Parser genannt. Er stellt eine Programmierschnittstelle (API) zur Verfügung, über die die Anwendung auf das XML-Dokument zugreift. Ich habe zwar in einem vorherigen Beitrag über die <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST API</a> geschrieben, doch werde ich definitiv die Programmierschnittstelle explizit nochmals ein einem Beitrag thematisieren.</p>



<h3 class="wp-block-heading">Die XML-Prozessoren unterstützen dabei drei grundlegende Verarbeitungsmodelle</h3>



<ol class="wp-block-list" type="1">
<li>DOM: Ein DOM-API repräsentiert ein XML-Dokument als Baumstruktur und gewährt wahlfreien Zugriff auf die einzelnen Bestandteile der Baumstruktur. DOM erlaubt außer dem Lesen von den Dokumenten auch die Manipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesem Grund ist DOM sehr speicherintensiv.</li>



<li>SAX: Ein SAX-API repräsentiert ein XML-Dokument als sequentiellen Datenstrom und ruft für im Standard definierte Ereignisse vorgegebene Rückruffunktionen (callback function) auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Rückruffunktionen registrieren und auf diese Weise die Daten auswerten.</li>



<li>Pull-API: Eine XML-Pull-API verarbeitet Daten sequenziell und bietet sowohl ereignisbasierte Verarbeitung als auch einen Iterator an. Es ist hoch speichereffizient und ggf. leichter zu programmieren als das SAX-API, da die Ablaufkontrolle beim Programm und nicht beim Parser liegt.</li>
</ol>



<p>Weitere Verarbeitungsmodelle sind das Data-Binding, welches die XML-Daten als Datenstruktur direkt für einen Programmzugriff bereitstellt. Die XML-Daten werden per Unmarshalling (Dies ist der Prozess der Umwandlung einer Art von Darstellung auf niedrigerer Ebene, oft ein &#8222;Drahtformat&#8220;, in eine Struktur auf höherer Ebene (Objekt).) direkt in z. B. Objekte gewandelt. Und die Nicht-extrahierende-XML-API, bei der die Daten auf Byte-Ebene sehr effizient verarbeitet sind.</p>



<p>Oftmals greift der Anwendungscode nicht direkt auf die Parser-API zu. Stattdessen wird es weiter gekapselt, so dass der Anwendungscode mit nativen Objekten / Datenstrukturen arbeitet, welche sich auf darauf abstützen. Beispiele für solche Zugriffsschichten sind JAXB in Java, der Data Binding Wizard in Delphi oder das XML Schema Definition Toolkit in .Net. Die Umwandlung von Objekten in die Extensible Markup Language ist üblicherweise bidirektional möglich. Diese Umwandlung bezeichnet man als Serialisierung oder Marshalling.</p>



<h3 class="wp-block-heading">Transformation und Darstellung von XML-Dokumenten</h3>



<p>Ein XML-Dokument kann mittels geeigneter Transformationssprachen wie XSLT oder DSSSL in ein anderes Dokument transformiert werden. Oftmals dient die Transformation zur Überführung eines Dokuments aus einer Extensible Markup Language in eine andere Extensible Markup Language, beispielsweise zur Transformation nach XHTML, um das Dokument in einem Webbrowser anzuzeigen.</p>



<h3 class="wp-block-heading">Warum XML?</h3>



<p><strong>Unterstützung von und bei Transaktionen</strong></p>



<p>Wenn ein Unternehmen eine Ware oder Dienstleistung an ein anderes Unternehmen verkauft, müssen die beiden Unternehmen Informationen wie Kosten, Spezifikationen und Lieferpläne austauschen. Man kann damit alle erforderlichen Informationen elektronisch teilen und komplexe Geschäfte automatisch abschließen, ohne dass ein menschliches Eingreifen erforderlich ist.</p>



<p><strong>Aufrechterhaltung der Datenintegrität</strong></p>



<p>Man kann damit Daten zusammen mit der Beschreibung der Daten übertragen und so den Verlust der Datenintegrität verhindern. Folglich kann man so die Datengenauigkeit überprüfen, automatische Anpassungen der Datenpräsentation für verschiedene Benutzer vornehmen und Daten konsistent über mehrere Plattformen hinweg speichern&nbsp;</p>



<p><strong>Sucheffizienz verbessern</strong></p>



<p>Computerprogramme wie Suchmaschinen können die Dateien damit effizienter und präziser sortieren und kategorisieren als andere Arten von Dokumenten. Beispielsweise kann das Wort mark (markieren) entweder ein Substantiv oder ein Verb sein. Basierend auf XML-Tags können Suchmaschinen mark für relevante Suchergebnisse genau kategorisieren. Somit hilft es, die natürliche Sprache für Maschinen effizienter interpretierbar zu machen.</p>



<p><strong>Flexible Anwendungen entwerfen</strong></p>



<p>Man kann damit auch das eigene Anwendungsdesign bequem aktualisieren oder ändern. Viele Technologien, insbesondere neuere Technologien, verfügen dafür über eine integrierte Schnittstelle bzw. Unterstützung. So kann man automatisch Datendateien lesen und verarbeiten, sodass die Änderungen stattfinden können, ohne gleich die gesamte Datenbank neu formatieren zu müssen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/">XML &#8211; Effiziente Datenstrukturierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/27/erklaerung-xml/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1063</post-id>	</item>
	</channel>
</rss>
