C14N 2.0 parameter groups

Related to ACTION-655 Start email thread on which parameters to be treated as group

There are too many C14N 2.0 parameters. And  some combinations do not make sense

1. ExclusiveMode  and XmlAncestors
If ExclusiveMode=true, it doesn't make sense to have XmlAncestors=inherit, because that will defeat the ability of the canonicalized xml snippet to be moved into another context.

2. ExclusiveMode and InclusiveNamespace
The InclusiveNamespace List should obviously be empty if ExclusiveMode=false.  Essentially the  InclusiveNamespace list lets you do a mix of Inclusive and Exclusive, if you list no namepaces then it is all exclusive, and if all are listed then it is all inclusive. 

3. ExclusiveMode, PrefixRewrite and QNameAware
PrefixRewrite=none and ExclusiveMode=false  then QNameAware is not used at all.

Also does it make sense to do PrefixRewriting in inclusive mode at all? Although it is possible to do so, the intent of using inclusiveNamespace mode is to preserve all the namespaces even though they are not used, just in case they may be used.  



These parameters are not very important. Maybe we could mark them  "optional". But really need to define what an optional parameter means

A. IgnoreComments  - I have never come across any real world use case which wanted to sign with comments. So we can say that being able to ignore comments is mandatory, including them is optional.

B. Serialization - We added this options only for EXI, or for other kinds of binary serialization. So obviously it is optional for regular XML.

C. SortAttributes - This was added very early on, as a suggestion from Brian. Brian had mentioned that in some environment the order of the attributes is not changed during transport. So in this case Sorting of attributes is not necessary. Note in general DOM does not guarantee preserving attribute order, and most parsers are DOM based, so it is not useful for them.

Pratik

Received on Monday, 11 October 2010 18:35:40 UTC