I
Ivan Shmakov
I wonder, are there any generic XML-based formats to express:
• time spans (RFC 3339-based, preferrably);
• message digests (SHA-1, SHA-2, etc.) computed over “chunks†of
binary data;
• the results of the Unix stat(3) system call [1];
• XML transformation “modules†and their respective
interdependencies; (this feels somewhat related to XProc [2],
but not quite.)
Like, for example:
<some:container>
<xt:timespan>
<xt:begin>2010-04-29T17:59:18+00:00</xt:begin>
<some:element />
<xt:end>2010-04-29T18:00:32+00:00</xt:end>
</xt:timespan>
</some:container>
<some:container>
<xc:chunkset>
<xc:chunk offset="0" length="4096">
<xc:digest>
<!-- borrowed from http://www.w3.org/TR/xmldsig-core/ -->
<xc
igestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<xc
igestValue
</xc:chunk>
<!-- … -->
<xc:chunk offset="61440" length="4096">
<!-- … -->
</xc:chunk>
</xc:chunkset>
</some:container>
<some:container>
<xs:stat>
<xs:device>0xfe02</xs:device>
<xs:inode>1261572</xs:inode>
<xs:links>3</xs:links>
<xs:type>directory</xs:type>
<xs:size>4096</xs:size>
<xs:atime>2010-04-29T18:15:45+00:00</xs:atime>
<xs:ctime>2010-04-28T04:11:19+00:00</xs:ctime>
<xs:mtime>2010-04-28T04:11:19+00:00</xs:mtime>
<xs:uid>1000</xs:uid>
<xs:gid>1000</xs:gid>
<xs:mode>0755</xs:mode>
</xs:stat>
</some:container>
<some:container>
<xm:module
uri="http://example.invalid/make-toc.xsl">
<xm:depends>
<!-- doesn't have a ToC already -->
<xm:condition test="not (/descendant:
id = 'toc')" />
<!-- has at least 3 sections -->
<xm:condition test="/descendant::xhtml:h2 [position = 3]" />
</xm:depends>
<xm:may-provide>
<xm:identifier>toc</xm:identifier>
</xm:may-provide>
</xm:module>
</some:container>
[1] http://www.opengroup.org/onlinepubs/000095399/functions/stat.html
[2] http://www.w3.org/TR/xproc/
• time spans (RFC 3339-based, preferrably);
• message digests (SHA-1, SHA-2, etc.) computed over “chunks†of
binary data;
• the results of the Unix stat(3) system call [1];
• XML transformation “modules†and their respective
interdependencies; (this feels somewhat related to XProc [2],
but not quite.)
Like, for example:
<some:container>
<xt:timespan>
<xt:begin>2010-04-29T17:59:18+00:00</xt:begin>
<some:element />
<xt:end>2010-04-29T18:00:32+00:00</xt:end>
</xt:timespan>
</some:container>
<some:container>
<xc:chunkset>
<xc:chunk offset="0" length="4096">
<xc:digest>
<!-- borrowed from http://www.w3.org/TR/xmldsig-core/ -->
<xc
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<xc
</xc:digest>>VweSIbNEl2P2r6lm+OL7hVJTwt8=</xc:digestvalue>
</xc:chunk>
<!-- … -->
<xc:chunk offset="61440" length="4096">
<!-- … -->
</xc:chunk>
</xc:chunkset>
</some:container>
<some:container>
<xs:stat>
<xs:device>0xfe02</xs:device>
<xs:inode>1261572</xs:inode>
<xs:links>3</xs:links>
<xs:type>directory</xs:type>
<xs:size>4096</xs:size>
<xs:atime>2010-04-29T18:15:45+00:00</xs:atime>
<xs:ctime>2010-04-28T04:11:19+00:00</xs:ctime>
<xs:mtime>2010-04-28T04:11:19+00:00</xs:mtime>
<xs:uid>1000</xs:uid>
<xs:gid>1000</xs:gid>
<xs:mode>0755</xs:mode>
</xs:stat>
</some:container>
<some:container>
<xm:module
uri="http://example.invalid/make-toc.xsl">
<xm:depends>
<!-- doesn't have a ToC already -->
<xm:condition test="not (/descendant:
<!-- has at least 3 sections -->
<xm:condition test="/descendant::xhtml:h2 [position = 3]" />
</xm:depends>
<xm:may-provide>
<xm:identifier>toc</xm:identifier>
</xm:may-provide>
</xm:module>
</some:container>
[1] http://www.opengroup.org/onlinepubs/000095399/functions/stat.html
[2] http://www.w3.org/TR/xproc/