[jboss-svn-commits] JBoss Common SVN: r2959 - in jbossxb/trunk/src: test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 16 05:46:42 EST 2009
Author: alex.loubyansky at jboss.com
Date: 2009-01-16 05:46:42 -0500 (Fri, 16 Jan 2009)
New Revision: 2959
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
Log:
JBXB-168
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java 2009-01-16 07:49:20 UTC (rev 2958)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java 2009-01-16 10:46:42 UTC (rev 2959)
@@ -1426,10 +1426,10 @@
PropertyInfo memberProp = propBeanInfo.getProperty(memberPropName);
TypeInfo memberTypeInfo = memberProp.getType();
- String memberNamespace = defaultNamespace;
+ XmlElement memberXmlElement = memberProp.getUnderlyingAnnotation(XmlElement.class);
+ String memberNamespace = null;
String memberName = null;
- XmlElement memberXmlElement = memberProp.getUnderlyingAnnotation(XmlElement.class);
if (memberXmlElement != null)
{
if (!XmlElement.DEFAULT.class.equals(memberXmlElement.type()))
@@ -1439,20 +1439,6 @@
memberName = memberXmlElement.name();
}
- JBossXmlNsPrefix memberPrefix = memberProp.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
- String memberOverridenDefaultNamespace = defaultNamespace;
- if(memberPrefix != null)
- {
- String ns = schemaBinding.getNamespace(memberPrefix.prefix());
- if (ns == null && memberPrefix.schemaTargetIfNotMapped())
- throw new IllegalStateException("Prefix '" + memberPrefix.prefix() + "' is not mapped to any namespace!");
-
- if(memberPrefix.applyToComponentQName())
- memberNamespace = ns;
- if(memberPrefix.applyToComponentContent())
- defaultNamespace = ns;
- }
-
boolean isCol = false;
AbstractPropertyHandler memberPropertyHandler = null;
if (memberProp.getType().isCollection())
@@ -1483,9 +1469,25 @@
memberPropertyHandler = new PropertyHandler(memberProp, memberTypeInfo);
}
+ JBossXmlNsPrefix memberPrefix = memberProp.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
+ String memberOverridenDefaultNamespace = defaultNamespace;
+ String prefixNs = null;
+ if(memberPrefix != null)
+ {
+ prefixNs = schemaBinding.getNamespace(memberPrefix.prefix());
+ if (prefixNs == null && memberPrefix.schemaTargetIfNotMapped())
+ throw new IllegalStateException("Prefix '" + memberPrefix.prefix() + "' is not mapped to any namespace!");
+
+ if(memberPrefix.applyToComponentQName())
+ memberNamespace = prefixNs;
+ }
+
QName memberQName = generateXmlName(memberProp.getName(), elementForm, memberNamespace, memberName);
propBeanAdapterFactory.addProperty(memberQName, memberPropertyHandler);
+ if(prefixNs != null && memberPrefix.applyToComponentContent())
+ defaultNamespace = prefixNs;
+
XBValueAdapter valueAdapter = null;
XmlJavaTypeAdapter xmlTypeAdapter = memberProp.getUnderlyingAnnotation(XmlJavaTypeAdapter.class);
if (xmlTypeAdapter != null)
@@ -1604,11 +1606,12 @@
}
// for now support just one JBossXmlNsPrefix
+ String prefixNs = null;
JBossXmlNsPrefix xmlNsPrefix = property.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
String overridenDefaultNamespace = defaultNamespace;
if (xmlNsPrefix != null)
{
- String prefixNs = schemaBinding.getNamespace(xmlNsPrefix.prefix());
+ prefixNs = schemaBinding.getNamespace(xmlNsPrefix.prefix());
if (prefixNs == null)
{
if (xmlNsPrefix.schemaTargetIfNotMapped())
@@ -1619,13 +1622,14 @@
if(xmlNsPrefix.applyToComponentQName())
overrideNamespace = prefixNs;
- if(xmlNsPrefix.applyToComponentContent())
- defaultNamespace = prefixNs;
}
// Determine the name
QName propertyQName = generateXmlName(property.getName(), elementForm, overrideNamespace, overrideName);
+ if(prefixNs != null && xmlNsPrefix.applyToComponentContent())
+ defaultNamespace = prefixNs;
+
// Create the element
JBossXmlGroup jbossXmlGroup = null;
if (!propertyType.isPrimitive())
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java 2009-01-16 07:49:20 UTC (rev 2958)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java 2009-01-16 10:46:42 UTC (rev 2959)
@@ -216,7 +216,7 @@
// child
e = (ElementBinding) particle.getTerm();
- assertEquals(new QName("ns.child", "child"), e.getQName());
+ assertEquals(new QName("ns.root", "child"), e.getQName());
group = (ModelGroupBinding) e.getType().getParticle().getTerm();
particles = group.getParticles();
assertEquals(1, particles.size());
More information about the jboss-svn-commits
mailing list