You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by zi...@apache.org on 2004/04/16 07:36:44 UTC
cvs commit: xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/util AttributeHolder.java
zieg 2004/04/15 22:36:43
Modified: v2/src/marshal/org/apache/xmlbeans/impl/marshal/util
AttributeHolder.java
Log:
fix QName creation bug when attributes are not in a namespace
Revision Changes Path
1.2 +19 -6 xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/util/AttributeHolder.java
Index: AttributeHolder.java
===================================================================
RCS file: /home/cvs/xml-xmlbeans/v2/src/marshal/org/apache/xmlbeans/impl/marshal/util/AttributeHolder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AttributeHolder.java 12 Apr 2004 22:39:46 -0000 1.1
+++ AttributeHolder.java 16 Apr 2004 05:36:43 -0000 1.2
@@ -64,6 +64,10 @@
{
private final StringList data;
+ private static final int LOCALNAME_OFFSET = 1;
+ private static final int PREFIX_OFFSET = 2;
+ private static final int VALUE_OFFSET = 3;
+
public AttributeHolder(int initial_capacity)
{
data = new StringList(4 * initial_capacity);
@@ -111,15 +115,24 @@
{
assert (data.getSize() % 4) == 0;
- return data.get(3 + idx * 4);
+ return data.get(VALUE_OFFSET + idx * 4);
}
public QName getAttributeName(int idx)
{
//TODO: consider caching these values...
- return new QName(getAttributeNamespace(idx),
- getAttributeLocalName(idx),
- getAttributePrefix(idx));
+
+ final String uri = getAttributeNamespace(idx);
+ if (uri == null || uri.length() == 0) {
+ return new QName(getAttributeLocalName(idx));
+ } else {
+ final String pfx = getAttributePrefix(idx);
+ assert pfx != null;
+ assert pfx.length() > 0;
+ return new QName(uri,
+ getAttributeLocalName(idx),
+ pfx);
+ }
}
@@ -134,14 +147,14 @@
{
assert (data.getSize() % 4) == 0;
- return data.get(1 + i * 4);
+ return data.get(LOCALNAME_OFFSET + i * 4);
}
public String getAttributePrefix(int i)
{
assert (data.getSize() % 4) == 0;
- return data.get(2 + i * 4);
+ return data.get(PREFIX_OFFSET + i * 4);
}
public boolean isAttributeSpecified(int i)
---------------------------------------------------------------------
To unsubscribe, e-mail: xmlbeans-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-cvs-help@xml.apache.org