The work reported here was initiated by an idea of Tim Berners-Lee, who also first used the phrase "functional XML" in my hearing. The basic direction was first suggested by Richard Tobin.
xsi:schemaLocation attribute on a document
elementxml-stylesheet processing instructionhttp://www.w3.org/2001/04/xmlenc# namespacepurchaseOrder element.λ:sic element for this
purpose
xi:include) document.λ:result (XSLT) we allow a stylesheet attribute
or a second child to name or directly provide the stylesheet.λ:PSVI we allow a
schemaDocuments attribute and/or multiple children
| λ:valid | Validated W3C XML |
| λ:PSVI | W3C XML Schema |
| λ:result | W3C XSLT (v.1 or v.2, depending on stylesheet) |
| λ:queryResult | W3C XML Query |
| λ:encrypted | W3C XML Encryption |
| λ:decrypted | W3C XML Encryption |
| λ:signed | W3C XML Signature |
| λ:verified | W3C XML Signature |
| λ:transcluded | W3C XML Include |
| λ:gMeta | GRDDL |
<xi:include href=S>(λ:decrypted <EncryptedData ... </EncryptedData> ) (λ:PSVI <purchaseOrder . . . </purchaseOrder> ) (λ:PSVI (λ:decrypted <EncryptedData ... </EncryptedData> )) (λ:decrypted (λ:PSVI <EncryptedData ... </EncryptedData> )) (λ:PSVI (λ:decrypted "encrypted.xml"))
xi:included
material the compact notation wins big
(λ:result (λ:PSVI "po.xml" "address.xsd" "po.xsd") "po.xsl"))
λ:test expression: (cond ((λ:test "po.xml" [/root/@version > 3]) (PSVI "po.xml" "current.xsd")) (true (PSVI "po.xml" "stale.xsd")))
"po.xml" document twice(let ((doc "po.xml")) (cond ([$doc/root/@version > 3] (PSVI $doc "current.xsd")) ([true] (PSVI $doc "stale.xsd"))))
let-bound variableslet and
cond, not λ:let and λ:cond
mapcar, is another
attractive feature(λ:mapped [item/price] (λ (subdoc) <amount currency="USD"> <xi:include href="#subdoc"/> </amount>) "po.xml")
λ form in the usual waylet or
λ can be accessed
xi:includeλ:result is a bit heavyweight
for many purposes(λ:templateApplied <xsl:template match="item/price"> <amount currency="USD"> <xsl:apply-templates/> </amount> </xsl:template> "po.xml")
try/catch.let and cond are a bit trickier. . .