<?xml version=“1.0” encoding=“UTF-8”?> <xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.nexml.org/2009" xmlns="http://www.nexml.org/2009" elementFormDefault="qualified"> <xs:annotation> <xs:documentation> This module defines subclasses of the dictionaries defined in the <a href="../annotations">annotations</a> module. The subclasses are used to attach metadata about revision control status of a file (the RCS* types), <a href="http://dublincore.org/">dublin core</a> metadata and common web formats (XHTML, RSS). </xs:documentation> </xs:annotation> <xs:include schemaLocation="annotations.xsd"/> <!-- a simple key/value pair, where key *must* be <key>date</key>, and value must be of the pattern <string>$Date: [svn date here]$</string> --> <xs:simpleType name="DateKey"> <xs:restriction base="xs:string"> <xs:pattern value="date"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="DateVal"> <xs:restriction base="xs:string"> <xs:pattern value="$Date: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSDate"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^date$/, and value must be of the pattern /^$Date: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="DateKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="DateVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- same thing for svn $Rev: $ --> <xs:simpleType name="RevKey"> <xs:restriction base="xs:string"> <xs:pattern value="rev"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="RevVal"> <xs:restriction base="xs:string"> <xs:pattern value="$Rev: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSRev"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^rev$/, and value must be of the pattern /^$Rev: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="RevKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="RevVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- same thing for svn $Author: $ --> <xs:simpleType name="AuthorKey"> <xs:restriction base="xs:string"> <xs:pattern value="author"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="AuthorVal"> <xs:restriction base="xs:string"> <xs:pattern value="$Author: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSAuthor"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^author$/, and value must be of the pattern /^$Author: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="AuthorKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="AuthorVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- same thing for svn $URL: $ --> <xs:simpleType name="URLKey"> <xs:restriction base="xs:string"> <xs:pattern value="url"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="URLVal"> <xs:restriction base="xs:string"> <xs:pattern value="$URL: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSURL"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^url$/, and value must be of the pattern /^$URL: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="URLKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="URLVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- same thing for svn $Id: $ --> <xs:simpleType name="IdKey"> <xs:restriction base="xs:string"> <xs:pattern value="id"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="IdVal"> <xs:restriction base="xs:string"> <xs:pattern value="$Id: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSId"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^id$/, and value must be of the pattern /^$Id: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="IdKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="IdVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- same thing for svn $Header: $ --> <xs:simpleType name="HeaderKey"> <xs:restriction base="xs:string"> <xs:pattern value="header"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="HeaderVal"> <xs:restriction base="xs:string"> <xs:pattern value="$Header: .*$"/> </xs:restriction> </xs:simpleType> <!--xs:complexType name="RCSHeader"> <xs:annotation> <xs:documentation> a simple key/value pair, where key <em>must</em> be /^header$/, and value must be of the pattern /^$Header: .*\$$/ </xs:documentation> </xs:annotation> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="HeaderKey" minOccurs="1" maxOccurs="1"/> <xs:element name="string" type="HeaderVal" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- this is just syntax sugar to indicate that the elements within the <any> tag are Dublin Core metadata --> <xs:simpleType name="DCKey"> <xs:restriction base="xs:string"> <xs:pattern value="dublincore"/> </xs:restriction> </xs:simpleType> <xs:complexType name="DCAny"> <xs:complexContent> <xs:extension base="Base"> <xs:sequence> <xs:any namespace="http://purl.org/dc/elements/1.1/ http://purl.org/dc/terms/ http://www.w3.org/1999/02/22-rdf-syntax-ns#" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!--xs:complexType name="DC"> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="DCKey" minOccurs="1" maxOccurs="1"/> <xs:element name="any" type="DCAny" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- this is a wrapper around XHTML --> <xs:simpleType name="XHTMLKey"> <xs:restriction base="xs:string"> <xs:pattern value="xhtml"/> </xs:restriction> </xs:simpleType> <xs:complexType name="XHTMLAny"> <xs:complexContent> <xs:extension base="Base"> <xs:sequence> <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!--xs:complexType name="XHTML"> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="XHTMLKey" minOccurs="1" maxOccurs="1"/> <xs:element name="any" type="XHTMLAny"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType--> <!-- this is a wrapper around RSS --> <xs:simpleType name="RSSKey"> <xs:restriction base="xs:string"> <xs:pattern value="rss"/> </xs:restriction> </xs:simpleType> <xs:complexType name="RSSAny"> <xs:complexContent> <xs:extension base="Base"> <xs:sequence> <xs:any namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <!--xs:complexType name="RSS"> <xs:complexContent> <xs:restriction base="Dict"> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element name="key" type="RSSKey" minOccurs="1" maxOccurs="1"/> <xs:element name="any" type="RSSAny" form="unqualified"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType-->
</xs:schema>