jQuery addClass example

Change class name on click in jQuery

by Dmitri Ganenco

HTML

<pre id="pre"></pre>

JavaScript

var myObj = {
        "Ob1": {
            "myObjName": "A1",
            "myObjType": "string",
            "myObjOcc": "minOccurs=1",
            "Ob2": {
                "myObjName": "B1",
                "myObjType": "string",
                "myObjOcc": "minOccurs=1",
                "Ob3": {
                    "myObjName": "C1",
                    "myObjType": "string",
                    "myObjOcc": "minOccurs=1"
                } 
            }
         },
         "Ob4": {
                    "myObjName": "A2",
                    "myObjType": "string",
                    "myObjOcc": "minOccurs=1"
         }
    };
    
    var simpleObjAttrs = ['myObjName', 'myObjType', 'myObjOcc'];

function hasNestedObject(obj) {
  return Object.getOwnPropertyNames(obj).length > 3;
}

    function xsdStructure(obj) {
        var str = "";

        if (hasNestedObject(obj)) {
            str += "<xs:complexType name=\"" + obj.myObjName + "\" type=\"" + obj.myObjType + "\" " + obj.myObjOcc + ">\n";
            for(var key in obj){
            	if(obj.hasOwnProperty(key) && simpleObjAttrs.indexOf(key) === -1){
              str += xsdStructure(obj[key]);
              }
            }
            
            str += "</xs:complexType>\n"
        } else {
            str = "<xs:simpleType name=\"" + obj.myObjName + "\" type=\"" + obj.myObjType + "\" " + obj.myObjOcc + "/>\n";
        }

        return str;
     }

     function printing(myObj) {
        var result = "";
        for (var key in myObj) {
            result += xsdStructure(myObj[key]);
        }
        result = '<xs:schema>\n' + result + '</xs:schema>'; 
     $('#pre').text(result);   

        return result;
     }
     
    formatXml( printing(myObj));
     
     function formatXml(xml, tab) { 
    var formatted = '', indent= '';
    tab = tab || '\t';
    xml.split(/>\s*</).forEach(function(node) {
        if (node.match( /^\/\w/ )) indent = indent.substring(tab.length); // decrease indent by one...