XML-Namensräume. Marc Monecke monecke@informatik.uni-siegen.de

Ähnliche Dokumente
Klaus Schild, XML Clearinghouse Namensräume

XML-Namensräume. Udo Kelter

XML. Teil 3: Namensräume. Abteilung Informatik WS 02/03

Innere Klassen in Java

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Java: Vererbung. Teil 3: super()

Java Kurs für Anfänger Einheit 5 Methoden

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Einführung in die Programmierung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Kurzanweisung für Google Analytics

Einführung in die Informatik Tools

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Lehrer: Einschreibemethoden

Netzwerkeinstellungen unter Mac OS X

Vorkurs C++ Programmierung

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

PowerPoint 2010 Mit Folienmastern arbeiten

Anleitung zum Bestellformular für Visitenkarten UZH

Bedienungsanleitung für den Online-Shop

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

C/C++ Programmierung

Einführung in Javadoc

GOST - NORMEN IN ÜBERSETZUNG RUSSIAN STANDARDS IN TRANSLATION

Ressourcen-Beschreibung im Semantic Web

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

desk.modul : WaWi- Export

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Tagesprogramm

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Die aktuelle Version des SPIEGEL-Bestseller-Widgets können Sie auf unserer Website unter Entwicklertools herunterladen.

Hilfe zur ekim. Inhalt:

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Sophia Business Leitfaden zur Administration

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

ZIMT-Dokumentation für Studierende Webmail-Oberfläche (Roundcube)

Anmeldung als Affiliate bei Affilinet

FIS: Projektdaten auf den Internetseiten ausgeben

UPDATEANLEITUNG ELBA 5

Professionelle Seminare im Bereich MS-Office

Typumwandlungen bei Referenztypen

Software Engineering Interaktionsdiagramme

Hyperlinks, Navigation, Pfade

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Benutzerkonto unter Windows 2000

Snippets - das Erstellen von "Code- Fragmenten" - 1

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Erstellen und Bearbeiten von Inhalten (Assets)

Internet Explorer Version 6

IBIS Professional. z Dokumentation zur Dublettenprüfung

Visual Basic Express erstes Projekt anlegen

Willkommen im Online-Shop der Emser Therme GmbH

Inhaltsverzeichnis. 1. Empfängerübersicht / Empfänger hinzufügen 2. Erstellen eines neuen Newsletters / Mailings 3. Versand eines Newsletters

WEBSEITEN ENTWICKELN MIT ASP.NET

... MathML XHTML RDF

PowerWeiss Synchronisation

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Themenblock 2: Datenmodellierung mit ERM

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Webalizer HOWTO. Stand:

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Wie Sie mit Mastern arbeiten

Informatik 12 Datenbanken SQL-Einführung

Anhang. 3. Was denken Sie: An wen richtet sich das Lernprogramm für Psycholinguistik? zu nicht nicht zu

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Fachhochschule Deggendorf Platzziffer:...

Grundbegriffe der Informatik

Windows 7 - Whoami. Whoami liefert Informationen wie z.b. die SID, Anmelde-ID eines Users, sowie Gruppenzuordnungen, Berechtigungen und Attribute.

Klassendiagramm. (class diagram)

Authentication Policy. Konfigurationsbeispiel ZyXEL ZyWALL USG-Serie. Juni 2010 / HAL

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Prüfungszeiten für den Studiengang Bachelor of Science in Psychologie

Einführung in die Java- Programmierung

Das Starten von Adami Vista CRM

Professionelle Seminare im Bereich MS-Office

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Arbeiten mit UMLed und Delphi

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Arbeiten mit dem Outlook Add-In

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

WhiteStarUML Tutorial

Programmieren Tutorium

Prinzipien Objektorientierter Programmierung

Containerformat Spezifikation

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

Modul-Dokumentation: igalerie

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Transkript:

XML-Namensräume Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 19. Mai 2003 Inhaltsverzeichnis 1 Motivation und Übersicht 2 2 Namensräume in Programmen 2 3 Namenskonflikte in Transportdateien 3 4 Namensräume in XML 3 4.1 Namen und Bezeichner für Namensräume...................... 3 5 Benutzung von Namensraum-Bezeichnern 4 6 Sonderfälle 5 6.1 Vorgegebener Namensraum.............................. 5 6.2 Namenloser Namensraum............................... 6 7 Zusammenfassung 6 1

1 Motivation und Übersicht Namen für Elementtypen und Attribute müssen eindeutig sein Gültigkeitsbereich: Namensraum in XML bisher: 1 Namensraum pro Datei mögliches Problem: Namenskollisionen XML-Dokumente aus verschiedenen Quellen mischen DTD wiederverwenden, die unabhängig voneinander entworfen wurden XML Namespaces W3C-Spezifikation: Namespaces in XML Menge von Namen identifiziert mit URI-Referenz Name besteht aus Namensraum-Präfix : lokalem Namen 2 Namensräume in Programmen Namensraum definiert Menge von Deklarationen innerhalb der Menge müssen Namen eindeutig sein z.b. Menge aller Variablendeklarationen innerhalb Block Sichtbarkeitsbereich gibt an, wo Name gilt Sichtbarkeitsregeln behandeln Namenskollisionen z.b. Deklaration im inneren Block überdeckt Deklaration im äußeren public class X { protected int i; public void set ( int i ) { this.i = i; } public int add ( int n ) { int i; i = this.i + n; } } return i; 2

3 Namenskonflikte in Transportdateien Name name taucht mehrfach auf: <personen> <person> <name>meier</name> <vorname>hans</vorname> <hund name="fred">schäferhund</hund> <auto kennz="si-xy 12"> <hersteller> <name>vw</name> <ort>wolfsburg</ort> </hersteller> </auto> </person> </personen> Namenskonflikte können meist nicht automatisch gelöst werden 4 Namensräume in XML Namensräume explizit benannt Namensraum-Name Namen für Namensräume universell eindeutig im Namensraum: lokaler Name qualifizierter Name ::= Namensraum-Name : lokaler Namen 4.1 Namen und Bezeichner für Namensräume <x xmlns:edi= http://ecommerce.org/schema > <!-- the "edi" prefix is bound to http://ecommerce.org/schema for the "x" element and contents --> </x> Namensraum-Name durch URI (Uniform Resource Identifier) angegeben http://ecommerce.org/schema im öffnenden tag dient nicht zur Lokalisierung einer Ressource, sondern als eindeutiger und dauerhafter Bezeichner aber URI unhandlich, Syntax problematisch statt dessen Platzhalter verwenden Namensraum-Bezeichner: edi 3

wird dem Namensraum-Namen zugeordnet xmlns:edi= http://ecommerce.org/schema Gültigkeit an Element gekoppelt Name gilt innerhalb des Elements x Syntax gewöhnungsbedürftig entspricht eigentlich der Zuweisung des Wertes http://ecommerce.org/schema an das Attribut edi im Namensraum xmlns! 5 Benutzung von Namensraum-Bezeichnern Namensraum-Bezeichner + Name qualifizierter Name: edi:price <x xmlns:edi= http://ecommerce.org/schema > <!-- the price element s namespace is http://ecommerce... --> <edi:price units= Euro >32.18</edi:price> </x> Namensraum-Bezeichner kann im Element vor der Deklaration verwendet werden: <!-- all elements here are explicitly in the w3ns namespace --> <w3ns:html xmlns:w3ns= http://www.w3.org/tr/rec-html40 > <w3ns:head><w3ns:title>frobnostication</w3ns:title></w3ns:head> <w3ns:body> <w3ns:p>moved to <w3ns:a href= http://frob.com >here.</w3ns:a> </w3ns:p> </w3ns:body> </w3ns:html> Namensraum-Bezeichner: w3ns Namensraum-Name: http://www.w3.org/tr/rec-html40 Elementtyp: html Mehrere Namensräume innerhalb eines Elements möglich: <!-- both namespace prefixes are available throughout --> <bk:book xmlns:bk= urn:loc.gov:books xmlns:isbn= urn:isbn:0-395-36341-6 > <bk:title>cheaper by the Dozen</bk:title> <isbn:number>1568491379</isbn:number> </bk:book> 4

Namensraum-Bezeichner bk und isbn definiert in Element book Mehrere Namensraum-Bezeichner für gleichen Namensraum möglich: <x xmlns:edi= http://ecommerce.org/schema xmlns:ecomm= http://ecommerce.org/schema > <!-- the price element s namespace is http://ecommerce... --> <edi:price units= Euro >32.18</edi:price> </x> Namensraum-Bezeichner edi und ecomm sind dem Namensraum http://ecommerce.org/schema zugeordnet Namensraum-Namen müssen buchstäblich identisch sein! 6 Sonderfälle 6.1 Vorgegebener Namensraum Angabe der Namensraum-Bezeichner lästig gewünschten Namensraum einmal angeben (default namespace): <!-- elements are in the HTML namespace, in this case by default --> <html xmlns= http://www.w3.org/tr/rec-html40 > <head><title>frobnostication</title></head> <body><p>moved to <a href= http://frob.com >here</a>.</p></body> </html> Innerhalb Element html wird Namensraum http://www.w3.org/tr/rec-html40 verwendet default namespace gilt für alle enthaltenen Elemente ohne Namensraum-Präfix wenn Präfix vorhanden (isbn), gilt dieser: <!-- unprefixed element types are from "books" --> <book xmlns= urn:loc.gov:books xmlns:isbn= urn:isbn:0-395-36341-6 > <title>cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> </book> vorgegebener Namensraum urn:loc.gov:books für alle Elemente innerhalb book ohne Namensraum-Präfix nur number aus Namensraum urn:isbn:0-395-36341-6 mit Namensraum-Bezeichner isbn 5

6.2 Namenloser Namensraum implizit Namensraum ohne Name vorhanden kein Namensraum-Bezeichner nur nicht-qualifizierte Namen möglich wenn default namespace angegeben ist, gilt dieser für nicht-qualifizierte Namen <A> <B> <C> <D>... </D> <E>... </E> </C> </B> <B xmlns= http://www.xmldemo.org > <C> <D>... </D> <E>... </E> </C> </B> </A> beide Auftreten von C, D, E beziehen sich auf unterschiedliche Typen! Gegenmaßnahme: namenlosen Namensraum mit xmlns= angeben: <A> <B xmlns= http://www... > <C xmlns= > <D>... </D> <E>... </E> </C> </B> </A> C, D, E in beiden Fällen aus namenlosem Namensraum 7 Zusammenfassung Namensräume helfen, Namenskollisionen zu vermeiden qualifizierte Namen es bestehen einige Unterschiede zwischen Namensräumen in XML und Namensräumen in Programmiersprachen Namensraum ist Namensraum-Name (URI) und Namensraum-Bezeichner zugeordnet Namensraum gilt innerhalb Element 6

mehrere Namensräume pro Element, mehrere Namensraum-Bezeichner pro Namensraum möglich Sonderfälle: Vorgegebener Namensraum (default namespace), namenloser Namensraum 7