(Forwarding some feedback from Nathan to j-users ...) Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED] wrote on 11/09/2007 11:25:06 PM: > I don't have any specific scenarios of use at the moment, but the > assertions and conditional inclusions (versioning) features sound the > most appealing to me, for whatever that's worth. > > -Nathan > > On Nov 9, 2007 4:01 PM, Khaled Noaman <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > The W3C Schema WG has released a last call working draft of XML Schema 1.1 > > Part 1: Structures. We are considering implementing features from this draft > > in Xerces-J. We would like to understand which features users are most > > interested in and what scenarios they plan on using them in. > > > > Here's a summary of the major features introduced in the spec: > > > > All Group > > XML Schema 1.0 imposed many restrictions on <all> groups. XML Schema 1.1 has > > relaxed several of those constraints: > > > > <all> groups can now be extended by adding more members to them. > > Wildcards are now allowed. > > Particles in <all> groups can now have the value of maxOccurs be greater > > than 1. > > <xs:complexType name="applianceType"> > > <xs:all> > > <xs:element name="item" type="xs:string"/> > > <xs:element name="description" type="xs:string"/> > > </xs:all> > > </xs:complexType> > > > > <xs:complexType name="heaterType"> > > <xs:complexContent> > > <xs:extension base="applianceType"> > > <xs:all> > > <xs:element name="power_in_watt" type="xs:integer"/> > > <xs:any processContents="lax"/> > > </xs:all> > > </xs:extension> > > </xs:complexContent> > > </xs:complexType> > > > > Assertions > > A form of co-occurrence constraint, using XPath 2.0 expressions, that is > > associated with a complex type to constrain element and attribute values. > > The list of assertions is evaluated when a complex type is used to validate > > an element. > > > > <xs:complexType name="intRange"> > > <xs:attribute name="min" type="xs:int"/> > > <xs:attribute name="max" type="xs:int"/> > > <xs:assert test="@min le @max"/> > > </xs:complexType> > > > > The value of the 'min' attribute must be less than the value of the 'max' > > attribute. > > > > <xs:complexType name="arrayType"> > > <xs:sequence> > > <xs:element name="entry" minOccurs="0" maxOccurs="unbounded"/> > > </xs:sequence> > > <xs:attribute name="length" type="xs:int"/> > > <xs:assert test="@length eq fn:count(./entry)"/> > > </xs:complexType> > > > > The value of the 'length' attribute must be equal to the number of > > occurrences of the 'entry' sub-elements. > > > > Open Content Models > > A new mechanism to allow content models to accept elements other than those > > explicitly defined. The schema author controls the degree of openness of the > > content model. They can specify whether elements should be accepted > > everywhere or at the end of the content model. > > > > <xs:complexType name="name"> > > <xs:openContent mode="suffix"> > > <xs:any namespace="##other" processContents="skip"/> > > </xs:openContent> > > <xs:sequence> > > <xs:element name="given" type="xs:string"/> > > <xs:element name="middle" type="xs:string" minOccurs="0"/> > > <xs:element name="family" type="xs:string"/> > > </xs:sequence> > > </xs:complexType> > > > > A schema author can also define a default open content at the schema > > document level, thus saving many copy/paste if the open content is the same > > across the complex types. > > > > <xs:schema > > xmlns:xs="http://www.w3.org/2001/XMLSchema" > > targetNamespace="http://www.example.com/example"> > > . . . > > <xs:defaultOpenContent mode="interleave"> > > <xs:any processContents="lax"/> > > </xs:defaultOpenContent> > > . . . > > </xs:schema> > > > > Enhanced Wildcards > > In XML Schema 1.0, a schema author was only allowed to exclude elements and > > attributes from one namespace, the target namespace, by using ##other. In > > XML Schema 1.1, a schema author can define wildcards that exclude: > > > > Elements and attributes from a set of namespaces by using [notNamespace] > > A particular set of qualified elements and attributes by using [notQName] > > "not-in-schema" elements and attributes (those that do not match any > > declaration in the schema) by including the ##defined keyword in [notQName] > > <xs:any namespace="http://www.w3.org/1999/XSL/Transform" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > notQName="xsl:comment xsl:fallback"/> > > > > <xs:anyAttribute xmlns:ns1="http://ns1" > > notNamespace="ns1 ##targetNamespace"/> > > > > Complex Type Restriction > > The rules for checking validity of complex-type restrictions have been > > simplified. The set of elements or attributes accepted by a restriction must > > be a subset of those accepted by its base type. > > > > Conditional Type Assignment > > A form of co-occurrence constraint, using XPath 2.0, that allows for a type > > to be assigned to an element instance based on its properties (typically > > attribute values). > > > > <xs:complexType name="valueType"> > > <xs:simpleContent> > > <xs:extenstion base="xs:long"> > > <xs:attribute name="kind" type="xs:string"/> > > </xs:extension> > > </xs:simpleContent> > > </xs:complexType> > > > > <xs:element name="value" type="valueType"> > > <xs:alternative test="@kind='int'" type="xs:int"/> > > <xs:alternative test="@kind='short'" type="xs:short"/> > > <xs:alternative test="@kind='byte'" type="xs:byte"/> > > </xs:element> > > > > Default Attributes > > A new mechanism that makes it easier for schema authors to include common > > attributes like xml:base and xml:lang in all their content models. > > > > <xs:schema > > xmlns:xs="http://www.w3.org/2001/XMLSchema" > > targetNamespace="http://www.example.com/example" > > defaultAttributes="defaultAttrGroup"> > > . . . > > </xs:schema> > > > > Conditional Inclusion > > A mechanism that allows conforming XML Schema 1.1 processors to successfully > > ignore new constructs introduced in future version of the spec. It also > > allows schema authors to define schemas with newer constructs and be able to > > fall back to older versions when the newer constructs are not available. > > > > <xsd:schema > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"> > > > > <xsd:element name="e" vc:minVersion="3.2"> > > <!--* declaration suitable for 3.2> * and later processors *--> > > </xsd:element> > > <xsd:element name="e" > > vc:minVersion="1.1" > > vc:maxVersion="3.1"> > > <!--* declaration suitable for processors> * > supporting versions 1.1 through 3.1> *--> > > </xsd:element> > > ... > > </xsd:schema> > > > > > > We would appreciate your feedback. > > > > Regards, > > Khaled > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]