c3d2-web/xsd/c3d2web.xsd

276 lines
9.0 KiB
XML
Raw Permalink Normal View History

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
2017-05-10 04:39:32 +02:00
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>
2017-05-10 04:39:32 +02:00
<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>
2017-05-10 04:39:32 +02:00
<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>
2014-10-26 09:18:00 +01:00
<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>
2014-10-26 09:18:00 +01:00
<xs:group ref="Block.class" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
2014-07-08 22:37:57 +02:00
<xs:element name="blockquote">
<xs:complexType>
<xs:sequence>
2017-05-10 04:39:32 +02:00
<xs:group ref="Block.class" minOccurs="0"
maxOccurs="unbounded"/>
2014-07-08 22:37:57 +02:00
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="resource">
<xs:complexType>
<xs:sequence>
2017-05-10 04:39:32 +02:00
<xs:element ref="alternative" minOccurs="0"
maxOccurs="unbounded"/>
<xs:any namespace="http://podlove.de/simple-chapters"
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="size" type="xs:nonNegativeInteger"
2017-05-10 04:39:32 +02:00
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"
2017-05-10 04:39:32 +02:00
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"/>
2014-07-08 22:37:57 +02:00
<xs:element ref="blockquote"/>
<xs:element ref="news-list"/>
2015-06-21 23:46:21 +02:00
<xs:element ref="h3" xmlns="http://www.w3.org/1999/xhtml"/>
<xs:element ref="h4" xmlns="http://www.w3.org/1999/xhtml"/>
<xs:element ref="form" xmlns="http://www.w3.org/1999/xhtml"/>
2012-10-14 20:22:17 +02:00
<xs:element ref="iframe" xmlns="http://www.w3.org/1999/xhtml"/>
<xs:element ref="video" xmlns="http://www.w3.org/1999/xhtml"/>
2017-05-10 04:39:32 +02:00
<xs:element ref="picture"/>
<xs:element ref="image"/>
<xs:element ref="figure"/>
<xs:element ref="figcaption"/>
2013-08-26 01:15:54 +02:00
<xs:element ref="include-frab-schedule"/>
<xs:element ref="resource"/>
</xs:choice>
</xs:group>
<xs:complexType name="Block" mixed="true">
<xs:sequence>
<xs:group ref="Inline.class" minOccurs="0"
2017-05-10 04:39:32 +02:00
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional"/>
</xs:complexType>
<xs:group name="Inline.class">
<xs:choice>
<xs:element ref="link"/>
<xs:element ref="em"/>
2012-03-17 16:09:05 +01:00
<xs:element ref="strong"/>
2014-09-11 12:35:11 +02:00
<xs:element ref="code"/>
<xs:element ref="sup"/>
</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>
2014-10-26 09:18:00 +01:00
<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>
2014-10-26 09:18:00 +01:00
<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:attribute name="data-before" type="xs:string" use="optional"/>
<xs:attribute name="data-after" 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:attribute name="thumb" type="xs:string" use="optional"/>
2014-10-26 09:18:00 +01:00
<xs:attribute name="width" type="xs:string" use="optional"/>
<xs:attribute name="height" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="pre" type="xs:string"/>
<xs:element name="em" type="xs:string"/>
2012-03-17 16:14:22 +01:00
<xs:element name="strong" type="xs:string"/>
2014-09-11 12:35:11 +02:00
<xs:element name="code" type="xs:string"/>
2017-05-10 04:39:32 +02:00
<xs:element name="figure">
<xs:choice minOccurs="1">
<xs:element ref="figcaption" maxOccurs="1"/>
<xs:element ref="picture" maxOccurs="1"/>
<xs:element ref="video" maxOccurs="1"/>
</xs:choice>
</xs:element>
<xs:element name="figcaption" type="Block"/>
<xs:element name="sup">
<xs:complexType mixed="true">
<xs:group ref="Inline.class" minOccurs="0"
2017-05-10 04:39:32 +02:00
maxOccurs="unbounded"/>
</xs:complexType>
</xs:element>
<xs:element name="dl">
<xs:complexType>
<xs:sequence>
2017-05-10 04:39:32 +02:00
<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">
2017-05-10 04:39:32 +02:00
<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>
2017-05-10 04:39:32 +02:00
<xs:restriction base="xs:date"/>
</xs:simpleType>
<xs:simpleType>
2017-05-10 04:39:32 +02:00
<xs:restriction base="xs:dateTime"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:element name="event">
<xs:complexType>
<xs:sequence>
2017-05-10 04:39:32 +02:00
<xs:element name="start" type="dateOrDateTime"/>
<xs:element name="end" type="dateOrDateTime" minOccurs="0"/>
<xs:element name="location" type="LinkableLocation"
2014-01-03 23:14:07 +01:00
minOccurs="0"/>
2019-01-16 17:10:04 +01:00
<xs:element name="repeat">
<xs:complexType>
<xs:attribute name="freq" type="xs:string" use="optional"/>
<xs:attribute name="bysetpos" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="byday" type="xs:string" use="optional"/>
<xs:attribute name="interval" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="count" type="xs:nonNegativeInteger" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
2014-01-03 23:14:07 +01:00
<xs:complexType name="LinkableLocation" mixed="true">
<xs:sequence>
<xs:element ref="link"
minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
2013-08-26 01:15:54 +02:00
<xs:element name="include-frab-schedule">
<xs:complexType>
<xs:attribute name="src" type="xs:anyURI" use="required"/>
2013-08-26 01:15:54 +02:00
<xs:attribute name="title" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>