<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-os vector-sticky-header-enabled" lang="en" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>JsonML</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://en.wikipedia.org/wiki/JsonML"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
  </head>
  <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-JsonML rootpage-JsonML skin-vector-2022 action-view">
    <div class="mw-page-container">
      <div class="mw-page-container-inner">
        <div class="mw-content-container">
          <main id="content" class="mw-body">
            <header class="mw-body-header vector-page-titlebar">
              <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">JsonML</span></h1>
            </header>
            <a id="top"></a>
            <div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
              <div id="contentSub">
                <div id="mw-content-subtitle"></div>
              </div>
              <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1316064257">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent;color:inherit}.mw-parser-output .infobox-3cols-child{margin:-3px}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end   https://en.wikipedia.org/ */
</style><table class="infobox"><tbody><tr><th colspan="2" class="infobox-above" style="padding-bottom: 0.15em;background-color:#e0e0e0;color:inherit;">JSON Markup Language</th></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;"><a href="Media_type" title="Media type">Internet media&nbsp;type</a></th><td class="infobox-data" style="line-height: 1.35;"><style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */


.mw-parser-output .monospaced{font-family:monospace,monospace}


/* end   https://en.wikipedia.org/ */
</style><div class="monospaced">
<code>application/jsonml+json</code>&nbsp;(unofficial)</div></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Type of format</th><td class="infobox-data" style="line-height: 1.35;"><a href="Markup_language" title="Markup language">Markup language</a> and <a href="Web_template_system" title="Web template system">Web template system</a></td></tr><tr><th scope="row" class="infobox-label" style="line-height: 1.2; padding-right: 0.65em;">Extended&nbsp;from</th><td class="infobox-data" style="line-height: 1.35;"><a href="XML" title="XML">XML</a>, <a href="JSON" title="JSON">JSON</a> and <a href="JavaScript" title="JavaScript">JavaScript</a></td></tr></tbody></table>
<p><b>JsonML</b>, the <b>JSON Markup Language</b> is a <a href="Lightweight_markup_language" title="Lightweight markup language">lightweight markup language</a> used to map between <a href="XML" title="XML">XML</a> (Extensible Markup Language) and <a href="JSON" title="JSON">JSON</a> (JavaScript Object Notation). It converts an XML document or fragment into a JSON data structure for ease of use within <a href="JavaScript" title="JavaScript">JavaScript</a> environments such as a <a href="Web_browser" title="Web browser">web browser</a>, allowing manipulation of XML data without the overhead of an XML parser.
</p><p>JsonML has greatest applicability in <a href="Ajax_(programming)" title="Ajax (programming)">Ajax</a> (Asynchronous JavaScript and XML) web applications. It is used to transport <a href="XHTML" title="XHTML">XHTML</a> (eXtensible HyperText Markup Language) down to the client where it can be <a href="Deterministic_automaton" title="Deterministic automaton">deterministically</a> reconstructed into <a href="Document_Object_Model" title="Document Object Model">DOM</a> (Document Object Model) elements. <a href="Progressive_enhancement" title="Progressive enhancement">Progressive enhancement</a> strategy can be employed during construction to bind dynamic behaviors to otherwise static elements.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>JsonML can also be used as  underlying structure for creating intricate client-side templates called JBST (JsonML+Browser-Side Templates).<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Syntactically JBST looks like <a href="JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JSP</a> (JavaServer Pages) or <a href="ASP.NET" title="ASP.NET">ASP.NET</a> (Active Server Pages .NET) user controls. Interactive examples are available on jsonml.org website.
</p>

<div class="mw-heading mw-heading2"><h2 id="Syntax">Syntax</h2></div>
<p>Conversion from XML to JsonML is partially reversible. <a href="XML_Namespace" class="mw-redirect" title="XML Namespace">XML Namespaces</a> are handled by prepending the element name with the namespace prefix, e.g., <code>&lt;myns:myElement/&gt;</code> becomes <code>["myns:myElement"]</code>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Example_Transformation">Example Transformation</h3></div>
<p>JsonML allows any XML document to be represented uniquely as a JSON string. The syntax uses:
</p>
<ul><li>JSON <a href="Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a> to represent XML elements;</li>
<li>JSON <a href="Associative_array" title="Associative array">objects</a> to represent attributes;</li>
<li>JSON <a href="String_(computer_science)" title="String (computer science)">strings</a> to represent text nodes.</li></ul>
<table class="wikitable" style="margin:auto; table-layout:fixed; width:96%; vertical-align:top;">
<tbody><tr>
<th>JsonML encoded
</th>
<th>Original XML
</th></tr>
<tr style="vertical-align: top; font-size: smaller">
<td>
<div style="overflow:auto" class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span><span class="s2">"person"</span><span class="p">,</span>
<span class="w">  </span><span class="p">{</span><span class="nt">"created"</span><span class="p">:</span><span class="s2">"2006-11-11T19:23"</span><span class="p">,</span>
<span class="w">   </span><span class="nt">"modified"</span><span class="p">:</span><span class="s2">"2006-12-31T23:59"</span><span class="p">},</span>
<span class="w">  </span><span class="p">[</span><span class="s2">"firstName"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Robert"</span><span class="p">],</span>
<span class="w">  </span><span class="p">[</span><span class="s2">"lastName"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Smith"</span><span class="p">],</span>
<span class="w">  </span><span class="p">[</span><span class="s2">"address"</span><span class="p">,</span><span class="w"> </span><span class="p">{</span><span class="nt">"type"</span><span class="p">:</span><span class="s2">"home"</span><span class="p">},</span>
<span class="w">    </span><span class="p">[</span><span class="s2">"street"</span><span class="p">,</span><span class="w"> </span><span class="s2">"12345 Sixth Ave"</span><span class="p">],</span>
<span class="w">    </span><span class="p">[</span><span class="s2">"city"</span><span class="p">,</span><span class="w"> </span><span class="s2">"Anytown"</span><span class="p">],</span>
<span class="w">    </span><span class="p">[</span><span class="s2">"state"</span><span class="p">,</span><span class="w"> </span><span class="s2">"CA"</span><span class="p">],</span>
<span class="w">    </span><span class="p">[</span><span class="s2">"postalCode"</span><span class="p">,</span><span class="w"> </span><span class="s2">"98765-4321"</span><span class="p">]</span>
<span class="w">  </span><span class="p">]</span>
<span class="p">]</span>
</pre></div>
</td>
<td>
<div style="overflow:auto" class="mw-highlight mw-highlight-lang-xml mw-content-ltr" dir="ltr"><pre><span></span><span class="cm">&lt;!-- XML representation of a person record --&gt;</span>
<span class="nt">&lt;person</span><span class="w"> </span><span class="na">created=</span><span class="s">"2006-11-11T19:23"</span><span class="w"> </span><span class="na">modified=</span><span class="s">"2006-12-31T23:59"</span><span class="nt">&gt;</span>
<span class="w">    </span><span class="nt">&lt;firstName&gt;</span>Robert<span class="nt">&lt;/firstName&gt;</span>
<span class="w">    </span><span class="nt">&lt;lastName&gt;</span>Smith<span class="nt">&lt;/lastName&gt;</span>
<span class="w">    </span><span class="nt">&lt;address</span><span class="w"> </span><span class="na">type=</span><span class="s">"home"</span><span class="nt">&gt;</span>
<span class="w">        </span><span class="nt">&lt;street&gt;</span>12345<span class="w"> </span>Sixth<span class="w"> </span>Ave<span class="nt">&lt;/street&gt;</span>
<span class="w">        </span><span class="nt">&lt;city&gt;</span>Anytown<span class="nt">&lt;/city&gt;</span>
<span class="w">        </span><span class="nt">&lt;state&gt;</span>CA<span class="nt">&lt;/state&gt;</span>
<span class="w">        </span><span class="nt">&lt;postalCode&gt;</span>98765-4321<span class="nt">&lt;/postalCode&gt;</span>
<span class="w">    </span><span class="nt">&lt;/address&gt;</span>
<span class="nt">&lt;/person&gt;</span>
</pre></div>
</td></tr></tbody></table>
<p>A “regular” JSON transformation produces a more compact representation, but loses some of the document structural information, in that it does not define whether a key-value pair is an attribute or a node:
</p>
<div class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span><span class="nt">"person"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="nt">"address"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="nt">"city"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Anytown"</span><span class="p">,</span>
<span class="w">        </span><span class="nt">"postalCode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"98765-4321"</span><span class="p">,</span>
<span class="w">        </span><span class="nt">"state"</span><span class="p">:</span><span class="w"> </span><span class="s2">"CA"</span><span class="p">,</span>
<span class="w">        </span><span class="nt">"street"</span><span class="p">:</span><span class="w"> </span><span class="s2">"12345 Sixth Ave"</span><span class="p">,</span>
<span class="w">        </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"home"</span>
<span class="w">    </span><span class="p">},</span>
<span class="w">    </span><span class="nt">"created"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2006-11-11T19:23"</span><span class="p">,</span>
<span class="w">    </span><span class="nt">"firstName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Robert"</span><span class="p">,</span>
<span class="w">    </span><span class="nt">"lastName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Smith"</span><span class="p">,</span>
<span class="w">    </span><span class="nt">"modified"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2006-12-31T23:59"</span>
<span class="p">}}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="&quot;Object_Form&quot;_Misnomer"><span id=".22Object_Form.22_Misnomer"></span>"Object Form" Misnomer</h3></div>
<p>In a JSON user group thread, <a href="Douglas_Crockford" title="Douglas Crockford">Douglas Crockford</a> incorrectly used the term "JsonML" to describe two variants: the "array form" and "object form".<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> This was a misuse of the term JsonML which has always stood to mean what Crockford referred to as the "array form".<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Validation">Validation</h2></div>
<p>JsonML can be validated with the following JSON schema:
</p>
<div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span>
<span class="w">  </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"array"</span><span class="p">,</span>
<span class="w">  </span><span class="s2">"minItems"</span><span class="o">:</span><span class="w"> </span><span class="mf">1</span><span class="p">,</span>
<span class="w">  </span><span class="s2">"maxItems"</span><span class="o">:</span><span class="w"> </span><span class="mf">3</span><span class="p">,</span>
<span class="w">  </span><span class="s2">"items"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span>
<span class="w">    </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">},</span>
<span class="w">    </span><span class="p">{</span><span class="s2">"oneOf"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span>
<span class="w">      </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">},</span>
<span class="w">      </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">},</span>
<span class="w">      </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"array"</span><span class="p">,</span><span class="w"> </span><span class="s2">"items"</span><span class="o">:</span><span class="p">{</span><span class="s2">"$ref"</span><span class="o">:</span><span class="w"> </span><span class="s2">"#"</span><span class="p">}}</span>
<span class="w">    </span><span class="p">]},</span>
<span class="w">    </span><span class="p">{</span><span class="s2">"oneOf"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span>
<span class="w">      </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">},</span>
<span class="w">      </span><span class="p">{</span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"array"</span><span class="p">,</span><span class="w"> </span><span class="s2">"items"</span><span class="o">:</span><span class="p">{</span><span class="s2">"$ref"</span><span class="o">:</span><span class="w"> </span><span class="s2">"#"</span><span class="p">}}</span>
<span class="w">    </span><span class="p">]}</span>
<span class="w">  </span><span class="p">]</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Comparison_to_similar_technologies">Comparison to similar technologies</h2></div>
<div class="mw-heading mw-heading3"><h3 id="XML/XSLT"><span id="XML.2FXSLT"></span>XML/XSLT</h3></div>
<p>XML and <a href="XSLT" title="XSLT">XSLT</a> (Extensible Stylesheet Language Transformations) can also produce client-side templating, and both allow caching of the template separate from the data. JBST uses <a href="JavaScript" title="JavaScript">JavaScript</a> natively in the template, rather than requiring mixing of different types of control language.
</p>
<div class="mw-heading mw-heading3"><h3 id="InnerHTML">InnerHTML</h3></div>
<p>While seemingly used to perform similar tasks, JsonML and <a href="Internet_Explorer#Features" title="Internet Explorer">innerHTML</a> are quite different. InnerHTML requires all the markup in an exact form, meaning that either the <a href="Server_(computing)" title="Server (computing)">server</a> is rendering the markup, or the programmer is performing expensive string concatenations in JavaScript.
</p><p>JsonML uses client-side templating through JBST, which means that HTML is converted into a JavaScript template at <a href="Compile_time" title="Compile time">build time</a>. At <a href="Run_time_(program_lifecycle_phase)" class="mw-redirect" title="Run time (program lifecycle phase)">run time</a>, the data is supplied and DOM elements are the result. The resulting DOM elements can be inserted or replace an existing element, which innerHTML cannot easily do without creating excess DOM elements. Rebinding only requires requesting additional data, which is smaller than fully expanded markup. As a result, large performance gains are often made, since the markup is requested or <a href="Web_cache" title="Web cache">cached</a> separately from the data.
</p>
<div class="mw-heading mw-heading3"><h3 id="HTML_message_pattern/Browser-side_templating"><span id="HTML_message_pattern.2FBrowser-side_templating"></span>HTML message pattern/Browser-side templating</h3></div>
<p>For simplicity, innerHTML has been the preferred method for the HTML-Message pattern<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> style of Ajax. However, tools like JsonFx<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> aim to simplify JsonML and JBST implementation while still providing a full browser-side templating Ajax pattern.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1327269900">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}body.skin-vector-2022 .mw-parser-output .reflist-columns-2{column-width:27em}body.skin-vector-2022 .mw-parser-output .reflist-columns-3{column-width:22.5em}.mw-parser-output .references[data-mw-group=upper-alpha]{list-style-type:upper-alpha}.mw-parser-output .references[data-mw-group=upper-roman]{list-style-type:upper-roman}.mw-parser-output .references[data-mw-group=lower-alpha]{list-style-type:lower-alpha}.mw-parser-output .references[data-mw-group=lower-greek]{list-style-type:lower-greek}.mw-parser-output .references[data-mw-group=lower-roman]{list-style-type:lower-roman}.mw-parser-output div.reflist-liststyle-upper-alpha .references{list-style-type:upper-alpha}.mw-parser-output div.reflist-liststyle-upper-roman .references{list-style-type:upper-roman}.mw-parser-output div.reflist-liststyle-lower-alpha .references{list-style-type:lower-alpha}.mw-parser-output div.reflist-liststyle-lower-greek .references{list-style-type:lower-greek}.mw-parser-output div.reflist-liststyle-lower-roman .references{list-style-type:lower-roman}


/* end   https://en.wikipedia.org/ */
</style><div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1333433106">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./_mw_/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./_mw_/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./_mw_/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./_mw_/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#bf3c2c)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#bf3c2c)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end   https://en.wikipedia.org/ */
</style><cite id="CITEREFMcKamey2007" class="citation web cs1">McKamey, Stephen M. (3 February 2007). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100814050135/http://jsonml.org/Ajax-UI/Binding/">"JsonML - Binding Behaviors to DOM Elements"</a>. <i>Official website</i>. JsonML.org. Archived from <a rel="nofollow" class="external text" href="http://jsonml.org/Ajax-UI/Binding/">the original</a> on 14 August 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Official+website&amp;rft.atitle=JsonML+-+Binding+Behaviors+to+DOM+Elements&amp;rft.date=2007-02-03&amp;rft.aulast=McKamey&amp;rft.aufirst=Stephen+M.&amp;rft_id=http%3A%2F%2Fjsonml.org%2FAjax-UI%2FBinding%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFMcKamey2008" class="citation web cs1">McKamey, Stephen M. (3 August 2008). <a rel="nofollow" class="external text" href="http://jsonml.org/bst/">"JsonML + Browser-Side Templating (JBST)"</a>. <i>Official website</i>. JsonML.org<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Official+website&amp;rft.atitle=JsonML+%2B+Browser-Side+Templating+%28JBST%29&amp;rft.date=2008-08-03&amp;rft.aulast=McKamey&amp;rft.aufirst=Stephen+M.&amp;rft_id=http%3A%2F%2Fjsonml.org%2Fbst%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120427021252/http://tech.groups.yahoo.com/group/json/message/1115">"Json&nbsp;: Message: Org.json.JSONML.java"</a>. Archived from <a rel="nofollow" class="external text" href="http://tech.groups.yahoo.com/group/json/message/1115">the original</a> on 2012-04-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-02-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Json+%3A+Message%3A+Org.json.JSONML.java&amp;rft_id=http%3A%2F%2Ftech.groups.yahoo.com%2Fgroup%2Fjson%2Fmessage%2F1115&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://jsonml.org/syntax/">"JsonML (JSON Markup Language)"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=JsonML+%28JSON+Markup+Language%29&amp;rft_id=http%3A%2F%2Fjsonml.org%2Fsyntax%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20120701122939/http://ajaxpatterns.org/HTML_Message">"HTML Message"</a>. <i>About AjaxPatterns.org</i>. AjaxPatterns.org. Archived from <a rel="nofollow" class="external text" href="http://ajaxpatterns.org/HTML_Message">the original</a> on 1 July 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=About+AjaxPatterns.org&amp;rft.atitle=HTML+Message&amp;rft_id=http%3A%2F%2Fajaxpatterns.org%2FHTML_Message&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://jsonfx.net/">"Welcome to JsonFx.NET"</a>. <i>JsonFx.NET Official Website</i>. Stephen M. McKamey<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=JsonFx.NET+Official+Website&amp;rft.atitle=Welcome+to+JsonFx.NET&amp;rft_id=http%3A%2F%2Fjsonfx.net%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20120707073731/http://ajaxpatterns.org/Browser-Side_Templating">"Browser-Side Templating"</a>. AjaxPatterns.org. Archived from <a rel="nofollow" class="external text" href="http://ajaxpatterns.org/Browser-Side_Templating">the original</a> on 7 July 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">7 January</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Browser-Side+Templating&amp;rft.pub=AjaxPatterns.org&amp;rft_id=http%3A%2F%2Fajaxpatterns.org%2FBrowser-Side_Templating&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AJsonML" class="Z3988"></span></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://jsonml.org">JsonML.org</a></li>
<li><a rel="nofollow" class="external text" href="http://www.ibm.com/developerworks/library/x-jsonml/">IBM developerWorks Article</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090201191440/http://json.org/javadoc/org/json/JSONML.html">Java JSONML implementation</a> - written by Douglas Crockford</li>
<li><a rel="nofollow" class="external text" href="http://jsonfx.googlecode.com">JsonFx.NET</a> - C#/.NET JBST Framework</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110511075950/https://www.p6r.com/software/jdx.html">C++ JDX XPath 2.0 for XML, JSON and JsonML</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    This article is issued from <a class="external text" title="Last edited on 2025-12-13" href="https://en.wikipedia.org/wiki/?title=JsonML&amp;oldid=1327166195">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
            </div>
          </main>
        </div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>