Nimn Tester
Nimn.in
by phrontisteries
HTML
<html>
<body>
XML:<br><textarea cols=40 id="xml"></textarea><span id="xmlchars">0</span><br>
JSON:<br><textarea cols=40 id="json"></textarea><span id="jsonchars">0</span><br>
<input id="convert" type="button" value="XML to Nimn" onclick="convertNimn('xml','to',1)">
<input id="convert" type="button" value="JSON to Nimn" onclick="convertNimn('json','to',1)">
<br>
Schema:<br><textarea cols=40 id="schema"></textarea><span id="schemachars">0</span><br>
Nimn:<br><textarea cols=40 id="to"></textarea><span id="tochars">0</span><br>
<input id="convertback" type="button" value="Convert back" onclick="convertNimn('to','back',0)">
<br>
<textarea cols=40 id="back"></textarea><span id="backchars">0</span>
</body>
</html>
JavaScript
var xmlOptions = {
ignoreAttributes: false,
ignoreNameSpace: false,
allowBooleanAttributes: true,
parseNodeValue: false,
parseAttributeValue: false,
trimValues: false
};
function convertNimn(from, to, toNimn) {
var fe = document.getElementById(from),
f = fe.value,
te = document.getElementById(to),
t = "",
n = !!toNimn;
document.getElementById(from + "chars").innerHTML = f.length;
if (n) {
try {
var jsonData = JSON.parse(f);
var stringy = JSON.stringify(jsonData);
var schema = nimn.buildSchema(nimnSchemaBuilder.build(jsonData));
var schemaString = JSON.stringify(schema);
//var p = require("fast-xml-parser").j2xParser;
//default options need not to set
/*var defaultOptions = {
attributeNamePrefix : "@_",
attrNodeName: "@", //default is false
textNodeName : "#text",
ignoreAttributes : true,
cdataTagName: "__cdata", //default is false
cdataPositionChar: "\\c",
format: false,
indentBy: " ",
supressEmptyNode: false,
tagValueProcessor: a=> he.encode(a, { useNamedReferences: true}),// default is a=>a
attrValueProcessor: a=> he.encode(a, {isAttributeValue: isAttribute, useNamedReferences: true})// default is a=>a
};*/
var p = new parser();
var px = p.j2xParser();//defaultOptions);
var xml = parser.parse(jsonData);
document.getElementById('xml').value = xml;
document.getElementById("xmlchars").innerHTML = xml.length;
document.getElementById('schema').value = schemaString;
document.getElementById("schemachars").innerHTML = schemaString.length;
console.log("JSON",f,jsonData,stringy.length,schemaString.length,stringy.length+schemaString.length);
t = nimn.stringify(schema, jsonData);
//t = result;//jsonToNimn(jsonData, "JSON", stringy.length);
} catch (e) {
//assume it XML
f =...