E4X(EMCAScript 4 XML)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

E4X(EMCAScript 4 XML)

L2L 2L
Revive E4X as EXQO(ECMA-Script's XML Query Object) with SAX added on as methods for the xml object.

With an added method call xPath();

Xml file to be use:
<note> 
  <date>2002-08-01</date>    
  <to>Tove</to>
  <from>Jani</from> 
  <heading>Reminder</heading> 
  <body>Don't forget me this weekend!</body> 
</note>

Example:
//E4X spec.
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.body);
//please look at the bottom for a corresponding to this.
//output body text value

Example:
//with added xPath() method
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(
xmlDoc.xPath("//body");
//relative path expression
);

Example:
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(
xmlDoc.xPath("/note/body");
//absolute path expression
);

This will gain attention to the ease of navigating the dom. Also the other goal is to point to xQuery as a server scripting alternative to popular server side scripting such as php.

//thoughts on the E4X spec.
//the e4x spec of the look at this make it to where the root element is the container for the object return.
I feel, this should lean more to JSON type syntax:

var xmlDoc = {
note:[
  {date:"2002-08-01"},    
  {to:"Tove"},
  {from:"Jani"},
  {heading:"Reminder"}, 
  {body:"Don't forget me this weekend!"}
]}

document.write(
xmlDoc.note[4].body);

So let's say we do the same for the spec to make it more... Easy to compose a new spec with.

The dom or really htmlelementobject API and documentobject API both have methods for manipulating the xml/html.

It stand to reason to mimic those feature via JSON.

As so:

var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.note[4].body);

And again with the xPath(/*expression*/); //method

var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(
xmlDoc.xPath("/note/body")
);

For the first spec, I say to use only xPath 1.0

With attribute, I say to use the xPath(/*expression*/); method to retrieve that via string:

<date attr="value">
  2002-08-01
</date>

xmlDoc.xPath("/note/@attr");
//xPath 1.0 spec
);

to make the spec easier to adopt.

Making this appliance to "use strict";

I say to make a new statement declaration: 
"use EXQO"; or "use ESXQO";

Use JSON syntax when it comes to the EMCAScript environment.

Use xPath(/*expression*/); for all non EMCAScript environment expression, and syntax.

Note that this version may receive further editing in the future.

Thank you for reading. 

E-S4L
Loading...