summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/xml/stream
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/gnu/xml/stream')
-rw-r--r--libjava/classpath/gnu/xml/stream/FilteredStreamReader.java4
-rw-r--r--libjava/classpath/gnu/xml/stream/NamespaceImpl.java29
-rw-r--r--libjava/classpath/gnu/xml/stream/XIncludeFilter.java4
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java6
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java6
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java23
6 files changed, 59 insertions, 13 deletions
diff --git a/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java b/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java
index 1db02f6e30a..90ebb330d0b 100644
--- a/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java
+++ b/libjava/classpath/gnu/xml/stream/FilteredStreamReader.java
@@ -40,10 +40,10 @@ package gnu.xml.stream;
import javax.xml.stream.StreamFilter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.util.ReaderDelegate;
+import javax.xml.stream.util.StreamReaderDelegate;
class FilteredStreamReader
- extends ReaderDelegate
+ extends StreamReaderDelegate
{
final XMLStreamReader reader;
diff --git a/libjava/classpath/gnu/xml/stream/NamespaceImpl.java b/libjava/classpath/gnu/xml/stream/NamespaceImpl.java
index eeb57be6cac..1a595ee83d4 100644
--- a/libjava/classpath/gnu/xml/stream/NamespaceImpl.java
+++ b/libjava/classpath/gnu/xml/stream/NamespaceImpl.java
@@ -39,6 +39,7 @@ package gnu.xml.stream;
import java.io.IOException;
import java.io.Writer;
+import javax.xml.namespace.QName;
import javax.xml.stream.Location;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.Namespace;
@@ -55,12 +56,15 @@ public class NamespaceImpl
protected final String prefix;
protected final String uri;
+ protected final boolean specified;
- protected NamespaceImpl(Location location, String prefix, String uri)
+ protected NamespaceImpl(Location location, String prefix, String uri,
+ boolean specified)
{
super(location);
this.prefix = prefix;
this.uri = uri;
+ this.specified = specified;
}
public int getEventType()
@@ -78,6 +82,29 @@ public class NamespaceImpl
return uri;
}
+ public boolean isSpecified()
+ {
+ return specified;
+ }
+
+ public QName getName()
+ {
+ if (isDefaultNamespaceDeclaration())
+ return new QName("", "xmlns", null);
+ else
+ return new QName("", prefix, "xmlns");
+ }
+
+ public String getDTDType()
+ {
+ return "CDATA";
+ }
+
+ public String getValue()
+ {
+ return uri;
+ }
+
public boolean isDefaultNamespaceDeclaration()
{
return (prefix == null || "".equals(prefix));
diff --git a/libjava/classpath/gnu/xml/stream/XIncludeFilter.java b/libjava/classpath/gnu/xml/stream/XIncludeFilter.java
index d5c4af12c5e..aed9d9a0f00 100644
--- a/libjava/classpath/gnu/xml/stream/XIncludeFilter.java
+++ b/libjava/classpath/gnu/xml/stream/XIncludeFilter.java
@@ -54,7 +54,7 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.util.ReaderDelegate;
+import javax.xml.stream.util.StreamReaderDelegate;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
@@ -81,7 +81,7 @@ import org.xml.sax.SAXException;
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
class XIncludeFilter
- extends ReaderDelegate
+ extends StreamReaderDelegate
{
static final String XINCLUDE_NS_URI = "http://www.w3.org/2001/XInclude";
diff --git a/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java
index fb1e4c28c58..dd2b18c943f 100644
--- a/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java
+++ b/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java
@@ -110,7 +110,8 @@ public class XMLEventAllocatorImpl
for (int i = 0; i < len; i++)
namespaces.add(new NamespaceImpl(location,
reader.getNamespacePrefix(i),
- reader.getNamespaceURI(i)));
+ reader.getNamespaceURI(i),
+ false));
return new EndElementImpl(location,
reader.getName(),
namespaces);
@@ -158,7 +159,8 @@ public class XMLEventAllocatorImpl
for (int i = 0; i < len; i++)
namespaces.add(new NamespaceImpl(location,
reader.getNamespacePrefix(i),
- reader.getNamespaceURI(i)));
+ reader.getNamespaceURI(i),
+ false));
len = reader.getAttributeCount();
List attributes = new LinkedList();
for (int i = 0; i < len; i++)
diff --git a/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java
index f694753c4b4..5ca1aab7ce8 100644
--- a/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java
+++ b/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java
@@ -98,12 +98,14 @@ public class XMLEventFactoryImpl
public Namespace createNamespace(String namespaceURI)
{
return new NamespaceImpl(location,
- XMLConstants.DEFAULT_NS_PREFIX, namespaceURI);
+ XMLConstants.DEFAULT_NS_PREFIX,
+ namespaceURI,
+ true);
}
public Namespace createNamespace(String prefix, String namespaceUri)
{
- return new NamespaceImpl(location, prefix, namespaceUri);
+ return new NamespaceImpl(location, prefix, namespaceUri, true);
}
public StartElement createStartElement(QName name,
diff --git a/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java b/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java
index 4be9992a73d..1549420c9df 100644
--- a/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java
+++ b/libjava/classpath/gnu/xml/stream/XMLStreamWriterImpl.java
@@ -242,7 +242,7 @@ public class XMLStreamWriterImpl
{
if (namespaceURI != null && !isURI(namespaceURI))
throw new IllegalArgumentException("illegal URI: " + namespaceURI);
- if (prefix != null && !isNCName(prefix))
+ if (prefix != null && !isPrefix(prefix))
throw new IllegalArgumentException("illegal NCName: " + prefix);
if (!isNCName(localName))
throw new IllegalArgumentException("illegal NCName: " + localName);
@@ -394,7 +394,7 @@ public class XMLStreamWriterImpl
{
if (namespaceURI != null && !isURI(namespaceURI))
throw new IllegalArgumentException("illegal URI: " + namespaceURI);
- if (prefix != null && !isNCName(prefix))
+ if (prefix != null && !isPrefix(prefix))
throw new IllegalArgumentException("illegal NCName: " + prefix);
if (!isNCName(localName))
throw new IllegalArgumentException("illegal NCName: " + localName);
@@ -490,13 +490,18 @@ public class XMLStreamWriterImpl
public void writeNamespace(String prefix, String namespaceURI)
throws XMLStreamException
{
+ if (prefix == null || "".equals(prefix) || "xmlns".equals(prefix))
+ {
+ writeDefaultNamespace(namespaceURI);
+ return;
+ }
if (!inStartElement)
throw new IllegalStateException();
try
{
if (!isURI(namespaceURI))
throw new IllegalArgumentException("illegal URI: " + namespaceURI);
- if (!isNCName(prefix))
+ if (!isPrefix(prefix))
throw new IllegalArgumentException("illegal NCName: " + prefix);
}
catch (IOException e)
@@ -790,7 +795,7 @@ public class XMLStreamWriterImpl
{
if (!isURI(uri))
throw new IllegalArgumentException("illegal URI: " + uri);
- if (!isNCName(prefix))
+ if (!isPrefix(prefix))
throw new IllegalArgumentException("illegal NCName: " + prefix);
}
catch (IOException e)
@@ -938,6 +943,15 @@ public class XMLStreamWriterImpl
return true;
}
+ private boolean isPrefix(String text)
+ throws IOException
+ {
+ if (XMLConstants.DEFAULT_NS_PREFIX.equals(text)) {
+ return true;
+ }
+ return isNCName(text);
+ }
+
private boolean isNCName(String text)
throws IOException
{
@@ -1001,3 +1015,4 @@ public class XMLStreamWriterImpl
}
+
OpenPOWER on IntegriCloud