4.0.2 • Published 5 years ago

jxt v4.0.2

Weekly downloads
2,383
License
MIT
Repository
github
Last release
5 years ago

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 jxt

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.textSub('jabber:client', 'subject'),
        body: helpers.textSub('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
  • multiTextSub
  • numberAttribute
  • numberSub
  • numberSubAttribute
  • subAttribute
  • langTextSub
  • textSub
  • text

License

MIT

Created By

If you like this, follow @lancestout on twitter.

4.0.2

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.1.0

6 years ago

3.0.10

7 years ago

3.0.9

7 years ago

3.0.8

8 years ago

3.0.7

8 years ago

3.0.6

8 years ago

3.0.5

8 years ago

3.0.4

9 years ago

3.0.3

9 years ago

3.0.2

9 years ago

3.0.1

9 years ago

3.0.0

9 years ago

2.7.0

9 years ago

2.6.4

9 years ago

2.6.3

9 years ago

2.6.2

9 years ago

2.6.1

10 years ago

2.6.0

10 years ago

2.5.4

10 years ago

2.5.3

10 years ago

2.5.2

10 years ago

2.5.1

10 years ago

2.5.0

10 years ago

2.4.0

10 years ago

2.3.0

10 years ago

2.2.0

10 years ago

2.1.0

10 years ago

2.0.2

10 years ago

1.6.1

10 years ago

1.6.0

10 years ago

1.5.1

10 years ago

1.5.0

10 years ago

1.4.0

10 years ago

1.3.2

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.7.0

10 years ago

0.6.0

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.0

10 years ago

0.3.3

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.10

11 years ago

0.2.9

11 years ago

0.2.8

11 years ago

0.2.7

11 years ago

0.2.6

11 years ago

0.2.5

11 years ago

0.2.4

11 years ago

0.2.2

11 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago

0.0.7

11 years ago

0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago