Další XML formáty: plist, XAML, BPMN a OPML

XML je společná syntaxe různých formátů. Význam značek, validace a bezpečnost zpracování patří konkrétnímu slovníku, nikoli XML samotnému.

Autor: Aktualizováno

Apple property list

Plist ukládá typované hodnoty včetně řetězců, polí, slovníků a dat. Existuje XML i binární varianta; binární plist není vadný XML. Apple dokumentace popisuje model a serializaci.

Apple property list
<plist version="1.0"><dict><key>jmeno</key><string>Eva</string><key>aktivni</key><true/></dict></plist>

XAML

XAML vytváří objekty a nastavuje vlastnosti v aplikačním frameworku. Namespace se mapují na podporované typy; varianty WPF a dalších frameworků se liší. Nenačítej nedůvěryhodný XAML jako obyčejná pasivní data. Viz WPF XAML.

BPMN

BPMN 2.0.2 modeluje procesy a zahrnuje XML výměnný formát. Model a grafické rozmístění diagramu jsou odlišné části. Přijetí XSD nezaručuje, že konkrétní workflow engine podporuje všechny elementy a jejich vykonání.

OPML 2.0

OPML ukládá osnovy v hierarchii outline. Často se používá pro export RSS odběrů. Text je základní atribut položky, další atributy závisí na jejím typu.

OPML 2.0
<opml version="2.0"><head><title>Osnova</title></head><body><outline text="XML"><outline text="Základy"/></outline></body></opml>

Jak identifikovat soubor

Zkontroluj kořen, namespace, deklarovanou verzi a dokumentaci původce. XML formátovač upraví zápis, ale nedoplní význam chybějících dat. Převod do JSON vždy vyžaduje mapování, které respektuje typy a pořadí daného formátu.

Plist: typovaná konfigurace a Python

config.plist — textové XML plist
<plist version="1.0"><dict><key>nazev</key><string>XML.cz</string><key>aktivni</key><true/><key>pocet</key><integer>2</integer></dict></plist>
Spustitelné načtení a zápis standardní knihovnou Pythonu
import plistlib
with open("config.plist", "rb") as source:
    value = plistlib.load(source)
assert value == {"nazev":"XML.cz", "aktivni":True, "pocet":2}
with open("copy.plist", "wb") as output:
    plistlib.dump(value, output, fmt=plistlib.FMT_XML)

Dict používá střídání key a hodnoty. String a integer jsou odlišné typy; prosté čtení textových uzlů by tento význam ztratilo. Plistlib umí i binární plist. Při změně souboru přes serializaci se může změnit pořadí klíčů a formátování, i když hodnoty zůstanou stejné.

XAML: objekty rozhraní ve WPF

WPF fragment pro známé aplikační prostředí
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><TextBlock Text="XML.cz"/><Button Content="Otevřít"/></StackPanel>

Kořen vytváří panel a děti ovládací prvky. Content nastavuje obsah tlačítka, XML atribut neznamená prostý datový sloupec. Fragment musí načíst odpovídající WPF prostředí; obyčejný XML validátor neumí potvrdit funkční UI. Varianty XAML v jiných frameworkách mohou používat jiné typy a podporované vlastnosti.

BPMN: logický proces bez grafického rozmístění

BPMN 2 model: začátek → úloha → konec
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" targetNamespace="urn:xmlcz:proces">
 <process id="ukazka" isExecutable="false">
  <startEvent id="start"/><task id="kontrola" name="Kontrola dat"/><endEvent id="konec"/>
  <sequenceFlow id="f1" sourceRef="start" targetRef="kontrola"/>
  <sequenceFlow id="f2" sourceRef="kontrola" targetRef="konec"/>
 </process>
</definitions>

SourceRef a targetRef vážou hrany na ID uzlů. Tento model nemá BPMN DI údaje o poloze a velikosti diagramu; editor může vyžadovat jejich doplnění. IsExecutable=false označuje nevykonávaný model. Pro skutečný workflow potřebuješ podporovaný engine a jeho pravidla, ne pouze přepnout boolean.

OPML: výměna seznamu odběrů

OPML export s jedním RSS odběrem
<opml version="2.0"><head><title>Moje zdroje</title></head><body><outline text="XML.cz" type="rss" xmlUrl="https://example.cz/feed.xml" htmlUrl="https://example.cz/"/></body></opml>

Text je popisek outline, xmlUrl adresa feedu a htmlUrl adresa webu. Vnořené outline vytvářejí skupiny. Import seznamu není import všech článků zdrojového feedu; aplikace je musí načíst samostatně a řídit síťové zdroje. OPML validní jako XML ještě nemusí odpovídat konkrétním pravidlům RSS čtečky.

Primární dokumentace: plistlib, WPF XAML, OMG BPMN 2.0.2 a OPML 2.0.