You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2006/09/30 22:22:37 UTC
svn commit: r451659 - in
/xerces/java/branches/stax-dev/src/org/apache/xerces/stax:
AsyncSAXParser.java SAXXMLStreamReaderImpl.java StAXSAXHandler.java
Author: mrglavas
Date: Sat Sep 30 13:22:37 2006
New Revision: 451659
URL: http://svn.apache.org/viewvc?view=rev&rev=451659
Log:
Various improvements to element name handling.
Modified:
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/AsyncSAXParser.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/SAXXMLStreamReaderImpl.java
xerces/java/branches/stax-dev/src/org/apache/xerces/stax/StAXSAXHandler.java
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/AsyncSAXParser.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/AsyncSAXParser.java?view=diff&rev=451659&r1=451658&r2=451659
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/AsyncSAXParser.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/AsyncSAXParser.java Sat Sep 30 13:22:37 2006
@@ -17,6 +17,7 @@
package org.apache.xerces.stax;
+import org.apache.xerces.xni.QName;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
@@ -43,15 +44,13 @@
private Attributes attrs;
// The current element name
- private String eleName;
- private String uri;
+ private final QName elementName = new QName();
Exception ex = null;
public AsyncSAXParser(XMLReader xr, InputSource is) {
this.xr = xr;
this.is = is;
-
this.runningFlag = false;
}
@@ -135,21 +134,39 @@
}
/**
- * Set the element name for startElement and endElement event
- *
- * @param attrs
+ * Sets the element name for the current startElement/endElement event
*/
- public void setElementName(String eleName) {
- this.eleName = eleName;
+ public void setElementName(String uri, String localName, String qName) {
+ elementName.setValues(null, localName, qName, uri);
}
/**
- * Get the element name for startElement and endElement event
- *
- * @return
+ * Gets the QName for the current element.
+ */
+ public String getQName() {
+ return elementName.rawname;
+ }
+
+ /**
+ * Gets the local name for the current element or
+ * the entity name if the current event is an entity reference.
+ */
+ public String getLocalName() {
+ return elementName.localpart;
+ }
+
+ /**
+ * Gets the namespace for the current element.
+ */
+ public String getNamespaceURI() {
+ return elementName.uri;
+ }
+
+ /**
+ * Sets the name of the current entity reference.
*/
- public String getElementName() {
- return eleName;
+ public void setEntityName(String name) {
+ elementName.localpart = name;
}
// Record the data and target of ProcessingInstruction
@@ -169,11 +186,4 @@
return piTarget;
}
- public String getUri() {
- return uri;
- }
-
- public void setUri(String uri) {
- this.uri = uri;
- }
}
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/SAXXMLStreamReaderImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/SAXXMLStreamReaderImpl.java?view=diff&rev=451659&r1=451658&r2=451659
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/SAXXMLStreamReaderImpl.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/SAXXMLStreamReaderImpl.java Sat Sep 30 13:22:37 2006
@@ -920,9 +920,8 @@
public QName getName() {
if (curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT) {
String prefix = getPrefix();
-
QName qname;
- if(prefix == null) {
+ if (prefix == null) {
qname = new QName(getNamespaceURI(), getLocalName());
}
else {
@@ -930,8 +929,7 @@
}
return qname;
}
- throw new IllegalStateException(
- "The current event is not START_ELEMENT or END_ELEMENT.");
+ throw new IllegalStateException("The current event is not START_ELEMENT or END_ELEMENT.");
}
/**
@@ -945,17 +943,22 @@
* END_ELEMENT or ENTITY_REFERENCE
*/
public String getLocalName() {
- if(curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT
- || curType == XMLStreamConstants.ENTITY_REFERENCE) {
- String local = asp.getElementName();
+ if (curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT) {
+ String local = asp.getLocalName();
+ if (local != null && local.length() > 0) {
+ return local;
+ }
+ local = asp.getQName();
int indexPre = local.indexOf(":");
if (indexPre != -1){
local = local.substring(indexPre + 1);
}
return local;
}
- else
- throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE");
+ else if (curType == XMLStreamConstants.ENTITY_REFERENCE) {
+ return asp.getLocalName();
+ }
+ throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT or ENTITY_REFERENCE");
}
/**
@@ -963,10 +966,8 @@
* returns false otherwise
*/
public boolean hasName() {
- if(curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT)
- return true;
- else
- return false;
+ return (curType == XMLStreamConstants.START_ELEMENT ||
+ curType == XMLStreamConstants.END_ELEMENT);
}
/**
@@ -980,19 +981,18 @@
* or ATTRIBUTE
*/
public String getNamespaceURI() {
- if(curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT || curType == XMLStreamConstants.ATTRIBUTE) {
- String uri = asp.getUri();
- if(uri == null || "".equals(uri)) {
+ if (curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT || curType == XMLStreamConstants.ATTRIBUTE) {
+ String uri = asp.getNamespaceURI();
+ if (uri == null || "".equals(uri)) {
String prefix = getPrefix();
- if(prefix == null)
+ if (prefix == null) {
prefix = "";
+ }
uri = dc.getNamespaceURI(prefix);
}
-
return uri;
}
- else
- throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT");
+ throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT");
}
/**
@@ -1002,17 +1002,12 @@
* @throws IllegalStateException if this is not a START_ELEMENT or END_ELEMENT
*/
public String getPrefix() {
- if(curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT) {
- String pre = null;
- String name = asp.getElementName();
+ if (curType == XMLStreamConstants.START_ELEMENT || curType == XMLStreamConstants.END_ELEMENT) {
+ String name = asp.getQName();
int indexPre = name.indexOf(":");
- if(indexPre != -1){
- pre = name.substring(0, indexPre);
- }
- return pre;
+ return (indexPre != -1 ? name.substring(0, indexPre) : null);
}
- else
- throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT");
+ throw new IllegalStateException("Current event is not START_ELEMENT, END_ELEMENT");
}
/**
Modified: xerces/java/branches/stax-dev/src/org/apache/xerces/stax/StAXSAXHandler.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/stax-dev/src/org/apache/xerces/stax/StAXSAXHandler.java?view=diff&rev=451659&r1=451658&r2=451659
==============================================================================
--- xerces/java/branches/stax-dev/src/org/apache/xerces/stax/StAXSAXHandler.java (original)
+++ xerces/java/branches/stax-dev/src/org/apache/xerces/stax/StAXSAXHandler.java Sat Sep 30 13:22:37 2006
@@ -31,9 +31,9 @@
*/
final class StAXSAXHandler extends DefaultHandler {
- private AsyncSAXParser asp;
- private SAXXMLStreamReaderImpl reader;
- private SAXLocation loc;
+ private final AsyncSAXParser asp;
+ private final SAXXMLStreamReaderImpl reader;
+ private final SAXLocation loc;
private StringBuffer buf;
public StAXSAXHandler(AsyncSAXParser asp, SAXXMLStreamReaderImpl reader, SAXLocation loc) {
@@ -90,13 +90,7 @@
checkCoalescing();
reader.setCurType(XMLStreamConstants.END_ELEMENT);
- if (qName != null && !"".equals(qName)) {
- asp.setElementName(qName);
- }
- else {
- asp.setElementName(localName);
- }
- asp.setUri(uri);
+ asp.setElementName(uri, localName, (qName != null && qName.length() > 0) ? qName : localName);
while (asp.getRunningFlag() == false) {
asp.notify();
@@ -199,13 +193,7 @@
NamespaceContextImpl nci = (NamespaceContextImpl)reader.getNamespaceContext();
nci.onStartElement();
- if (qName != null && !"".equals(qName)) {
- asp.setElementName(qName);
- }
- else {
- asp.setElementName(localName);
- }
- asp.setUri(uri);
+ asp.setElementName(uri, localName, (qName != null && qName.length() > 0) ? qName : localName);
while (!asp.getRunningFlag()) {
asp.notify();
@@ -268,7 +256,7 @@
checkCoalescing();
reader.setCurType(XMLStreamConstants.ENTITY_REFERENCE);
- asp.setElementName(name);
+ asp.setEntityName(name);
asp.setCharacters(null, 0, 0);
while (!asp.getRunningFlag()) {
asp.notify();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org