PB029 Elektronická příprava dokumentů
“Anyone who would letterspace the lowercase would steal sheep.” Frederick Goudy (1894–1945)
“You cannot not communicate” Paul Watzlawick (1921– )
Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky Petr Sojka (FI MU Brno)
podzim 2015
1 / 207
PB029 Elektronická příprava dokumentů
PB029 Elektronická příprava dokumentů Petr Sojka Fakulta informatiky MU, Brno
podzim 2015
Petr Sojka (FI MU Brno)
podzim 2015
2 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
? !
𝐸 = 𝑚𝑐2
𝐸 = 𝑚𝑐2
𝐸 = 𝑚𝑐2
ˇ Znackování Markup
Návrh Design
Petr Sojka (FI MU Brno)
Sazba Typesetting
Korektury Proofreading
Značkování
Pˇredloha Preprint
Tisk
Distribuce
Print
Distribution
podzim 2015
36 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Osnova dnešní přednášky
+ Linearizace textů, zápis v Unicode. + XML. Dobrá strukturovanost. Validace. + Formální dokumenty a gramatiky: DTD, XML Schema, Relax NG. + *ML, HTML, HTML5 vs. XHTML + Výměna dokumentů na Internetu, URI/URL/URN. + TEXové okénko: značkování v LATEXu (pokračování).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
37 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Linearizace textů a zápis v Unicode. Unicode konsorcium
+ Kódování textů. 5000 živých jazyků s více než miliónem znaků. + Nutnost domluvy reprezentace znaků (v CS Kam, KOI-8, CP-1250, ISO Latin2, . . . ). + Unicode Consortium je nevýdělečná organizace, založená 1989 pro vývoj, rozšiřování a podporu používání Unicode Standardu. Členové konsorcia představují široké spektrum korporací a organizací v průmyslu počítačů a informačních technologií. Konsorcium je finančně podporováno pouze členskými poplatky. + Respektuje ISO (International Standard Organization), mezinárodní ISO standard ISO/IEC 10646-1, 1993: Universal Multiple-Octet Coded Character Set (UCS).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
38 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Linearizace textů a zápis v Unicode. Unicode konsorcium (cont.) + První standard s ambiciózním cílem obsahovat všechny znaky používané v psaných jazycích, včetně matematických a dalších symbolů. + Jazykově neutrální, zrušení předpokladů ekvivalence znaků a glyfů, neproporcionality hladkého textu. + Kritériem přidání znaku je odlišnost ve významu i tvaru (CJK unifikace). Výjimky: Latin P, Greek P (capital rho), Cyrillic P (R). + Basic Multilingual Plane (BMP). + Privátní zóny pro privátní použití aplikací.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
39 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
The Unicode Standard, ISO/IEC 10646 + Unicode: sada znaků a pravidel zpracování specifikovaná konsorciem Unicode. + Jednoznačný kód (číslo U+0000..U+10FFFF) pro každý znak nezávisle na OS, jazyce, programu. + Databáze znaků poskytovaná konsorciem (k 10/2015 verze Unicode 8.0) či přehledné tabulky znaků. + Znak s libovolným kódem z ISO/IEC 10646 můžeme zapsat pomocí entity kod (kod je v desítkové soustavě) nebo kod (kod je šestnáctkově): code points 0–10𝐹 𝐹 𝐹 𝐹16 . + Jednoznačný trend použití pro rozšíření na WWW, v OS [cut & paste], značkovacích i programovacích jazycích.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
40 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Unicode Transformation Format UTF: přenos znaků
+ Problémy s přímým přenosem textů v UCS-4 (prostorově neefektivní) → transformační/kódovací metody UTF-8, UTF-7, UTF-16, UTF-32 jako jednoznačné mapování znaků. + UTF-16 16bitové slovo obsahuje kód znaku, rozšíření: 1 znak zabere dvě 16bitová slova. UTF-16BE a UTF-16LE. + UTF-8: znaky ASCII nahrazeny byty hex 00-7F. Ostatní znaky nahrazeny dvěma až šesti byty hex 80-FF. + UTF-7: pro SMTP protokol; kódovány i speciální znaky ASCII. Specifikovaný IETF, Internet Engineering Task Force, a formálně nesouvisející s ISO/IEC 10646. Výsledkem je text neobsahující kontrolní znaky a znaky nad 7F.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
41 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Unicode Transformation Format UTF: přenos znaků (cont.)
+ UTF-32, UTF-32BE, UTF-32LE. + Vícebytová pořadí: BOM: Byte Order Mark, OxFEFF. + UTF a BOM FAQ.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
42 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
ISO/IEC 10646-1 standard implementation levels
Norma definuje implementační úrovně 1–3 podporované v software. Příklad dánského “A with ring above and acute accent”: + 01FA reprezentace použitá v úrovních 1 a 2: jeden složený znak; + 00C5 0301 “A with ring above” + combining acute accent nebo + 0041 030A 0301 “A” + combining ring above + combining acute accent Program implementující standard úrovně 3 musí být schopen zpracovat tyto kompozitní sekvence stejně jako výše uvedenou reprezentaci.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
43 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Unicode vlastnosti
+ Třídění: Unicode Collation Algorithm + Normalizace textu, kanonická forma, ligatury. + Tři úrovně implementace Unicode, obousměrný text, kombinace znaků, kompozitní sekvence znaků. + Shrnutí, detaily a přehled.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
44 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
? !
𝐸 = 𝑚𝑐2
𝐸 = 𝑚𝑐2
𝐸 = 𝑚𝑐2
ˇ Znackování Markup
Návrh Design
Petr Sojka (FI MU Brno)
Sazba Typesetting
Korektury Proofreading
Značkování
Pˇredloha Preprint
Tisk
Distribuce
Print
Distribution
podzim 2015
45 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
XML? XML! Nikdy není pozdě!
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
46 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Co je to XML?
+ XML: EXtensible Markup Language. + Univerzální a otevřený formát pro reprezentaci (a výměnu) téměř libovolné datové struktury – dokumentů i dat. + Doporučení WWW Consortium: rozšiřitelný značkovací (meta)jazyk. + Celá sada technologií a formátů s XML souvisejících (XHTML, XSL, XSL-FO, CSS, XPointer, XLink, . . . ) pro elektronickou výměnu dat včetně výměny dokumentů.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
47 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Příklad XML dokumentu
Ferda Pistorius Boubín 77 2862667777 291-2862667777 <dodavatel> Hynek Bedna Máchovo jezero 78 2862467777 291-2862467777 <polozka> <popis>XML editor 500 Petr Sojka (FI MU Brno)
Značkování
podzim 2015
48 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Vymezení XML
+ Násobné a opakované použití dat. + Metajazyk: XML nespecifikuje ani sémantiku, ani množinu značek, umožňuje však značky definovat a definovat jejich strukturální závislosti. + Sémantiku určují aplikace (webové prohlížeče jsou jedny z nich). + Části XML dokumentu: deklarace + gramatika + data.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
49 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
XML jako metajazyk
+ XML je mezinárodní standard pro popis značkovacích jazyků. + Formálněji je to syntaktický metajazyk pro definici tříd dokumentů (deskriptivních značkovacích jazyků), nezávislých na abecedě. + Formální definice typu dokumentu se nazývá DTD – Document Type Definition, definice typu dokumentu (gramatika třídy dokumentů). XML parser (validátor) pak čte na vstupu DTD a kontroluje formální správnost. + Instance XML dokumentu (dále jen XML dokument) sestává z deklarace (pokynů pro parser), gramatiky (DTD) a vlastního popisně označkovaného textu.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
50 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Syntaxe XML: správná strukturovanost “well formed”
+ XML document s korektní syntaxí je nazýván správně strukturovaný, well-formed. + Správně strukturovaný dokument by měla zpracovat každá XML aplikace. + Sekce CDATA pro pohodlnější psaní části dokumentů obsahujících významné znaky: <moudrost>
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
51 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Validita XML
+ Silnější pojem než správná strukturovanost: validita. + Dokument vyhovuje gramatice, která vynucuje strukturu, pořadí a množství značek. + Gramatika ve formě DTD (Document Type Definition). + Validátory (parsery): nsgmls, msxml, xerces, xmllint, . . . + Webová validace XHTML: http://validator.w3.org. + HTML5 validace: http://html5.validator.nu. + Lokální validace: například nsgmls z modulu sp na aisa.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
52 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
XML deklarace
+ Musí být na prvním řádku dokumentu, pro způsob interpretace zbývajících bytů. + Při standalone="yes" není třeba číst externí DTD.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
53 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Instrukce pro zpracování
Pokyny (procesní instrukce) pro specifické aplikace:
nebo
nebo
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
54 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Historie XML (od SGML 1986)
+ Organizace ISO (International Standards Organization), vydává známé normy jako ISO 8859-2, 10646-1 (Unicode), . . . + Norma ISO 8879:1986 Information processing – Text and office systems – Standard Generalized Markup Language (SGML), vydaná 15. 10. 1986 po dlouhém procesu standardizace na základě návrhu Charlese Goldfarba a jeho GML. Počátky již na konci šedesátých let při návrhu informačního systému právnických textů v IBM.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
55 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Historie XML (od SGML 1986) (cont.)
+ Celá sada standardů ISO: kromě SGML, DSSSL (Document Style Semantics and Specification Language, ISO/IEC DIS 10179.2:1994), SPDL (Standard Page Description Language, ISO/IEC DIS 10180:1991) a HyTime (Hypermedia/Time-based Structuring Language, ISO/IEC 10744:1992). O + S odstupem času: nesporný úspěch SGML, základ pro další značkovací jazyky (XML), ale například neúspěch SPDL oproti proprietárnímu PostScriptu.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
56 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
SGML – historické poznámky a motivace XML
+ Výhody: znovupoužívání částí dokumentů, kvalita a otevřenost systému, obecnost, nezávislost na konkrétní formě (WWW konsorcium), rozšiřitelnost dle technologických možností (hypertext), snížení nákladů, možnost validace (ověření korektnosti dokumentu na základě formální definice jazyka dokumentu). + Nevýhody: za obecnost se platí složitostí, i po dekádách užívání jsou nejlepší systémy na plné SGML drahé, změna s rozšířeními HTML, přesto přechod k XML (složitost).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
57 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
SGML – historické poznámky a motivace XML (cont.)
+ Uživatelé SGML (zpočátku velké instituce, elektronický a letecký průmysl, nakladatelé): AAP, OUP, Boeing, Lufthansa, British Patent Office, Association of German editors, TEI, McGraw-Hill, LDC, . . . viz stránky Organization for the Advancement of Structured Information Standards . + Dnešní motivací je přesnější a relevantnější vyhledávání na Internetu (mikroformáty apod.).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
58 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
SGML deklarace
+ „Pokyny pro parser“ s definicemi abeced (analogie popisu BNF): q role oddělovačů; q rezervovaná jména; q zakázané znaky, typicky kontrolní ASCII; q pravidla pro pojmenovávání, citlivost na malá a velká písmena; q velikosti délek, značek, . . . ; q komentáře; q parametry chování, které vlastnosti kontrolovat (OMITTAG). + Pokud deklarace v dokumentu není uvedena, používá se implicitně referenční syntaxe Reference Concrete Syntax (RCS).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
59 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Příklad SGML deklarace
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
60 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Příklad SGML deklarace (pokr.) MDO
"
– markup decl open –
MDC DSO DSC MSC COM RNI LIT LITA GRPO GRPC AND OR SEQ OPT REP
">" "[" "]" "]]" "--" "#" """ "’" "(" ")" "&" "|" "," "?" "*"
– – – – – – – – – – – – – – –
Petr Sojka (FI MU Brno)
markup decl close – declaration subset open – declaration subset close – marked section close – comment – reserved name indicator – literal – alternative literal – group open – group close – and connector – or connector – seq connector – opt occurrence indicator – rep occurrence indicator – Značkování
podzim 2015
61 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Příklad SGML deklarace (pokr.)
PLUS MINUS CRO ERO PERO REFC PIO PIC STAGO ETAGO TAGC NET
"+" "-" "" "&" "%" ";" "" ">" "<" "" ">" "/"
– – – – – – – – – – – –
plus occ ind, inclusion – exclusion, omission flag – character reference open – entity reference open – parameter entity reference open – reference close – processing instruction open – processing instruction close – start tag open – end tag open – tag close – null end-tag –
...
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
62 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
SGML/XML DTD: atributová gramatika + Terminologie teorie formálních jazyků: neterminály (elementy), terminály (entity). + Elementy vytvářejí stromovou strukturu, nemohou se navzájem křížit, jeden element je kořenový. Lze použít prázdné elementy.
+ Elementy mohou mít atributy. O
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
63 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
SGML/XML DTD: atributová gramatika (cont.)
faktura odberatel dodavatel polozka nazev adresa ico dic popis cena dph ks faktura cislo vystaveni splatnost vystavil
(odberatel,dodavatel, polozka+)> (nazev,adresa,ico,dic)> (nazev,adresa,ico,dic)> (popis?,cena,dph,ks?)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> (#PCDATA)> CDATA CDATA CDATA CDATA
#REQUIRED #REQUIRED #REQUIRED #IMPLIED>
CDATA "CZK"> Značkování
podzim 2015
64 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Deklarace elementů a atributů
+ Sekvence, alternativa, ANY, EMPTY, #PCDATA. + Opakování: právě jednou, nejvýše jednou (?), alespoň jednou (+), libovolněkrát (*). + Typy atributů CDATA, NMTOKEN, NMTOKENS, ID, IDREF, IDREFS, ENTITY, ENTITIES, výčet. + Implicitní hodnoty atributů: "hodnota", #REQUIRED, #IMPLIED, #FIXED "hodnota".
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
65 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Entity
+ Vhodné pojmenovat části a fragmenty XML, některé řetězce (&TeX; v IS) a znaky použité jako oddělovače v gramatice: <, &, ". + Entity interní textové, externí textové, externí binární a parametrické. + Příklad množiny interních textových entit: ISO Latin2.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
66 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Entity (cont.) %ISOlat2; –> ...
+ Externí textové entity:
+ Externí binární entity:
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
67 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Další příklady DTD
+ DTD diplomové práce O . + DTD informací o studijním předmětu O . + DTD rozvrhu.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
68 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Připojení DTD k instanci dokumentu
+ Odkazem na soubor:
...
+ DTD součástí dokumentu: ... ]>
...
+ Veřejný identifikátor PUBLIC s URL:
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
69 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Připojení DTD k instanci dokumentu (cont.)
V případě veřejného identifikátoru je mapování od řetězce k souboru určeno tzv. katalogem (proměnná okolí SGML_CATALOG_FILES či XML_CATALOG_FILES).
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
70 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Pohledy na XML
+ Lexikální pohled: XML dokument je řetěz znaků, z nichž některé jsou data a některé oddělovače, značky. <article>
Úvod do XML <section>XML: hlavní principy <subsection>Zobecněné značkování
Základem ... ...
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
71 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Pohledy na XML (cont.) + Syntaktický pohled: XML dokument má tři části: XML deklaraci (instrukce pro XML parser), DTD (gramatiku jazyka) a vlastní instanci dokumentu (v tomto jazyce). Instance dokumentu obsahuje data a značky vyhovující DTD. Tento pohled vytváří parser z lexikálního pohledu. + Pohled hierarchie objektů: XML dokument je uspořádaná hierarchie (obvykle stromová struktura) objektů s obsahem (elementů). Elementy mají atributy, obsah a další vlastnosti. O + Entitně-strukturní pohled: XML dokument je vnořená kolekce entit. Většina entit je pojmenovaných. Textové entity mohou odkazovat na další entity, zatímco datové entity obsahují libovolná data.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
72 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Pohledy na XML (cont.)
+ Aplikační pohled: XML dokument je cokoli, co autor chce aby jím bylo. Data belongs to whoever creates it, and you get to decide what’s important about your own data.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
73 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
XML – validace a parsing
+ Balík sp (module add sp) s nsgmls od Jamese Clarka. + Výstup parseru: Element Structure Information Set (ESIS) formát. + Ukázky validace, chyb, ladění, ESIS. + Třídy dokumentů. CATALOG. /packages/share/sgml-catalogs/ + Další příklady DTD – informace o studijním předmětu. O
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
74 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Více k XML: odkazy
+ XML pro každého: stránky XML guru kolegy Koska http://www.kosek.cz/xml/. + Školičky WWW technologií: W3Schools + Technický úvod do XML Normana Walshe. + http://www.zvon.org a mnoho dalších.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
75 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Typová kontrola XML: schémata
q Oproti DTD (struktura, pořadí elementů) přesnější kontrolu nad obsahem XML dávají jazyky XML Schema nebo Relax NG. q Možná kontrola typů. Stejný cíl, různá syntaxe.
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
76 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
XML Schema <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="zamestnanec"> <xs:complexType> <xs:sequence> <xs:element name="jmeno" type="xs:string"/> <xs:element name="prijmeni" type="xs:string"/> <xs:element name="plat" type="xs:decimal"/> <xs:element name="narozen" type="xs:date"/> <xs:attribute name="id" type="xs:integer"/> Více a detaily: http://www.kosek.cz/xml/schema/wxs.html Petr Sojka (FI MU Brno)
Značkování
podzim 2015
77 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Relax NG <element xmlns="http://relaxng.org/ns/structure/1.0" name="zamestnanec"> <element name="jmeno"> <element name="prijmeni"> <element name="plat"> <element name="narozen"> Petr Sojka (FI MU Brno)
Značkování
podzim 2015
78 / 207
PB029 Elektronická příprava dokumentů
3. přednáška, 7. 10. 2015
Relax NG: kompaktní syntaxe
element zamestnanec { attribute id { text }, element jmeno { text }, element prijmeni { text }, element plat { text }, element narozen { text } }
Detaily: http://www.kosek.cz/xml/schema/rng.html
Petr Sojka (FI MU Brno)
Značkování
podzim 2015
79 / 207