Author: bimargulies
Date: Thu Feb 5 18:55:20 2009
New Revision: 741242
URL: http://svn.apache.org/viewvc?rev=741242&view=rev
Log:
WSCOMMONS-436
Added:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
(with props)
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
(with props)
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.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=741242&r1=741241&r2=741242&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 5 18:55:20 2009
@@ -1735,7 +1735,7 @@
XmlSchemaAppInfo appInfo = new XmlSchemaAppInfo();
NodeList markup = new DocumentFragmentNodeList(content);
- if (!content.hasAttribute("source")) {
+ if (!content.hasAttribute("source") && markup.getLength() == 0)
{
return null;
}
appInfo.setSource(getAttribute(content, "source"));
Added:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
URL:
http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java?rev=741242&view=auto
==============================================================================
---
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
(added)
+++
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
Thu Feb 5 18:55:20 2009
@@ -0,0 +1,131 @@
+/*
+ * 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 junit.framework.TestCase;
+import org.apache.ws.commons.schema.*;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.xml.transform.stream.StreamSource;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+public class AnnotationDeepTest extends TestCase {
+
+ /**
+ * The appinfo element has no source attribute
+ * but it has content.
+ *
+ * @throws Exception Any exception encountered
+ */
+ public void testAppInfoNoSource() throws Exception {
+
+ /*
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.abc.com/validation"
+ xmlns="http://www.abc.com/validation"
+ xmlns:xsns="http://www.abc.com/validation"
+ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:schemaBindings>
+ <jaxb:package name="com.abc.validation"/>
+ </jaxb:schemaBindings>
+ </xs:appinfo>
+ </xs:annotation>
+
+ <simpleType name="emptyAppinfo">
+ <restriction base="string">
+ <length value="1"/>
+ </restriction>
+ </simpleType>
+
+ </xs:schema>
+ */
+
+ InputStream is = new
FileInputStream(Resources.asURI("annotation-appinfo-no-source.xsd"));
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+
+ XmlSchemaAnnotation annotation = schema.getAnnotation();
+ assertTrue("annotation is retrieved ok", null != annotation);
+ XmlSchemaObjectCollection items = annotation.getItems();
+ assertEquals("Annotation contains an appinfo and yet this fails", 1,
items.getCount());
+
+ }
+
+ /**
+ * The appinfo element has a source attribute
+ * but the content is deep markup.
+ *
+ * @throws Exception Any exception encountered
+ */
+ public void testAppInfoDeep() throws Exception {
+
+ /*
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.abc.com/validation"
+ xmlns="http://www.abc.com/validation"
+ xmlns:xsns="http://www.abc.com/validation"
+ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:appinfo source="anything">
+ <jaxb:schemaBindings>
+ <jaxb:package name="com.abc.validation"/>
+ </jaxb:schemaBindings>
+ </xs:appinfo>
+ </xs:annotation>
+
+ <simpleType name="emptyAppinfo">
+ <restriction base="string">
+ <length value="1"/>
+ </restriction>
+ </simpleType>
+
+ </xs:schema>
+ */
+
+ InputStream is = new
FileInputStream(Resources.asURI("annotation-appinfo-deep.xsd"));
+ XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+ XmlSchema schema = schemaCol.read(new StreamSource(is), null);
+
+ XmlSchemaAnnotation annotation = schema.getAnnotation();
+ assertTrue("annotation is retrieved ok", null != annotation);
+ XmlSchemaObjectCollection items = annotation.getItems();
+ assertTrue(items.getItem(0) instanceof XmlSchemaAppInfo);
+ XmlSchemaAppInfo appInfo = (XmlSchemaAppInfo) items.getItem(0);
+ NodeList markup = appInfo.getMarkup();
+ assertTrue("The markup exists", null != markup);
+ Node node = markup.item(1);
+ assertTrue(node instanceof Element);
+ Element el = (Element) node;
+ assertEquals("First level child is retrieved ok",
+ "http://java.sun.com/xml/ns/jaxb",
node.getNamespaceURI());
+ assertEquals("First level child is retrieved ok",
+ "schemaBindings", node.getLocalName());
+ assertTrue("schemaBindings should have a child",
el.getChildNodes().getLength() > 0);
+ NodeList l =
el.getElementsByTagNameNS("http://java.sun.com/xml/ns/jaxb", "package");
+ assertTrue("ok this is actually working",l.getLength() > 0);
+
+ }
+}
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/AnnotationDeepTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
URL:
http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd?rev=741242&view=auto
==============================================================================
---
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
(added)
+++
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
Thu Feb 5 18:55:20 2009
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.abc.com/validation"
+ xmlns="http://www.abc.com/validation"
+ xmlns:xsns="http://www.abc.com/validation"
+ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:appinfo source="anything">
+ <jaxb:schemaBindings>
+ <jaxb:package name="com.abc.validation"/>
+ </jaxb:schemaBindings>
+ </xs:appinfo>
+ </xs:annotation>
+
+ <simpleType name="emptyAppinfo">
+ <restriction base="string">
+ <length value="1"/>
+ </restriction>
+ </simpleType>
+
+</xs:schema>
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-deep.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
URL:
http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd?rev=741242&view=auto
==============================================================================
---
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
(added)
+++
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
Thu Feb 5 18:55:20 2009
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.abc.com/validation"
+ xmlns="http://www.abc.com/validation"
+ xmlns:xsns="http://www.abc.com/validation"
+ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+ elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:appinfo>
+ <jaxb:schemaBindings>
+ <jaxb:package name="com.abc.validation"/>
+ </jaxb:schemaBindings>
+ </xs:appinfo>
+ </xs:annotation>
+
+ <simpleType name="emptyAppinfo">
+ <restriction base="string">
+ <length value="1"/>
+ </restriction>
+ </simpleType>
+
+</xs:schema>
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/annotation-appinfo-no-source.xsd
------------------------------------------------------------------------------
svn:mime-type = text/xml