xerces-j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Anderson (JIRA)" <xerces-j-...@xml.apache.org>
Subject [jira] [Commented] (XERCESJ-1510) XML Schema Validation ignores parent any declaration
Date Tue, 24 May 2011 18:34:48 GMT

    [ https://issues.apache.org/jira/browse/XERCESJ-1510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038707#comment-13038707
] 

Aaron Anderson commented on XERCESJ-1510:
-----------------------------------------

The type hierarchy of the definitions element that contains the partnerLinkType WSDL extension
is as follows from the WSDL (unrelated elements removed for brevity):

<xs:element name="definitions" type="wsdl:tDefinitions">
...
</xs:element>

<xs:complexType name="tDefinitions">
<xs:complexContent>
<xs:extension base="wsdl:tExtensibleDocumented">
...
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="tExtensibleDocumented" abstract="true">
<xs:complexContent>
<xs:extension base="wsdl:tDocumented">
...
<xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="tDocumented">
...
</xs:complexType>

Since tDefinitions extends tExtensibleDocumented which allows for sequences of any elements
I believe the invalid content error message is incorrect.

> XML Schema Validation ignores parent any declaration
> ----------------------------------------------------
>
>                 Key: XERCESJ-1510
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1510
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: JAXP (javax.xml.validation)
>    Affects Versions: 2.11.0
>            Reporter: Aaron Anderson
>
> I am attempting to validate a WSDL document that contains an extension. According to
the WSDL schema the definitions type parent allows the any wildcard definition. However, during
validation, the extention element is reported as being invalid. I enabled debugging on the
org.apache.xerces.impl.xs.models.XSDFACM class to try to troubleshoot the problem.
> package xercestest;
> import java.net.URL;
> import javax.xml.XMLConstants;
> import javax.xml.transform.stream.StreamSource;
> import javax.xml.validation.Schema;
> import javax.xml.validation.SchemaFactory;
> import javax.xml.validation.Validator;
> public class XercesTest {
>     public static void main(String[] args) {
>         try {
>             SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
>             StreamSource src = new StreamSource(new URL("http://schemas.xmlsoap.org/wsdl/").openStream());
>             Schema schema = sf.newSchema(src);
>             Validator validator = schema.newValidator();
>             src = new StreamSource(new URL("http://svn.apache.org/repos/asf/ode/trunk/bpel-test/src/test/resources/bpel/2.0/HelloWorld2//HelloWorld2.wsdl").openStream());
>             validator.validate(src);
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> }
> run:
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Any Node: firstPos={ 0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 0ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 0ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 0ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Any Node: firstPos={ 1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 0ms
> Seq Node firstPos={ 0 1 2 3 4 5 6 7 8 } lastPos={ 8 }
>    Seq Node Nullable firstPos={ 0 1 2 3 4 5 6 7 } lastPos={ 0 1 2 3 4 5 6 7 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Rep Node Nullable firstPos={ 2 3 4 5 6 7 } lastPos={ 2 3 4 5 6 7 }
>          Choice Node firstPos={ 2 3 4 5 6 7 } lastPos={ 2 3 4 5 6 7 }
>             Choice Node firstPos={ 2 3 4 5 6 } lastPos={ 2 3 4 5 6 }
>                Choice Node firstPos={ 2 3 4 5 } lastPos={ 2 3 4 5 }
>                   Choice Node firstPos={ 2 3 4 } lastPos={ 2 3 4 }
>                      Choice Node firstPos={ 2 3 } lastPos={ 2 3 }
>                         Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":import)
firstPos={ 2 } lastPos={ 2 }
>                         Leaf: (pos=3), (elemIndex="http://schemas.xmlsoap.org/wsdl/":types)
firstPos={ 3 } lastPos={ 3 }
>                      Leaf: (pos=4), (elemIndex="http://schemas.xmlsoap.org/wsdl/":message)
firstPos={ 4 } lastPos={ 4 }
>                   Leaf: (pos=5), (elemIndex="http://schemas.xmlsoap.org/wsdl/":portType)
firstPos={ 5 } lastPos={ 5 }
>                Leaf: (pos=6), (elemIndex="http://schemas.xmlsoap.org/wsdl/":binding)
firstPos={ 6 } lastPos={ 6 }
>             Leaf: (pos=7), (elemIndex="http://schemas.xmlsoap.org/wsdl/":service) firstPos={
7 } lastPos={ 7 }
>    Leaf: (pos=8), (elemIndex=null) firstPos={ 8 } lastPos={ 8 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Any Node: firstPos={ 1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 2 3 } lastPos={ 3 }
>    Seq Node Nullable firstPos={ 0 1 2 } lastPos={ 0 1 2 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Rep Node Nullable firstPos={ 2 } lastPos={ 2 }
>          Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":part) firstPos={
2 } lastPos={ 2 }
>    Leaf: (pos=3), (elemIndex=null) firstPos={ 3 } lastPos={ 3 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Leaf: (pos=1), (elemIndex="http://schemas.xmlsoap.org/wsdl/":operation) firstPos={
1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 16ms
> Seq Node firstPos={ 0 1 2 5 } lastPos={ 8 }
>    Seq Node firstPos={ 0 1 2 5 } lastPos={ 2 3 4 5 6 7 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Choice Node firstPos={ 2 5 } lastPos={ 2 3 4 5 6 7 }
>          Seq Node firstPos={ 2 } lastPos={ 2 3 4 }
>             Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":input) firstPos={
2 } lastPos={ 2 }
>             Rep Node Nullable firstPos={ 3 } lastPos={ 3 4 }
>                Seq Node firstPos={ 3 } lastPos={ 3 4 }
>                   Leaf: (pos=3), (elemIndex="http://schemas.xmlsoap.org/wsdl/":output)
firstPos={ 3 } lastPos={ 3 }
>                   Rep Node Nullable firstPos={ 4 } lastPos={ 4 }
>                      Leaf: (pos=4), (elemIndex="http://schemas.xmlsoap.org/wsdl/":fault)
firstPos={ 4 } lastPos={ 4 }
>          Seq Node firstPos={ 5 } lastPos={ 5 6 7 }
>             Leaf: (pos=5), (elemIndex="http://schemas.xmlsoap.org/wsdl/":output) firstPos={
5 } lastPos={ 5 }
>             Rep Node Nullable firstPos={ 6 } lastPos={ 6 7 }
>                Seq Node firstPos={ 6 } lastPos={ 6 7 }
>                   Leaf: (pos=6), (elemIndex="http://schemas.xmlsoap.org/wsdl/":input)
firstPos={ 6 } lastPos={ 6 }
>                   Rep Node Nullable firstPos={ 7 } lastPos={ 7 }
>                      Leaf: (pos=7), (elemIndex="http://schemas.xmlsoap.org/wsdl/":fault)
firstPos={ 7 } lastPos={ 7 }
>    Leaf: (pos=8), (elemIndex=null) firstPos={ 8 } lastPos={ 8 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation) firstPos={
0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 2 3 } lastPos={ 3 }
>    Seq Node Nullable firstPos={ 0 1 2 } lastPos={ 0 1 2 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Rep Node Nullable firstPos={ 2 } lastPos={ 2 }
>          Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":operation) firstPos={
2 } lastPos={ 2 }
>    Leaf: (pos=3), (elemIndex=null) firstPos={ 3 } lastPos={ 3 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Any Node: firstPos={ 1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Any Node: firstPos={ 1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 31ms
> Seq Node firstPos={ 0 1 2 3 4 5 } lastPos={ 5 }
>    Seq Node Nullable firstPos={ 0 1 2 3 4 } lastPos={ 0 1 2 3 4 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Seq Node Nullable firstPos={ 2 3 4 } lastPos={ 2 3 4 }
>          Seq Node Nullable firstPos={ 2 3 } lastPos={ 2 3 }
>             Rep Node Nullable firstPos={ 2 } lastPos={ 2 }
>                Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":input) firstPos={
2 } lastPos={ 2 }
>             Rep Node Nullable firstPos={ 3 } lastPos={ 3 }
>                Leaf: (pos=3), (elemIndex="http://schemas.xmlsoap.org/wsdl/":output) firstPos={
3 } lastPos={ 3 }
>          Rep Node Nullable firstPos={ 4 } lastPos={ 4 }
>             Leaf: (pos=4), (elemIndex="http://schemas.xmlsoap.org/wsdl/":fault) firstPos={
4 } lastPos={ 4 }
>    Leaf: (pos=5), (elemIndex=null) firstPos={ 5 } lastPos={ 5 }
> DFA build: 47ms
> Seq Node firstPos={ 0 1 2 3 } lastPos={ 3 }
>    Seq Node Nullable firstPos={ 0 1 2 } lastPos={ 0 1 2 }
>       Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>          Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>             Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>          Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>             Any Node: firstPos={ 1 } lastPos={ 1 }
>       Rep Node Nullable firstPos={ 2 } lastPos={ 2 }
>          Leaf: (pos=2), (elemIndex="http://schemas.xmlsoap.org/wsdl/":port) firstPos={
2 } lastPos={ 2 }
>    Leaf: (pos=3), (elemIndex=null) firstPos={ 3 } lastPos={ 3 }
> DFA build: 47ms
> Seq Node firstPos={ 0 1 2 } lastPos={ 2 }
>    Seq Node Nullable firstPos={ 0 1 } lastPos={ 0 1 }
>       Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>          Leaf: (pos=0), (elemIndex="http://schemas.xmlsoap.org/wsdl/":documentation)
firstPos={ 0 } lastPos={ 0 }
>       Rep Node Nullable firstPos={ 1 } lastPos={ 1 }
>          Any Node: firstPos={ 1 } lastPos={ 1 }
>    Leaf: (pos=2), (elemIndex=null) firstPos={ 2 } lastPos={ 2 }
> DFA build: 47ms
> Seq Node firstPos={ 0 1 } lastPos={ 1 }
>    Rep Node Nullable firstPos={ 0 } lastPos={ 0 }
>       Any Node: firstPos={ 0 } lastPos={ 0 }
>    Leaf: (pos=1), (elemIndex=null) firstPos={ 1 } lastPos={ 1 }
> DFA build: 47ms
> org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting
with element 'plnk:partnerLinkType'. One of '{"http://schemas.xmlsoap.org/wsdl/":import, "http://schemas.xmlsoap.org/wsdl/":types,
"http://schemas.xmlsoap.org/wsdl/":message, "http://schemas.xmlsoap.org/wsdl/":portType, "http://schemas.xmlsoap.org/wsdl/":binding,
"http://schemas.xmlsoap.org/wsdl/":service}' is expected.
>         at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196)
>         at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:132)
>         at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:394)
>         at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
>         at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:282)
>         at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:481)
>         at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3571)
>         at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1982)
>         at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:788)
>         at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:283)
>         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
>         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
>         at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:875)
>         at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:798)
>         at org.apache.xerces.jaxp.validation.StreamValidatorHelper.validate(StreamValidatorHelper.java:186)
>         at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:129)
>         at javax.xml.validation.Validator.validate(Validator.java:127)
>         at xercestest.XercesTest.main(XercesTest.java:34)
> BUILD SUCCESSFUL (total time: 0 seconds)
> In the oneTransition method of the XSDFACM class if the fTransTable contains a -1 one
the element is skipped. In the table below fTranTable[2][1] corresponds to the parent any
definition which is why the content is being reported as being invalid.
> fTransTable
> 0  1,1,2,2,2,2,2,2
> 1  -1,1,2,2,2,2,2,2
> 2  -1,-1,2,2,2,2,2,2
>  Unfortunately I don't fully understand the DFA table generation code fully so I cannot
suggest a patch.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

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


Mime
View raw message