Add RSS1 Syndication module XML schema

This commit is contained in:
~lucidiot 2023-11-22 23:33:33 +01:00
parent 4c2fb07cd9
commit a8741718eb
1 changed files with 71 additions and 0 deletions

71
xsd/syndication.xsd Normal file
View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
RDF Site Summary 1.0 Syndication Module 1.4.1 XML schema
Copyright (c) 2023 ~lucidiot
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<xs:schema
targetNamespace="http://purl.org/rss/1.0/modules/syndication/"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.4.1"
xmlns="http://purl.org/rss/1.0/modules/syndication/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:annotation>
<xs:documentation>RDF Site Summary 1.0 Syndication Module 1.4.1 XML schema</xs:documentation>
<xs:documentation>
<![CDATA[Derived from the specification at <https://web.resource.org/rss/1.0/modules/syndication/>]]>
</xs:documentation>
</xs:annotation>
<xs:simpleType name="UpdatePeriod">
<xs:annotation>
<xs:documentation>Period over which the channel format is updated.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="hourly" />
<xs:enumeration value="daily" />
<xs:enumeration value="weekly" />
<xs:enumeration value="monthly" />
<xs:enumeration value="yearly" />
</xs:restriction>
</xs:simpleType>
<xs:element name="updatePeriod" type="UpdatePeriod" default="daily" />
<xs:element name="updateFrequency" type="xs:positiveInteger" default="1">
<xs:annotation>
<xs:documentation>Frequency of updates in relation to the update period.</xs:documentation>
<xs:documentation>A positive integer indicates how many times in that period the channel is updated.</xs:documentation>
<xs:documentation>For example, an updatePeriod of daily, and an updateFrequency of 2 indicates the channel format is updated twice daily.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="W3CDateTimeMinutes">
<xs:annotation>
<xs:documentation>A date and time that follows the W3C note on Date and Time formats, and has a precision in minutes.</xs:documentation>
<xs:documentation><![CDATA[See <https://www.w3.org/TR/NOTE-datetime>]]></xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d\d\d\d-(0\d|1[0-2])-([0-2]\d|3[01])T([01]\d|2[0-3]):[0-5]\d(Z|[+-]([01]\d|2[0-3]):[0-5]\d)" />
</xs:restriction>
</xs:simpleType>
<xs:element name="updateBase" type="W3CDateTimeMinutes">
<xs:annotation>
<xs:documentation>Base date to be used in concert with updatePeriod and updateFrequency to calculate the publishing schedule.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>