← Prev in month ← Prev in thread

Your XML document is a programming language

From
Costello, Roger L. <>
To
"" <>
Date
2013-09-09T11:59:09Z
ID
<>
Thread
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
← Prev in month ← Prev in thread