c3d2-web/xsd/c3d2web.xsd
2012-03-17 16:09:05 +01:00

211 lines
6.3 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://www.w3.org/1999/xhtml"
schemaLocation="xhtml1-strict.xsd"/>
<xs:element name="page">
<xs:complexType>
<xs:choice>
<xs:element ref="news"/>
<xs:group ref="Block.class" minOccurs="1" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="title" type="xs:string" use="required"/>
<xs:attribute name="pagetitle" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="news">
<xs:complexType>
<xs:sequence>
<xs:element ref="newsfile" minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="newsfile" type="xs:anyURI"/>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="image" minOccurs="0"/>
<xs:element ref="event" minOccurs="0"/>
<xs:group ref="Block.class" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="addendum" minOccurs="0"/>
<xs:group ref="Block.class" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="title" type="xs:string" use="required"/>
<xs:attribute name="date" type="xs:dateTime" use="required"/>
<xs:attribute name="author" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="addendum">
<xs:complexType>
<xs:sequence>
<xs:group ref="Block.class" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
<xs:element ref="alternative" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="size" type="xs:nonNegativeInteger"
use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="title" type="xs:string" use="optional"/>
<xs:attribute name="url" type="xs:anyURI" use="required"/>
<xs:attribute name="poster" type="xs:anyURI" use="optional"/>
<xs:attribute name="preview" type="xs:anyURI" use="optional"/>
<xs:attribute name="details-link" type="xs:anyURI" use="optional"/>
<xs:attribute name="feedback-link" type="xs:anyURI" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="alternative">
<xs:complexType>
<xs:attribute name="title" type="xs:string" use="optional"/>
<xs:attribute name="size" type="xs:nonNegativeInteger"
use="required"/>
<xs:attribute name="type" type="xs:string" use="required"/>
<xs:attribute name="url" type="xs:anyURI" use="required"/>
</xs:complexType>
</xs:element>
<xs:group name="Block.class">
<xs:choice>
<xs:element ref="p"/>
<xs:element ref="pre"/>
<xs:element ref="dl"/>
<xs:element ref="ul"/>
<xs:element ref="ol"/>
<xs:element ref="news-list"/>
<xs:element ref="form" xmlns="http://www.w3.org/1999/xhtml"/>
<xs:element ref="include-pentabarf-schedule"/>
<xs:element ref="resource"/>
</xs:choice>
</xs:group>
<xs:complexType name="Block" mixed="true">
<xs:sequence>
<xs:group ref="Inline.class" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:group name="Inline.class">
<xs:choice>
<xs:element ref="link"/>
<xs:element ref="em"/>
<xs:element ref="strong"/>
<xs:element ref="image"/>
</xs:choice>
</xs:group>
<xs:element name="news-list">
<xs:complexType>
<xs:attribute name="prefix" type="xs:string" use="optional"/>
<xs:attribute name="details" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="p">
<xs:complexType>
<xs:complexContent>
<xs:extension base="Block">
<xs:attribute name="class" type="xs:string" use="optional"/>
<xs:attribute name="title" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="link">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="image" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="href" type="xs:anyURI" use="optional"/>
<xs:attribute name="class" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="image">
<xs:complexType mixed="true">
<xs:attribute name="title" type="xs:string" use="required"/>
<xs:attribute name="class" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="pre" type="xs:string"/>
<xs:element name="em" type="xs:string"/>
<xs:element name="dl">
<xs:complexType>
<xs:sequence>
<xs:element ref="dh" minOccurs="0"/>
<xs:choice maxOccurs="unbounded">
<xs:element ref="dt"/>
<xs:element ref="dd"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="class" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="dh" type="Block"/>
<xs:element name="dt" type="Block"/>
<xs:element name="dd" type="Block"/>
<xs:complexType name="List">
<xs:sequence>
<xs:element ref="li" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ul" type="List"/>
<xs:element name="ol" type="List"/>
<xs:element name="li">
<xs:complexType mixed="true">
<xs:choice maxOccurs="unbounded">
<xs:group ref="Inline.class" minOccurs="0"
maxOccurs="unbounded"/>
<xs:group ref="Block.class" minOccurs="1" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:simpleType name="dateOrDateTime">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:date"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:dateTime"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:element name="event">
<xs:complexType>
<xs:sequence>
<xs:element name="start" type="dateOrDateTime"/>
<xs:element name="end" type="dateOrDateTime" minOccurs="0"/>
<xs:element name="location" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="include-pentabarf-schedule">
<xs:complexType>
<xs:attribute name="src" type="xs:anyURI" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>