XML 1.1 és névterületek

Hasonló dokumentumok
Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint Bevezetés a nyelvtechnológiába 2. gyakorlat szeptember 20.

Az XML alapnyelv. dr. Paller Gábor. XML technológiák

DTD Dokumentumtípus definició

XPath. dr. Paller Gábor. XML technológiák

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Az XML alapjai BME VIK BSc. Intelligens Rendszerek ágazat, Kooperatív rendszerek labor

Az XML szabvány. Az XML rövid története. Az XML szabvány

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

XML és XSLT (a színfalak mögül)

Web-fejlesztés NGM_IN002_1

XML az Extensible Markup Language (Kiterjeszthet jelöl nyelv) szavak rövidítése. XML a World Wide Web Konzorcium (W3C) ajánlása, amely kompatíbilis

34. Elsődleges kulcs megadása XMLSchema-ban Idegen kulcs megadása XMLSchema-ban Típusok kategóriái és saját típus megadásának

A szoftver és hardverfüggetlen adatbázis

URN használata hálózati dokumentumok azonosításában Országos Széchényi Könyvtár Könyvtár-informatikai M hely Budapest, június 12.

XML / CSV specifikáció

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás:

Orvos Bejelentő Program (OBP) rekordkép 2. verzió XML formátum

Az XML 1.0 szabvány. tanulmány. Készítette: Mészáros Tamás. Budapest, BME Méréstechnika és Információs Rendszerek Tanszék

FELHASZNÁLÓI DOKUMENTÁCIÓ

Az XML dokumentumok adatmodellje

Ed. Version 1.2. Az XML nyelv. Az XML nyelv. Győri László munkája. Ed. Version 1.2

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

XML / CSV specifikáció

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze:

Adatkezelési mőveletek az XML nyelvben XQuery - XML dokumentumok lekérdezésére szolgáló lekérdezınyelv kifejezı ereje az OQL nyelvével egyenértékő.

1. Az XML és XHTML nyelvek. Az XML leíró nyelv Szabályok XHTML írásra. Tartalom Az XML leíró nyelv

XML. Document Type Definitions (DTD) XML séma

XmlGessünk 13. rész - Az XML Schema II.

Komputeralgebra rendszerek

Komputeralgebra rendszerek

Miskolci Egyetem. Műszaki kommunikáció. Vizsga-jegyzet. Hegedűs Ádám Imre

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Adatbázis alapú rendszerek

XML EXtensible Markup Language

GS Pláza API dokumentáció

Intelligens elektronikus szótár és lexikai adatbázis

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Az XML-DTD áttekintése

30 MB INFORMATIKAI PROJEKTELLENŐR

XML sémanyelvek Jeszenszky, Péter

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

EXtensible Markup Language (XML) 1.0 XML 1.0. Az angol változat nyersfordítása. Készült az Elektronikus Kereskedelmi Fórumban

Programozás III BEVEZETÉS. Sok adatkezeléssel kapcsolatos feladat van. a/ Adatok fájlban. b/ Adatbázisban

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Cato Software. Premier G Med Onko Kft. Licencek leírása 7/1. Premier G Med Onko Kft.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

SQLServer. DB Recovery modes

Web programozás I. 4. előadás

XML-HMTL Beadandó Dolgozat. Avagy, mit sikerült validálnunk fél év alatt

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Félig-strukturált adatmodell (Semi-structured data model)

Web-fejlesztés NGM_IN002_1

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Main schema Types_uj.xsd. Simple Type HirkozlesVezetekFektetesJellegeEnum. Simple Type HirkozlesVezetekCelTipusEnum. Annotations

Java II. I A Java programozási nyelv alapelemei

XML adatbázis kezelésének lehetőségei

Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

SQL DDL-1: táblák és megszorítások

Moduláris USB billentyűzet emulátor

A d m i n i s z t r á c i ó s f e l a d a t o k a I n t e g r á l t K ö n y v t á r i R e n d s z e r b e n

XML sémák, adatmodellezés

Algoritmizálás és adatmodellezés tanítása 1. előadás

Multimédia 2017/2018 II.

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

ColourSMS Protokol definíció. Version 1.2

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Java II. I A Java programozási nyelv alapelemei

Webes űrlapok és az XForms ajánlás

500. CC Megoldó Alfréd CC 500.

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

A gyakorlaton megoldandó feladat. Áttekintés. Probléma - Tervezés. 6. gyak 1. feladat. ASP.NET Alapozó. Authentikáció és Authorizáció

XPath 1.0. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar Utolsó módosítás: szeptember 5.

Dr. Sipos Marianna ZMNE BJKMK

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

DIPLOMAMUNKA. Szűcs Béla. Debrecen PDF processed with CutePDF evaluation edition

Vonalkód referencia-útmutató

IT biztonsági szintek és biztonsági kategorizálási minta

Webszerkesztés stílusosan. Készítette: Csécsy László Virgina DeBolt hasonló c. könyve alapján

Webshop készítése ASP.NET 3.5 ben I.

Adatbázis rendszerek Definíciók:

XML dokumentumok feldolgozása Java-ban XML, DTD, XSD, XSLT, JAXP, DOM, SAX, JDOM

Csináld magad naplóelemzés syslog-ng-vel

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Adatbázisok elmélete 10. előadás

Bevezetés: az SQL-be

Komputeralgebra Rendszerek

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

Megrendelés Import. Szerkezet: EDI minta alapján XML fájl. Fájl típusa: számla, megrendelés, szállítólevél. DocumentType

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Adatbázis tartalmának módosítása

Vizuális programozás gyakorlat

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

Force-X Content Management System, keskenynyomda.hu felhasználói dokumentáció

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

Átírás:

XML 1.1 és névterületek dr. Paller Gábor

XML 1.1 Az XML 1.1-gyel párhuzamosan létező specifikáció, amely maga is a 2. kiadásnál tart. http://www.w3.org/tr/2006/rec-xml11-20060816/ Az XML-t csak apró részletekben változtatja meg. Nevek korlátozásainak lazítása. További sorvégjelek bevezetése, melyeket egzotikusabb rendszerekben használnak (IBM mainframe: #x85, Unicode line separator: #x2028). Vezérlőkarakterek (#x1-#x1f) engedélyezése XML dokumentumokban karakter referenciákon keresztül (direktben továbbra is tiltva vannak). Ezen felül a #x7f- #x9f tartomány, amelyik az XML 1.0-ban direkben is megengedett volt, az XML 1.1-ben csak karakterreferenciákon keresztül elérhető.

XML 1.1: nevek korlátozásainak lazítása "Name" szintaktikus elem az XML specifikációkban: általánosan használt azonosító-token, pl. tag-ek, attribútumok nevei, ID típusú attribútumok értéke, stb. "Name" szintaktikus elem az XML 1.0-ban (CombiningChar: kombinálódó ékezet, ami hozzácsatolódik az előtte levő karakterhez, Extender: pl. ismétlésjelző japánban): NameChar ::= Letter Digit '.' '-' '_' ':' CombiningChar Extender Name ::= (Letter '_' ':') (NameChar)* "Name" szintaktikus elem az XML 1.1-ben: NameStartChar ::= ":" [A-Z] "_" [a-z] [#xc0- #xd6] [#xd8-#xf6] [#xf8-#x2ff] [#x370-#x37d] [#x37f-#x1fff] [#x200c-#x200d] [#x2070-#x218f] [#x2c00-#x2fef] [#x3001-#xd7ff] [#xf900-#xfdcf] [#xfdf0-#xfffd] [#x10000-#xeffff] NameChar::= NameStartChar "-" "." [0-9] #xb7 [#x0300-#x036f] [#x203f-#x2040] Name ::= NameStartChar (NameChar)*

Namespaces Amint az XML dokumentumok nőnek, fellép az elemkönyvtárak modularizációjának kérdése. Például lehet két dokumentumtípusunk, amelyben a "book" elemet másként definiáltuk. Ha egy olyan dokumentumot akarunk létrehozni, amelyben mindkét dokumentumtípus "book" eleme szerepel, bajba kerülünk, mert a két "book" definíciója összeütközik. Megoldás: az XML nevekhez csomagneveket rendelünk. A csomagnév és az XML név együttesen kell egyedi legyen. A csomagnevet XML terminológiával névterületnek (namespace) hívják. Specifikáció: http://www.w3.org/tr/2006/rec-xml-names-20060816/ (1.0) és http://www.w3.org/tr/2006/rec-xml-names11-20060816/ (1.1)

Namespaces (2) A névterületet egy URI azonosítja. Az XML elemző számára az URI csupán egy karaktersorozat, tehát nem feltétlenül kell létező cím legyen. Az URI túl hosszú ahhoz, hogy XML nevekben fordulhasson elő és illegális karaktereket is tartalmazhat, ezért minden XML dokumentumban helyi névterületazonosítóra képezzük le. Az URI világszinten egyedi azonosító, azonban az XML dokumentumban alkalmazott helyi névterület-azonosító csak az adott dokumentumban egyedi, viszont rövid, tehát XML nevekhez (pl. tag-név) hozzáadható. Példa: névterület-azonosító: http://www.server.org/books helyi névterület azonosító: books tag-név helyi névterület-azonosítóval: <books:published>

Kvalifikált név Új fogalom: kvalifikált név (qualified name).az elem kvalifikált neve teljesen meghatározott, tehát tartalmazza a névterület-meghatározást (ha van neki). QName ::= PrefixedName UnprefixedName PrefixedName ::= Prefix ':' LocalPart UnprefixedName ::= LocalPart Prefix ::= NCName LocalPart ::= NCName /* An XML Name, minus the ":" */ NCName ::= NCNameStartChar NCNameChar* NCNameChar ::= NameChar - ':' NCNameStartChar ::= Letter '_' A kvalifikált név névterület-meghatározása a helyi névterület-azonosítót tartalmazza, de ennek kötve kell lennie globális névterület-azonosítóhoz (URI). Valójában tehát a kvalifikált név "Prefix" része a globális URI, bár a dokumentum szintaxisa a helyi névre utal. Vannak elemzők, amelyeknek belső QName reprezentációja "Prefix" alatt a globális névterület-azonosítót adja vissza. Az (URI,LocalPart) párost a specifikáció bővített névnek (expanded name) hívja.

URI és helyi azonosító összerendelése Használat előtt a helyi azonosítót és az URI-t össze kell rendelni. Az összerendelés mindig egy elem hatáskörében (scope) történik meg és vonatkozik az összerendelő elemre valamint azok gyerekeire. Példa: a legfelső "html" tag-ben hozzárendeljük a "html" helyi névmezőazonosítóhoz a http://www.w3.org/1999/xhtml globális névmező-azonosítót, majd rögtön használni is kezdjük a "html","head" és "title" elemeknél. <?xml version="1.0"?> <html:html xmlns:html="http://www.w3.org/1999/xhtml"> <html:head> <html:title>frobnostication</html:title> </html:head> </html:html>

Alapértelmezett névterület Az alapértelmezett névterület beállítható és a deklaráció hatáskörében a Prefix nélküli elemekre vonatkozik. Példa: a "html" tag gyerekei (és maga a "html" tag is) a http://www.w3.org/1999/xhtml névterülethez tartozik, pedig erről a tag-ek egyenként nem rendelkeznek. <?xml version="1.0"?> <!-- elements are in the HTML namespace, in this case by default --> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>frobnostication</title></head> </html>

Több névterület egyidejű használata Egyszerre több névterület-deklaráció lehet aktív Egy tag egyszerre több névterületet deklarálhat A szülőelemek névterület-meghatározása öröklődik. Egy tag egyszerre csak egy alapértelmezett névterületet deklarálhat. Példa: az "urn:loc.gov:books" elemei prefix nélkül használhatók, az "urn:isbn:0-395-36341-6" elemeihez viszont kell az "isbn" prefix. <?xml version="1.0"?> <!-- 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>

Helyi névterület-azonosító felülírása Az XML 1.1 névterület-specifikáció rendelkezik a helyi névterület-azonosító felülírásának esetéről. E szerint a gyerekelemben a szülő által definiált névterület felülírható és a gyerekelem hatáskörében az új azonosító érvényes. Az XML 1.0 névterület-specifikációjából ezek a részek hiányoznak (felülírás esetéről a specifikáció nem rendelkezik), tehát XML 1.0-ban ez a gyakorlat rizikós (népszerű Xerces parser például megengedi). <?xml version="1.0"?> <x xmlns:n1="http://www.w3.org"> <n1:a/> <x xmlns:n1="http://www.w4.org"> <n1:a/> </x> </x>

Névterület-azonosító törlése Csak XML 1.1: lehetőség: egy előzőleg deklarált prefixet egy gyerekelemben törölni lehet. Amennyiben a prefixhez rendelt URI üres string, a helyi névterületazonosító érvénytelenné válik az elem hatáskörében. Példa: a második "n1:a" hivatkozás érvénytelen, mert a szülő "x" tag törölte az "n1" névterület deklarációját. <?xml version="1.1"?> <x xmlns:n1="http://www.w3.org"> <!-- legal; the prefix n1 is bound --> <n1:a/> <x xmlns:n1=""> <!-- illegal; the prefix n1 is not bound here --> <n1:a/> <x xmlns:n1="http://www.w4.org"> <!-- legal; the prefix n1 is bound again --> <n1:a/> </x> </x> </x>

Attribútumok és névterületek Az attribútumok is tartozhatnak névterülethez. Az attribútumokra azonban nem vonatkozik az alapértelmezett névterület. Az attribútumot tartalmazó elem szabadon dönthet, mi szerint értelmezi a prefix nélküli attribútumokat. Példa: a "taxclass" attribútum a lineitem elemben az "edi" névterületből jön. <x xmlns:edi='http://ecommerce.example.org/schema'> <!-- the 'taxclass' attribute comes from the "edi" namespace --> <lineitem edi:taxclass="exempt">baby food</lineitem> </x>

Névterületek és DTD A DTD semmilyen módon nem ad plusz támogatást a névterületekhez. Minthogy a QName-ek érvényes XML Name-ek egyben, a DTD definiálhatja a névterületeket teljes formájukban és #FIXED eszközzel fixálhatja a hozzárendelésüket. Ez kétségkívül egy béna megoldás, mivel a DTD-k éppen emiatt nem modularizálhatók (hozzá kell nyúlni a DTD-khez, ha egy dokumentumba akarjuk foglalni az egyes DTD-k által leírt elemeket és explicit már a DTD-ben kötni kell a globális és a helyi névterület-azonosítókat). Konklúzió: a névterületek túlmutatnak a DTD-n. Példa: a "checkbook" elem egy másik névterületből származó "deposit" elemet használ. <!ELEMENT checkbook ( f:deposit payment )*> <!ATTLIST checkbook xmlns:f CDATA #FIXED "http://schemas.arent.net/soap/file/"> <!ELEMENT f:deposit (payor, amount, date, description?)> <!ATTLIST f:deposit type (cash check direct-deposit transfer) #REQUIRED>

Gyakorlat A korábbi gyakorlatban bemutatott "books" adatbázist egy könyvesbolt akarja felhasználni készletlistának. A bolt azonban CD-ket is árul. Egy CD-nek címe van, kiadója és kiadási éve. Tervezze meg a CD-adatbázis formátumát és a hozzá tartozó DTD-t! Ez után hozza létre a CD-k és könyvek közös adatbázisát úgy, hogy a CD-khez és könyvekhez tartozó elemek külön névterületbe kerüljenek, majd tervezzen ezt validáló közös DTD-t!

cds.xml <?xml version="1.0"?> <!DOCTYPE cds SYSTEM "cds.dtd"> <cds> <cd id="id1" title="best of" published="1999" publisher="best of Music Inc."/> <cd id="id12" title="even Better of" published="2000" publisher="best of Music Inc."/> </cds>

cds.dtd <!ELEMENT cds (cd)*> <!ELEMENT cd EMPTY> <!ATTLIST cd id ID #REQUIRED title CDATA #REQUIRED published CDATA #REQUIRED publisher CDATA #REQUIRED>

stock.xml <?xml version="1.0"?> <!DOCTYPE books SYSTEM "stock.dtd"> <stock xmlns:cd=http://www.products.org/cd xmlns:book="http://www.products.org/book"> <book:book id="id1"> <book:title>my first XML book</book:title> <book:published>2001</book:published> <book:publisher><xml> Publishing, Inc.</book:publisher> <book:author>john Doe</book:author> <book:author>richard Doe</book:author> <book:abstract>xml for dummies</book:abstract> </book:book> <cd:cd id="id12" title="even Better of" published="2000" publisher="best of Music Inc."/> </stock>

stock.dtd <!ELEMENT stock (book:book cd:cd)*> <!ATTLIST stock xmlns:book CDATA #FIXED "http://www.products.org/book" xmlns:cd CDATA #FIXED "http://www.products.org/cd"> <!ELEMENT book:book (title,published,publisher,author+,abstract?)> <!ATTLIST book:book id ID #REQUIRED> <!ELEMENT book:title (#PCDATA)> <!ELEMENT book:published (#PCDATA)> <!ELEMENT book:publisher (#PCDATA)> <!ELEMENT book:author (#PCDATA)> <!ELEMENT book:abstract (#PCDATA)> <!ELEMENT cd:cd EMPTY> <!ATTLIST cd:cd id ID #REQUIRED title CDATA #REQUIRED published CDATA #REQUIRED publisher CDATA #REQUIRED>