[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [dss] Groups - DSS Core Schema File (oasis-dss-1.0-core-schema-wd-33pre8.xsd) uploaded
Dear all,
To further explain the changes to the Schema:
Stefan and I found out that it is not possible in a clean way in XML
Schema to express the fact that XMLData mutates between three types
(i.e.: xml, base64, escaped) depending on one of it's attribute values
(i.e.: encoding = xml, base64 or escaped).
In the case of base64 or escaped <XMLData> would have to be a simpleType
of either xs:base64Binary or xs:String and in the case of xml a
complexType. This cannot be expressed in XMLSchema. Even dss:AnyType
would not fulfill the requirement to be able to hold xs:base64Binary or
xs:String or a complexType at the same time because xs:any only matches
element content.
Hence to be able to model the required encodings in XML Schema we were
forced to make the following changes.
stefan@drees.name wrote:
><xs:element name="Document">
> <xs:complexType>
> <xs:complexContent>
> <xs:extension base="dss:DocumentBaseType">
> <xs:choice>
> <xs:element name="InlineXML" type="dss:InlineXMLType"/>
> <xs:element name="Base64XML" type="xs:base64Binary"/>
> <xs:element name="EscapedXML" type="xs:string"/>
> <xs:element ref="dss:Base64Data"/>
> </xs:choice>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
></xs:element>
>
>
We further introduced the following Type for InlineXML to clearly
express the fact that it's content should be equivalent to a complete
XML Document. I.e. having only one DocumentElement and not allowing
anything but PI's and Comments before and after this one element. The
new attribute ignorePIsComments indicates how to deal with PI's and
Comments as a number of parsers will also ignore them and a server will
have to be able to know if PI's and Comments have gone missing after
parsing and if the client would have wanted them to be signed.
<!-- Note mixed="true" should not be there as Text is not allowed before
or after a DocumentElement. -->
<xs:complexType name="InlineXMLType">
<xs:sequence>
<xs:any processContents="lax"/>
</xs:sequence>
<xs:attribute name="ignorePIsComments" type="xs:boolean" use="optional" default="true"/>
</xs:complexType>
best regards
Konrad
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]