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 =...