Author: bimargulies
Date: Tue Apr 7 01:54:22 2009
New Revision: 762593
URL: http://svn.apache.org/viewvc?rev=762593&view=rev
Log:
WSCOMMONS-458, WSCOMMONS-430 for attributes.
Modified:
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/AttributeRefTest.java
Modified:
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java?rev=762593&r1=762592&r2=762593&view=diff
==============================================================================
---
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
(original)
+++
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
Tue Apr 7 01:54:22 2009
@@ -1634,12 +1634,7 @@
} else if (el.getLocalName().equals("attributeGroup")) {
handleAttributeGroup(currentSchema, el, schemaEl);
} else if (el.getLocalName().equals("attribute")) {
- XmlSchemaAttribute attr = handleAttribute(currentSchema, el,
- schemaEl, true); // pass true to
- // indicate that it is
- // a top level child
- currentSchema.attributes.collection.put(attr.getQName(), attr);
- currentSchema.items.add(attr);
+ handleAttribute(currentSchema, el, schemaEl, true);
} else if (el.getLocalName().equals("redefine")) {
handleRedefine(currentSchema, el, schemaEl);
} else if (el.getLocalName().equals("notation")) {
Modified:
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java?rev=762593&r1=762592&r2=762593&view=diff
==============================================================================
---
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
(original)
+++
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
Tue Apr 7 01:54:22 2009
@@ -50,20 +50,17 @@
/**
* Contains the definition of a schema. All XML Schema definition language
(XSD) elements are children of the
- * schema element. Represents the World Wide Web Consortium (W3C) schema
element
+ * schema element. Represents the World Wide Web Consortium (W3C) schema
element,
*/
public class XmlSchema
extends XmlSchemaAnnotated implements NamespaceContextOwner {
static final String SCHEMA_NS = XMLConstants.W3C_XML_SCHEMA_NS_URI;
private static final String UTF_8_ENCODING = "UTF-8";
- XmlSchemaObjectTable attributes;
XmlSchemaObjectTable elements;
XmlSchemaObjectTable groups;
XmlSchemaObjectTable notations;
XmlSchemaObjectTable schemaTypes;
- XmlSchemaDerivationMethod blockDefault;
- XmlSchemaDerivationMethod finalDefault;
XmlSchemaObjectCollection items;
boolean isCompiled;
String syntacticalTargetNamespace;
@@ -72,10 +69,13 @@
String schemaNamespacePrefix = "";
XmlSchemaCollection parent;
+ private XmlSchemaDerivationMethod blockDefault;
+ private XmlSchemaDerivationMethod finalDefault;
private XmlSchemaForm elementFormDefault;
private XmlSchemaForm attributeFormDefault;
private List<XmlSchemaExternal> externals;
private Map<QName, XmlSchemaAttributeGroup> attributeGroups;
+ private Map<QName, XmlSchemaAttribute> attributes;
private NamespacePrefixList namespaceContext;
// keep the encoding of the input
private String inputEncoding;
@@ -104,7 +104,7 @@
externals = new ArrayList<XmlSchemaExternal>();
elements = new XmlSchemaObjectTable();
attributeGroups = new HashMap<QName, XmlSchemaAttributeGroup>();
- attributes = new XmlSchemaObjectTable();
+ attributes = new HashMap<QName, XmlSchemaAttribute>();
groups = new XmlSchemaObjectTable();
notations = new XmlSchemaObjectTable();
schemaTypes = new XmlSchemaObjectTable();
@@ -147,7 +147,7 @@
return attributeGroups;
}
- public XmlSchemaObjectTable getAttributes() {
+ public Map<QName, XmlSchemaAttribute> getAttributes() {
return attributes;
}
@@ -247,7 +247,7 @@
// recursive schema - just return null
return null;
}
- XmlSchemaAttribute attribute =
(XmlSchemaAttribute)attributes.getItem(name);
+ XmlSchemaAttribute attribute =
(XmlSchemaAttribute)attributes.get(name);
if (deep) {
if (attribute == null) {
// search the imports
@@ -801,5 +801,9 @@
this.attributeGroups = attributeGroups;
}
+ void setAttributes(Map<QName, XmlSchemaAttribute> attributes) {
+ this.attributes = attributes;
+ }
+
}
Modified:
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java?rev=762593&r1=762592&r2=762593&view=diff
==============================================================================
---
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
(original)
+++
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaAttribute.java
Tue Apr 7 01:54:22 2009
@@ -49,6 +49,9 @@
namedDelegate.setRefObject(ref);
ref.setNamedObject(namedDelegate);
use = XmlSchemaUse.NONE;
+ if (topLevel) {
+ schema.getItems().add(this);
+ }
}
public String getDefaultValue() {
@@ -118,10 +121,15 @@
public boolean isTopLevel() {
return namedDelegate.isTopLevel();
}
-
public void setName(String name) {
+ if (namedDelegate.isTopLevel() && namedDelegate.getName() != null) {
+ namedDelegate.getParent().getAttributes().remove(getQName());
+ }
namedDelegate.setName(name);
+ if (namedDelegate.isTopLevel()) {
+ namedDelegate.getParent().getAttributes().put(getQName(), this);
+ }
}
public boolean isFormSpecified() {
Modified:
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java?rev=762593&r1=762592&r2=762593&view=diff
==============================================================================
---
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
(original)
+++
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
Tue Apr 7 01:54:22 2009
@@ -1581,12 +1581,14 @@
serializedSchema.setAttribute("id", schemaObj.getId());
}
- if (schemaObj.blockDefault != null && schemaObj.blockDefault !=
XmlSchemaDerivationMethod.NONE) {
- serializedSchema.setAttribute("blockDefault",
schemaObj.blockDefault.toString());
+ if (schemaObj.getBlockDefault() != null
+ && schemaObj.getBlockDefault() != XmlSchemaDerivationMethod.NONE) {
+ serializedSchema.setAttribute("blockDefault",
schemaObj.getBlockDefault().toString());
}
- if (schemaObj.finalDefault != null && schemaObj.finalDefault !=
XmlSchemaDerivationMethod.NONE) {
- serializedSchema.setAttribute("finalDefault",
schemaObj.finalDefault.toString());
+ if (schemaObj.getFinalDefault() != null
+ && schemaObj.getFinalDefault() != XmlSchemaDerivationMethod.NONE) {
+ serializedSchema.setAttribute("finalDefault",
schemaObj.getFinalDefault().toString());
}
if (schemaObj.version != null) {
Modified:
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/AttributeRefTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/AttributeRefTest.java?rev=762593&r1=762592&r2=762593&view=diff
==============================================================================
---
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/AttributeRefTest.java
(original)
+++
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/AttributeRefTest.java
Tue Apr 7 01:54:22 2009
@@ -20,7 +20,6 @@
import java.io.FileInputStream;
import java.io.InputStream;
-import java.util.Iterator;
import javax.xml.namespace.QName;
import javax.xml.transform.stream.StreamSource;
@@ -69,8 +68,7 @@
String namspace = qName.getNamespaceURI();
assertEquals("http://tempuri.org/attribute", namspace);
- for (Iterator toplevelAttributes = s.getAttributes().getValues();
toplevelAttributes.hasNext();) {
- XmlSchemaAttribute attribute =
(XmlSchemaAttribute)toplevelAttributes.next();
+ for (XmlSchemaAttribute attribute : s.getAttributes().values()) {
assertEquals("http://tempuri.org/attribute",
attribute.getQName().getNamespaceURI());
}