You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by ig...@apache.org on 2003/09/06 03:15:14 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java
igorh 2003/09/05 18:15:14
Modified: java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM2.java
Log:
Patch for Bugzilla Bug 22808
Revision Changes Path
1.6 +39 -5 xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java
Index: SAX2DTM2.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/SAX2DTM2.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SAX2DTM2.java 23 Jun 2003 15:23:41 -0000 1.5
+++ SAX2DTM2.java 6 Sep 2003 01:15:13 -0000 1.6
@@ -3236,13 +3236,15 @@
if (uri.length() == 0) {
handler.startElement(name);
- return name;
+ copyNS(nodeID,handler);
+ return name;
}
else {
int qnameIndex = m_dataOrQName.elementAt(nodeID);
if (qnameIndex == 0) {
handler.startElement(name);
+ copyNS(nodeID,handler);
handler.namespaceAfterStartElement(EMPTY_STR, uri);
return name;
}
@@ -3254,7 +3256,6 @@
String qName = m_valuesOrPrefixes.indexToString(qnameIndex);
handler.startElement(qName);
-
int prefixIndex = qName.indexOf(':');
String prefix;
if (prefixIndex > 0) {
@@ -3263,10 +3264,43 @@
else {
prefix = null;
}
-
+ copyNS(nodeID,handler);
handler.namespaceAfterStartElement(prefix, uri);
- return qName;
- }
+ return qName;
+ }
+
+ }
+
+ /**
+ * Copy namespace nodes.
+ *
+ * @param nodeID The Element node identity
+ * @param handler The SerializationHandler
+ */
+
+ public void copyNS(final int nodeID, SerializationHandler handler)
+ throws SAXException
+ {
+ int current = nodeID;
+ try{
+ while (true)
+ {
+ current++;
+ int eType = _exptype2(current);
+ int type = _exptype2Type(eType);
+
+ if (type == DTM.ATTRIBUTE_NODE) {
+ continue;
+ }
+ else if (type == DTM.NAMESPACE_NODE) {
+ handler.namespaceAfterStartElement(getNodeNameX(makeNodeHandle(current)), getNodeValue(makeNodeHandle(current)));
+ }
+ else
+ break;
+ }
+ }catch (Exception e) {
+ throw new SAXException(e);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org