← Prev in month ← Prev in thread

The perils of using the @ symbol in JSON key name ... mapping JSON to XML, Schematron, XSLT, XPath, and/or XQuery

From
Costello, Roger L. <>
To
"" <>
Date
2015-08-17T14:18:14Z
ID
<>
Thread
The perils of using the @ symbol in JSON key name ... mapping JSON to XML, Schematron, XSLT, XPath, and/or XQuery
Hi Folks,

In XML documents an element name cannot begin with the @ symbol; this is illegal:

	<@foo />

Likewise an attribute name cannot begin with an @ symbol; this is illegal:

	<Document @id="..." />
 
Schematron, XPath, and XQuery uses the @ symbol to denote "attribute"; for example:

	Book/@id

JSON places no restrictions on the symbols used in JSON object keys; in particular, a key name may start with the @ symbol. For example, this is perfectly legal:

	{
	    "@bar": "..."
	}

At the present time in history XML has a  much richer suite of tools than JSON. For example, there is nothing in the JSON tool suite that can match the ability of Schematron to declaratively express codependency rules; there is nothing in the JSON tool suite analogous to XSLT, XPath, or XQuery. So I would imagine that at least for the foreseeable future people will convert JSON to XML, Schematron, XSLT, XPath, and/or XQuery to leverage the rich XML tool suite.

In light of this it seems reasonable to me that when designing JSON documents it would be well-advised to heed some of the XML naming requirements such as, "a name must not begin with an @ symbol". 

Question: would you please provide a concrete example to illustrate a problem with converting JSON to XML, Schematron, XSLT, XPath, and/or XQuery when the JSON contains key names that start with an @ symbol?

/Roger
← Prev in month ← Prev in thread