serialization and xml wrapping

Dear All,

I'm confused about the rules for augmenting/wrapping/parsing decrypted XML
in XML Encryption and Decryption Transform. Given the example from [1]:

<!DOCTYPE Document [
  <!ENTITY dsig "">
<Document xmlns="">
  <foo:Body xmlns:foo="">
    <EncryptedData xmlns=""

Where the EncryptedData element decrypts to:


The text gives the following as the correct result:

<!DOCTYPE dummy [
  <!ENTITY dsig "">
<dummy xmlns=""

However, [2] indicates that <Foo/> parsed in the context of:

<Bar xmlns=""/>

Should be augmented to produce:

<Bar xmlns=""><Foo xmlns="" /></Bar>

Wouldn't this mean that the example from [1] should give the result as:

<!DOCTYPE dummy [
  <!ENTITY dsig "">
<dummy xmlns=""

But this doesn't make sense to me, since the point of giving the parsing
context to the dummy element is to make sure that inherited namespaces *are*
transmitted to the wrapped XML.

Further: [3] indicates, for Step 2 of  decryptXML(N, E), that: "A namespace
declaration xmlns="" MUST be emitted with every apex element that has no
namespace prefix and URI as described in Serializing XML [XML-Encryption,
section 4.3.3]". Firstly, we're talking about the apex elements in a
node-set, which might include namespace nodes for the default namespace
inherited from the dummy element in prior wrapping/parsing -- this means
that an element without a namespace prefix is not necessarily without a
namespace, and emitting xmlns="" would conflict with emission of the
namespace node in the node-set.

What am I missing?

Ari Kermaier


Received on Friday, 20 September 2002 16:47:10 UTC