729N/A/* custom styles for this example */
729N/A#demo .output {margin-bottom:1em; padding:10px; border:1px solid #D9D9D9;}
729N/A <session>34637542</session>
729N/A <category name="music" id="5"><results>
729N/A <song id="59672468">
729N/A <title>I Kissed A Girl</title>
729N/A <rank>1</rank>
729N/A <artist id="30326214">Katy Perry</artist>
729N/A <song id="47973564">
729N/A <title>Shake It</title>
729N/A <rank>2</rank>
729N/A <artist id="45575683">Metro Station</artist>
729N/A <song id="52207363">
729N/A <title>Bleeding Love</title>
729N/A <rank>3</rank>
729N/A <artist id="37956508">Leona Lewis</artist>
729N/A </results></category>
729N/A resultListLocator: "song",
729N/A resultFields: [{key:"title"}, {key:"artist"}, {key:"rank"}]
729N/A <h6>Normalized data</h6>
729N/A <input type="button" id="demo_apply_basic" value="Apply schema =>">
729N/A <div id="demo_output_basic" class="output"></div>
729N/A <h4>Complex example</h4>
<Session>542235629</Session>
<Tracks start="1" count="10" total="98" errorCount="0"
defaultSort="popularity+" description="Top 100 Tracks"
name="Top 100 Tracks">
<Track id="59672468" rating="-1" title="I Kissed A Girl">
<Artist id="30326214" rating="-1">Katy Perry</Artist>
<ItemInfo><ChartPosition last="26" this="1"/></ItemInfo>
<Track id="47973564" rating="-1" title="Shake It">
<Artist id="45575683" rating="-1">Metro Station</Artist>
<ItemInfo><ChartPosition last="27" this="2"/></ItemInfo>
<Track id="52207363" rating="-1" title="Bleeding Love">
<Artist id="37956508" rating="-1">Leona Lewis</Artist>
<ItemInfo><ChartPosition last="28" this="3"/></ItemInfo>
metaFields: {session:"//Session", total:"//Tracks/@total"},
resultListLocator: "//Track",
resultFields: [{key:"song", locator:"@title"},
{key:"artist", locator:"Artist"},
<input type="button" id="demo_apply_complex" value="Apply schema =>">
<div id="demo_output_complex" class="output"></div>
<dessert type="treat">
<name>cupcake</name>
<flavor name="chocolate"/>
<flavor name="red velvet"/>
<dessert type="treat">
<name>ice cream</name>
<flavor name="chocolate"/>
<flavor name="strawberry"/>
<flavor name="vanilla"/>
<dessert type="treat">
<name>pie</name>
<flavor name="banana cream"/>
<flavor name="blueberry"/>
<flavor name="cherry"/>
<dessert type="beverage">
<name>hot chocolate</name>>
<dessert type="beverage">
<name>port wine</name>
resultListLocator: "dessert",
{key:"type", locator:"@type"},
{key:"name", locator:"name"},
{key:"flavors", schema: {
resultListLocator: "flavor",
{key:"flavor", locator:"@name"}
<input type="button" id="demo_apply_nested" value="Apply schema =>">
<div id="demo_output_nested" class="output"></div>
YUI().use("dump", "node", "datatype-xml", "dataschema-xml", function (Y) {
Y.on("click", function(e){
var data_in =
Y.DataType.XML.parse('<root><session>34637542</session><category name="music" id="5"><results><song id="59672468"><title>I Kissed A Girl</title><rank>1</rank><artist id="30326214">Katy Perry</artist></song><song id="47973564"><title>Shake It</title><rank>2</rank><artist id="45575683">Metro Station</artist></song><song id="52207363"><title>Bleeding Love</title><rank>3</rank><artist id="37956508">Leona Lewis</artist></song></results></category></root>'),
resultListLocator: "song",
resultFields: [{key:"title"}, {key:"artist"}, {key:"rank"}] // Or simply ["title", "artist", "rank"]
Y.on("click", function(e){
var data_in =
Y.DataType.XML.parse('<Response><Session>542235629</Session><Tracks start="1" count="10" total="98" errorCount="0" defaultSort="popularity+" description="Top 100 Tracks" name="Top 100 Tracks" ><Track id="59672468" rating="-1" title="I Kissed A Girl"><Artist id="30326214" rating="-1">Katy Perry</Artist><ItemInfo><ChartPosition last="26" this="1"/></ItemInfo></Track><Track id="47973564" rating="-1" title="Shake It"><Artist id="45575683" rating="-1">Metro Station</Artist><ItemInfo><ChartPosition last="27" this="2"/></ItemInfo></Track><Track id="52207363" rating="-1" title="Bleeding Love"><Artist id="37956508" rating="-1">Leona Lewis</Artist><ItemInfo><ChartPosition last="28" this="3"/></ItemInfo></Track></Tracks></Response>'),
metaFields: {session:"//Session", total:"//Tracks/@total"},
resultListLocator: "//Track",
resultFields: [{key:"song", locator:"@title"}, {key:"artist", locator:"Artist"}, {key:"rank", locator:"
ItemInfo/ChartPosition/@this"}]
}, "#demo_apply_complex");
Y.on("click", function(e){
var data_in =
Y.DataType.XML.parse('<desserts><dessert type="treat"><name>cupcake</name><flavors><flavor name="chocolate"/><flavor name="red velvet"/></flavors></dessert><dessert type="treat"><name>ice cream</name><flavors><flavor name="chocolate"/><flavor name="strawberry"/><flavor name="vanilla"/></flavors></dessert><dessert type="treat"><name>pie</name><flavors><flavor name="banana cream"/><flavor name="blueberry"/><flavor name="cherry"/></flavors></dessert><dessert type="beverage"><name>hot chocolate</name></dessert><dessert type="beverage"><name>port wine</name></dessert></desserts>'),
resultListLocator: "dessert",
{key:"type", locator:"@type"},
{key:"name", locator:"name"},
{key:"flavors", schema: {
resultListLocator: "flavor",
{key:"flavor", locator:"@name"}
}, "#demo_apply_nested");