Datová vazba XML - XML data binding - Wikipedia
tento článek ne uvést žádný Zdroje.Červen 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Datová vazba XML odkazuje na prostředek reprezentující informace v XML dokument jako a obchodní objekt v paměti počítače. To dovoluje aplikace k přístupu k datům v XML z objektu namísto použití DOM nebo SAXOFON k načtení dat z přímé reprezentace samotného XML.
Popis
Pořadač dat XML toho dosahuje automatickým vytvářením mapování mezi prvky Schéma XML dokumentu, který chceme vázat, a členů a třída být reprezentován v paměti.
Když je tento proces použit k převodu dokumentu XML na objekt, je volán marshalling. Nazývá se reverzní proces k serializaci objektu jako XML seřaďování.
Přístupy k datové vazbě lze rozlišit takto:
- Na základě schématu XML: Na základě existujícího schématu XML jsou generovány třídy, které odpovídají schématu.
- Podle třídy: Na základě sady tříd, které mají být serializovány, je vygenerováno odpovídající schéma XML.
- Na základě mapování: Popis mapování, obvykle samotný dokument XML, popisuje, jak se stávající schéma XML mapuje na sadu tříd a naopak.
Potíže
Vzhledem k tomu, že XML je ve své podstatě sekvenční a objekty (obvykle) nejsou, má mapování datových vazeb XML často potíže se zachováním všech informací v dokumentu XML. Konkrétně informace jako komentáře, Odkazy na entity XML a pořadí sourozenců se nemusí podařit zachovat v reprezentaci objektu vytvořené vazební aplikací. Ne vždy tomu tak je; dostatečně komplexní datové pořadače jsou schopny uchovat 100% informací v dokumentu XML.
Podobně, protože objekty v paměti počítače nejsou ze své podstaty sekvenční a mohou zahrnovat odkazy na jiné objekty (včetně odkazů s vlastním odkazem), má mapování datových vazeb XML často potíže se zachováním všech informací o objektu, když je zařazen do XML.
Alternativy
Alternativní přístup k automatické datové vazbě se místo toho spoléhá na ručně vytvořený XPath výrazy, které extrahují data z XML. Tento přístup má řadu výhod. Nejprve kód datové vazby potřebuje pouze bližší znalosti (např. Topologie, názvy značek atd.) O stromové struktuře XML, kterou mohou vývojáři určit při pohledu na data XML; Schémata XML již nejsou povinná. XPath dále umožňuje aplikaci svázat příslušné datové položky a odfiltrovat vše ostatní, čímž se vyhne zbytečnému zpracování, které by bylo nutné k úplnému unmarshall celého dokumentu XML. Nevýhodou tohoto přístupu je nedostatek automatizace při implementaci objektového modelu a výrazů XPath. Místo toho musí vývojáři aplikací tyto artefakty vytvořit ručně.
Datová vazba obecně
Jednou ze silných stránek vazby dat XML je schopnost un / serialize objekty napříč programy, jazyky a platformami. Časovou řadu strukturovaných objektů můžete vypsat z dataloggeru zapsaného dovnitř C (programovací jazyk) na integrovaném procesoru jej přeneste do celé sítě a zpracovejte Perl a nakonec si to představte Oktáva. Struktura a data zůstávají konzistentní a koherentní po celou dobu cesty a nejsou vyžadovány žádné vlastní formáty ani parsování. Toto není jedinečné pro XML. YAML se například ukazuje jako silná alternativa datové vazby k XML. JSON (který lze považovat za podmnožinu YAML) je často vhodný pro lehké nebo omezené aplikace.
Rámce vázání dat XML
název | Programovací jazyk | Licence | První vydání | Poslední stabilní vydání | Generování kódu z XSD | Vlastní mapování | Poznámka |
---|---|---|---|---|---|---|---|
Apache Commons Betwixt | Jáva | Apache | 28. ledna 2003 | 0.8 | Neznámý | Neznámý | Spící. Serializuje objekty na XML bez nutnosti definice schématu XML |
Apache XMLBeans | Jáva | Licence Apache 2.0 | 3.1.0, 26. března 2019 | Ano | Neznámý | ||
Castor | Jáva | Apache 2.0 | 1.4.1, 15. května 2016 | Neznámý | Neznámý | Starší verze také podporovaly perzistenci Java-to-SQL, ale od té doby byla rozdělena do samostatného projektu | |
CodeSynthesis XSD | C ++ | GNU GPL a proprietární | 4.0.0, 22. července 2014 | Neznámý | Neznámý | s SAX nebo stromové mapování do tříd C ++ | |
gSOAP | C a C ++ | GNU GPL a proprietární | 8. prosince 2000 | 2.8.94, 17. října 2019 | Ano | Ano | Podporuje schéma XML, WSDL a SOAP; Schémata XML nejsou vyžadována k serializaci dat C / C ++ do XML; vlastní mapování typů schémat XML na typy C / C ++ prostřednictvím souboru mapování typů a z typů C / C ++ na kompatibilní typy schémat XML podle anotace zdrojového kódu |
Java architektura pro vazbu XML (JAXB) | Jáva | ? | Ano | Ano | |||
JiBX | Jáva | Licence BSD | 1.2.6, 1. ledna 2015 | Ano | Ano | Mapuje třídy na schémata XML pomocí manipulace s bytecode | |
Jednoduchý | Jáva | Apache 2.0 | 2.7.1, 9. února 2017 | Ne | Ano | ||
System.Xml.Serializace | C# | ? | Ano | Ne | Část rozhraní .NET, obsahuje třídy datových vazeb XML; zahrnuje xsd.exe nástroj pro generování tříd ze schématu XSD | ||
xmlbeansxx | C ++ | Apache 2.0 | 0.9.1, 1. dubna 2008 | Neznámý | Neznámý | C ++ port Apache XMLBeans | |
XStream | Jáva | BSD -styl licence | 1. ledna 2004 | 1.4.10, 23. května 2017 | Neznámý | Neznámý | Také schopné serializace do JSON |
Zeus | Jáva | ? | 3.5 beta, 16. srpna 2002 | Neznámý | Neznámý |