I see, XMLdsig may handle the case correctly, because attribute not declared is regarded as CDATA. Example below contains attribute not declared. ----- Original Message ----- From: Jesse Pelton To: security-dev@xml.apache.org Sent: Thursday, October 16, 2008 9:54 PM Subject: RE: Attribute normalization !!
According to section 3.3.1, "XML attribute types are of three kinds: a string type, a set of tokenized types, and enumerated types," and string types are CDATA. In addition, section 3.3.3 says, "All attributes for which no declaration has been read SHOULD be treated by a non-validating processor as if declared CDATA." If you have declared your attribute to be one of the tokenized types or an enumerated type, normalization should collapse whitespace, and the behavior you describe sounds like a bug. Otherwise, normalization should not collapse whitespace. ------------------------------------------------------------------------------ From: Ling Xiaohan [mailto:[EMAIL PROTECTED] Sent: Thursday, October 16, 2008 1:35 AM To: security-dev@xml.apache.org Subject: Attribute normalization !! Hi, I am using apache XMLdsig(1.4.2) to canonicalize XML file. The W3C Recommendation "Canonical XML" said that "Attribute values are normalized, as if by a validating processor". And paragraph 3.3.3 Attribute-Value Normalization of XML1.1 Recommendation said that "If the attribute type is not CDATA, then the XML processor MUST further process the normalized attribute value by discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters by a single space (#x20) character". When inputing a XML segment containing an attribute (normal, not specified CDATA) like ... <a attr=" abc abc "> ... the canonicalized output is still ... <a attr=" abc abc "> ... where leading and trailing spaces were not removed and sequences of space between value "abc"s were not replaced with a single space. Could anyone tell me why? Thank you very much. ______________________________________________________________________________________________ nolen