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 framework for translating XML to dev-friendly JSON and back again, and can be used both in the browser and in node.
Installing
$ npm install jxtBuilding bundled/minified version (for AMD, etc)
$ make buildThe bundled and minified files will be in the generated build directory.
How to use it
First, we define the mapping between our XML and desired JSON:
// Create a registry instance that will track our definitions and
// extensions.
var jxt = require('jxt').createRegistry();
var helpers = jxt.utils;
var Message = jxt.define({
name: 'message',
namespace: 'jabber:client',
element: 'message',
fields: {
to: helpers.attribute('to'),
from: helpers.attribute('from'),
subject: helpers.subText('jabber:client', 'subject'),
body: helpers.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:
// jxt is our registry object
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>Predefined Field Types
- attribute
- b64Text
- boolAttribute
- boolSub
- boolSubAttribute
- dateAttribute
- dateSub
- dateSubAttribute
- enumSub
- langAttribute
- multiSubText
- numberAttribute
- numberSub
- numberSubAttribute
- subAttribute
- subLangText
- subText
- text
License
MIT
Created By
If you like this, follow @lancestout on twitter.
