JSPM

  • Created
  • Published
  • Downloads 1191
  • Score
    100M100P100Q103919F
  • License MIT

JSON/XML Translator. Set/retrieve data from XML just like working with a dictionary.

Package Exports

  • jxt

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jxt) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

jxt: JSON/XML Translation for the Browser

What is this?

A basic in-browser framework for translating XML to JSON and back again.

Suitable for use with browserify/CommonJS on the client.

If you're not using browserify or you want AMD support use jxt.bundle.js.

Installing

npm install jxt

How to use it

First, we define the mapping between our XML and desired JSON:

var Message = jxt.define({
    name: 'message',
    namespace: 'jabber:client',
    element: 'message',
    fields: {
        to: jxt.attribute('to'),
        from: jxt.attribute('from'),
        subject: jxt.subText('jabber:client', 'subject'),
        body: jxt.subText('jabber:client', 'body')
    }
});

Now, we can create Message objects, and set fields and treat it just like JSON, and it will map it to XML.

var msg = new Message();
msg.to = 'foo@example.com';
msg.body = 'giving a demo of jxt';

console.log(msg.toJSON());
console.log(msg.toString());

// {to: 'foo@example.com', body: 'giving a demo of jxt'}
// <message xmlns="jabber:client" to="foo@example.com"><body>giving a demo of jxt</body></message>

Mappings can be extended:

var Ext = jxt.define({
    name: 'demoExt',
    namespace: 'jxt',
    element: 'demo',
    fields: {
        text: jxt.text()
    }
});

jxt.extend(Message, Ext);

var msg = new Message();
msg.demoExt.text = 'an extension';

console.log(msg.toJSON());
console.log(msg.toString());
// {demoExt: {text: 'an extension'}}
// <message xmlns="jabber:client"><demo xmlns="jxt">an extension</demo></message>

License

MIT