[jbossws-commits] JBossWS SVN: r2661 - in branches/jbossws-1.2.1/jbossws-core/src: java/org/jboss/ws/core and 4 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu Mar 22 12:39:27 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-03-22 12:39:27 -0400 (Thu, 22 Mar 2007)
New Revision: 2661

Added:
   branches/jbossws-1.2.1/jbossws-core/src/resources/schema/soap-encoding_200206.xsd
Modified:
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/Constants.java
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarDeserializer.java
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarSerializer.java
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/utils/JBossWSEntityResolver.java
   branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
Log:
Fix j2ee1.4 interop issues

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/Constants.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/Constants.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/Constants.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -54,8 +54,6 @@
    static final String NS_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
    /** XMLSchema instance namespace http://www.w3.org/2001/XMLSchema-instance */
    static final String NS_SCHEMA_XSI = "http://www.w3.org/2001/XMLSchema-instance";
-   /** SOAP encoding namespace http://schemas.xmlsoap.org/soap/encoding/ */
-   static final String NS_SOAP_ENCODING =  "http://schemas.xmlsoap.org/soap/encoding/";
    /** SOAP-1.1 namespace http://schemas.xmlsoap.org/wsdl/soap/ */
    static final String NS_SOAP11 = "http://schemas.xmlsoap.org/wsdl/soap/";
    /** SOAP-1.1 envelope namespace http://schemas.xmlsoap.org/soap/envelope/ */

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -178,7 +178,7 @@
             {
                String envURI = soapEnvelope.getNamespaceURI();
                String envPrefix = soapEnvelope.getPrefix();
-               soapBodyElement.setAttributeNS(envURI, envPrefix + ":encodingStyle", Constants.NS_SOAP_ENCODING);
+               soapBodyElement.setAttributeNS(envURI, envPrefix + ":encodingStyle", Constants.URI_SOAP11_ENC);
             }
          }
 
@@ -396,7 +396,7 @@
             {
                String envURI = soapEnvelope.getNamespaceURI();
                String envPrefix = soapEnvelope.getPrefix();
-               soapBodyElement.setAttributeNS(envURI, envPrefix + ":encodingStyle", Constants.NS_SOAP_ENCODING);
+               soapBodyElement.setAttributeNS(envURI, envPrefix + ":encodingStyle", Constants.URI_SOAP11_ENC);
             }
          }
          

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarDeserializer.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarDeserializer.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarDeserializer.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -1,24 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 package org.jboss.ws.core.jaxrpc.binding;
 
 // $Id$
@@ -29,6 +29,7 @@
 import javax.xml.transform.Source;
 
 import org.jboss.logging.Logger;
+import org.jboss.ws.Constants;
 import org.jboss.xb.binding.SimpleTypeBindings;
 
 /**
@@ -41,20 +42,28 @@
    // provide logging
    private static final Logger log = Logger.getLogger(CalendarDeserializer.class);
 
-   public Object deserialize(QName xmlName, QName xmlType, Source xmlFragment, SerializationContext serContext) throws BindingException {
+   public Object deserialize(QName xmlName, QName xmlType, Source xmlFragment, SerializationContext serContext) throws BindingException
+   {
       return deserialize(xmlName, xmlType, sourceToString(xmlFragment), serContext);
    }
 
    private Object deserialize(QName xmlName, QName xmlType, String xmlFragment, SerializationContext serContext) throws BindingException
    {
-      if(log.isDebugEnabled()) log.debug("deserialize: [xmlName=" + xmlName + ",xmlType=" + xmlType + "]");
+      if (log.isDebugEnabled())
+         log.debug("deserialize: [xmlName=" + xmlName + ",xmlType=" + xmlType + "]");
 
       Calendar value = null;
 
       String valueStr = unwrapValueStr(xmlFragment);
       if (valueStr != null)
       {
-         value = SimpleTypeBindings.unmarshalDateTime(valueStr);
+         if (Constants.TYPE_LITERAL_DATE.equals(xmlType))
+            value = SimpleTypeBindings.unmarshalDate(valueStr);
+         else if (Constants.TYPE_LITERAL_TIME.equals(xmlType))
+            value = SimpleTypeBindings.unmarshalTime(valueStr);
+         else if (Constants.TYPE_LITERAL_DATETIME.equals(xmlType))
+            value = SimpleTypeBindings.unmarshalDateTime(valueStr);
+         else throw new IllegalArgumentException("Invalid xmlType: " + xmlType);
       }
 
       return value;

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarSerializer.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarSerializer.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/binding/CalendarSerializer.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -1,24 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 package org.jboss.ws.core.jaxrpc.binding;
 
 // $Id$
@@ -29,6 +29,7 @@
 import javax.xml.transform.Result;
 
 import org.jboss.logging.Logger;
+import org.jboss.ws.Constants;
 import org.jboss.xb.binding.NamespaceRegistry;
 import org.jboss.xb.binding.SimpleTypeBindings;
 import org.w3c.dom.NamedNodeMap;
@@ -45,9 +46,18 @@
 
    public Result serialize(QName xmlName, QName xmlType, Object value, SerializationContext serContext, NamedNodeMap attributes) throws BindingException
    {
-      if(log.isDebugEnabled()) log.debug("serialize: [xmlName=" + xmlName + ",xmlType=" + xmlType + "]");
+      if (log.isDebugEnabled())
+         log.debug("serialize: [xmlName=" + xmlName + ",xmlType=" + xmlType + "]");
 
-      String valueStr = SimpleTypeBindings.marshalDateTime((Calendar)value);
+      String valueStr;
+      if (Constants.TYPE_LITERAL_DATE.equals(xmlType))
+         valueStr = SimpleTypeBindings.marshalDate((Calendar)value);
+      else if (Constants.TYPE_LITERAL_TIME.equals(xmlType))
+         valueStr = SimpleTypeBindings.marshalTime((Calendar)value);
+      else if (Constants.TYPE_LITERAL_DATETIME.equals(xmlType))
+         valueStr = SimpleTypeBindings.marshalDateTime((Calendar)value);
+      else
+         throw new IllegalArgumentException("Invalid xmlType: " + xmlType);
 
       NamespaceRegistry nsRegistry = serContext.getNamespaceRegistry();
       String xmlFragment = wrapValueStr(xmlName, valueStr, nsRegistry, null, attributes, true);

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/utils/JBossWSEntityResolver.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/utils/JBossWSEntityResolver.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/core/utils/JBossWSEntityResolver.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -51,6 +51,7 @@
       registerEntity("http://java.sun.com/xml/ns/javaee", "schema/javaee_web_services_1_2.xsd");
       registerEntity("http://www.w3.org/2005/08/addressing", "schema/ws-addr.xsd");
       registerEntity("http://schemas.xmlsoap.org/ws/2004/08/eventing", "eventing.xsd");
+      registerEntity("http://www.w3.org/2002/06/soap-encoding", "soap-encoding_200206.xsd");
       registerEntity("http://schemas.xmlsoap.org/soap/encoding/", "soap-encoding_1_1.xsd");
       registerEntity("http://www.ibm.com/webservices/xsd/j2ee_web_services_client_1_1.xsd", "j2ee_web_services_client_1_1.xsd");
       registerEntity("http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd", "j2ee_web_services_1_1.xsd");

Modified: branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java	2007-03-22 15:55:41 UTC (rev 2660)
+++ branches/jbossws-1.2.1/jbossws-core/src/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java	2007-03-22 16:39:27 UTC (rev 2661)
@@ -444,28 +444,19 @@
 
       if (locationURL == null)
       {
-         String parentProtocol = parentURL.getProtocol();
-         if (parentProtocol.indexOf("file") >= 0 && !location.startsWith("/"))
+         if (location.startsWith("/"))
+            location = location.substring(1);
+
+         String path = parentURL.toExternalForm();
+         path = path.substring(0, path.lastIndexOf("/"));
+         
+         while (location.startsWith("../"))
          {
-            String path = parentURL.toExternalForm();
             path = path.substring(0, path.lastIndexOf("/"));
-            locationURL = new URL(path + "/" + location);
+            location = location.substring(3);
          }
-         else if (parentProtocol.startsWith("http") && location.startsWith("/"))
-         {
-            String path = parentProtocol + "://" + parentURL.getHost() + ":" + parentURL.getPort();
-            locationURL = new URL(path + location);
-         }
-         else if (parentProtocol.equals("jar") && !location.startsWith("/"))
-         {
-            String path = parentURL.toExternalForm();
-            path = path.substring(0, path.lastIndexOf("/"));
-            locationURL = new URL(path + "/" + location);
-         }
-         else
-         {
-            throw new WSDLException(WSDLException.OTHER_ERROR, "Unsupported schemaLocation: " + location);
-         }
+
+         locationURL = new URL(path + "/" + location);
       }
 
       log.trace("Modified schemaLocation: " + locationURL);
@@ -504,8 +495,7 @@
          WSDLInterfaceOperation destOperation = new WSDLInterfaceOperation(destInterface, srcOperation.getName());
          destOperation.setStyle(getOperationStyle(srcWsdl, srcPortType, srcOperation));
 
-         if(srcOperation.getStyle()!=null
-            && false == OperationType.NOTIFICATION.equals(srcOperation.getStyle()))
+         if (srcOperation.getStyle() != null && false == OperationType.NOTIFICATION.equals(srcOperation.getStyle()))
          {
             processOperationInput(srcWsdl, srcOperation, destOperation, srcPortType);
          }
@@ -525,7 +515,7 @@
          Message srcMessage = srcInput.getMessage();
          if (srcMessage == null)
             throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find input message on operation " + srcOperation.getName() + " on port type: "
-               + srcPortType.getQName());
+                  + srcPortType.getQName());
 
          log.trace("processOperationInput: " + srcMessage.getQName());
 
@@ -586,15 +576,16 @@
       }
    }
 
-   private boolean ignorePart(PortType srcPortType, Part srcPart) {
+   private boolean ignorePart(PortType srcPortType, Part srcPart)
+   {
 
       boolean canBeSkipped = false;
       QName parentName = srcPortType.getQName();
-      if(skippedSWAParts.containsKey(parentName))
+      if (skippedSWAParts.containsKey(parentName))
       {
-         if(skippedSWAParts.get(parentName).contains(srcPart.getName()))
+         if (skippedSWAParts.get(parentName).contains(srcPart.getName()))
          {
-            log.trace("Skip attachment part: " + parentName+"->"+srcPart.getName());
+            log.trace("Skip attachment part: " + parentName + "->" + srcPart.getName());
             canBeSkipped = true;
          }
       }
@@ -613,11 +604,8 @@
 
       Message srcMessage = srcOutput.getMessage();
       if (srcMessage == null)
-         throw new WSDLException(
-            WSDLException.INVALID_WSDL,
-            "Cannot find output message on operation " + srcOperation.getName() +
-               " on port type: "+ srcPortType.getQName()
-         );
+         throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find output message on operation " + srcOperation.getName() + " on port type: "
+               + srcPortType.getQName());
 
       log.trace("processOperationOutput: " + srcMessage.getQName());
 
@@ -645,7 +633,8 @@
       for (Part srcPart : (List<Part>)srcMessage.getOrderedParts(null))
       {
          // Skip SWA attachment parts
-         if(ignorePart(srcPortType, srcPart)) continue;
+         if (ignorePart(srcPortType, srcPart))
+            continue;
 
          if (Constants.URI_STYLE_DOCUMENT == destOperation.getStyle())
          {
@@ -913,47 +902,49 @@
     * @param srcBinding
     * @param srcWsdl
     */
-   private void preProcessSWAParts(Binding srcBinding, Definition srcWsdl) {
+   private void preProcessSWAParts(Binding srcBinding, Definition srcWsdl)
+   {
 
       Iterator opIt = srcBinding.getBindingOperations().iterator();
-      while(opIt.hasNext())
+      while (opIt.hasNext())
       {
          BindingOperation bindingOperation = (BindingOperation)opIt.next();
 
          // Input
-         if(bindingOperation.getBindingInput()!=null)
-            markSWAParts( bindingOperation.getBindingInput().getExtensibilityElements() , srcBinding, srcWsdl);
+         if (bindingOperation.getBindingInput() != null)
+            markSWAParts(bindingOperation.getBindingInput().getExtensibilityElements(), srcBinding, srcWsdl);
 
          // Output
-         if(bindingOperation.getBindingOutput()!=null)
-            markSWAParts( bindingOperation.getBindingOutput().getExtensibilityElements() , srcBinding, srcWsdl);
+         if (bindingOperation.getBindingOutput() != null)
+            markSWAParts(bindingOperation.getBindingOutput().getExtensibilityElements(), srcBinding, srcWsdl);
       }
    }
 
-   private void markSWAParts(List extensions, Binding srcBinding, Definition srcWsdl) {
+   private void markSWAParts(List extensions, Binding srcBinding, Definition srcWsdl)
+   {
       Iterator extIt = extensions.iterator();
-      while(extIt.hasNext())
+      while (extIt.hasNext())
       {
          Object o = extIt.next();
-         if(o instanceof MIMEMultipartRelated)
+         if (o instanceof MIMEMultipartRelated)
          {
 
             QName portTypeName = srcBinding.getPortType().getQName();
 
-            if(log.isTraceEnabled())
+            if (log.isTraceEnabled())
                log.trace("SWA found on portType" + portTypeName);
 
             MIMEMultipartRelated mrel = (MIMEMultipartRelated)o;
             Iterator mimePartIt = mrel.getMIMEParts().iterator();
-            while(mimePartIt.hasNext())
+            while (mimePartIt.hasNext())
             {
                MIMEPart mimePartDesc = (MIMEPart)mimePartIt.next();
                List mimePartExt = mimePartDesc.getExtensibilityElements();
-               if(! mimePartExt.isEmpty() && (mimePartExt.get(0) instanceof MIMEContent))
+               if (!mimePartExt.isEmpty() && (mimePartExt.get(0) instanceof MIMEContent))
                {
                   MIMEContent mimeContent = (MIMEContent)mimePartExt.get(0);
 
-                  if(skippedSWAParts.get(portTypeName)==null)
+                  if (skippedSWAParts.get(portTypeName) == null)
                      skippedSWAParts.put(portTypeName, new ArrayList<String>());
                   skippedSWAParts.get(portTypeName).add(mimeContent.getPart());
                }
@@ -1071,7 +1062,7 @@
    }
 
    private void processBindingInput(Definition srcWsdl, WSDLBindingOperation destBindingOperation, final WSDLInterfaceOperation destIntfOperation,
-                                    final BindingOperation srcBindingOperation, BindingInput srcBindingInput) throws WSDLException
+         final BindingOperation srcBindingOperation, BindingInput srcBindingInput) throws WSDLException
    {
       log.trace("processBindingInput");
 
@@ -1104,7 +1095,7 @@
    }
 
    private void processBindingOutput(Definition srcWsdl, WSDLBindingOperation destBindingOperation, final WSDLInterfaceOperation destIntfOperation,
-                                     final BindingOperation srcBindingOperation, BindingOutput srcBindingOutput) throws WSDLException
+         final BindingOperation srcBindingOperation, BindingOutput srcBindingOutput) throws WSDLException
    {
       log.trace("processBindingInput");
 
@@ -1138,7 +1129,8 @@
    }
 
    private void processBindingReference(Definition srcWsdl, WSDLBindingOperation destBindingOperation, WSDLInterfaceOperation destIntfOperation, QName soap11Body,
-                                        List<ExtensibilityElement> extList, WSDLBindingMessageReference reference, BindingOperation srcBindingOperation, ReferenceCallback callback) throws WSDLException
+         List<ExtensibilityElement> extList, WSDLBindingMessageReference reference, BindingOperation srcBindingOperation, ReferenceCallback callback)
+         throws WSDLException
    {
       for (ExtensibilityElement extElement : extList)
       {

Added: branches/jbossws-1.2.1/jbossws-core/src/resources/schema/soap-encoding_200206.xsd
===================================================================
--- branches/jbossws-1.2.1/jbossws-core/src/resources/schema/soap-encoding_200206.xsd	                        (rev 0)
+++ branches/jbossws-1.2.1/jbossws-core/src/resources/schema/soap-encoding_200206.xsd	2007-03-22 16:39:27 UTC (rev 2661)
@@ -0,0 +1,562 @@
+<!-- Schema defined in the SOAP Version 1.2 Part 2 specification
+     Last Call Working Draft:
+     http://www.w3.org/TR/2002/WD-soap12-part2-20020621/
+     $Id$
+
+     Copyright 2001 W3C (Massachusetts Institute of Technology,
+     Institut National de Recherche en Informatique et en Automatique,
+     Keio University). All Rights Reserved.
+     http://www.w3.org/Consortium/Legal/
+
+     This document is governed by the W3C Software License [1] as
+     described in the FAQ [2].
+
+     [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+     [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2002/06/soap-encoding" targetNamespace="http://www.w3.org/2002/06/soap-encoding">
+        
+ <xs:attribute name="root" type="xs:boolean" default="0">
+   <xs:annotation>
+     <xs:documentation>
+	   'root' can be used to distinguish serialization roots from other
+       elements that are present in a serialization but are not roots of
+       a serialized value graph 
+	 </xs:documentation>
+   </xs:annotation>
+ </xs:attribute>
+
+  <xs:attributeGroup name="commonAttributes">
+    <xs:annotation>
+	  <xs:documentation>
+	    Attributes common to all elements that function as accessors or 
+        represent independent (multi-ref) values.  The ref attribute is
+        intended to be used in a manner like CONREF.  That is, the element
+        content should be empty iff the ref attribute appears
+	  </xs:documentation>
+	</xs:annotation>
+    <xs:attribute name="id" type="xs:ID"/>
+    <xs:attribute name="ref" type="xs:IDREF"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:attributeGroup>
+
+  <!-- Global Attributes.  The following attributes are intended to be usable via qualified attribute names on any complex type referencing them. -->
+       
+  <!-- Array attributes. Needed to give the type and dimensions of an array's contents, and the offset for partially-transmitted arrays. -->
+
+  <xs:simpleType name="arraySizeBase">
+    <xs:annotation>
+	  <xs:documentation>
+	  A list type that allows * and non negative integers. Used as the
+    base type for arraySize below.
+	  </xs:documentation>
+	</xs:annotation>
+    <xs:list>
+	  <xs:simpleType>
+	    <xs:union memberTypes="xs:nonNegativeInteger">
+		  <xs:simpleType>
+		    <xs:restriction base="xs:token">
+			  <xs:enumeration value="*"/>
+			</xs:restriction>
+		  </xs:simpleType>
+		</xs:union>
+	  </xs:simpleType>
+	</xs:list>
+  </xs:simpleType>
+
+
+  <xs:simpleType name="arraySize">
+    <xs:annotation>
+	  <xs:documentation>
+	  Pattern based restriction of the arraySizeBase list type. Used
+    as the type of the arraySize attribute. Restricts asterisk ( * )
+    to first list item only. Instances must contain at least an
+    asterisk ( * ) or a nonNegativeInteger. May contain other 
+    nonNegativeIntegers as subsequent list items.
+	Valid instances include;
+	
+	  *
+	  1
+	  * 2
+	  2 2
+	  * 2 0
+
+	  </xs:documentation>
+	</xs:annotation>
+    <xs:restriction base="tns:arraySizeBase">
+	  <xs:pattern value="(\*|(\d+))(\s*\d+)*"/>
+	</xs:restriction>
+  </xs:simpleType>
+   
+  <xs:attribute name="arraySize" type="tns:arraySize"/>
+  <xs:attribute name="itemType" type="xs:QName"/>
+  
+  <xs:attributeGroup name="arrayAttributes">
+    <xs:attribute ref="tns:arraySize"/>
+	<xs:attribute ref="tns:itemType"/>
+  </xs:attributeGroup>    
+  
+  <xs:group name="Array">
+    <xs:sequence>
+      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+	</xs:sequence>
+  </xs:group>
+
+  <xs:element name="Array" type="tns:Array"/>
+  <xs:complexType name="Array">
+    <xs:annotation>
+	  <xs:documentation>
+	   'Array' is a complex type for accessors identified by position 
+	  </xs:documentation>
+	</xs:annotation>
+    <xs:group ref="tns:Array" minOccurs="0"/>
+    <xs:attributeGroup ref="tns:arrayAttributes"/>
+    <xs:attributeGroup ref="tns:commonAttributes"/>
+  </xs:complexType> 
+
+  <!-- 'Struct' is a complex type for accessors identified by name. 
+       Constraint: No element may be have the same name as any other,
+       nor may any element have a maxOccurs > 1. -->
+   
+  <xs:element name="Struct" type="tns:Struct"/>
+
+  <xs:group name="Struct">
+    <xs:sequence>
+      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
+	</xs:sequence>
+  </xs:group>
+
+  <xs:complexType name="Struct">
+    <xs:group ref="tns:Struct" minOccurs="0"/>
+    <xs:attributeGroup ref="tns:commonAttributes"/>
+  </xs:complexType> 
+
+  <!-- 'Base64' can be used to serialize binary data using base64 encoding
+       as defined in RFC2045 but without the MIME line length limitation. -->
+
+  <xs:simpleType name="base64">
+    <xs:restriction base="xs:base64Binary"/>
+  </xs:simpleType>
+
+ <!-- Element declarations corresponding to each of the simple types in the 
+      XML Schemas Specification. -->
+
+  <xs:element name="duration" type="tns:duration"/>
+  <xs:complexType name="duration">
+    <xs:simpleContent>
+      <xs:extension base="xs:duration">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="dateTime" type="tns:dateTime"/>
+  <xs:complexType name="dateTime">
+    <xs:simpleContent>
+      <xs:extension base="xs:dateTime">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="time" type="tns:time"/>
+  <xs:complexType name="time">
+    <xs:simpleContent>
+      <xs:extension base="xs:time">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="date" type="tns:date"/>
+  <xs:complexType name="date">
+    <xs:simpleContent>
+      <xs:extension base="xs:date">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="gYearMonth" type="tns:gYearMonth"/>
+  <xs:complexType name="gYearMonth">
+    <xs:simpleContent>
+      <xs:extension base="xs:gYearMonth">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="gYear" type="tns:gYear"/>
+  <xs:complexType name="gYear">
+    <xs:simpleContent>
+      <xs:extension base="xs:gYear">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="gMonthDay" type="tns:gMonthDay"/>
+  <xs:complexType name="gMonthDay">
+    <xs:simpleContent>
+      <xs:extension base="xs:gMonthDay">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="gDay" type="tns:gDay"/>
+  <xs:complexType name="gDay">
+    <xs:simpleContent>
+      <xs:extension base="xs:gDay">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="gMonth" type="tns:gMonth"/>
+  <xs:complexType name="gMonth">
+    <xs:simpleContent>
+      <xs:extension base="xs:gMonth">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  
+  <xs:element name="boolean" type="tns:boolean"/>
+  <xs:complexType name="boolean">
+    <xs:simpleContent>
+      <xs:extension base="xs:boolean">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="base64Binary" type="tns:base64Binary"/>
+  <xs:complexType name="base64Binary">
+    <xs:simpleContent>
+      <xs:extension base="xs:base64Binary">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="hexBinary" type="tns:hexBinary"/>
+  <xs:complexType name="hexBinary">
+    <xs:simpleContent>
+     <xs:extension base="xs:hexBinary">
+       <xs:attributeGroup ref="tns:commonAttributes"/>
+     </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="float" type="tns:float"/>
+  <xs:complexType name="float">
+    <xs:simpleContent>
+      <xs:extension base="xs:float">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="double" type="tns:double"/>
+  <xs:complexType name="double">
+    <xs:simpleContent>
+      <xs:extension base="xs:double">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="anyURI" type="tns:anyURI"/>
+  <xs:complexType name="anyURI">
+    <xs:simpleContent>
+      <xs:extension base="xs:anyURI">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="QName" type="tns:QName"/>
+  <xs:complexType name="QName">
+    <xs:simpleContent>
+      <xs:extension base="xs:QName">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="string" type="tns:string"/>
+  <xs:complexType name="string">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="normalizedString" type="tns:normalizedString"/>
+  <xs:complexType name="normalizedString">
+    <xs:simpleContent>
+      <xs:extension base="xs:normalizedString">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="token" type="tns:token"/>
+  <xs:complexType name="token">
+    <xs:simpleContent>
+      <xs:extension base="xs:token">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="language" type="tns:language"/>
+  <xs:complexType name="language">
+    <xs:simpleContent>
+      <xs:extension base="xs:language">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="Name" type="tns:Name"/>
+  <xs:complexType name="Name">
+    <xs:simpleContent>
+      <xs:extension base="xs:Name">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="NMTOKEN" type="tns:NMTOKEN"/>
+  <xs:complexType name="NMTOKEN">
+    <xs:simpleContent>
+      <xs:extension base="xs:NMTOKEN">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="NCName" type="tns:NCName"/>
+  <xs:complexType name="NCName">
+    <xs:simpleContent>
+      <xs:extension base="xs:NCName">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="NMTOKENS" type="tns:NMTOKENS"/>
+  <xs:complexType name="NMTOKENS">
+    <xs:simpleContent>
+      <xs:extension base="xs:NMTOKENS">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="ID" type="tns:ID"/>
+  <xs:complexType name="ID">
+    <xs:simpleContent>
+      <xs:extension base="xs:ID">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="IDREF" type="tns:IDREF"/>
+  <xs:complexType name="IDREF">
+    <xs:simpleContent>
+      <xs:extension base="xs:IDREF">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="ENTITY" type="tns:ENTITY"/>
+  <xs:complexType name="ENTITY">
+    <xs:simpleContent>
+      <xs:extension base="xs:ENTITY">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="IDREFS" type="tns:IDREFS"/>
+  <xs:complexType name="IDREFS">
+    <xs:simpleContent>
+      <xs:extension base="xs:IDREFS">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- 
+       For compatibility with XML 1.0 the following element declaration and
+       associated complex type definition should NOT be used. It is
+       provided here for completenes.
+   -->
+  <xs:element name="ENTITIES" type="tns:ENTITIES"/>
+  <xs:complexType name="ENTITIES">
+    <xs:simpleContent>
+      <xs:extension base="xs:ENTITIES">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="decimal" type="tns:decimal"/>
+  <xs:complexType name="decimal">
+    <xs:simpleContent>
+      <xs:extension base="xs:decimal">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="integer" type="tns:integer"/>
+  <xs:complexType name="integer">
+    <xs:simpleContent>
+      <xs:extension base="xs:integer">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="nonPositiveInteger" type="tns:nonPositiveInteger"/>
+  <xs:complexType name="nonPositiveInteger">
+    <xs:simpleContent>
+      <xs:extension base="xs:nonPositiveInteger">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="negativeInteger" type="tns:negativeInteger"/>
+  <xs:complexType name="negativeInteger">
+    <xs:simpleContent>
+      <xs:extension base="xs:negativeInteger">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="long" type="tns:long"/>
+  <xs:complexType name="long">
+    <xs:simpleContent>
+      <xs:extension base="xs:long">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="int" type="tns:int"/>
+  <xs:complexType name="int">
+    <xs:simpleContent>
+      <xs:extension base="xs:int">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="short" type="tns:short"/>
+  <xs:complexType name="short">
+    <xs:simpleContent>
+      <xs:extension base="xs:short">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="byte" type="tns:byte"/>
+  <xs:complexType name="byte">
+    <xs:simpleContent>
+      <xs:extension base="xs:byte">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="nonNegativeInteger" type="tns:nonNegativeInteger"/>
+  <xs:complexType name="nonNegativeInteger">
+    <xs:simpleContent>
+      <xs:extension base="xs:nonNegativeInteger">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="unsignedLong" type="tns:unsignedLong"/>
+  <xs:complexType name="unsignedLong">
+    <xs:simpleContent>
+      <xs:extension base="xs:unsignedLong">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="unsignedInt" type="tns:unsignedInt"/>
+  <xs:complexType name="unsignedInt">
+    <xs:simpleContent>
+      <xs:extension base="xs:unsignedInt">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="unsignedShort" type="tns:unsignedShort"/>
+  <xs:complexType name="unsignedShort">
+    <xs:simpleContent>
+      <xs:extension base="xs:unsignedShort">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="unsignedByte" type="tns:unsignedByte"/>
+  <xs:complexType name="unsignedByte">
+    <xs:simpleContent>
+      <xs:extension base="xs:unsignedByte">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="positiveInteger" type="tns:positiveInteger"/>
+  <xs:complexType name="positiveInteger">
+    <xs:simpleContent>
+      <xs:extension base="xs:positiveInteger">
+        <xs:attributeGroup ref="tns:commonAttributes"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="anyType"/>
+</xs:schema>
\ No newline at end of file


Property changes on: branches/jbossws-1.2.1/jbossws-core/src/resources/schema/soap-encoding_200206.xsd
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF




More information about the jbossws-commits mailing list