Allowing Any Content
It is often necessary to allow users to include any type of markup content they see fit. Also, it is useful to tell the schema processor to validate the content of a particular element against another application’s schema. Incorporating XHTML content into another document is an example of this usage.
These applications are supported by the xs:any
element. This element accepts attributes that indicate
what level of validation should be performed on the included content,
if any. Also, it accepts a target namespace that can be used to limit
the vocabulary of included content. For instance, going back to the
address-book example, to associate a rich-text notes
element with an address entry, you
could add the following element declaration to the address
element declaration:
<xs:element name="notes" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> </xs:complexType> </xs:element>
The attributes of the xs:any
element tell the schema processor that zero or more elements belonging
to the XHTML namespace (http://www.w3.org/1999/xhtml
) may occur at
this location. Notice that this is done by setting minOccurs
to 0 and maxOccurs
to unbounded
. It also states that these
elements should be skipped. This means that no validation will be
performed against the actual XHTML namespace by the parser. Other
possible values for the processContents
attribute are ...
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.