
Hi Florent, The xml-model spec says: *** href Specifies the location of the referenced schema. Documents must specify this pseudo-attribute. Documents must set the *value* to a string that matches the grammar for <IRI-reference> given in RFC 3987 [RFC3987]. *** and *value* above points to http://www.w3.org/XML/2009/12/xml-stylesheet/#dt-value *** [Definition: The string matched by PseudoAttValue in the PseudoAtt production — after any CharRefs and PredefEntityRefs are replaced with the characters they represent — constitutes the value of the corresponding pseudo-attribute.] Each CharRef in PseudoAttValue is replaced with the character it represents according to XML. [XML] Each PredefEntityRef in PseudoAttValue is replaced with with U+0026 (&) if it is "&", U+003C (<) if it is "<", U+003E (>) if it is ">", U+0022 (") if it is """ and U+0027 (') if it is "'". *** which defines the value as a string matching the PseudoAttValue production that is further processed to replace some entity references with characters. The important thing is the PseudoAttValue production that the string needs to match, and that does not allow & directly, only as part of an entity reference: [3] PseudoAttValue ::= ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | "'" ([^'<&] | CharRef | PredefEntityRef)* "'") Please let me know if you still think that & should be allowed. Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com On 6/20/11 2:50 PM, Florent Georges wrote:
Radu Coravu wrote:
Hi,
Actually the specs state that the pseudo-attributes for the xml-model must have the "&" escaped to"&". Here is a page linked from the xml-model specs:
What I understand from there is that PredefEntityRef must be analyzed as such (and thus decoded) but the characters they represent do not have to be be escaped. That is: "a&b" must be parsed as "a&b", but you can also have "a&b" directly in the PI's data.
But I might have missed something, of course.
Regards,