vgritsenko 02/01/25 18:18:16
Modified: src/java/org/apache/cocoon/serialization
AbstractTextSerializer.java
Log:
Patch xmlns:xml issue reported by Felix Knecht [mailto:[EMAIL PROTECTED]]
Revision Changes Path
1.4 +21 -20
xml-cocoon2/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java
Index: AbstractTextSerializer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/serialization/AbstractTextSerializer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractTextSerializer.java 10 Jan 2002 12:08:28 -0000 1.3
+++ AbstractTextSerializer.java 26 Jan 2002 02:18:16 -0000 1.4
@@ -43,7 +43,7 @@
* (Apache Software Foundation, Exoffice Technologies)
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Sylvain Wallez</a>
- * @version CVS $Revision: 1.3 $ $Date: 2002/01/10 12:08:28 $
+ * @version CVS $Revision: 1.4 $ $Date: 2002/01/26 02:18:16 $
*/
public abstract class AbstractTextSerializer
extends AbstractSerializer
@@ -315,8 +315,7 @@
*/
private boolean hasMappings = false;
- public void startDocument()
- throws SAXException {
+ public void startDocument() throws SAXException {
// Cleanup
this.uriToPrefixMap.clear();
this.prefixToUriMap.clear();
@@ -331,20 +330,22 @@
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
// Store the mappings to reconstitute xmlns:attributes
- this.hasMappings = true;
- this.prefixList.add(prefix);
- this.uriList.add(uri);
-
- // append the prefix colon now, in order to save concatenations later,
but
- // only for non-empty prefixes.
- if(prefix.length() > 0) {
- this.uriToPrefixMap.put(uri, prefix + ":");
- } else {
- this.uriToPrefixMap.put(uri, prefix);
- }
-
- this.prefixToUriMap.put(prefix, uri);
+ // except prefixes starting with "xml": these are reserved
+ if (!prefix.startsWith("xml")) {
+ this.hasMappings = true;
+ this.prefixList.add(prefix);
+ this.uriList.add(uri);
+
+ // append the prefix colon now, in order to save concatenations
later, but
+ // only for non-empty prefixes.
+ if(prefix.length() > 0) {
+ this.uriToPrefixMap.put(uri, prefix + ":");
+ } else {
+ this.uriToPrefixMap.put(uri, prefix);
+ }
+ this.prefixToUriMap.put(prefix, uri);
+ }
super.startPrefixMapping(prefix, uri);
}
@@ -358,7 +359,7 @@
throws SAXException {
// try to restore the qName. The map already contains the colon
- if (null != eltUri && eltUri.length() != 0 &&
this.uriToPrefixMap.containsKey(eltUri) )
+ if (null != eltUri && eltUri.length() != 0 &&
this.uriToPrefixMap.containsKey(eltUri))
eltQName = (String) this.uriToPrefixMap.get(eltUri) + eltLocalName;
if (this.hasMappings) {
@@ -379,15 +380,15 @@
// Search for the corresponding xmlns* attribute
boolean found = false;
- find : for (int attr = 0; attr < attrCount; attr++) {
+ for (int attr = 0; attr < attrCount; attr++) {
if (qName.equals(attrs.getQName(attr))) {
// Check if mapping and attribute URI match
if (! uri.equals(attrs.getValue(attr))) {
- getLogger().error("AbstractTextSerializer:URI in
prefix mapping and attribute do not match : '" + uri + "' - '" + attrs.getURI(attr) +
"'");
+ getLogger().error("URI in prefix mapping and
attribute do not match : '" + uri + "' - '" + attrs.getURI(attr) + "'");
throw new SAXException("URI in prefix mapping and
attribute do not match");
}
found = true;
- break find;
+ break;
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]