[253180] Handle whitespace in enumeration values better.
diff --git a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/ecore/XSDEcoreBuilder.java b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/ecore/XSDEcoreBuilder.java
index 53fe97c..630e111 100644
--- a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/ecore/XSDEcoreBuilder.java
+++ b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/ecore/XSDEcoreBuilder.java
@@ -12,7 +12,7 @@
*
* </copyright>
*
- * $Id: XSDEcoreBuilder.java,v 1.94 2008/08/29 16:24:47 emerks Exp $
+ * $Id: XSDEcoreBuilder.java,v 1.93.2.1 2008/11/03 13:12:21 emerks Exp $
*/
package org.eclipse.xsd.ecore;
@@ -199,18 +199,8 @@
{
containingXSDSchema = rootSchema;
}
- String nsURI = getEcoreAttribute(containingXSDSchema, "nsURI");
- if (nsURI != null)
- {
- String qualifiedPackageName = qualifiedPackageName(nsURI);
- ePackage.setName(qualifiedPackageName);
- ePackage.setNsURI(nsURI);
- }
- else
- {
- ePackage.setName(validName(containingXSDSchema.eResource().getURI().trimFileExtension().lastSegment(), true));
- ePackage.setNsURI(containingXSDSchema.eResource().getURI().toString());
- }
+ ePackage.setName(validName(containingXSDSchema.eResource().getURI().trimFileExtension().lastSegment(), true));
+ ePackage.setNsURI(containingXSDSchema.eResource().getURI().toString());
// Also register against the nsURI for the case that the target namespace is null.
//
@@ -592,7 +582,7 @@
List<?> values = xsdEnumerationFacet.getValue();
if (!values.isEmpty())
{
- String lexicalValue= xsdEnumerationFacet.getLexicalValue();
+ String lexicalValue= xsdSimpleTypeDefinition.getNormalizedLiteral(xsdEnumerationFacet.getLexicalValue());
Object value = values.get(0);
if (value instanceof List)
{
@@ -781,7 +771,7 @@
XSDEnumerationFacet xsdEnumerationFacet = i.next();
if (!"true".equalsIgnoreCase(getEcoreAttribute(xsdEnumerationFacet, "ignore")))
{
- String literal = xsdEnumerationFacet.getLexicalValue();
+ String literal = xsdSimpleTypeDefinition.getNormalizedLiteral(xsdEnumerationFacet.getLexicalValue());
if (literal != null && eEnum.getEEnumLiteralByLiteral(literal) == null)
{
EEnumLiteral eEnumLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
@@ -2343,11 +2333,12 @@
// Set the default to the first enumeration's value.
//
eAttribute.setDefaultValueLiteral
- ((xsdSimpleTypeDefinition.
- getEffectiveEnumerationFacet().
- getSimpleTypeDefinition().
- getEnumerationFacets().
- get(0)).getLexicalValue());
+ (xsdSimpleTypeDefinition.getNormalizedLiteral
+ ((xsdSimpleTypeDefinition.
+ getEffectiveEnumerationFacet().
+ getSimpleTypeDefinition().
+ getEnumerationFacets().
+ get(0)).getLexicalValue()));
}
}
diff --git a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDEnumerationFacetImpl.java b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDEnumerationFacetImpl.java
index fc07870..2ff0411 100644
--- a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDEnumerationFacetImpl.java
+++ b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDEnumerationFacetImpl.java
@@ -12,7 +12,7 @@
*
* </copyright>
*
- * $Id: XSDEnumerationFacetImpl.java,v 1.15 2007/11/26 12:20:54 emerks Exp $
+ * $Id: XSDEnumerationFacetImpl.java,v 1.15.2.1 2008/11/03 13:12:21 emerks Exp $
*/
package org.eclipse.xsd.impl;
@@ -235,13 +235,17 @@
XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition)getContainer();
if (xsdSimpleTypeDefinition != null)
{
- try
+ XSDSimpleTypeDefinition baseTypeDefinition = xsdSimpleTypeDefinition.getBaseTypeDefinition();
+ if (baseTypeDefinition != null)
{
- newValue = xsdSimpleTypeDefinition.getValue(getElement(), theLexicalValue);
- }
- catch (RuntimeException exception)
- {
- // Ignore.
+ try
+ {
+ newValue = baseTypeDefinition.getValue(getElement(), theLexicalValue);
+ }
+ catch (RuntimeException exception)
+ {
+ // Ignore.
+ }
}
}
}