You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by bi...@apache.org on 2009/02/26 18:44:33 UTC

svn commit: r748224 - in /webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src: main/java/org/apache/ws/commons/schema/SchemaBuilder.java test/java/tests/WSCommons378Test.java test/test-resources/wscommons-378.xsd

Author: bimargulies
Date: Thu Feb 26 17:44:33 2009
New Revision: 748224

URL: http://svn.apache.org/viewvc?rev=748224&view=rev
Log:
WSCOMMONS-378. 

Added:
    webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java   (with props)
    webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd   (with props)
Modified:
    webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java

Modified: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java?rev=748224&r1=748223&r2=748224&view=diff
==============================================================================
--- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java (original)
+++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java Thu Feb 26 17:44:33 2009
@@ -456,6 +456,9 @@
 						XmlSchemaAnnotation facetAnnotation = handleAnnotation(annotation);
 						facet.setAnnotation(facetAnnotation);
 					}
+					
+					//process extra attributes and elements
+					processExtensibilityComponents(facet, el);
 					restriction.facets.add(facet);
 				}
 

Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java
URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java?rev=748224&view=auto
==============================================================================
--- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java (added)
+++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java Thu Feb 26 17:44:33 2009
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package tests;
+
+import org.apache.ws.commons.schema.*;
+import org.apache.ws.commons.schema.constants.Constants;
+import org.w3c.dom.Attr;
+
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.stream.StreamSource;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for <a
+ * href="https://issues.apache.org/jira/browse/WSCOMMONS-378">WSCOMMONS-378</a>
+ * 
+ * @author Sergey Vladimirov (vlsergey at gmail dot com)
+ */
+public class WSCommons378Test extends TestCase {
+
+    /**
+     * Tests that {@link SchemaBuilder} correctly reads additional enumeration
+     * facet attributes
+     * 
+     * @throws Exception
+     *             Any exception encountered
+     */
+    public void test() throws Exception {
+	InputStream is = new FileInputStream(Resources
+		.asURI("wscommons-378.xsd"));
+	XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+	schemaCol.read(new StreamSource(is), null);
+
+	XmlSchemaSimpleType type = (XmlSchemaSimpleType) schemaCol
+		.getTypeByQName(new QName("foo"));
+	XmlSchemaSimpleTypeRestriction restriction = (XmlSchemaSimpleTypeRestriction) type
+		.getContent();
+	XmlSchemaObjectCollection facets = restriction.getFacets();
+
+	assertEquals(2, facets.getCount());
+
+	XmlSchemaEnumerationFacet facet1 = (XmlSchemaEnumerationFacet) facets
+		.getItem(0);
+	XmlSchemaEnumerationFacet facet2 = (XmlSchemaEnumerationFacet) facets
+		.getItem(1);
+
+	final Map externalAttributes1 = (Map) facet1.getMetaInfoMap().get(
+		Constants.MetaDataConstants.EXTERNAL_ATTRIBUTES);
+	final Map externalAttributes2 = (Map) facet2.getMetaInfoMap().get(
+		Constants.MetaDataConstants.EXTERNAL_ATTRIBUTES);
+
+	assertNotNull(externalAttributes1);
+	assertNotNull(externalAttributes2);
+
+	assertEquals(1, externalAttributes1.size());
+	assertEquals(1, externalAttributes2.size());
+
+	Attr attr1 = (Attr) externalAttributes1.values().iterator().next();
+	Attr attr2 = (Attr) externalAttributes2.values().iterator().next();
+
+	assertNotNull(attr1);
+	assertNotNull(attr2);
+
+	assertEquals("http://testuri.org/", attr1.getNamespaceURI());
+	assertEquals("http://testuri.org/", attr2.getNamespaceURI());
+
+	assertEquals("test", attr1.getPrefix());
+	assertEquals("test", attr2.getPrefix());
+
+	assertEquals("attr1", attr1.getLocalName());
+	assertEquals("attr2", attr2.getLocalName());
+
+	assertEquals("attr1-value", attr1.getValue());
+	assertEquals("attr2-value", attr2.getValue());
+    }
+}

Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCommons378Test.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd
URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd?rev=748224&view=auto
==============================================================================
--- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd (added)
+++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd Thu Feb 26 17:44:33 2009
@@ -0,0 +1,29 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<xsd:schema
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+        xmlns:test="http://testuri.org/">
+    <xsd:simpleType name="foo">
+        <xsd:restriction>
+            <xsd:enumeration value="value1" test:attr1="attr1-value" />
+            <xsd:enumeration value="value2" test:attr2="attr2-value" />
+        </xsd:restriction>
+    </xsd:simpleType>
+</xsd:schema>

Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/wscommons-378.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml