damn-simple-xml
Dams Simple XML DSX is optimized to serialize JavaScript objects and deserialize XML elements that have been formerly serialized from an object in another programming language (or by DSX). DSX is not designed to handle any kind of free form XML documents. DSX have a small memory footprint. It is the only XML library that can handle CDATA sections for both serialization and deserialization.
Documentation and Release Notes
Consult the full API Reference for detailed documentation.
Consult The Release Notes here.
Usage
The following usage scenarios are oversimplified. with DSX, you can fine tune and control each serialization behaviors. You can choose to define a field to be serialized as an attribute, a CDATA or define a collection child elements' name. For more informations, see API Reference reference
Serialization
By default, all fields of an object will be serialized as a XML element. You
can control serialization by providing a behavior
object telling Damn
Simple Xml how to serialize attributes texts, CDATA, arrays and arrays'
items fields:
var Serializer = ;var serializer = ; var employees = id: 123 department: "Marketting" fullname: "John Doe" emails: type: "home" value: "jd@home.com" type: "work" value: "jd@work.com" id: 456 department: "Administration" fullname: "Jane Dowell" emails: type: "home" value: "jane_dowell@home.com" ; var xml = "";serializer;
The previous code will result in a one line unformatted xml corresponding to:
123 Marketting John Doe home jd@home.com work jd@work.com 456 Administration Jane Dowell home jane_dowell@home.com
Deserialization
When unspecified, free text beside other XML elements is added to the "_text" field by default.
Given the following XML:
This employee is terrible! John Doe jdoe@work.com john.doe@nobody.com
var Serializer = ;var serializer = ; serializer;
Will display the following Javascritp object:
name: "employee" data: _text: "This employee is terrible!" firstName: "John" lastName: "Doe" emails: type: "work" value: "jdoe@work.com" type: "personal" value: "john.doe@nobody.com"