pro výměnu dat mezi dokumenty a pro pulikování dokumentů
nezabývá se sám o sobě vzhledem dokumentu nebo jeho částí
snadná transformace do jiného typu (formátu) dokumentu či do jiné struktury XML
nemá žádné předdefinované značky (tagy, jednotlivé elementy)
10x o XHTML
slouží ke strukturalizaci dat
pozor, není to programovací jazyk
soubor pravidel, která mi uspořádají data ve strukturách
nezávislé na platformě
má vysoký informační obsah
tagy vyznačují význam jednotlivých částí textu
jenom data ohraničuje (těmi tagy), ale nečte je → o to se stará až aplikace, která ta data čte
je text, co není určen ke čtení
ale pokud ho číst chci, tak můžu!
když zapomenu ukončit tag, tak si to ta aplikace nemůže domyslet, ale musí okamžitě nahlásit chybu
nešetří místem
XML je textový formát
je vždy větší, než ta samá data v binárním formátu
je to celá skupina technologií
XML 1.0 je specifikace, která říká, co jsou tagy a atributy – na jejím základě “XML rodina” - vytváří několik modulů, které nabízejí různé služby, které plní časté a důležité potřeby
Xlink popisuje standardní cestu, jak přidat do XML souboru hypertextové odkazy
XPointer je něco jako URL, akorát místo odkazů na dokumenty na webu odkazuje dovnitř XML dokumentů
XPath umožňuje adresovat jednotlivé části dokumentu
XSL je vylepšený jazyk pro zapisování stylů - založen na XSLT, transformačním jazyce používaném pro přidávání, odebírání i úpravu tagů a atributů
DOM je standardizace funkcí pro manipulaci s XML soubory v programovacích jazycích
je staronové
podobá se HTML
používá taky tagy a atributy
je modulární
dovoluje definovat nový formát kombinací jiných formátů
obsahuje mechanismus jmenných prostorů (namespaces) - např. XSL a RDF
je základem RDF a sémantického webu
systém popisu zdrojů od W3C (RDF) je XML formát podporující popis zdrojů a uplatnění metadat (hudební “playlisty”, file katalogy, knihovny)
RDF spojuje aplikace a agenty do jednoho sémantického webu
je nelicencované, platformě nezávislé a široce podporované
specifikace od W3C je přístupná totiž pro všechny
můžu fičet na čem chci (linux, winy,…)
typy uzlů
Uzel = to jsou ta vlastní data, uzavřena v metadatech
XML deklarace
<?xml version=“1.0” encoding=“UTF-8”?>
element, atribut, text
V terminologii XML se jednotlivým označeným částem dokumentu říká elementy. Elementy do sebe mohou být navzájem vnořené a tím dle potřeby zachycovat strukturu informací uložených v dokumentu
CDATA
Pokud potřebujeme do textu vložit větší kus textu, kde se hojně používají znaky se speciálním významem jako `<', `>' a `&', je nepohodlné je zapisovat pomocí znakových entit. Sekce CDATA oceníme zejména v případech, kdy je součástí XML dokumentu kód nějakého programu nebo HTML či XML kód
Každý XML dokument musí být celý obsažen v jednom elementu (musí být JEDEN kořenový element - takže to všechno prostě “obalím”)
ověřování dokumentu
tagy si definuju sama
a to pomocí DTD nebo XML schématu (XSD)
prostej text → well-formed → validní dokument
parser = syntaktický analyzátor = program, který vykonává syntaktickou analýzu
proces analýzy posloupnosti formálních prvků s cílem určit jejich gramatickou strukturu vůči předem dané (byť ne nutně explicitně vyjádřené) formální gramatice
transformace vstupního textu do datové struktury, většinou stromu
token = elementárních nositel významu v rámci daného formálního jazyka
styly
CSS
XLS
model XML dokumentu
parent-child-sibling (rodič, potomek, sourozenec)
ancestor → descendant (předchůdce, následovník)
uzly uspořádané ve stromové struktuře
to je DOM, druhá verze je Simple API for XML (SAX), která umožňuje proudové zpracování a oproti DOMu bývá několikrát rychlejší
definice struktury
DTD (document type definition)
neobsahuje možnost kontrolovat typy dat (čísla, měnové údaje, údaje o datu a čase)
jednoduchý, stručný, může být přímo součástí dokumentu XML
má nižší vyjadřovací schopnost a nepoužívá syntaxi XML
četnost: + je jednou a více, * je nula a více, ? je nula nebo 1
XSD (XML schema definitio)
W3C standard
včetně sady XSL stylů
složité a obsáhlé
super vyjadřovací schopnosti, zavádí datové typy, jmenné prostory apod.
datové typy: string, decimal, boolean, integer, date, time
komplexní dytové typy si deklaruju sama - můžou obsahovat další elementy nebo atributy
XSLT transformace
XML dokument + XSLT styl → XSLT procesor → XML, HTML, text,..