- From: Joseph M. Reagle Jr. <reagle@w3.org>
- Date: Mon, 16 Jul 2001 14:06:04 -0400
- To: merlin <merlin@baltimore.ie>
- Cc: "Gregor Karlinger" <gregor.karlinger@iaik.at>, "Donald Eastlake" <lde008@dma.isg.mot.com>, w3c-ietf-xmldsig@w3.org
At 06:11 7/12/2001, merlin wrote: >It is not clear to me whether a schema-validated document is >required to expose both the initial value (i.e., post-DTD) >and the schema-normalized value, or whether it can expose just >the schema-normalized value. But schema validation may >introduce a set of normalization problems with signed docs. I wanted to draft some text on this issue, but backed off and only included [1]: >Transforms can include operations such as canonicalization, >encoding/decoding (including compression/inflation), XSLT, XPath, /+XML >Schema validation, or XInclude.+/ [1] http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html#sec-o-Reference $Revision: 1.94 $ on $Date: 2001/07/16 17:28:08 $ I thought I'd include two small sections (a paragraph each) in section 6.6 for XML Schema and XInclude, but then I wondered if we needed to parametize them -- also we recommend all the transforms in this section, and I would consider these optional. Presently, XML Signature doesn't really look at the XML itself for direction, but only at the series of Transforms. But the way I conceived of XML Schema and XInclude is that's a directive to actually process the document based on internal info. In XInclude's cases, that's essential as it'd be very difficult to parameterize how to do the XIncludes outside of the document. But in schema's case, should the Transforms be able to specify the schema used to validate it? What happens if there's a local schema and a parameterized schema specified? <Signature> ... <!-- Over Foo --> <Transform Algorithm="&schema;"> <schema>...</schema> __ <Foo Id="MyFirstFoo" xmlns="http://www.w3.org/2000/09/foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2000/09/foo foo-schema.xsd"> We could continue to leave this up to the application to figure out and not do anything. Or we could try to clarify our model a bit. My preference is to keep it simple and not have these be parametrized, but this also begs the question with respect to XSLT whereby we can instantiate an in-line schema (content of the transform element) but can't invoke one that might be rather large (and easier to identify with a URI -- which one should sign for security) nor do we have a way to process the XSLTs within the document isetlf (e.g., [2]). [2] http://www.w3.org/TR/xslt#result-element-stylesheet Consequently, I'd propose that 1. the following algorithm URIs actually invoke that application on the document itself: http://www.w3.org/TR/1999/REC-xslt-19991116 http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/ http://www.w3.org/TR/2001/WD-xinclude-20010516 2. If you want to parametarize, include another transform with the parameter. 3. ?(We specify a <Transform URI="foo" Location="bar"/> that can identify the location of the schema, XSLT, or whatnot)? [I hesitate because this seems like a substantive addition.] So, in the following example: <Signature> ... <Transform Algorithm="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/"> <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"/> <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"/> <xsl:stylesheet ...></xsl:stylesheet> <Transform Algorithm="http://www.w3.org/TR/2001/WD-xinclude-20010516"/> ... One validates the schema according to any declarations within the document; then applies XSLT to any declarations in the document; then XSLT using the signature-inline stylesheet, then expand all XIncludes. -- Joseph Reagle Jr. http://www.w3.org/People/Reagle/ W3C Policy Analyst mailto:reagle@w3.org IETF/W3C XML-Signature Co-Chair http://www.w3.org/Signature W3C XML Encryption Chair http://www.w3.org/Encryption/2001/
Received on Monday, 16 July 2001 14:06:14 UTC