Author: sagara
Date: Fri Aug 26 03:48:03 2011
New Revision: 1161982

URL: http://svn.apache.org/viewvc?rev=1161982&view=rev
Log:
Added latest patch for WODEN-72

Added:
    
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISCatalogURIResolver.java
    
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntityResolverAdapter.java
    
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntitySchemaResolverAdapter.java
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/Woden-CatalogManager.properties
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/datatypes.dtd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20-extensions.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20-http.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20-instance.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20-rpc.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20-soap.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/wsdl20.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/xml.xsd
   (with props)
    
webservices/woden/branches/woden-20/woden-commons/src/main/resources/schema.xml
    
webservices/woden/branches/woden-20/woden-tests/src/test/resources/W3Ctests.xml
    
webservices/woden/branches/woden-20/woden-tests/src/test/resources/Woden-CatalogManager.properties
    
webservices/woden/branches/woden-20/woden-tests/src/test/resources/simpleresolver.xml
Modified:
    webservices/woden/branches/woden-20/pom.xml
    webservices/woden/branches/woden-20/woden-commons/pom.xml
    
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/BaseWSDLReader.java
    
webservices/woden/branches/woden-20/woden-dom/src/main/java/org/apache/woden/internal/DOMWSDLReader.java
    
webservices/woden/branches/woden-20/woden-tests/src/test/java/org/apache/woden/internal/wsdl20/assertions/TestDescription1001.java
    
webservices/woden/branches/woden-20/woden-tests/src/test/java/org/apache/woden/resolver/SimpleURIResolverTest.java
    
webservices/woden/branches/woden-20/woden-tests/src/test/java/testcase/resolver/schemaloc/SchemaLocationTest.java

Modified: webservices/woden/branches/woden-20/pom.xml
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/pom.xml?rev=1161982&r1=1161981&r2=1161982&view=diff
==============================================================================
--- webservices/woden/branches/woden-20/pom.xml (original)
+++ webservices/woden/branches/woden-20/pom.xml Fri Aug 26 03:48:03 2011
@@ -286,8 +286,8 @@
                <woden.version>1.0-SNAPSHOT</woden.version>
                <woden.osgi.version>1.0.0</woden.osgi.version>
                <bundle.plugin.version>1.4.0</bundle.plugin.version>
-               
<apache.xmlSchema.version>1.4.6-SNAPSHOT</apache.xmlSchema.version>
-               <apache.axiom.version>1.2.9-SNAPSHOT</apache.axiom.version>
+               
<apache.xmlSchema.version>1.4.8-SNAPSHOT</apache.xmlSchema.version>
+               <apache.axiom.version>1.2.13-SNAPSHOT</apache.axiom.version>
                <apache.ant.version>1.7.1</apache.ant.version>
                <wsdl4j.version>1.6.2</wsdl4j.version>
                <slf4.version>1.5.8</slf4.version>

Modified: webservices/woden/branches/woden-20/woden-commons/pom.xml
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/pom.xml?rev=1161982&r1=1161981&r2=1161982&view=diff
==============================================================================
--- webservices/woden/branches/woden-20/woden-commons/pom.xml (original)
+++ webservices/woden/branches/woden-20/woden-commons/pom.xml Fri Aug 26 
03:48:03 2011
@@ -91,6 +91,11 @@
            <artifactId>woden-api</artifactId>
            <version>${woden.version}</version>
        </dependency>
+       <dependency>
+         <groupId>xml-resolver</groupId>
+         <artifactId>xml-resolver</artifactId>
+         <version>1.2</version>
+      </dependency>
           <!-- Logger dependencies -->
           <dependency>
                <groupId>commons-logging</groupId>
@@ -131,4 +136,4 @@
              </exclusions>
        </dependency>
    </dependencies>
-</project>
+</project>

Modified: 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/BaseWSDLReader.java
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/BaseWSDLReader.java?rev=1161982&r1=1161981&r2=1161982&view=diff
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/BaseWSDLReader.java
 (original)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/BaseWSDLReader.java
 Fri Aug 26 03:48:03 2011
@@ -31,7 +31,7 @@ import org.apache.woden.WSDLException;
 import org.apache.woden.WSDLFactory;
 import org.apache.woden.WSDLReader;
 import org.apache.woden.XMLElement;
-import org.apache.woden.internal.resolver.SimpleURIResolver;
+import org.apache.woden.internal.resolver.OASISCatalogURIResolver;
 import org.apache.woden.internal.schema.SchemaConstants;
 import org.apache.woden.internal.util.PropertyUtils;
 import org.apache.woden.internal.util.StringUtils;
@@ -111,7 +111,7 @@ public abstract class BaseWSDLReader imp
         {
                // property not set (an allowable condition)
                // use the "default default" URI resolver
-               resolver = new SimpleURIResolver();
+               resolver = new OASISCatalogURIResolver();
         }
         else
         {

Added: 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISCatalogURIResolver.java
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISCatalogURIResolver.java?rev=1161982&view=auto
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISCatalogURIResolver.java
 (added)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISCatalogURIResolver.java
 Fri Aug 26 03:48:03 2011
@@ -0,0 +1,75 @@
+/**
+ * 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 org.apache.woden.internal.resolver;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+
+import org.apache.woden.WSDLException;
+import org.apache.woden.resolver.URIResolver;
+import org.apache.xml.resolver.Catalog;
+import org.apache.xml.resolver.CatalogManager;
+
+/**
+ * The Class OASISCatalogURIResolver.
+ */
+public class OASISCatalogURIResolver implements URIResolver {
+       
+       /** The catalog. */
+       private Catalog catalog;
+       
+       /**
+        * Instantiates a new oASIS catalog uri resolver.
+        */
+       public OASISCatalogURIResolver(){
+               CatalogManager manager = new 
CatalogManager("Woden-CatalogManager.properties"); 
+               catalog = new Catalog(manager);
+           catalog.setupReaders();
+               try {
+                       catalog.loadSystemCatalogs();
+               } catch (MalformedURLException e) {                     
+                       e.printStackTrace();
+               } catch (IOException e) {                       
+                       e.printStackTrace();
+               } 
+               
+       }
+
+       /* (non-Javadoc)
+        * @see org.apache.woden.resolver.URIResolver#resolveURI(java.net.URI)
+        */
+       public URI resolveURI(URI uri) throws WSDLException {
+       
+               String resolved = null; 
+                       try {                           
+                               resolved = 
catalog.resolveEntity(uri.toString(), uri.toString(), uri.toString());
+                               if(resolved != null){
+                               return new URI(resolved);
+                               }
+                       } catch (URISyntaxException e) {                        
+                               e.printStackTrace();                            
+                       } catch (MalformedURLException e) {                     
+                               e.printStackTrace();                            
+                       } catch (IOException e) {                               
+                               e.printStackTrace();                            
+                       }               
+               return uri;             
+       }
+}

Added: 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntityResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntityResolverAdapter.java?rev=1161982&view=auto
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntityResolverAdapter.java
 (added)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntityResolverAdapter.java
 Fri Aug 26 03:48:03 2011
@@ -0,0 +1,38 @@
+/**
+ * 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 org.apache.woden.internal.resolver;
+
+import java.io.IOException;
+
+import org.apache.xml.resolver.tools.CatalogResolver;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class OASISEntityResolverAdapter implements EntityResolver {
+       
+       private CatalogResolver catalogResolver;
+
+       public InputSource resolveEntity(String publicId, String systemId)
+                       throws SAXException, IOException {
+               if(catalogResolver == null){
+                       catalogResolver = new CatalogResolver();                
        
+               }
+               return catalogResolver.resolveEntity(publicId, systemId);
+       }
+
+}

Added: 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntitySchemaResolverAdapter.java
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntitySchemaResolverAdapter.java?rev=1161982&view=auto
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntitySchemaResolverAdapter.java
 (added)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/java/org/apache/woden/internal/resolver/OASISEntitySchemaResolverAdapter.java
 Fri Aug 26 03:48:03 2011
@@ -0,0 +1,20 @@
+package org.apache.woden.internal.resolver;
+
+import org.apache.ws.commons.schema.resolver.URIResolver;
+import org.apache.xml.resolver.tools.CatalogResolver;
+import org.xml.sax.InputSource;
+
+public class OASISEntitySchemaResolverAdapter implements URIResolver {
+       
+       private CatalogResolver catalogResolver;
+
+       public InputSource resolveEntity(String targetNamespace,
+            String schemaLocation,
+            String baseUri) {
+               if(catalogResolver == null){
+                       catalogResolver = new CatalogResolver();                
        
+               }
+               return catalogResolver.resolveEntity(schemaLocation, 
schemaLocation);
+       }
+
+}

Added: 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/Woden-CatalogManager.properties
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/resources/Woden-CatalogManager.properties?rev=1161982&view=auto
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/Woden-CatalogManager.properties
 (added)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/Woden-CatalogManager.properties
 Fri Aug 26 03:48:03 2011
@@ -0,0 +1,25 @@
+#
+# 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.
+#
+
+# Catalogs are relative to this properties file
+relative-catalogs=false
+# Catalog list
+catalogs=schema.xml
+# Make the verbosity bigger to get more debug information
+verbosity=2
\ No newline at end of file

Added: 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd
URL: 
http://svn.apache.org/viewvc/webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd?rev=1161982&view=auto
==============================================================================
--- 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd
 (added)
+++ 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd
 Fri Aug 26 03:48:03 2011
@@ -0,0 +1,402 @@
+<!-- DTD for XML Schemas: Part 1: Structures
+     Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+     Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id: XMLSchema.dtd,v 1.31 2001/10/24 15:50:16 ht Exp $ -->
+<!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
+<!-- prose copy in the structures REC is the definitive version -->    <!--d-->
+<!-- (which shouldn't differ from this one except for this -->         <!--d-->
+<!-- comment and entity expansions, but just in case) -->              <!--d-->
+<!-- With the exception of cases with multiple namespace
+     prefixes for the XML Schema namespace, any XML document which is
+     not valid per this DTD given redefinitions in its internal subset of the
+     'p' and 's' parameter entities below appropriate to its namespace
+     declaration of the XML Schema namespace is almost certainly not
+     a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+     are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+                         schema document to establish a different
+                         namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+                         also define %s as the suffix for the appropriate
+                         namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+     Define one of these if your schema takes advantage of the
+     anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+      <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+      <!-- #all or space-separated list drawn from
+                      derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+     which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+                    ((%simpleType; | %complexType;
+                      | %element; | %attribute;
+                      | %attributeGroup; | %group;
+                      | %notation; ),
+                     (%annotation;)*)* )>
+<!ATTLIST %schema;
+   targetNamespace      %URIref;               #IMPLIED
+   version              CDATA                  #IMPLIED
+   %nds;                %URIref;               #FIXED 
'http://www.w3.org/2001/XMLSchema'
+   xmlns                CDATA                  #IMPLIED
+   finalDefault         %complexDerivationSet; ''
+   blockDefault         %blockSet;             ''
+   id                   ID                     #IMPLIED
+   elementFormDefault   %formValues;           'unqualified'
+   attributeFormDefault %formValues;           'unqualified'
+   xml:lang             CDATA                  #IMPLIED
+   %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+     because at the Infoset level where schemas operate,
+     xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+ 
+<!-- The id attribute here and below is for use in external references
+     from non-schemas using simple fragment identifiers.
+     It is NOT used for schema-to-schema reference, internal or
+     external. -->
+
+<!-- a type is a named content type specification which allows attribute
+     declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+                         (%simpleContent;|%complexContent;|
+                          %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+          name      %NCName;                        #IMPLIED
+          id        ID                              #IMPLIED
+          abstract  %boolean;                       #IMPLIED
+          final     %complexDerivationSet;          #IMPLIED
+          block     %complexDerivationSet;          #IMPLIED
+          mixed (true|false) 'false'
+          %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+     has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+     and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+          mixed (true|false) #IMPLIED
+          id    ID           #IMPLIED
+          %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+     one from part2; extension should use the full model  -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+          id    ID           #IMPLIED
+          %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the 
+     one defined above; extension should have no particle  -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+          base  %QName;      #REQUIRED
+          id    ID           #IMPLIED
+          %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+                     (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+            name               %NCName;               #IMPLIED
+            id                 ID                     #IMPLIED
+            ref                %QName;                #IMPLIED
+            type               %QName;                #IMPLIED
+            minOccurs          %nonNegativeInteger;   #IMPLIED
+            maxOccurs          CDATA                  #IMPLIED
+            nillable           %boolean;              #IMPLIED
+            substitutionGroup  %QName;                #IMPLIED
+            abstract           %boolean;              #IMPLIED
+            final              %complexDerivationSet; #IMPLIED
+            block              %blockSet;             #IMPLIED
+            default            CDATA                  #IMPLIED
+            fixed              CDATA                  #IMPLIED
+            form               %formValues;           #IMPLIED
+            %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+     substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group; 
+          name        %NCName;               #IMPLIED
+          ref         %QName;                #IMPLIED
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+          minOccurs   (1)                    #IMPLIED
+          maxOccurs   (1)                    #IMPLIED
+          id          ID                     #IMPLIED
+          %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+     a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+     If order is 'all' THIS group must be alone (or referenced alone) at
+     the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+            namespace       CDATA                  '##any'
+            processContents (skip|lax|strict)      'strict'
+            minOccurs       %nonNegativeInteger;   '1'
+            maxOccurs       CDATA                  '1'
+            id              ID                     #IMPLIED
+            %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+                  ##any      - - any non-conflicting WFXML at all
+
+                  ##other    - - any non-conflicting WFXML from namespace other
+                                  than targetNamespace
+
+                  ##local    - - any unqualified non-conflicting 
WFXML/attribute
+                  one or     - - any non-conflicting WFXML from
+                  more URI        the listed namespaces
+                  references
+
+                  ##targetNamespace ##local may appear in the above list,
+                    with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+            namespace       CDATA              '##any'
+            processContents (skip|lax|strict)  'strict'
+            id              ID                 #IMPLIED
+            %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+          name      %NCName;      #IMPLIED
+          id        ID            #IMPLIED
+          ref       %QName;       #IMPLIED
+          type      %QName;       #IMPLIED
+          use       (prohibited|optional|required) #IMPLIED
+          default   CDATA         #IMPLIED
+          fixed     CDATA         #IMPLIED
+          form      %formValues;  #IMPLIED
+          %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+     reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+                       (%attribute; | %attributeGroup;)*,
+                       (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+                 name       %NCName;       #IMPLIED
+                 id         ID             #IMPLIED
+                 ref        %QName;        #IMPLIED
+                 %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name.  ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %uniqueAttrs;>
+
+<!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+          name     %NCName;       #REQUIRED
+         id       ID             #IMPLIED
+         %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+          name     %NCName;       #REQUIRED
+         refer    %QName;        #REQUIRED
+         id       ID             #IMPLIED
+         %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+          namespace      %URIref; #IMPLIED
+          schemaLocation %URIref; #IMPLIED
+          id             ID       #IMPLIED
+          %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+                      %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+         name        %NCName;    #REQUIRED
+         id          ID          #IMPLIED
+         public      CDATA       #REQUIRED
+         system      %URIref;    #IMPLIED
+         %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+     as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+     to work -->
+<!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
+<!ATTLIST %appinfo;
+          source     %URIref;      #IMPLIED
+          id         ID         #IMPLIED
+          %appinfoAttrs;>
+<!ELEMENT %documentation; ANY>   <!-- too restrictive -->
+<!ATTLIST %documentation;
+          source     %URIref;   #IMPLIED
+          id         ID         #IMPLIED
+          xml:lang   CDATA      #IMPLIED
+          %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+           'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+           'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >

Propchange: 
webservices/woden/branches/woden-20/woden-commons/src/main/resources/org/apache/woden/resolver/XMLSchema.dtd
------------------------------------------------------------------------------
    svn:executable = *


Reply via email to