Table of Contents
Import/include tree (in order of importance; reverse import order)
Available invocation parameters ('**' indicates a required parameter)
base-config-uri
(Common components to Crane's NDR stylesheets - Crane-commonndr.xsl
)base-gc-uri
(Utility components to Crane's GC work - Crane-utilndr.xsl
)common-first
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)common-library-singleton-model-name
(Utility components to Crane's GC work - Crane-utilndr.xsl
)common-name-regex
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)config
(Common components to Crane's NDR stylesheets - Crane-commonndr.xsl
)config-uri
(Common components to Crane's NDR stylesheets - Crane-commonndr.xsl
)doc-column-names-regex
(Subset logic for schema generation - ndrSubset.xsl
)old-cardinality-column-name
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:shorten-model-name-file
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)shorten-model-name-uri
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)single-output
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)skeleton-ods-uri
** (UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)subset-absent-is-zero
(Subset logic for schema generation - ndrSubset.xsl
)subset-column-name
(Subset logic for schema generation - ndrSubset.xsl
)subset-exclusions
(Subset logic for schema generation - ndrSubset.xsl
)subset-include-ignored-types
(Subset logic for schema generation - ndrSubset.xsl
)subset-include-type-elements
(Subset logic for schema generation - ndrSubset.xsl
)subset-model-regex
(Subset logic for schema generation - ndrSubset.xsl
)subset-result
(Subset logic for schema generation - ndrSubset.xsl
)Available specialization parameters
c:common-first
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:gc
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:names
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:newline
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:single-output
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)
Filename: Crane-gc2odsxml.xsl
Include statements:
$Id: Crane-gc2odsxml.xsl,v 1.19 2017/07/27 02:19:04 admin Exp $
This converts an instance of OASIS Genericode 1.0 into one or more instances of a subset of OASIS ODF 1.1.
Copyright (C) - Crane Softwrights Ltd. - http://www.CraneSoftwrights.com/links/res-dev.htm Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Note: for your reference, the above is the "Modified BSD license", this text was obtained 2003-07-26 at http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 THE AUTHOR MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS CODE FOR ANY PURPOSE.
skeleton-ods-uri as="xsd:string?" required="yes" (xsl:param)
Name the ODS file being used as a model
single-output as="xsd:string?" select="'yes'" (xsl:param)
Signal for one or many output files
c:single-output as="xsd:boolean" select="lower-case($single-output)=('y','yes')" (xsl:variable)
Signal for one or many output files as boolean
common-first as="xsd:string?" select="'no'" (xsl:param)
Signal for ordering common library files first
c:common-first as="xsd:boolean" select="lower-case($common-first)=('y','yes')" (xsl:variable)
Signal for ordering common library files first
shorten-model-name-uri as="xsd:string?" (xsl:param)
Instructions to shorten the model name
old-cardinality-column-name as="xsd:string?" (xsl:param)
Preservation of the cardinality column
c:shorten-model-name-file as="document-node()?" select="if( empty($shorten-model-name-uri) ) then () else if( doc-available( $shorten-model-name-uri ) ) then for $d in doc( $shorten-model-name-uri ) return if ( $d/modelNameMassage ) then $d else error((), 'Unexpected document element in shorten URI') else error((),'Unable to open shorten-model-name URI')" (xsl:param)
Instructions to shorten the model name
common-name-regex as="xsd:string" select="'Common'" (xsl:param)
Identifying the common library model
c:gc as="document-node()" select="/" (xsl:variable)
Source of the genericode content
c:names as="xsd:string*" select="('Name','UBLName','ComponentName')" (xsl:variable)
Valid values for the "name" column
c:ods-uri(3) as="xsd:string?" (xsl:function)
Determine actual URI to use
Parameter
c:ods-uri as="xsd:string?"
The basis on which to calculate a JAR URI
Parameter
c:dir as="xsd:string?"
Which directory to look in for files
Parameter
c:filename as="xsd:string"
Which of the files to obtain
c:col(2) as="element(SimpleValue)?" (xsl:function)
Obtain a piece of information from a genericode column
Parameter
c:row as="element(Row)"
From this row.
Parameter
c:col as="xsd:string+"
At this column name.
c:newline as="xsd:string" (xsl:variable)
Declare a newline so that obfuscation is not affected
Starting with an input genericode file.
Create a suite of output files copying the input ODS file.
Parameter
c:baseDir as="xsd:string"
The base directory in the input ODS where the file is found.
Parameter
c:modelName as="xsd:string" required="yes"
The name of the model.
match="office:meta | office:master-styles | table:named-expressions | @table:print-ranges | dc:creator | dc:date" (xsl:template)
These ODS elements are not to be preserved.
match="table:table[$c:single-output]" priority="1" (xsl:template)
Accommodate an output table
c:do-a-table match="table:table" (xsl:template)
Accommodate an output table
Parameter
c:modelName tunnel="yes" as="xsd:string" required="yes"
The name of the model.
c:createRowFromBIE (xsl:template)
The current node is a genericode row, make a table row out of it
Parameter
c:tableRows as="element(table:table-row)*"
The raw rows from which a new row is created
Parameter
c:columnTitles as="xsd:string*"
The columns being included in the spreadsheet
match="table:table-row" mode="c:modifyContent" (xsl:template)
Modify the skeleton row with the content from the gcRow
Parameter
c:columnTitles as="xsd:string*"
The list of strings of column titles, in column order.
Parameter
c:gcRow as="element(Row)"
The genericode row being output.
match="@table:formula" (xsl:template)
Massage a table formula based on the current row number.
Parameter
c:oldRowNumber as="xsd:integer" tunnel="yes"
The row being matched.
Parameter
c:newRowNumber as="xsd:integer" tunnel="yes"
The row being generated.
match="config:config-item-map-entry[$c:single-output]" (xsl:template)
Create as many map entries as there are tables.
match="config:config-item-map-entry/@config:name" (xsl:template)
Reflect the name of the table in the configuration
Parameter
c:modelName tunnel="yes" as="xsd:string" required="yes"
The name of the model.
match="config:config-item[@config:name='ActiveTable']/text()" (xsl:template)
Reflect the name of the table as active
Parameter
c:modelName tunnel="yes" as="xsd:string" required="yes"
The name of the model.
match="config:config-item-set [@config:name='ooo:configuration-settings']" (xsl:template)
Elide any personal content.
match="@*|node()" mode="#all" (xsl:template)
The identity template is used to copy all nodes not already being handled by other template rules.
c:shorten(1) as="xsd:string?" (xsl:function)
Apply, in order, regular expressions on a string.
Parameter
c:value as="xsd:string?"
The value to be massaged.
c:shorten(2) as="xsd:string?" (xsl:function)
Apply, in order, regular expressions on a string.
Parameter
c:value as="xsd:string?"
The value to be massaged.
Parameter
c:pass as="element(pass)?"
A pass of the conversion
Path: support/ndrSubset.xsl
Filename: ndrSubset.xsl
$Id: ndrSubset.xsl,v 1.35 2016/05/29 16:47:02 admin Exp $
This fragment deals with the concepts of subsetting a model
subset-result as="xsd:string" select="'no'" (xsl:param)
The user can request that subsetting be done for all models
subset-model-regex as="xsd:string?" (xsl:param)
The user can request which subsetting be done for some models
subset-column-name as="xsd:string?" (xsl:param)
The user can request that subsetting be done for some constructs
doc-column-names-regex as="xsd:string?" (xsl:param)
The user can request that certain columns be included in documentation
subset-absent-is-zero as="xsd:string" select="'no'" (xsl:param)
The user can request that an absent subset specification on an item with minimum cardinality of 0 shall be interpreted as both minimum and maximum values of cardinaltiy to be 0
subset-exclusions as="xsd:string" select="'yes'" (xsl:param)
The user can request that annotations regarding the subsetting be suppressed.
subset-include-type-elements as="xsd:string" select="'yes'" (xsl:param)
The user can request that elements for all types be included when creating a subset. In the BDNDR there is always an element for each type.
subset-include-ignored-types as="xsd:string" select="'yes'" (xsl:param)
The user can request that types that are never referenced are not included
gu:absentSubsetIsZero as="xsd:boolean" select="not(starts-with('no',lower-case($subset-absent-is-zero)))" (xsl:variable)
The user can request that an absent subset specification on an item with minimum cardinality of 0 shall be interpreted as both minimum and maximum values of cardinaltiy to be 0
gu:subsetExclusions as="xsd:boolean" select="starts-with('yes',lower-case($subset-exclusions))" (xsl:variable)
The user can request that an absent subset specification on an item with minimum cardinality of 0 shall be interpreted as both minimum and maximum values of cardinaltiy to be 0
gu:subsetIncludeTypeElements as="xsd:boolean" select="starts-with('yes',lower-case($subset-include-type-elements))" (xsl:variable)
The user can request that there not be an element declared arbitrarily for every type.
gu:subsetIncludeIgnoredTypes as="xsd:boolean" select="starts-with('yes',lower-case($subset-include-ignored-types))" (xsl:variable)
The user can request that types that are never referenced are not included
gu:subsetColumnName as="xsd:string?" select="translate(normalize-space($subset-column-name),' ','')" (xsl:variable)
The user can request that subsetting be done for some constructs
gu:gcColumnName match="Column" use="ShortName" (xsl:key)
Determining column long names
gu:subsetColumnNameDisplay as="xsd:string?" select="key('gu:gcColumnName',$gu:subsetColumnName)/LongName" (xsl:variable)
The user can request that subsetting be done for some constructs
gu:activeSubsetting as="xsd:boolean" select="string($subset-column-name) or string($subset-model-regex) or not(starts-with('no',lower-case($subset-result)))" (xsl:variable)
Determine if subsetting is being done or not.
gu:docColumns as="element(Column)*" (xsl:variable)
The user can request columns to be included as documentation
gu:isSubsetABIE(1) as="xsd:boolean" (xsl:function)
Determine if given ABIE is in the subset
Parameter
gu:askABIE as="element(Row)"
Which one is being checked
gu:isSubsetBIE(1) as="xsd:boolean" (xsl:function)
Determine if given non-ABIE BIE is in the subset
Parameter
gu:askBIE as="element(Row)"
Which one is being checked
gu:allBIEs as="element(Row)*" select="$gu:gc/*/SimpleCodeList/Row" (xsl:variable)
Determine all BIEs regardless of the choice of document models.
gu:allSubsetBIEs as="element(Row)*" select="($gu:subsetDocumentABIEs,$gu:subsetLibraryABIEs)/ key('gu:bie-by-abie-class',gu:col(.,'ObjectClass')) [not( gu:minMaxBothZero(.) )]" (xsl:variable)
Determine all BIEs from the choice of document models.
gu:allSubsetASBIEs as="element(Row)*" select="$gu:allSubsetBIEs[gu:col(.,'ComponentType')='ASBIE']" (xsl:variable)
Determine all ASBIEs from all of the BIEs.
gu:allSubsetBBIEs as="element(Row)*" select="$gu:allSubsetBIEs[gu:col(.,'ComponentType')='BBIE']" (xsl:variable)
Determine all BBIEs from all of the BIEs.
gu:absentSubsetASBIEs as="element(Row)*" select="$gu:allSubsetASBIEs [ for $gu:class in gu:col(.,'AssociatedObjectClass') return ( not( key('gu:abie-by-class',$gu:class) ) or ( every $gu:bie in key('gu:bie-by-abie-class',$gu:class) satisfies gu:minMaxBothZero( $gu:bie ) ) ) ]" (xsl:variable)
Determine all ASBIEs from all of the BIEs.
gu:allLibraryABIEs as="element(Row)*" (xsl:variable)
Determine which common library ABIEs are in the subset.
gu:subsetLibraryABIEs as="element(Row)*" (xsl:variable)
Determine which common library ABIEs are in the subset.
gu:determineSubsetABIEs(1) as="element(Row)*" (xsl:function)
Determine if a given ABIE is being used by a Document ABIE
Parameter
gu:determineSubsetDocumentABIEs as="element(Row)*"
The documents from which the ABIEs-in-use are found.
gu:searchABIEsinSubset(2) as="element(Row)*" (xsl:function)
Determine if a given ABIE is being used by a Document ABIE
Parameter
gu:foundRowsSoFar as="element(Row)*"
Which ABIEs are already found?
Parameter
gu:position
Where are we in the set of current ASBIEs
Parameter
gu:checkTheseABIEs as="element(Row)*"
The ABIE rows to check
gu:checkSubsetting (xsl:template)
Check subsetting properties and report any problems
The output is a series of error lines ending with a new-line.
gu:isAReferencedABIE(1) as="xsd:boolean" (xsl:function)
Return an indication that a given ABIE is in use as an ASBIE.
Parameter
gu:ABIE as="element(Row)"
The ABIE to check
gu:isADocumentABIE(1) as="xsd:boolean" (xsl:function)
Return an indication that a given ABIE is a document ABIE.
Parameter
gu:ABIE as="element(Row)"
The ABIE to check
gu:minMax(2) as="xsd:string" (xsl:function)
Determine the minimum or maximum occurrences from cardinality, with priority to the subset cardinality
Parameter
row as="element(Row)"
The genericode row of the BIE
Parameter
minimumFlag as="xsd:boolean"
Indication asking for the minimum cardinality
gu:minCard(1) as="xsd:string" (xsl:function)
Determine the minimum occurrences from cardinality, with priority to the subset cardinality
Parameter
row as="element(Row)"
The genericode row of the BIE
gu:maxCard(1) as="xsd:string" (xsl:function)
Determine the maximum occurrences from cardinality, with priority to the subset cardinality
Parameter
row as="element(Row)"
The genericode row of the BIE
gu:minMaxBothZero(1) as="xsd:boolean" (xsl:function)
Determine if both the minimum or maximum occurrences from cardinality are zero, with priority to the subset cardinality
Parameter
row as="element(Row)"
The genericode row of the BIE
gu:abie-by-name-or-model match="Row[gu:col(.,'ComponentType')='ABIE']" use="if( gu:col(.,'ModelName')=$gu:thisCommonLibraryModel ) then $gu:thisCommonLibraryModel else gu:col(.,$gu:names)" (xsl:key)
Index the genericode file for all ABIEs, using the common library model name as the lookup for common ABIEs, and using the ABIE name as the lookup for document ABIEs.
gu:bie-by-den match="Row" use="gu:col(.,'DictionaryEntryName')" (xsl:key)
Index the genericode file for all BIEs by DEN.
gu:bbie-by-name match="Row[gu:col(.,'ComponentType')='BBIE']" use="gu:col(.,$gu:names)" (xsl:key)
Index the genericode file for all BBIEs.
gu:abie-by-name match="Row[gu:col(.,'ComponentType')='ABIE']" use="gu:col(.,$gu:names)" (xsl:key)
Index the genericode file for all ABIEs.
gu:abie-by-class match="Row[gu:col(.,'ComponentType')='ABIE']" use="gu:col(.,'ObjectClass')" (xsl:key)
Index the genericode file for all ABIEs.
gu:bie-by-type match="Row" use="gu:col(.,'ComponentType')" (xsl:key)
Index the genericode file for all business information entities by type
gu:bie-by-data-type match="Row[gu:col(.,'DataType')]" use="gu:col(.,'DataType')" (xsl:key)
Keeping track of entities by their data type.
gu:bie-by-abie-position match="Row[gu:col(.,'ComponentType')!='ABIE']" use="preceding-sibling::Row[gu:col(.,'ComponentType')='ABIE'][1]/ gu:col(.,'ObjectClass')" (xsl:key)
Index the genericode file for all BIEs for a given ABIE by its position
gu:bie-by-abie-class match="Row[gu:col(.,'ComponentType')!='ABIE']" use="gu:col(.,'ObjectClass')" (xsl:key)
Index the genericode file for all BIEs for a given ABIE by its class
gu:bie-by-class-and-type match="Row" use="concat( gu:col(.,'ObjectClass'),' ', gu:col(.,$gu:names),' ', gu:col(.,'ComponentType'))" (xsl:key)
Keeping track of entities by their class and type.
gu:asbie-by-abie match="Row[gu:col(.,'ComponentType')='ASBIE']" use="preceding-sibling::Row[gu:col(.,'ComponentType')='ABIE'][1]/ gu:col(.,$gu:names)" (xsl:key)
Index the genericode file for all ASBIEs for a given ABIE
gu:asbie-by-abie-class match="Row[gu:col(.,'ComponentType')='ASBIE']" use="preceding-sibling::Row[gu:col(.,'ComponentType')='ABIE'][1]/ gu:col(.,'ObjectClass')" (xsl:key)
Index the genericode file for all ASBIEs for a given ABIE
gu:asbie-by-referred-abie match="Row[gu:col(.,'ComponentType')='ASBIE']" use="gu:col(.,'AssociatedObjectClass')" (xsl:key)
Index the genericode file for all ABIEs referenced by a given ASBIE
gu:bbie-by-data-type match="Row[gu:col(.,'ComponentType')='BBIE']" use="gu:col(.,'DataType')" (xsl:key)
Index the genericode file for all BBIEs by Data Type.
gu:allModelNames as="element(SimpleValue)*" (xsl:variable)
Summary list of documents names is found by the name of every ABIE that is not in the common library.
gu:allLibraryABIEnames as="element(SimpleValue)*" select="$gu:allLibraryABIEs/gu:col(.,$gu:names)" (xsl:variable)
Summary list of ABIEs in the library
gu:subsetLibraryABIEnames as="element(SimpleValue)*" select="$gu:subsetLibraryABIEs/gu:col(.,$gu:names)" (xsl:variable)
Summary list of ABIEs in the subset of the librarylibrary
Path: support/Crane-commonndr.xsl
Filename: Crane-commonndr.xsl
Include statement:
$Id: Crane-commonndr.xsl,v 1.35 2017/01/13 19:27:46 admin Exp $
This stylesheet includes the common bits between Crane's stylesheets acting on genericode files of CCTS entities.
Copyright (C) - Crane Softwrights Ltd. - http://www.CraneSoftwrights.com/links/res-dev.htm Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Note: for your reference, the above is the "Modified BSD license", this text was obtained 2003-07-26 at http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 THE AUTHOR MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS CODE FOR ANY PURPOSE.
The main input genericode file defines the business information entities of the schema fragments being generated. When generating the common fragments, this is the common genericode file definition. When generating an extension or additional document schema fragments, this is the genericode file definition for those fragments, and the common genericode file definition is supplied in an invocation argument.
The column names of the input genericode file serialization of the UBL NDR spreadsheets are assumed to include at a minimum the following:
ModelName
- the full model nameUBLName
or ComponentName
- the component nameComponentType
- ABIE, BBIE or ASBIECardinality
- 1, 0..1, 0..n or 1..nObjectClass
- ISO/IEC 11179 classification partAssociatedObjectClass
- ISO/IEC 11179 classification partDataType
- CCTS V2.01 qualified data type
The OASIS genericode specification is available at
http://docs.oasis-open.org/codelist/genericode/
.
An example serialization is found in the UBL 2.1 PRD2 distribution at
http://docs.oasis-open.org/ubl/prd2-UBL-2.1/mod/UBL-Entities-2.1.gc
.
base-config-uri select="()" as="xsd:anyURI?" (xsl:param)
This is the location of the common configuration file used to express where common components are found when creating extension or additional document schemas. No schema fragments are created for the artefacts described in this file, only the artefacts in the
config-uri=
file. It is assumed that the base output directory expressed by this configuration file is the same as that expressed by the main configuration file, such that common subdirectories can be matched.
config as="document-node()?" select="if( not($config-uri) ) then () else doc(resolve-uri($config-uri,base-uri(/)))" (xsl:param)
The model details; when using Saxon use +details=filename
config-uri as="xsd:string?" (xsl:param)
The filename of the main configuration file as a URI. A relative URI is resolved relative to the base URI of the input genericode file.
The configuration file describes all of the directories and files that are created or files that are needed by the files that are created. The file types are indicated using the
type=
attribute. The files that are created are:
CVA
- created context/value association file
- there are as many of these entries as CVA files need to be created
- each CVA file points to a skeleton CVA file in which
<Context>
elements have annotations that signal the modification of theaddress=
attribute with the union of all BBIE elements, by name, using the BBIE namespace prefix <Annotation> <AppInfo> <c:DataType>Measure. Type</c:DataType> </AppInfo> </Annotation>SABIE
- created supplemental library ABIE schema fileSBBIE
- created supplemental library BBIE schema fileXABIE
- created extension point ABIE schema fileAABIE
- created additional document ABIE schema fileCABIE
- created common library ABIE schema fileCBBIE
- created common library BBIE schema fileDABIE
- created document ABIE schema file
- there are as many of these
DABIE
entries as document schemas need to be created- when supplemental/extension/additional schema files are being created, and only one set of such schema files can be created in any given execution, the common schema files are not created
- when the element name is
<file>
, a single file is created with the given file name- when the element name is
<files>
, all document ABIE files are created using the name and namespace as a substitution pattern where "%n
" is replaced with the name of the document ABIE (not the model name)- note that the
<files>
directive will not create a file for a document ABIE for which there is a corresponding<file>
directiveThe files that are referenced are:
QDT
- referenced qualified data types fileUDT
- referenced unqualified data types fileDOC
- documentation namespace (no actual file)EXT
- referenced extension content file (optional)
- the child of this entry is an XSD reference to the extension point to be included in every document schema as the first child of the document element
The configuration file is organized by multiple directory parent elements that are used to calculate relative URI references for XSD import directives. There need not be any directory entries. The directory entry with the attribute
runtime-name=
triggers the recreation of the suite of contained files in the given alternative directory, but with XSD documentation constructs removed.All allowed abbreviations must be itemized as these are the portions of element names that do not satisfy the UpperCamelCase convention.
All allowed unqualified data types must be itemized to ensure nothing unsupported is asked for.
A common comment can be defined for all files for which a specific comment is not provided. This comment is placed at the start of the file created. There are a number of substitution variables available for this comment:
%%
- a single percent sign%f
- the output filename (with config path)%n
- the output ABIE name (no config path)%t
- the local time of file creation%z
- the UTC (Zulu) time of file creationThe example for a test file similar to the UBL project (but modified to illustrate distinctions between
<files>
and<file>
for documents) is as follows:<!DOCTYPE configuration [ <!ENTITY versionDisplay "2.1 OS"> <!ENTITY versionDirectory "os-UBL-2.1"> <!ENTITY versionDate "04 November 2013"> ]> <configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- This is the configuration of the base schema fragments for UBL 2.1 --> <ndr> <abbreviations> <abbreviation short="CV2">Card Verification Value</abbreviation> <abbreviation short="ID">Identifier</abbreviation> <abbreviation short="URI">Uniform Resource Identifier</abbreviation> <abbreviation short="UNDG">United Nations Development Group</abbreviation> <abbreviation short="UBL">Universal Business Language</abbreviation> <abbreviation short="UUID">Universally Unique Identifier</abbreviation> <abbreviation short="XPath">XML Path Language</abbreviation> </abbreviations> <equivalences> <equivalence> <primary-noun>URI</primary-noun> <representation-term>Identifier</representation-term> </equivalence> <equivalence> <primary-noun>UUID</primary-noun> <representation-term>Identifier</representation-term> </equivalence> </equivalences> <expected-maindoc-BIEs> <property-term type="BBIE" cardinality="0..1" order="1" >UBL Version Identifier</property-term> <property-term type="BBIE" cardinality="0..1" order="2" >Customization Identifier</property-term> <property-term type="BBIE" cardinality="0..1" order="3" >Profile Identifier</property-term> <property-term type="BBIE" cardinality="0..1" order="4" >Profile Execution Identifier</property-term> <property-term type="ASBIE" cardinality="0..n" >Signature</property-term> </expected-maindoc-BIEs> <types> <type>Amount</type> <type>Binary Object</type> <type>Code</type> <type>Date Time</type> <type>Date</type> <type>Graphic</type>t <type>Identifier</type> <type>Indicator</type> <type>Measure</type> <type>Name</type> <type>Numeric</type> <type>Percent</type> <type>Picture</type> <type>Quantity</type> <type>Rate</type> <type>Sound</type> <type>Text</type> <type>Time</type> <type>Value</type> <type>Video</type> </types> </ndr> <schema version="2.1"> <comment> Library: OASIS Universal Business Language (UBL) &versionDisplay; http://docs.oasis-open.org/ubl/&versionDirectory;/ Release Date: &versionDate; Module: %f Generated on: %z Copyright (c) OASIS Open 2013. All Rights Reserved. </comment> <copyright position="end"> OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification, can be obtained from the OASIS Executive Director. OASIS invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to implement this specification. Please address the information to the OASIS Executive Director. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. </copyright> <type-documentation> <ccts:Component xmlns:ccts="urn:un:unece:uncefact:documentation:2"> <ccts:ComponentType>ComponentType</ccts:ComponentType> <ccts:DictionaryEntryName>DictionaryEntryName</ccts:DictionaryEntryName> <ccts:Version>Version</ccts:Version> <ccts:Definition>Definition</ccts:Definition> <ccts:Cardinality>Cardinality</ccts:Cardinality> <ccts:ObjectClassQualifier>ObjectClassQualifier</ccts:ObjectClassQualifier> <ccts:ObjectClass>ObjectClass</ccts:ObjectClass> <ccts:PropertyTermQualifier>PropertyTermQualifier</ccts:PropertyTermQualifier> <ccts:PropertyTerm>PropertyTerm</ccts:PropertyTerm> <ccts:AssociatedObjectClass>AssociatedObjectClass</ccts:AssociatedObjectClass> <ccts:RepresentationTerm>RepresentationTerm</ccts:RepresentationTerm> <ccts:DataTypeQualifier>DataTypeQualifier</ccts:DataTypeQualifier> <ccts:DataType>DataType</ccts:DataType> <ccts:AlternativeBusinessTerms>AlternativeBusinessTerms</ccts:AlternativeBusinessTerms> <ccts:Examples>Examples</ccts:Examples> </ccts:Component> </type-documentation> <dir name="xsd" runtime-name="xsdrt"> <dir name="common"> <file type="CABIE" name="UBL-CommonAggregateComponents-2.1.xsd" prefix="cac" namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"/> <file type="CBBIE" name="UBL-CommonBasicComponents-2.1.xsd" prefix="cbc" namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"/> <file type="QDT" name="UBL-QualifiedDataTypes-2.1.xsd" prefix="qdt" namespace="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"/> <file type="UDT" name="UBL-UnqualifiedDataTypes-2.1.xsd" prefix="udt" namespace="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2"/> <file type="EXT" name="UBL-CommonExtensionComponents-2.1.xsd" prefix="ext" namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"> <elements> <xsd:element ref="ext:UBLExtensions" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation>A container for all extensions present in the document.</xsd:documentation> </xsd:annotation> </xsd:element> </elements> </file> </dir> <dir name="maindoc"> <files type="DABIE" name="UBL-%n-2.1.xsd" namespace="urn:oasis:names:specification:ubl:schema:xsd:%n-2"> <element-documentation>This element MUST be conveyed as the root element in any instance document based on this Schema expression</element-documentation> </files> </dir> </dir> </schema> </configuration>The example for a user-defined extension for UBL 2.1 is as follows for the committee's signature extension (note how there is no duplication needed for the copyright or other metadata to be reused from UBL 2.1):
<configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="2.1"> <dir name="xsd" runtime-name="xsdrt"> <dir name="common"> <file type="XABIE" name="UBL-CommonSignatureComponents-2.1.xsd" abie="UBLDocumentSignatures" namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"/> <file type="SABIE" name="UBL-SignatureAggregateComponents-2.1.xsd" prefix="sac" namespace="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2"> <imports> <!-- ===== Incorporate W3C signature specification--> <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="UBL-xmldsig-core-schema-2.1.xsd"/> <!-- ===== Incorporate ETSI signature specifications--> <xsd:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="UBL-XAdESv132-2.1.xsd"/> <xsd:import namespace="http://uri.etsi.org/01903/v1.4.1#" schemaLocation="UBL-XAdESv141-2.1.xsd"/> </imports> <elements xmlns:ds="http://www.w3.org/2000/09/xmldsig#" abie="SignatureInformation"> <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1"> <xsd:annotation> <xsd:documentation>This is a single digital signature as defined by the W3C specification.</xsd:documentation> </xsd:annotation> </xsd:element> </elements> </file> <file type="SBBIE" name="UBL-SignatureBasicComponents-2.1.xsd" prefix="sbc" namespace="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2"/> </dir> </dir> </configuration>The example for a user-defined additional document for UBL 2.1 is as follows for a fictional pair of Return Authorization documents:
<configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="2.1"> <!-- This is the configuration of an example of additional documents for UBL 2.1 --> <comment> Library: My library of Return Authorization documents Module: %f Generated on: %z </comment> <copyright position="end"> Test copyright </copyright> <dir name="cva"> <file type="CVA" name="MyRA-Qualifications.cva" skeleton-uri="UBL-2.1-CVA-Skeleton.cva"/> </dir> <dir name="xsd" runtime-name="xsdrt"> <dir name="mydoc"> <file type="SABIE" name="MyRAAggregateComponents.xsd" prefix="raa" namespace="urn:X-MyCompany:xsd:MyRARequestResponse:AggregateComponents"/> <file type="SBBIE" name="MyRABasicComponents.xsd" prefix="rab" namespace="urn:X-MyCompany:xsd:MyRARequestResponse:BasicComponents"/> <files type="AABIE" name="My%n.xsd" namespace="urn:X-MyCompany:xsd:My%n"/> </dir> </dir> </configuration>
gu:configMain as="document-node()?" select="$config" (xsl:variable)
This is the access to the "main" configuration file as a node tree.
gu:outputFiles as="element()*" (xsl:variable)
This is the access to the file specifications from the
gu:configOther as="document-node()?" select="if( $base-config-uri ) then for $u in resolve-uri( $base-config-uri, document-uri(/) ) return if( doc-available($u) ) then doc($u) else error( (),concat( 'Unable to open resolved base configuration file: ', $u ) ) else ()" (xsl:variable)
This is the access to the "other" configuration file as a node tree.
gu:config as="document-node()" (xsl:variable)
This is the access to the combination configuration file as a node tree.
gu:files match="file|files" use="@type" (xsl:key)
Index the files in the directory structure of the configuration file.
gu:otherCommonLibraryModel as="xsd:string?" select="gu:lookupCommonLibraryModel($gu:gcOther)" (xsl:variable)
Determine the library model from all models in the common genericode file for an extension/addition.
gu:allDocumentABIEs as="element(Row)*" (xsl:variable)
Summary set of all document ABIEs.
gu:allDocumentABIEnames as="element(SimpleValue)*" select="$gu:allDocumentABIEs/gu:col(.,$gu:names)" (xsl:variable)
Summary list of all document ABIE names.
gu:subsetDocumentABIEs as="element(Row)*" select="$gu:allDocumentABIEs [ if( not( $subset-model-regex ) ) then true() else matches(gu:col(.,'ModelName'),$subset-model-regex) ]" (xsl:variable)
Summary set of all document ABIEs.
gu:subsetDocumentABIEmodelNames as="element(SimpleValue)*" select="$gu:subsetDocumentABIEs/gu:col(.,'ModelName')" (xsl:variable)
Summary list of document model names is found by the name of every ABIE that is not in the common library.
gu:subsetDocumentABIEclasses as="element(SimpleValue)*" select="$gu:subsetDocumentABIEs/gu:col(.,'ObjectClass')" (xsl:variable)
Summary list of documents classes is found by the name of every ABIE that is not in the common library.
gu:cbbiePrefixColon as="xsd:string" select="concat(key('gu:files','CBBIE',$gu:config)/@prefix,':')" (xsl:variable)
Handy prefix definition so as not to keep looking it up.
gu:cabiePrefixColon as="xsd:string" select="concat(key('gu:files','CABIE',$gu:config)/@prefix,':')" (xsl:variable)
Handy prefix definition so as not to keep looking it up.
gu:sbbiePrefixColon as="xsd:string" select="concat(key('gu:files','SBBIE',$gu:config)/@prefix,':')" (xsl:variable)
Handy prefix definition so as not to keep looking it up.
gu:sabiePrefixColon as="xsd:string" select="concat(key('gu:files','SABIE',$gu:config)/@prefix,':')" (xsl:variable)
Handy prefix definition so as not to keep looking it up.
gu:substituteFields(2) as="xsd:string" (xsl:function)
Substitute key replacement strings in a given string
Parameter
name as="xsd:string"
That value to use to substitute for the ABIE name value
Parameter
string as="xsd:string"
The string in which are found the substitution requests.
gu:reportElement(1) as="xsd:string" (xsl:function)
Report a start tag for error messages.
Parameter
this as="element()"
The element being reported
Path: support/Crane-utilndr.xsl
Filename: Crane-utilndr.xsl
$Id: Crane-utilndr.xsl,v 1.11 2017/01/13 19:27:38 admin Exp $
This stylesheet includes the utility functions for Crane's stylesheets acting on genericode files of CCTS entities.
Copyright (C) - Crane Softwrights Ltd. - http://www.CraneSoftwrights.com/links/res-dev.htm Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Note: for your reference, the above is the "Modified BSD license", this text was obtained 2003-07-26 at http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 THE AUTHOR MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS CODE FOR ANY PURPOSE.
common-library-singleton-model-name as="xsd:string?" select="()" (xsl:param)
Use this parameter to identify the common library model name only when the common library consists of only a single ABIE. If the common library contains more than one ABIE then it will be automatically detected. Note that there cannot be more than one common library, that is, a model with more than one ABIE.
gu:gc as="document-node()" select="/" (xsl:variable)
This is the access to the genericode input file as a node tree.
base-gc-uri as="xsd:anyURI?" select="()" (xsl:param)
When generating an extension or additional document schema fragments, this must be specified to supply the common genericode file definition, since the input genericode file definition is for the generating schema fragment.
gu:gcOther as="document-node()?" select="if( $base-gc-uri ) then for $u in resolve-uri( $base-gc-uri, document-uri(/) ) return if( doc-available($u) ) then doc($u)[gc:CodeList] else error( (),concat( 'Unable to open resolved base genericode file: ', $u ) ) else ()" (xsl:variable)
This is the access to the genericode common file.
gu:names as="xsd:string+" select="('UBLName','ComponentName','Name')" (xsl:variable)
Handy reference to a sequence of possible spreadsheet column names. Although the UBL project uses "UBLName", another project may choose to use "ComponentName" or "Name" as the corresponding column name.
gu:thisCommonLibraryModel as="xsd:string?" (xsl:variable)
Determine the library model from all models in a genericode file.
gu:lookupCommonLibraryModel(1) as="xsd:string?" (xsl:function)
Determine the one model that has more than one ABIE and assume that is the common library, since document models are allowed only to have a single ABIE. If the given genericode file has
Parameter
gc as="document-node()?"
Which genericode file is being looked in?
gu:col(2) as="element(SimpleValue)?" (xsl:function)
Return a row's column value based on a column reference
Parameter
row as="element(Row)"
The row of the genericode file.
Parameter
col as="xsd:string*"
The column reference of the value in the row. Note that multiple column references are allowed, but only one of the column references is allowed to match. If the row matches more than one column name given, this will abend in a runtime error.
gu:comp(1) as="xsd:string?" (xsl:function)
Return a compressed value from a string
Parameter
item as="item()?"
The value to be compressed.
gu:colcomp(2) as="xsd:string?" (xsl:function)
Return a compressed value from a column
Parameter
row as="element(Row)"
The row of the genericode file.
Parameter
col as="xsd:string+"
The column reference of the value in the row. Note that multiple column references are allowed, but only one of the column references is allowed to match. If the row matches more than one column name given, this will abend in a runtime error.
gu:abie-by-class
(Subset logic for schema generation - ndrSubset.xsl
)gu:abie-by-name
(Subset logic for schema generation - ndrSubset.xsl
)gu:abie-by-name-or-model
(Subset logic for schema generation - ndrSubset.xsl
)gu:absentSubsetASBIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:absentSubsetIsZero
(Subset logic for schema generation - ndrSubset.xsl
)gu:activeSubsetting
(Subset logic for schema generation - ndrSubset.xsl
)gu:allBIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:allDocumentABIEnames
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:allDocumentABIEs
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:allLibraryABIEnames
(Subset logic for schema generation - ndrSubset.xsl
)gu:allLibraryABIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:allModelNames
(Subset logic for schema generation - ndrSubset.xsl
)gu:allSubsetASBIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:allSubsetBBIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:allSubsetBIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:asbie-by-abie
(Subset logic for schema generation - ndrSubset.xsl
)gu:asbie-by-abie-class
(Subset logic for schema generation - ndrSubset.xsl
)gu:asbie-by-referred-abie
(Subset logic for schema generation - ndrSubset.xsl
)base-config-uri
(Invocation parameters - Crane-commonndr.xsl
)base-gc-uri
(Utility components to Crane's GC work - Crane-utilndr.xsl
)gu:bbie-by-data-type
(Subset logic for schema generation - ndrSubset.xsl
)gu:bbie-by-name
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-abie-class
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-abie-position
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-class-and-type
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-data-type
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-den
(Subset logic for schema generation - ndrSubset.xsl
)gu:bie-by-type
(Subset logic for schema generation - ndrSubset.xsl
)gu:cabiePrefixColon
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:cbbiePrefixColon
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:checkSubsetting
(Subset logic for schema generation - ndrSubset.xsl
)c:col(2)
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)gu:col(2)
(Utility templates and functions - Crane-utilndr.xsl
)gu:colcomp(2)
(Utility templates and functions - Crane-utilndr.xsl
)common-first
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:common-first
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)common-library-singleton-model-name
(Utility components to Crane's GC work - Crane-utilndr.xsl
)common-name-regex
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)gu:comp(1)
(Utility templates and functions - Crane-utilndr.xsl
)config
(Invocation parameters - Crane-commonndr.xsl
)gu:config
(Global variables and lookup tables - Crane-commonndr.xsl
)config-uri
(Invocation parameters - Crane-commonndr.xsl
)gu:configMain
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:configOther
(Global variables and lookup tables - Crane-commonndr.xsl
)c:createRowFromBIE
(Pruning and changing ODS content - Crane-gc2odsxml.xsl
)c:ods-uri(3)
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)old-cardinality-column-name
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)gu:otherCommonLibraryModel
(Global variables and lookup tables - Crane-commonndr.xsl
)c:outputFiles
(Emitting spreadsheet XML from genericode content - Crane-gc2odsxml.xsl
)gu:outputFiles
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:sabiePrefixColon
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:sbbiePrefixColon
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:searchABIEsinSubset(2)
(Subset logic for schema generation - ndrSubset.xsl
)c:shorten(1)
(Utility - Crane-gc2odsxml.xsl
)c:shorten(2)
(Utility - Crane-gc2odsxml.xsl
)c:shorten-model-name-file
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)shorten-model-name-uri
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)single-output
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)c:single-output
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)skeleton-ods-uri
(UBL Genericode to Open Document Spreadsheet XML - Crane-gc2odsxml.xsl
)subset-absent-is-zero
(Subset logic for schema generation - ndrSubset.xsl
)subset-column-name
(Subset logic for schema generation - ndrSubset.xsl
)subset-exclusions
(Subset logic for schema generation - ndrSubset.xsl
)subset-include-ignored-types
(Subset logic for schema generation - ndrSubset.xsl
)subset-include-type-elements
(Subset logic for schema generation - ndrSubset.xsl
)subset-model-regex
(Subset logic for schema generation - ndrSubset.xsl
)subset-result
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetColumnName
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetColumnNameDisplay
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetDocumentABIEclasses
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:subsetDocumentABIEmodelNames
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:subsetDocumentABIEs
(Global variables and lookup tables - Crane-commonndr.xsl
)gu:subsetExclusions
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetIncludeIgnoredTypes
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetIncludeTypeElements
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetLibraryABIEnames
(Subset logic for schema generation - ndrSubset.xsl
)gu:subsetLibraryABIEs
(Subset logic for schema generation - ndrSubset.xsl
)gu:substituteFields(2)
(Utility templates and functions - Crane-commonndr.xsl
)