JsonML - JsonML
![]() | tento článek obsahuje obsah, který je napsán jako reklama.Březen 2014) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Typ internetového média | aplikace / jsonml + json (neoficiální) |
---|---|
Typ formátu | Značkovací jazyk a Systém webových šablon |
Rozšířeno z | XML, JSON a JavaScript |
JsonML, Značkovací jazyk JSON je lehký značkovací jazyk slouží k mapování mezi XML (Extensible Markup Language) a JSON (JavaScript Object Notation). Převádí dokument XML nebo fragment do datové struktury JSON pro snadné použití v rámci JavaScript prostředí jako a webový prohlížeč, umožňující manipulaci s XML daty bez režie Analyzátor XML.
JsonML má největší použitelnost v Ajax (Asynchronní JavaScript a XML) webové aplikace. Používá se k přepravě XHTML (eXtensible HyperText Markup Language) až ke klientovi, kde může být deterministicky rekonstruován do DOM (Document Object Model) elements. Postupné vylepšení během konstrukce lze použít strategii k navázání dynamického chování na jinak statické prvky.[1]
JsonML lze také použít jako základní strukturu pro vytváření složitých šablon na straně klienta s názvem JBST (JsonML + šablony na straně prohlížeče).[2] Syntakticky vypadá JBST JSP (Stránky JavaServeru) nebo ASP.NET (Active Server Pages .NET) uživatelské ovládací prvky. Interaktivní příklady jsou k dispozici na webu jsonml.org.
Syntax
Konverze z XML na JsonML je částečně reverzibilní. Jmenné prostory XML jsou zpracovány předřazením názvu prvku předponou oboru názvů, např. <myns:myElement/>
se stává ["myns: myElement"]
.
Příklad transformace
JsonML umožňuje jakýkoli dokument XML jedinečně reprezentovat jako řetězec JSON. Syntaxe používá:
- JSON pole reprezentovat prvky XML;
- JSON předměty reprezentovat atributy;
- JSON struny reprezentovat textové uzly.
Kódováno JsonML | Původní XML |
---|---|
["osoba", {„vytvořeno“:„2006-11-11T19: 23“, "upraveno":„2006-12-31T23: 59“}, ["jméno", „Robert“], ["příjmení", "Kovář"], ["adresa", {"typ":"Domov"}, ["ulice", „12345 Sixth Ave“], ["město", "Anytown"], ["Stát", „CA“], ["poštovní směrovací číslo", "98765-4321"] ]] | <!-- XML representation of a person record --> |
„Pravidelná“ transformace JSON vytváří kompaktnější vyjádření, ale ztratí některé strukturální informace dokumentu, protože nedefinuje, zda je pár klíč – hodnota atributem nebo uzlem:
{"osoba": { "adresa": { "město": "Anytown", "poštovní směrovací číslo": "98765-4321", "Stát": „CA“, "ulice": „12345 Sixth Ave“, "typ": "Domov" }, „vytvořeno“: „2006-11-11T19: 23“, "jméno": „Robert“, "příjmení": "Kovář", "upraveno": „2006-12-31T23: 59“}}
Chybné pojmenování "Objektové formy"
Ve vlákně skupiny uživatelů JSON, Douglas Crockford nesprávně použil výraz „JsonML“ k popisu dvou variant: „forma pole“ a „forma objektu“.[3] Jednalo se o zneužití výrazu JsonML, který vždy znamenal to, co Crockford označoval jako „maticovou formu“.[4]
Srovnání s podobnými technologiemi
XML / XSLT
XML a XSLT (Extensible Stylesheet Language Transformations) může také vytvářet šablonování na straně klienta a obě umožňují ukládání do mezipaměti šablony odděleně od dat. Mnoho programátorů však shledává, že syntaxe JBST je snadněji spravovatelná díky své známosti. JBST používá JavaScript nativně v šabloně, spíše než vyžadovat míchání různých typů ovládacího jazyka.
Vnitřní HTML
Zatímco se zdánlivě používá k provádění podobných úkolů, JsonML a innerHTML jsou zcela odlišné. InnerHTML vyžaduje všechny značky v přesné formě, což znamená, že buď serveru vykresluje značku nebo programátor provádí nákladná zřetězení řetězců v JavaScriptu.
JsonML používá šablonování na straně klienta prostřednictvím JBST, což znamená, že HTML je převeden na šablonu JavaScriptu na vybudovat čas. Na doba běhu, jsou poskytnuta data a výsledkem jsou prvky DOM. Do výsledných prvků DOM lze vložit nebo nahradit existující prvek, což vnitřní HTML snadno nedokáže bez vytvoření přebytečných prvků DOM. Rebinding vyžaduje pouze vyžádání dalších dat, která jsou menší než plně rozšířené označení. Výsledkem je, že často dochází k velkým nárůstům výkonu, protože je požadováno označení nebo uloženo do mezipaměti odděleně od údajů.
Vzor zprávy HTML / šablonování na straně prohlížeče
Pro jednoduchost je pro vzor zprávy HTML preferovanou metodou innerHTML[5] styl Ajaxu. Nástroje jako JsonFx[6] usilují o zjednodušení implementace JsonML a JBST a zároveň poskytují plný šablon Ajaxu na straně prohlížeče.[7]
Reference
- ^ McKamey, Stephen M. (3. února 2007). „JsonML - vazebné chování k prvkům DOM“. Oficiální webové stránky. JsonML.org. Archivovány od originál dne 14. srpna 2010. Citováno 7. ledna 2011.
- ^ McKamey, Stephen M. (3. srpna 2008). „JsonML + Browser-Side Templating (JBST)“. Oficiální webové stránky. JsonML.org. Citováno 7. ledna 2011.
- ^ http://tech.groups.yahoo.com/group/json/message/1115
- ^ http://jsonml.org/syntax/
- ^ „Zpráva HTML“. O AjaxPatterns.org. AjaxPatterns.org. Archivovány od originál dne 1. července 2012. Citováno 7. ledna 2011.
- ^ „Vítejte na JsonFx.NET“. Oficiální web JsonFx.NET. Stephen M. McKamey. Citováno 7. ledna 2011.
- ^ „Šablona na straně prohlížeče“. AjaxPatterns.org. Archivovány od originál dne 7. července 2012. Citováno 7. ledna 2011.
externí odkazy
- JsonML.org
- Článek IBM developerWorks
- Implementace Java JSONML - napsal Douglas Crockford
- JsonFx.NET - C # /. NET JBST Framework
- C ++ JDX XPath 2.0 pro XML, JSON a JsonML