XML Schema 1.1 implementation
The type xs:error
has been implemented.
The facility for conditional inclusion of parts of schema documents, based on attributes such as vc:minVersion
and
vc:maxVersion
, is now implemented. This works whether the schema processor is in 1.0 or 1.1 mode, allowing a schema
that is processed in 1.0 mode to ignore facilities such as assertions that require XSD 1.1.
For this purpose the set of types that are "automatically known" to the processor includes only the built-in types (which are currently
the same for XSD 1.0 and XSD 1.1, with the exception of xs:error
which is available only in 1.1), and the set of facets are the built-in
facets, which includes xs:assert
when running in 1.1 mode, but not when running in 1.0 mode.
An element declaration may now appear in more than one substitution group.
The ref
attribute of xs:unique
, xs:key
, and xs:keyref
has been implemented.
The notNamespace
and notQName
attributes are now supported on xs:any
and
xs:anyAttribute
wildcards. However, the option notQName="##definedSibling"
is not yet
implemented.
Although these attributes are only available when XSD 1.1 is enabled (command line switch -xsdversion:1.1
),
a side-effect of the change is that wildcard unions and intersections that were not expressible in 1.0 are now expressible,
and this change applies whether or not 1.1 is enabled. This means that some rather obscure conditions that are errors in
1.0 but not in 1.1 are no longer detected as errors.
The algorithm for testing subsumption among xs:all
content models now performs a more intelligent analysis of
wildcard particles.
Open content is implemented. The xs:defaultOpenContent
element can appear as a child of xs:schema
,
and and xs:openContent
as a child of xs:complexType
, xs:extension
or
xs:restriction
. This works with sequence, all, empty and mixed
content models.
There are some limitations in subsumption testing: for a type R to be a valid restriction of B, the "primary content" of R must be a valid restriction of the primary content of B, and the "open content" of R must be a valid restriction of the open content of B.
Default attributes are implemented (that is, the defaultAttributes
attribute of xs:schema
,
and the defaultAttributesApply
attribute of xs:complexType
).
An xs:all
content model may now be derived by extension from another xs:all
content model.
A new facet xs:explicitTimezone
is available with values required
, optional
, or prohibited
.
This allows control of whether
or not the timezone part of a date
, time
, dateTime
, gYear
,
gYearMonth
, gMonth
, gMonthDay
, or gDay
is present or absent.
The new built-in data type xs:dateTimeStamp
(an xs:dateTime
with timezone required)
is implemented.