You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by sa...@apache.org on 2009/09/01 07:54:21 UTC

svn commit: r809835 [6/11] - in /webservices/woden/trunk/java/woden-api: ./ src/ src/main/ src/main/java/ src/main/java/javax/ src/main/java/javax/xml/ src/main/java/javax/xml/namespace/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/ap...

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModule.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModule.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModule.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModule.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,39 @@
+/**
+ * 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.wsdl20.extensions.soap;
+
+import java.net.URI;
+
+import org.apache.woden.wsdl20.WSDLComponent;
+
+/**
+ * This interface represents the SOAPModule Component that can appear in the
+ * optional {soap modules} property of the WSDL 2.0 components Binding, BindingFault, 
+ * BindingOperation, BindingFaultReference or BindingMessageReference.
+ * 
+ * @author jkaputin@apache.org
+ */
+public interface SOAPModule 
+{
+    public URI getRef();
+    
+    public Boolean isRequired();
+
+    public WSDLComponent getParent();
+    
+    public SOAPModuleElement toElement();
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModuleElement.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModuleElement.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModuleElement.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/extensions/soap/SOAPModuleElement.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,49 @@
+/**
+ * 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.wsdl20.extensions.soap;
+
+import java.net.URI;
+
+import org.apache.woden.wsdl20.extensions.AttributeExtensible;
+import org.apache.woden.wsdl20.extensions.ElementExtensible;
+import org.apache.woden.wsdl20.extensions.ExtensionElement;
+import org.apache.woden.wsdl20.xml.DocumentationElement;
+import org.apache.woden.wsdl20.xml.WSDLElement;
+
+/**
+ * This interface represents the <wsoap:module> extension element that 
+ * can appear within a Binding, Binding Fault, Binding Operation, Binding
+ * Fault Reference or Binding Message Reference.
+ * 
+ * @author jkaputin@apache.org
+ */
+public interface SOAPModuleElement extends ExtensionElement, 
+                                           AttributeExtensible, 
+                                           ElementExtensible
+{
+    public void setRef(URI uri);
+    
+    public URI getRef();
+    
+    public void setParentElement(WSDLElement wsdlEl);
+    
+    public WSDLElement getParentElement();
+
+    public void addDocumentationElement(DocumentationElement docEl);
+    
+    public DocumentationElement[] getDocumentationElements();
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,62 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+import org.apache.woden.types.NCName;
+/**
+ * <code>BindingFaultPart</code> is a Binding Fault Pointer Part for the Binding Fault WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.bindingFault">http://www.w3.org/TR/wsdl20/#wsdl.bindingFault</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class BindingFaultPart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private final NCName binding; //Local name of the parent Binding component.
+    private QName fault;    //Name of the Interface Fault referred to by this Binding Fault component.
+
+    /**
+     * Constructs a BindingFaultPart class from the values given.
+     * 
+     * @param binding the local name of the parent Binding component.
+     * @param fault the name of the Interface Fault component referred to by this Binding Fault component.
+     * @throws IllegalArgumentException if binding or fault are null.
+     */
+    public BindingFaultPart(NCName binding, QName fault) {
+        if (binding == null | fault == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = binding;
+        this.fault = fault; 
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return new BindingFaultPart(binding, fragmentIdentifier.prefixQNameNamespace(fault));
+    }
+
+    /**
+     * Returns a String of the serialised Binding Fault Pointer Part.
+     * 
+     * @return a String the serialised Binding Fault Pointer Part.
+     */
+    public String toString() {
+        String faultString = (fault.getPrefix() != null && !fault.getPrefix().equals(emptyString) ? fault.getPrefix() + ":" + fault.getLocalPart() : fault.getLocalPart());
+        return "wsdl.bindingFault(" + binding + "/" + faultString + ")";
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultReferencePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultReferencePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultReferencePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingFaultReferencePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,72 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>BindingFaultReferencePart</code> is a Binding Fault Reference Pointer Part for the Binding Fault Reference WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.bindingFaultReference">http://www.w3.org/TR/wsdl20/#wsdl.bindingFaultReference</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class BindingFaultReferencePart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private final NCName binding;     //Local name of the parent Binding component.
+    private QName operation;    //Name of the Interface Operation referred to by the parent Binding Operation component.
+    private final NCName message;     //Message Label of the Interface Fault Reference component referred to by this Binding Fault Reference component.
+    private QName fault;        //Name of the Interface Fault component referred to by the Interface Fault Reference component referred to by this Binding Fault Reference component.
+    
+    /**
+     * Constructs an BindingFaultReferencePart class from the values given.
+     * 
+     * @param binding the local name of the parent Binding component.
+     * @param operation the name of the Interface Operation referred to by the parent Binding Operation component.
+     * @param message the message label of the Interface Fault Reference component referred to by this Binding Message Reference component.
+     * @param fault the name of the Interface Fault component referred to by the Interface Fault Reference component referred to by this Binding Fault Reference component.
+     * @throws IllegalArgumentException if binding, operation, message or fault are null.
+     */
+    public BindingFaultReferencePart(NCName binding, QName operation, NCName message, QName fault) {
+        if (binding == null | operation == null | message == null | fault == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = binding;
+        this.operation = operation;
+        this.message = message;
+        this.fault = fault;
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        QName nOperation = fragmentIdentifier.prefixQNameNamespace(operation);
+        QName nFault = fragmentIdentifier.prefixQNameNamespace(fault);
+        return new BindingFaultReferencePart(binding, nOperation, message, nFault);
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Fault Reference Pointer Part.
+     * 
+     * @return a String the serialised Binding Fault Reference Pointer Part.
+     */
+    public String toString() {
+        String operationString = (operation.getPrefix() != null  && !operation.getPrefix().equals(emptyString) ? operation.getPrefix() + ":" + operation.getLocalPart() : operation.getLocalPart());
+        String faultString = (fault.getPrefix() != null  && !fault.getPrefix().equals(emptyString) ? fault.getPrefix() + ":" + fault.getLocalPart() : fault.getLocalPart());
+        return "wsdl.bindingFaultReference(" + binding + "/" + operationString + "/" + message + "/" + faultString + ")";
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingMessageReferencePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingMessageReferencePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingMessageReferencePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingMessageReferencePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,66 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>BindingMessageReferencePart</code> is a Binding Message Reference Pointer Part for the Binding Message Reference WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.bindingMessageReference">http://www.w3.org/TR/wsdl20/#wsdl.bindingMessageReference</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class BindingMessageReferencePart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private final NCName binding;     //Local name of the parent Binding component.
+    private QName operation;    //Name of the Interface Operation referred to the parent Binding Operation component.
+    private final NCName message;     //Message Label of the Interface Message Reference component referred to by this Binding Message Reference component.
+    
+    /**
+     * Constructs a BindingMessageReferencePart class from the values given.
+     * 
+     * @param binding the local name of the parent Binding component.
+     * @param operation the name of the Interface Operation referred to by this Binding Operation component.
+     * @param message the message label of the Interface Message Reference component referred to by this Binding Message Reference component.
+     * @throws IllegalArgumentException if binding, operation or message are null.
+     */
+    public BindingMessageReferencePart(NCName binding, QName operation, NCName message) {
+        if (binding == null | operation == null | message == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = binding;
+        this.operation = operation;
+        this.message = message;
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return new BindingMessageReferencePart(binding, fragmentIdentifier.prefixQNameNamespace(operation), message);
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Message Reference Pointer Part.
+     * 
+     * @return a String the serialised Binding Message Reference Pointer Part.
+     */
+    public String toString() {
+        String operationString = (operation.getPrefix() != null && !operation.getPrefix().equals(emptyString) ? operation.getPrefix() + ":" + operation.getLocalPart() : operation.getLocalPart());
+        return "wsdl.bindingMessageReference(" + binding + "/" + operationString + "/" + message + ")";
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingOperationPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingOperationPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingOperationPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingOperationPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,63 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>BindingOperationPart</code> is a Binding Operation Pointer Part for the Binding Operation WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.bindingOperation">http://www.w3.org/TR/wsdl20/#wsdl.bindingOperation</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class BindingOperationPart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private final NCName binding;     //Local name of the parent Binding component.
+    private QName operation;    //Name of the Interface Operation component referred to by this Binding Operation component.
+    
+    /**
+     * Constructs a BindingOperationPart class from the values given.
+     * 
+     * @param binding the local name of the parent Binding component.
+     * @param operation the name of the Interface Operation component referred to by this Binding Operation component.
+     * @throws IllegalArgumentException if binding or operation are null.
+     */
+    public BindingOperationPart(NCName binding, QName operation) {
+        if (binding == null | operation == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = binding;
+        this.operation = operation;
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return new BindingOperationPart(binding, fragmentIdentifier.prefixQNameNamespace(operation));
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Operation Pointer Part.
+     * 
+     * @return a String the serialised Binding Operation Pointer Part.
+     */
+    public String toString() {
+        String operationString = (operation.getPrefix() != null && !operation.getPrefix().equals(emptyString) ? operation.getPrefix() + ":" + operation.getLocalPart() : operation.getLocalPart());
+        return "wsdl.bindingOperation(" + binding + "/" + operationString + ")";
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/BindingPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,71 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+import org.apache.woden.wsdl20.Binding;
+
+/**
+ * <code>BindingPart</code> is a Binding Pointer Part for the Binding WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.binding">http://www.w3.org/TR/wsdl20/#wsdl.binding</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class BindingPart implements ComponentPart {
+    private final NCName binding; //Local name of the Binding component.
+    
+    /**
+     * Constructs a BindingPart class using values from the Binding WSDL 2.0 component.
+     * 
+     * @param binding the local name of the Binding component.
+     * @throws IllegalArgumentException if binding is null.
+     */
+    public BindingPart(Binding binding) {
+        if (binding == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = new NCName(binding.getName().getLocalPart());
+    }
+    
+    /**
+     * Constructs a BindingPart from the given value.
+     * 
+     * @param binding
+     */
+    public BindingPart(NCName binding) {
+        if (binding == null) {
+            throw new IllegalArgumentException();
+        }
+        this.binding = binding;
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Pointer Part.
+     * 
+     * @return a String the serialised Binding Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.binding(" + binding + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ComponentPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ComponentPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ComponentPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ComponentPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,40 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.xpointer.PointerPart;
+
+/**
+ * <code>ComponentPart</code> is the abstract base class for all WSDL 2.0 component
+ * fragment identifiers.
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public interface ComponentPart extends PointerPart {
+
+    /**
+     * Checks that the namespace prefixes used in this PointerPart are consistent with those in the WSDL Fragment Identifier.
+     * It returns a identical copy of this object with the required changes.
+     * This method is called by the add method on WSDL Fragment Identifier when PointerParts are added to it.
+     * 
+     * @param fragmentIdentifier a Fragment Identifier which the namespace prefixes are checked against.
+     * @return a ComponentPart which has been checked with changed namespaces if needed.
+     */
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier);
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/DescriptionPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/DescriptionPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/DescriptionPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/DescriptionPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,43 @@
+/**
+ * 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.wsdl20.fragids;
+
+
+/**
+ * <code>DescriptionPart</code> is a Description Pointer Part for the Description WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.description">http://www.w3.org/TR/wsdl20/#wsdl.description</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class DescriptionPart implements ComponentPart{
+
+    /**
+     * Returns a String of the serialised Description Pointer Part.
+     * 
+     * @return a String the serialised Description Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.description()";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ElementDeclarationPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ElementDeclarationPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ElementDeclarationPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ElementDeclarationPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,96 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.WSDLReader;
+
+import java.net.URI;
+
+/**
+ * <code>ElementDeclarationPart</code> is a Element Declaration Pointer Part for the Element Declaration WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.elementDeclaration">http://www.w3.org/TR/wsdl20/#wsdl.elementDeclaration</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class ElementDeclarationPart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private QName element;    //Name of the Element Declaration component.
+    private final URI system;       //Namespace absolute IRI of the extension type system used for the Element Declaration component.
+
+    /**
+     * Constructs a ElementDeclarationPart class for an Element Declaration component with an XMLScheme type system.
+     *
+     * @param element the name of the Element Declaration component.
+     * @param system namespace absolute IRI of the extension type system used for the Element Declaration component.
+     * @throws IllegalArgumentException if element or system are null.
+     */
+    public ElementDeclarationPart(QName element, URI system) {
+        if (element == null | system == null) {
+            throw new IllegalArgumentException();
+        }
+        this.element = element;
+        if (system.toString().equals(WSDLReader.TYPE_XSD_2001)) {
+            this.system = null;
+        } else {
+            this.system = system;
+        }
+    }
+    
+    /**
+     * Constructs a ElementDeclarationPart class for an Element Declaration component with another type system.
+     * 
+     * @param element the name of the Element Declaration component.
+     * @throws IllegalArgumentException if element is null.
+     */
+    public ElementDeclarationPart(QName element) {
+        if (element == null) {
+            throw new IllegalArgumentException();
+        }
+        this.element = element;
+        this.system = null;
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.woden.wsdl20.fragids.ComponentPart#prefixNamespaces(org.apache.woden.wsdl20.fragids.FragmentIdentifier)
+     */
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        if (system == null) {
+            return new ElementDeclarationPart(fragmentIdentifier.prefixQNameNamespace(element));
+        } else {
+            return new ElementDeclarationPart(fragmentIdentifier.prefixQNameNamespace(element), system);
+        }
+    }
+    
+    /**
+     * Returns a String of the serialised Element Declaration Pointer Part.
+     * 
+     * @return a String the serialised Element Declaration Pointer Part.
+     */
+    public String toString() {
+        String elementString = (element.getPrefix() != null && !element.getPrefix().equals(emptyString) ? element.getPrefix() + ":" + element.getLocalPart() : element.getLocalPart());
+        if (system == null) {
+            return "wsdl.elementDeclaration(" + elementString + ")";
+        } else {
+            return "wsdl.elementDeclaration(" + elementString + "," + system + ")";
+        }
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/EndpointPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/EndpointPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/EndpointPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/EndpointPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,61 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>EndpointPart</code> is a Endpoint Pointer Part for the Endpoint WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.endpoint">http://www.w3.org/TR/wsdl20/#wsdl.endpoint</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class EndpointPart implements ComponentPart {
+    private final NCName service;   //Local name of the parent Service component.
+    private final NCName endpoint;  //Name of the Endpoint component
+    
+    /**
+     * Constructs an EndpointPart class from the values given.
+     * 
+     * @param service the local name of the parent Service component.
+     * @param endpoint the name of the Endpoint component.
+     * @throws IllegalArgumentException if service or endpoint are null.
+     */
+    public EndpointPart(NCName service, NCName endpoint) {
+        if (service == null | endpoint == null) {
+            throw new IllegalArgumentException();
+        }
+        this.service = service;
+        this.endpoint = endpoint;
+    }
+    
+    /**
+     * Returns a String of the serialised Endpoint Pointer Part.
+     * 
+     * @return a String the serialised Endpoint Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.endpoint(" + service + "/" + endpoint + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ExtensionsPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ExtensionsPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ExtensionsPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ExtensionsPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,61 @@
+/**
+ * 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.wsdl20.fragids;
+
+import java.net.URI;
+
+
+/**
+ * <code>ExtensionPart</code> is a Extension Pointer Part for the Extension WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.extension">http://www.w3.org/TR/wsdl20/#wsdl.extension</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class ExtensionsPart implements ComponentPart {
+    private final URI namespace;        //Namespace IRI that identifies the Extension component.
+    private final String identifier;    //Defined by the extension.
+
+    /**
+     * Constructs a Extensions Part class for an Extension component with an XMLScheme type system.
+     * 
+     * @param namespace the namespace IRI that identifies the Extension component.
+     * @param identifier Defined by the extension.
+     * @throws IllegalArgumentException if namespace or identifier are null.
+     */
+    public ExtensionsPart(URI namespace, String identifier) {
+        if (namespace == null | identifier == null) {
+            throw new IllegalArgumentException();
+        }
+        this.namespace = namespace;
+        this.identifier = identifier;
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+
+    /**
+     * Returns a String of the serialised Extension Pointer Part.
+     * 
+     * @return a String the serialised Extension Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.extension(" + namespace + "/" + identifier + ")";
+    } 
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/FragmentIdentifier.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/FragmentIdentifier.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/FragmentIdentifier.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/FragmentIdentifier.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,115 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.types.NCName;
+import org.apache.woden.wsdl20.fragids.ComponentPart;
+import org.apache.woden.xpointer.XPointer;
+import org.apache.woden.xpointer.XmlnsPointerPart;
+
+/**
+ * This Class extends the XPointer class to work with WSDL fragment identifiers which are WSDL XPointer in effect.
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ * 
+ * TODO Add methods to find WSDL component from the FragmentIdentifier.
+ *      Add deserialisation code in a constructor with a String argument. (Pass this onto XPointer to do the work?)
+ *
+ */
+
+public class FragmentIdentifier {
+    private static XPointer xpointer;
+    
+    /**
+     * Constructs a new empty Fragment Identifier
+     * 
+     * @param wsdlPart The WSDL2.0 component pointer part for this fragment identifier.
+     * 
+     */
+    public FragmentIdentifier(ComponentPart wsdlPart) {
+        xpointer = new XPointer();
+        wsdlPart = wsdlPart.prefixNamespaces(this); //Prefix namespaces if needed.
+        xpointer.addPointerPart(wsdlPart);
+    }
+
+    /**
+     * Returns a String serialisation of this fragment identifier.
+     * 
+     * @return a String fragment identifier
+     */
+    public String toString() {
+        return xpointer.toString();
+    }
+    
+    /** Namespace management code **/
+    /**
+     * Returns the prefix for the Xml namespace of the QName in the XPointer.
+     * If the namespace does not have a prefix in the XPointer it will create a new prefix
+     * with the prefix from the QName or one of the form nsXX and add a xmlns Pointer Part, then return that.
+     * 
+     * @param qname The QName containing the namespace and a prefix.
+     * @return a NCName of the prefix for the namespace.
+     */
+    public NCName getXmlNamespacePrefix(QName qname) {
+        return getXmlNamespacePrefix(qname.getNamespaceURI());
+    }
+
+    /**
+     * Returns the prefix for the Xml namespace in the XPointer.
+     * If the namespace does not have a prefix in the XPointer it will create a new prefix
+     * of the form nsXX and add a xmlns Pointer Part, then return that.
+     * 
+     * @param namespace The namespace to get the prefix for.
+     * @return a NCName of the prefix for the namespace.
+     */
+    public NCName getXmlNamespacePrefix(String namespace) {
+        //Lookup prefix
+        NCName prefix = (NCName)xpointer.getNamespaceBinding(namespace);
+        if (prefix == null) {
+            //The namespace does not have a prefix yet so lets add one.
+            //Find next available nsXXX prefix
+            int i = 1;
+            do {
+                prefix = new NCName("ns" + i);
+                i++;
+            } while (xpointer.hasPrefixBinding(prefix));
+            
+            //Add prefix pointer part.
+            xpointer.addPointerPart(new XmlnsPointerPart(prefix, namespace));
+            
+            //Add to our binding contex. 
+            xpointer.addPrefixNamespaceBinding(prefix, namespace);
+        }
+        return prefix;
+    }
+    
+    /**
+     * Returns a QName prefixed from the map of local namespaces and prefixes.
+     * The namespace and localpart remain unchanged.
+     * 
+     * @param qname the QName used to lookup the namespace and copy.
+     * @return a QName with the new prefix, but same namespace and localpart.
+     */
+    public QName prefixQNameNamespace(QName qname) {
+        //Get prefix for the fault QName in the XPointer.
+        NCName prefix = getXmlNamespacePrefix(qname);
+        return new QName(qname.getNamespaceURI(), qname.getLocalPart(), prefix.toString());
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,61 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>InterfaceFaultPart</code> is a Interface Fault Pointer Part for the Interface Fault WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.interfaceFault">http://www.w3.org/TR/wsdl20/#wsdl.interfaceFault</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class InterfaceFaultPart implements ComponentPart {
+    private final NCName interfaceName; //Local name of the parent Interface component.
+    private final NCName fault;         //Local name of the Interface Fault component.
+    
+    /**
+     * Constructs a InterfaceFaultPart class from the values given.
+     * 
+     * @param interfaceName the local name of the parent Interface component.
+     * @param fault the name of the Interface Fault component.
+     * @throws IllegalArgumentException if interfaceName or fault are null.
+     */
+    public InterfaceFaultPart(NCName interfaceName, NCName fault) {
+        if (interfaceName == null | fault == null) {
+            throw new IllegalArgumentException();
+        }
+        this.interfaceName = interfaceName;
+        this.fault = fault;
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Fault Pointer Part.
+     * 
+     * @return a String the serialised Binding Fault Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.interfaceFault(" + interfaceName + "/" + fault + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultReferencePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultReferencePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultReferencePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceFaultReferencePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,69 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>InterfaceFaultReferencePart</code> is a Interface Fault Reference Pointer Part for the Interface Fault Reference WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.interfaceFaultReference">http://www.w3.org/TR/wsdl20/#wsdl.interfaceFaultReference</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class InterfaceFaultReferencePart implements ComponentPart {
+    private static final String emptyString = "".intern();
+    private final NCName interfaceName; //Local name of the parent Interface component.
+    private final NCName operation;      //Name of the parent Interface Operation component.
+    private final NCName message;       //Message Label of the Interface Fault Reference component.
+    private QName fault;          //Name of the Interface Fault component referred to by the Interface Fault Reference component.
+    
+    /**
+     * Constructs a InterfaceFaultReferencePart class from the values given.
+     * 
+     * @param interfaceName the local name of the parent Interface component.
+     * @param operation the name of the parent Interface Operation component.
+     * @param message the message label of the Interface Fault Reference component.
+     * @param fault the name of the Interface Fault component referred to by the Interface Fault Reference component.
+     * @throws IllegalArgumentException if interfaceName, operation, message or fault are null.
+     */
+    public InterfaceFaultReferencePart(NCName interfaceName, NCName operation, NCName message, QName fault) {
+        if (interfaceName == null | operation == null | message == null | fault == null) {
+            throw new IllegalArgumentException();
+        }
+        this.interfaceName = interfaceName;
+        this.operation = operation;
+        this.message = message;
+        this.fault = fault;
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return new InterfaceFaultReferencePart(interfaceName, operation, message, fragmentIdentifier.prefixQNameNamespace(fault));
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Fault Reference Pointer Part.
+     * 
+     * @return a String the serialised Binding Fault Reference Pointer Part.
+     */
+    public String toString() {
+        String faultString = (fault.getPrefix() != null && !fault.getPrefix().equals(emptyString) ? fault.getPrefix() + ":" + fault.getLocalPart() : fault.getLocalPart());
+        return "wsdl.interfaceFaultReference(" + interfaceName + "/" + operation + "/" + message + "/" + faultString + ")";
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceMessageReferencePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceMessageReferencePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceMessageReferencePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceMessageReferencePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,64 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>InterfaceMessageReferencePart</code> is a Interface Message Reference Pointer Part for the Interface Message Reference WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.interfaceMessageReference">http://www.w3.org/TR/wsdl20/#wsdl.interfaceMessageReference</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class InterfaceMessageReferencePart implements ComponentPart{
+    private final NCName interfaceName; //Local name of the parent Interface component.
+    private final NCName operation;     //Name of the parent Interface Operation component.
+    private final NCName message;       //Message Label of the Interface Message Reference component.
+    
+    /**
+     * Constructs a InterfaceMessageReferencePart class from the values given.
+     * 
+     * @param interfaceName the local name of the parent Interface component.
+     * @param operation the name of the parent Interface Operation component.
+     * @param message the message label of the Interface Message Reference component.
+     * @throws IllegalArgumentException if interfaceName, operation or message are null.
+     */
+    public InterfaceMessageReferencePart(NCName interfaceName, NCName operation, NCName message) {
+        if (interfaceName == null | operation == null | message == null) {
+            throw new IllegalArgumentException();
+        }
+        this.interfaceName = interfaceName;
+        this.operation = operation;
+        this.message = message;
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Message Reference Pointer Part.
+     * 
+     * @return a String the serialised Binding Message Reference Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.interfaceMessageReference(" + interfaceName + "/" + operation + "/" + message + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceOperationPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceOperationPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceOperationPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfaceOperationPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,60 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>InterfaceOperationPart</code> is a Interface Operation Pointer Part for the Interface Operation WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.interfaceOperation">http://www.w3.org/TR/wsdl20/#wsdl.interfaceOperation</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class InterfaceOperationPart implements ComponentPart {
+    private final NCName interfaceName; //Local name of the parent Interface component.
+    private final NCName operation;     //Local name of the Interface Operation component.
+    
+    /**
+     * Constructs a InterfaceOperationPart class from the values given.
+     * 
+     * @param interfaceName the local name of the parent Interface component.
+     * @param operation the local name of the Interface Operation component.
+     * @throws IllegalArgumentException if interfaceName or operation are null.
+     */
+    public InterfaceOperationPart(NCName interfaceName, NCName operation) {
+        if (interfaceName == null | operation == null) {
+            throw new IllegalArgumentException();
+        }
+        this.interfaceName = interfaceName;
+        this.operation = operation;
+    }
+    
+    /**
+     * Returns a String of the serialised Binding Operation Pointer Part.
+     * 
+     * @return a String the serialised Binding Operation Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.interfaceOperation(" + interfaceName + "/" + operation + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfacePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfacePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfacePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/InterfacePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,57 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>InterfacePart</code> is a Interface Pointer Part for the Interface WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.interface">http://www.w3.org/TR/wsdl20/#wsdl.interface</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class InterfacePart implements ComponentPart {
+    private final NCName interfaceName;     //Local name of the parent Interface component.
+
+    /**
+     * Constructs a InterfacePart class from the value given.
+     * 
+     * @param interfaceName the local name of the Interface component.
+     * @throws IllegalArgumentException if interfaceName is null.
+     */
+    public InterfacePart(NCName interfaceName) {
+        if (interfaceName == null) {
+            throw new IllegalArgumentException();
+        }
+        this.interfaceName = interfaceName;
+    }
+    
+    /**
+     * Returns a String of the serialised Interface Pointer Part.
+     * 
+     * @return a String the serialised Interface Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.interface(" + interfaceName + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ServicePart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ServicePart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ServicePart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/ServicePart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,58 @@
+/**
+ * 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.wsdl20.fragids;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * <code>ServicePart</code> is a Service Pointer Part for the Service WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.service">http://www.w3.org/TR/wsdl20/#wsdl.service</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class ServicePart implements ComponentPart {
+    private final NCName service; //Local name of the Service component.
+    
+    /**
+     * Constructs an ServicePart class from the value given.
+     * 
+     * @param service the local name of the Service component.
+     * @throws IllegalArgumentException if service is null.
+     */
+    public ServicePart(NCName service) {
+        if (service == null) {
+            throw new IllegalArgumentException();
+        }
+        this.service = service;
+    }
+    
+    /**
+     * Returns a String of the serialised Service Pointer Part.
+     * 
+     * @return a String the serialised Service Pointer Part.
+     */
+    public String toString() {
+        return "wsdl.service(" + service + ")";
+    }
+    
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        return this;
+    }
+
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/TypeDefinitionPart.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/TypeDefinitionPart.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/TypeDefinitionPart.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/fragids/TypeDefinitionPart.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,92 @@
+/**
+ * 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.wsdl20.fragids;
+
+import javax.xml.namespace.QName;
+
+
+import java.net.URI;
+
+/**
+ * <code>TypeDefinitionPart</code> is a Type Definition Pointer Part for the Type Definition WSDL 2.0 component.
+ * See the specification at <a href="http://www.w3.org/TR/wsdl20/#wsdl.typeDefinition">http://www.w3.org/TR/wsdl20/#wsdl.typeDefinition</a>
+ * 
+ * @author Dan Harvey (danharvey42@gmail.com)
+ *
+ */
+public class TypeDefinitionPart implements ComponentPart{
+    private static final String emptyString = "".intern();
+    private QName type;   //Name of the Type Definition component.
+    private final URI system;   //Namespace absolute IRI of the extension type system used for the Type Definition component.
+
+    /**
+     * Constructs a TypeDefinitionPart class for an Type Definition component with an XMLScheme type system.
+     * 
+     * @param type the name of the Type Definition component.
+     * @param system namespace absolute IRI of the extension type system used for the Type Definition component.
+     * @throws IllegalArgumentException if type or system are null.
+     */
+    public TypeDefinitionPart(QName type, URI system) {
+        if (type == null | system == null) {
+            throw new IllegalArgumentException();
+        }
+        this.type = type;
+        this.system = system;
+    }
+    
+    /**
+     * Constructs an TypeDefinitionPart class for an Type Definition component with another type system.
+     * 
+     * @param type the name of the Definition component.
+     * @throws IllegalArgumentException if type is null.
+     */
+    public TypeDefinitionPart(QName type) {
+        if (type == null) {
+            throw new IllegalArgumentException();
+        }
+        this.type = type;
+        this.system = null;
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.woden.wsdl20.fragids.ComponentPart#prefixNamespaces(org.apache.woden.wsdl20.fragids.FragmentIdentifier)
+     */
+    public ComponentPart prefixNamespaces(FragmentIdentifier fragmentIdentifier) {
+        if (system == null) {
+            return new TypeDefinitionPart(fragmentIdentifier.prefixQNameNamespace(type));
+        } else {
+            return new TypeDefinitionPart(fragmentIdentifier.prefixQNameNamespace(type), system);
+        }
+    }
+    
+    /**
+     * Returns a String of the serialised Type Definition Pointer Part.
+     * 
+     * @return a String the serialised Type Definition Pointer Part.
+     */
+    public String toString() {
+        String typeString = (type.getPrefix() != null && !type.getPrefix().equals(emptyString) ? type.getPrefix() + ":" + type.getLocalPart() : type.getLocalPart());
+        if (system == null) {
+            return "wsdl.typeDefinition(" + typeString + ")";
+        } else {
+            return "wsdl.typeDefinition(" + typeString + "," + system + ")";
+        }
+    }
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/Assertion.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/Assertion.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/Assertion.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/Assertion.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,54 @@
+/**
+ * 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.wsdl20.validation;
+
+import org.apache.woden.WSDLException;
+
+
+/**
+ * Represents an assertion about the WSDL document or component model.
+ * This assertion may be defined by the WSDL 2.0 specification or by
+ * a WSDL extension specification.
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ *
+ */
+public interface Assertion {
+    
+    /**
+     * Return the assertion identifier. 
+     * For example, "Description-1001".
+     * The WSDL 2.0 specification defines assertion ids for the WSDL infoset and
+     * component model and for the extensions defined in Part 2: Adjuncts
+     * (wsdlx, wrpc, wsoap, whttp).
+     * Providers of other extensions must define unique identifiers for their 
+     * assertions.
+     * 
+     * @return the String representing the ID of this assertion.
+     */
+    public String getId();
+    
+    /**
+     * Validates the specified WSDL object against this assertion.
+     * 
+     * @param target the WSDL object that is the target of the assertion
+     * @param wodenCtx WodenContext containing helper objects useful to 
+     * Assertion implementors
+     */
+    public void validate(Object target, WodenContext wodenCtx) throws WSDLException;
+
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/AssertionInfo.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/AssertionInfo.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/AssertionInfo.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/AssertionInfo.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,43 @@
+/**
+ * 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.wsdl20.validation;
+
+
+
+/**
+ * Represents an immutable object containing the information about an assertion 
+ * which is needed to perform WSDL validation. 
+ * This information consists of the Assertion object and the target Class
+ * for the WSDL component that this assertion applies to.
+ * <p>
+ * TODO assertion dependencies to be added later.
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ *
+ */
+public class AssertionInfo {
+
+    public final Assertion assertion;
+    public final Class targetClass;
+    //TODO private List dependencies;
+    
+    public AssertionInfo(Assertion assertion, Class targetClass) {
+        this.assertion = assertion;
+        this.targetClass = targetClass;
+    }
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/WodenContext.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/WodenContext.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/WodenContext.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/validation/WodenContext.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,36 @@
+/**
+ * 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.wsdl20.validation;
+
+import org.apache.woden.ErrorReporter;
+import org.apache.woden.resolver.URIResolver;
+
+/**
+ * Represents a container of 'helper' objects which can be used
+ * by Assertion implementors
+ * <p>
+ * TODO consider moving this to org.apache.woden package for general use by all Woden framework extension points (ser/deserializers, assertions, BaseCompExtCtx, ExtReg subclasses, XMLAttr impls)
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ *
+ */
+public interface WodenContext {
+
+    public ErrorReporter getErrorReporter();
+    
+    public URIResolver getUriResolver();
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingElement.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingElement.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingElement.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingElement.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,141 @@
+/**
+ * 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.wsdl20.xml;
+
+import java.net.URI;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * Represents the WSDL 2.0 &lt;binding&gt; element.
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ */
+public interface BindingElement extends DocumentableElement,
+                                        NestedElement
+{
+    /*
+     * Attributes
+     */
+
+    /**
+     * Set the name of this BindingElement to the specified NCName. 
+     * This corresponds to the <code>name</code> attribute of the &lt;binding&gt; element.
+     * 
+     * @param name the NCName that represents this binding.
+     */
+    public void setName(NCName name);
+    
+    /**
+     * Return the qualified name of this BindingElement, which consists of its
+     * local name and the targetNamespace of the parent DescriptionElement.
+     * 
+     * @return the binding QName
+     */
+    public QName getName();
+    
+    /**
+     * Specify the name of the InterfaceElement referred to by this BindingElement.
+     * This corresponds to the <code>interface</code> attribute of the &lt;binding&gt; element.
+     * 
+     * @param interfaceName the QName of the interface
+     */
+    public void setInterfaceName(QName interfaceName);
+    
+    /**
+     * Return the name of the InterfaceElement referred to by this BindingElement.
+     * This corresponds to the <code>interface</code> attribute of the &lt;binding&gt; element.
+     * 
+     * @return the interface QName
+     */
+    public QName getInterfaceName();
+    
+    /**
+     * Return the InterfaceElement referred to by this BindingElement. 
+     * This equates to the &lt;interface&gt; element referred to by the <code>interface</code> 
+     * attribute of the &lt;binding&gt; element.
+     * If this reference cannot be resolved to an InterfaceElement or if this BindingElement
+     * is a generic (interface-less) binding, this method will return null.
+     * 
+     * @return the InterfaceElement
+     */
+    public InterfaceElement getInterfaceElement();
+    
+    /**
+     * Set the binding type to the specified URI. 
+     * This identifies the type of WSDL extensions used with this binding.
+     * This corresponds to the <code>type</code> attribute of the &lt;binding&gt; element.
+     * 
+     * @param type the URI indicating the binding type
+     */
+    public void setType(URI type);
+    
+    /**
+     * Return the URI that identifies the binding type.
+     * This corresponds to the <code>type</code> attribute of the &lt;binding&gt; element.
+     * 
+     * @return the binding type URI
+     */
+    public URI getType();
+    
+    /*
+     * Elements
+     */
+    
+    /**
+     * Create a BindingFaultElement with this BindingElement as its parent and
+     * return a reference to it.
+     * This equates to adding a &lt;fault&gt; element to the &lt;binding&gt; element.
+     * 
+     * @return the BindingFaultElement
+     */
+    public BindingFaultElement addBindingFaultElement();
+    
+    /**
+     * Return the set of BindingFaultElements within this BindingElement.
+     * This equates to the set of &lt;fault&gt; elements within the &lt;binding&gt; element.
+     * If no BindingFaultElements exist, an empty array is returned.
+     * 
+     * @return an array of BindingFaultElement
+     */
+    public BindingFaultElement[] getBindingFaultElements();
+    
+    //TODO removeBindingFaultElement method
+    
+    /**
+     * Create a BindingOperationElement with this BindingElement as its parent and
+     * return a reference to it.
+     * This equates to adding an &lt;operation&gt; element to the &lt;binding&gt; element.
+     * 
+     * @return the BindingOperationElement
+     */
+    public BindingOperationElement addBindingOperationElement();
+    
+    /**
+     * Return the set of BindingOperationElements within this BindingElement
+     * This equates to the set of &lt;operation&gt; elements within the &lt;binding&gt; element.
+     * If no BindingOperationElements exist, an empty array is returned.
+     * 
+     * @return an array of BindingOperationElement
+     */
+    public BindingOperationElement[] getBindingOperationElements();
+    
+    //TODO removeBindingOperationElement method
+    
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultElement.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultElement.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultElement.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultElement.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,57 @@
+/**
+ * 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.wsdl20.xml;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Represents the WSDL 2.0 &lt;fault&gt; element, declared as a child
+ * of the &lt;binding&gt; element. 
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ */
+public interface BindingFaultElement extends DocumentableElement,
+                                             NestedElement
+{
+    /**
+     * Specify the name of the InterfaceFaultElement referred to by this BindingFaultElement.
+     * The specified QName corresponds to the <code>ref</code> attribute of the binding 
+     * &lt;fault&gt; element.
+     *
+     * @param faultName the QName of the interface fault
+     */
+    public void setRef(QName faultName);
+    
+    /**
+     * Return the name of the InterfaceFaultElement referred to by this BindingFaultElement.
+     * This corresponds to the <code>ref</code> attribute of the binding &lt;fault&gt; element.
+     * 
+     * @return the QName of the interface fault
+     */
+    public QName getRef();
+    
+    /**
+     * Return the InterfaceFaultElement referred to by this BindingFaultElement.
+     * This equates to the interface &lt;fault&gt; element referred to by the
+     * <code>ref</code> attribute of the binding &lt;fault&gt; element.
+     * If this reference cannot be resolved to an InterfaceFaultElement, this method will
+     * return null.
+     * 
+     * @return the InterfaceFaultElement
+     */
+    public InterfaceFaultElement getInterfaceFaultElement();
+}

Added: webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultReferenceElement.java
URL: http://svn.apache.org/viewvc/webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultReferenceElement.java?rev=809835&view=auto
==============================================================================
--- webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultReferenceElement.java (added)
+++ webservices/woden/trunk/java/woden-api/src/main/java/org/apache/woden/wsdl20/xml/BindingFaultReferenceElement.java Tue Sep  1 05:54:15 2009
@@ -0,0 +1,79 @@
+/**
+ * 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.wsdl20.xml;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.types.NCName;
+
+/**
+ * Represents the WSDL 2.0 &lt;infault&gt; and &lt;outfault&gt; elements, 
+ * declared as child elements of the binding &lt;operation&gt; element. 
+ * 
+ * @author John Kaputin (jkaputin@apache.org)
+ */
+public interface BindingFaultReferenceElement extends DocumentableElement,
+                                                      NestedElement 
+{
+    /**
+     * Specify the name of the InterfaceFaultReferenceElement referred to by this 
+     * BindingFaultReferenceElement.
+     * The specified QName corresponds to the <code>ref</code> attribute of the binding operation
+     * &lt;infault&gt; or &lt;outfault&gt; element.
+     *
+     * @param faultRefName the QName of the interface fault reference.
+     */
+    public void setRef(QName faultRefName);
+    
+    /**
+     * Return the name of the InterfaceFaultReferenceElement referred to by this 
+     * BindingFaultReferenceElement.
+     * This corresponds to the <code>ref</code> attribute of the binding operation 
+     * &lt;infault&gt; or &lt;outfault&gt; element.
+     * 
+     * @return the QName of the interface fault reference
+     */
+    public QName getRef();
+    
+    /**
+     * Return the InterfaceFaultReferenceElement referred to by this BindingFaultReferenceElement.
+     * This equates to an &lt;infault&gt; or &lt;outfault&gt; element of the interface operation being
+     * bound whose message label is equal to the effective message label of this binding fault
+     * reference and whose associated interface fault is identified by the <code>ref</code> attribute
+     * if this binding fault reference.
+     * If such an element does not exist, this method will return null.
+     * 
+     * @return the InterfaceFaultReferenceElement
+     */
+    public InterfaceFaultReferenceElement getInterfaceFaultReferenceElement();
+    
+    /**
+     * Set the message label to the specified NCName. This corresponds to a placeholder message
+     * in the message exchange pattern specified by the parent binding &lt;operation&gt; element.
+     * 
+     * @param msgLabel the NCName representing the message label
+     */
+    public void setMessageLabel(NCName msgLabel);
+    
+    /**
+     * Return the NCName representing the message label. This corresponds to a placeholder message
+     * in the message exchange pattern specified by the parent binding &lt;operation&gt; element.
+     * 
+     * @return NCName the message label
+     */
+    public NCName getMessageLabel();
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org