Jsonix Substitution Groups

HTML

<script src="https://rawgithub.com/highsource/jsonix/master/dist/Jsonix-all.js"></script>
<h1>Unmarshalling</h1>
<pre id="unmarshalledB"></pre>
<h2>marshalledC</h2>

JavaScript

var MyModule = {
    name: 'MyModule',
    typeInfos: [{
        type: 'classInfo',
        localName: 'ElementRefType',
        propertyInfos: [{
            type: 'element',
            name: 'a',
            typeInfo: 'String'
        }, {
            type: 'elementRef',
            name: 'b',
            typeInfo: 'String'
        }]
    }],
    elementInfos: [{
        elementName: 'data',
        typeInfo: 'MyModule.ElementRefType'
    }, {
        elementName: 'c',
        substitutionHead: 'b',
        typeInfo: 'String'
    }]
};
var context = new Jsonix.Context([MyModule]);
var unmarshaller = context.createUnmarshaller();
var unmarshalledB = unmarshaller.unmarshalString('<data><a>9</a><a>10</a><b>2</b></data>');
console.log(1);
console.log(unmarshalledB);
//console.log(unmarshalledB.value.b);

var marshaller = context.createMarshaller();
var marshalledB = marshaller.marshalString({
    name: {
        localPart: 'data'
    },
    value: {
        a: '1',
        b: {
            name: {
                localPart: 'b'
            },
            value: '12'
        }
    }
});

                console.log(2);
                
console.log(marshalledB);

/*var marshalledC = marshaller.marshalString({
    name: {
        localPart: 'data'
    },
    value: {
        a: '1',
        b: {
            name: {
                localPart: 'c'
            },
            value: '32'
        }
    }
});

 console.log(3);
console.log(marshalledC);
var text = Jsonix.DOM.serialize(marshalledC);
console.log(text);
var marshaller = context.createMarshaller();
var marshalledXML = marshaller.marshalString(marshalledB);
//console.log(marshalledXML);

//var marshalledXMLText = marshaller.marshalString(json);

//	console.log("Marshalled JSON from the file [" + jsonFile + "] as XML:");
//	console.log(marshalledXMLText);*/