276 lines
9.0 KiB
XML
276 lines
9.0 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="blockquote">
|
|
<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:any namespace="http://podlove.de/simple-chapters"
|
|
processContents="lax" 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="blockquote"/>
|
|
<xs:element ref="news-list"/>
|
|
<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"/>
|
|
<xs:element ref="iframe" xmlns="http://www.w3.org/1999/xhtml"/>
|
|
<xs:element ref="video" xmlns="http://www.w3.org/1999/xhtml"/>
|
|
<xs:element ref="picture"/>
|
|
<xs:element ref="image"/>
|
|
<xs:element ref="figure"/>
|
|
<xs:element ref="figcaption"/>
|
|
<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"
|
|
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"/>
|
|
<xs:element ref="strong"/>
|
|
<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>
|
|
<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: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"/>
|
|
<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"/>
|
|
|
|
<xs:element name="strong" type="xs:string"/>
|
|
|
|
<xs:element name="code" type="xs:string"/>
|
|
|
|
<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"
|
|
maxOccurs="unbounded"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<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="LinkableLocation"
|
|
minOccurs="0"/>
|
|
<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>
|
|
|
|
<xs:complexType name="LinkableLocation" mixed="true">
|
|
<xs:sequence>
|
|
<xs:element ref="link"
|
|
minOccurs="0" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
|
|
<xs:element name="include-frab-schedule">
|
|
<xs:complexType>
|
|
<xs:attribute name="src" type="xs:anyURI" use="required"/>
|
|
<xs:attribute name="title" type="xs:string" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
</xs:schema>
|