System properties

The p:system-property() function seems to look a lot like the
system-property() function of XSLT 1.0. However, once thing I've always
missed in it, and was fortunately added in XSLT 2.0 was xsl:product-name. I
believe XProc should learn from the things that were added then and use them
from version 1.0. Meaning to add the following system properties:

*	p:product-name, a string containing the name of the implementation,
as defined by the implementer. This should normally remain constant from one
release of the product to the next. It should also be constant across
platforms in cases where the same source code is used to produce compatible
products for multiple execution platforms.
*	p:product-version, a string identifying the version of the
implementation, as defined by the implementer. This should normally vary
from one release of the product to the next, and at the discretion of the
implementer it may also vary across different execution platforms.

 

Existing system properties also need some clarifications. To be more
precise:

 

p:episode 

Returns a string which should be unique for each invocation of the pipeline
processor.

What is the format of the string? Implementation defined or are there some
constrains? The XSLT 2.0 specification for example specifies the format of
generate-id() as

The unique identifier must consist of ASCII alphanumeric characters and must
start with an alphabetic character. Thus, the string is syntactically an XML
name.

p:version 

Returns the version of XProc implemented by the processor; for processors
implementing the version of XProc specified by this document, the number is
"1.0"

While this seems pretty much clear, it should be added (quote from the XSLT
2.0 spec again):

The value will always be a string in the lexical space of the decimal data
type defined in XML Schema (see [XML Schema Part
<http://www.w3.org/TR/xslt20/#xmlschema-2>  2]). This allows the value to be
converted to a number for the purpose of magnitude comparisons.

 

I also suggest a new property called p:platform or something like that which
would return a string containing different information about the environment
the XProc implementation is running on. The exact content should be
implementation defined for security/privacy reasons. A very typical use case
would be implementation that has several language bindings. In this case,
this string could contain the name of the language to which the
implementation is bind to. It could also show OS, available RAM and CPU and
other cheesy stuff. Most of what would be really useful for this property
(and also what is most likely to be implemented) could also be used in
p:product-version though, so I don't feel very strong about it.

 

Regards,

Vasil Rangelov

Received on Tuesday, 26 June 2007 22:28:38 UTC