From ae98699094db6bed9d610999fa6a992b9dd19aed Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Sat, 26 Mar 2016 14:34:22 -0400 Subject: [PATCH] Record slot naming * src/record.xsl (n:name-slots, n:slot-names): added * test/record.xspec: slot naming tests added --- src/record.xsl | 116 ++++++++++++++++++++++++++++++++++++++++++++-- test/record.xspec | 102 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 213 insertions(+), 5 deletions(-) diff --git a/src/record.xsl b/src/record.xsl index 09e7a2f..0a994d1 100644 --- a/src/record.xsl +++ b/src/record.xsl @@ -25,7 +25,8 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:n="http://mikegerwitz.com/hoxsl/node" xmlns:R="http://mikegerwitz.com/hoxsl/record" - xmlns:_R="http://mikegerwitz.com/hoxsl/record/_priv"> + xmlns:_R="http://mikegerwitz.com/hoxsl/record/_priv" + xmlns:_Rs="http://mikegerwitz.com/hoxsl/record/_priv/slots"> @@ -79,6 +80,7 @@ @menu * Design Considerations: Record Design Considerations. * Header: Record Header. + * Slot Naming: Record Slot Naming. * Polymorphism: Record Polymorphism. @end menu @@ -162,6 +164,10 @@ The implementation will involve adding additional items into the sequence in order to provide the needed context. + Note: records are implemented without the use of Hoxsl's higher-order + functions; those functions are backed by records, so we'd have a bit of a + chicken-and-egg problem. + @node Record Header @section Record Header @@ -229,6 +235,13 @@ select="resolve-uri( 'http://mikegerwitz.com/hoxsl/record/_priv' )" /> + + + @@ -283,8 +296,11 @@ + ( n:element( QName( $_R:ns, '_R:slot-names' ) ), + n:element( QName( $_R:ns, '_R:types' ), + (), + ( $Supertype/_R:types/node(), + n:element( $qname ) ) ) ) )" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +