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]
Your XML document is a programming language

Hi Folks,

This is a programming language:

<Book>
    <Title>____</Title>
    <Author>____</Author>
</Book>

Don't let the angle brackets and element names deceive you, it is a programming language.

When I execute this program

<Book>
    <Title>Six Great Ideas</Title>
    <Author>Mortimer Adler</Author>
</Book>

I get this output

    Six Great Ideas
    Mortimer Adler

As with most programming languages, it is possible to write a program that loops forever. This program loops forever

<Book>
    <Title>Six Great Ideas</Title>
    <Author></Author>
</Book>

You probably figured out that in this programming language the semantics of the <Author> element is

1. interpret(Author[not(empty())]) --> Output: text 
2. interpret(Author[empty()]) --> interpret(self::*) 

Here is an interpreter for the programming language

---------------------------------------------------------------------
              Book Language Interpreter
        (interpreter is implemented in XSLT)
---------------------------------------------------------------------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                         version="2.0">
   
   <xsl:output method="text" />
    
   <xsl:template match="text()">
       <xsl:value-of select="." />
   </xsl:template>
    
    <xsl:template match="Author[. eq '']">
        <xsl:apply-templates select="self::*"/>
    </xsl:template>
    
</xsl:stylesheet>

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