XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: Concerned about the increasing reliance on XPath

Hi Folks,

Suppose you create an XML vocabulary for describing purchases:

Purchase
     Item: decimal
     Total: XPath

The value of <Total> is any XPath expression.

Here's a sample instance document:

<Purchase>
      <Item>10.00</Item>
      <Item>20.00</Item>
      <Total>sum(../Item)</Total>
</Purchase>

You input that instance document into your "purchase processor" and it outputs:

    Your purchases:
        Item: $10.00
        Item: $20.00
        Total: $30.00

The XPath expression in the <Total> element was evaluated by the "purchase processor."

The <Total> element is powerful - the full power of XPath is available to it. To further illustrate its power, we could write an XPath expression to convert the sum of the Items to another currency:

    <Total>sum(../Item) * 2.1034</Total>

Or we could write an XPath expression that pulls in data from other documents to compute the total.

Pretty powerful, aye?

Now, write this tool: the input to the tool is a "purchase instance document", such as this: 

<Purchase>
      <Item>10.00</Item>
      <Item>20.00</Item>
      <Total>sum(../Item)</Total>
</Purchase>

The tool assesses the instance document and outputs the results of the assessment.

Ouch!

Assessing the <Item> elements is easy; they just contain decimal values. Assessing the <Total> element is probably impossible since it can contain any arbitrary XPath expression.

That's bad.

XPath is fine if all you want to do is "execute" the XML vocabulary. But if you want to "assess/analyze" your  XML vocabulary then XPath is not fine.

Contrast the above with this XML vocabulary:

Purchase
     Item: decimal
     Total
         SumPrecedingItems
              Value: decimal

Here's a sample instance document:

<Purchase>
      <Item>10.00</Item>
      <Item>20.00</Item>
      <Total>
            <SumPrecedingItems>
                 <Value>30.00</Value>
            </SumPrecedingItems>
      </Total>
</Purchase>

The <Total> element is much less powerful - its content is an element that has the semantics "sum all the preceding <Item> elements."

Now, write a tool in which you give it a "purchase instance document" and it assesses the instance document.

Easy!

Analysis of the XML vocabulary is possible (easy, in fact).

Summary: if an XML vocabulary permits XPath expressions then analysis of the XML vocabulary becomes exceedingly difficult (or impossible).

Comments?

/Roger


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS