I've been thinking a lot about MicroXML, MicroXSD, MicroRNG, etc., and I thought I'd take a stab at a MicroXPath. This is intended to be, like the others, the simplest thing that could possibly work. However, I'm not a frequent XPath user, so I may have put together something that is *too* simple to work. So I'm posting here for comments. (I'm using this address because xml-dev drops posting from my permanent firstname.lastname@example.org address on the floor, for some reason). One principle is that since elements are the only kind of node in the MicroXPath data model, XPath expressions return only lists of elements. Another is that 100% compatibility with XPath 1.0 isn't essential, since most XPath expressions are fairly transient compared to XML documents or schemas. So here's what I've got. The only kind of expression is a location path. Location paths can be absolute or relative, and their steps can be separated by either / or //. A path step is an element name, star, dot, or dot-dot. Only one predicate is allowed per step, and it has to take one of these eight forms: 1) a literal number 2) last() 3) location-path="string" 4) @name="string" 5) location-path/@name="string" 6) @@name="string" 7) location-path/@@name="string" 8) function(.) @@ means "inheritable attribute", and is provided for brevity and convenience. In form 8, the function name is provided externally to XPath (there are no built-in functions except last()), and accepts the current element node and returns a boolean value. This is the programmatic escape from MicroXPath that allows complex predicates. What's missing? What can I take out? Comments solicited. -- John Cowan http://www.ccil.org/~cowan <email@example.com> You tollerday donsk? N. You tolkatiff scowegian? Nn. You spigotty anglease? Nnn. You phonio saxo? Nnnn. Clear all so! `Tis a Jute.... (Finnegans Wake 16.5)
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format