All,
I have the following types defined in a
schema:
<xsd:complexType
name="AttributedString">
<xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute ref="wsu:Id"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="EncodedString"> <xsd:simpleContent> <xsd:extension base="wsse:AttributedString"> <xsd:attribute name="EncodingType" type="xsd:anyURI"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:complexType name="UsernameTokenType"> <xsd:sequence> <xsd:element name="Username" type="wsse:AttributedString"/> <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="wsu:Id"/> <xsd:anyAttribute namespace="##other" processContents="lax"/> </xsd:complexType> Note that EncodedString is derived from AttributedString.
The following passes XML Validation:
<ns1:UsernameToken>
<ns1:Username xsi:type="ns1:AttributedString" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> my
username</ns1:Username>
</ns1:UsernameToken> And so does this:
<ns1:UsernameToken>
<ns1:Username>my username</ns1:Username> </ns1:UsernameToken> But Xerces throws an error on the following:
<ns1:UsernameToken>
<ns1:Username EncodingType="someType" xsi:type="ns1:EncodedString" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">my username</ns1:Username> </ns1:UsernameToken> Xerces says:
cvc-elt.4.3: Type 'ns1:EncodedString' is not validly derived from the type
definition, 'AttributedString', of element 'ns1:Username'.
It's not clear to me what is wrong with the XML. Can someone shed
some light?
Thanks.
-- Jeehong Min Software Engineer SOAPtest Development Parasoft Corporation "We Make Software Work"
|
- derived types in instance documents Jeehong Min
- Re: derived types in instance documents George Cristian Bina