P
Patrick Brunmayr
Hello
I have a big Problem with validating a Soap Envelope. I have
downloaded the xsd for a soap envelope from http://schemas.xmlsoap.org/soap/envelope/
The validation succeeds as lonng as i don't use elements in body with
a xsi:type attribute!
The Problem is that foo
erson is an abstract type and foo:driver is
dervived from it. So using a foo
erson is not allowed until specifing
the type of person per xsi:type. The below example demonstrates this
problem. When i try to validate this with the saxonica validator
following error occurs
Validation error on line 6 column 60 of test xml:
Unknown type {foo:driver} specified in xsi:type attribute SAXON
8.9.0.3 from Saxonica validate complete
The definition of of sopa body says
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"
processContents="lax"/>
</xs:sequence>
So when elements from other namespacas are found, try to find a schema
defintion otherwise don't care
In my example there is no schema defintion for "foo:driver" because
the soap schema can not know about the schema where "foo:driver" is
defined! I have no possibility at this stage of validation to include
the schema defintion for those types. I need the xsi:type attribute
coz the sopa body elements will be validatet at later stage. Dont
specfifing the xsi:type attribute whill pass the soap envelope
validation but not thr later body elements validation! How can i solve
this
My Sample Soap Request
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://
www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
envelope11.xsd">
<env:Header/>
<env:Body>
<foo
erson xmlns:foo="http://foo" xsi:type="foo:driver">
</foo
erson>
</env:Body>
</env:Envelope>
I have a big Problem with validating a Soap Envelope. I have
downloaded the xsd for a soap envelope from http://schemas.xmlsoap.org/soap/envelope/
The validation succeeds as lonng as i don't use elements in body with
a xsi:type attribute!
The Problem is that foo
dervived from it. So using a foo
the type of person per xsi:type. The below example demonstrates this
problem. When i try to validate this with the saxonica validator
following error occurs
Validation error on line 6 column 60 of test xml:
Unknown type {foo:driver} specified in xsi:type attribute SAXON
8.9.0.3 from Saxonica validate complete
The definition of of sopa body says
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"
processContents="lax"/>
</xs:sequence>
So when elements from other namespacas are found, try to find a schema
defintion otherwise don't care
In my example there is no schema defintion for "foo:driver" because
the soap schema can not know about the schema where "foo:driver" is
defined! I have no possibility at this stage of validation to include
the schema defintion for those types. I need the xsi:type attribute
coz the sopa body elements will be validatet at later stage. Dont
specfifing the xsi:type attribute whill pass the soap envelope
validation but not thr later body elements validation! How can i solve
this
My Sample Soap Request
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://
www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
envelope11.xsd">
<env:Header/>
<env:Body>
<foo
</foo
</env:Body>
</env:Envelope>