[295348] [validation] Definition level extensibility elements are not validated
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java index fb06c57..7c36a27 100644 --- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java +++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
@@ -108,7 +108,14 @@ validateBindings(wsdlDefinition, valInfo); validatePortTypes(wsdlDefinition, valInfo); validateMessages(wsdlDefinition, valInfo); + + // The parents list is expected to be empty here, so simply add the definition + // being validated to the parents list, validate its extensibility elements, + // then remove it. + + parents.add(wsdlDefinition); validateExtensibilityElementList(parents, wsdlDefinition.getExtensibilityElements(), valInfo); + parents.remove(0); } /**
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java index 7ebbeb0..15491bb 100644 --- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java +++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
@@ -14,6 +14,7 @@ import java.util.List; +import javax.wsdl.extensions.ElementExtensible; import javax.wsdl.extensions.ExtensibilityElement; import javax.xml.namespace.QName; @@ -36,6 +37,11 @@ QName elementType = extensibilityElement.getElementType(); String namespaceURI = elementType.getNamespaceURI(); + if (parents.isEmpty() || !(parents.get(0) instanceof ElementExtensible)) + { + valInfo.addWarning("The current parent is expected to have extensibility elements.", element); //$NON-NLS-1$ + } + if (NS_URI.equals(namespaceURI)) { valInfo.addWarning("The test extensions validator got called.", element); //$NON-NLS-1$