Fix line endings and trailing whitespace
This commit is contained in:
parent
db9fa89ea4
commit
a109a6b810
|
@ -1,70 +1,70 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
blogChannel RSS Module 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://backend.userland.com/blogChannelModule"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://backend.userland.com/blogChannelModule"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
>
|
||||
<xs:annotation>
|
||||
<xs:documentation>blogChannel RSS Module XML schema</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Derived from the documentation at <http://backend.userland.com/blogChannelModule>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="blogRoll" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>URL of an OPML file containing the blogroll for this website.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="mySubscriptions" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of an OPML file containing the RSS feed subscriptions of the website's managing editor.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="blink" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of a weblog that this website's managing editor is promoting, per Mark Pilgrim's description.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[See <http://web.archive.org/web/20021210024956/http://diveintomark.org:80/archives/2002/09/17.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="changes" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>URL of a changes.xml file.</xs:documentation>
|
||||
<xs:documentation>
|
||||
When the feed that contains this element updates, it pings a server that updates this file.
|
||||
The presence of this element says to aggregators that they only have to read the changes file to see if this feed has updated.
|
||||
If several feeds point to the same changes file, the aggregator has to do less polling, resulting in better use of server bandwidth, and the Internet as a whole; and resulting in faster scans.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[See <https://web.archive.org/web/20180131140150/http://xmlrpc.scripting.com/weblogsComForRss.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
blogChannel RSS Module 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://backend.userland.com/blogChannelModule"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://backend.userland.com/blogChannelModule"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
>
|
||||
<xs:annotation>
|
||||
<xs:documentation>blogChannel RSS Module XML schema</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Derived from the documentation at <http://backend.userland.com/blogChannelModule>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:element name="blogRoll" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>URL of an OPML file containing the blogroll for this website.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="mySubscriptions" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of an OPML file containing the RSS feed subscriptions of the website's managing editor.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="blink" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of a weblog that this website's managing editor is promoting, per Mark Pilgrim's description.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[See <http://web.archive.org/web/20021210024956/http://diveintomark.org:80/archives/2002/09/17.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="changes" type="xs:anyURI">
|
||||
<xs:annotation>
|
||||
<xs:documentation>URL of a changes.xml file.</xs:documentation>
|
||||
<xs:documentation>
|
||||
When the feed that contains this element updates, it pings a server that updates this file.
|
||||
The presence of this element says to aggregators that they only have to read the changes file to see if this feed has updated.
|
||||
If several feeds point to the same changes file, the aggregator has to do less polling, resulting in better use of server bandwidth, and the Internet as a whole; and resulting in faster scans.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[See <https://web.archive.org/web/20180131140150/http://xmlrpc.scripting.com/weblogsComForRss.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
|
|
112
xsd/geo.xsd
112
xsd/geo.xsd
|
@ -1,56 +1,56 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
W3C Basic Geo (WGS84 lat/long) Vocabulary 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://www.w3.org/2003/01/geo/wgs84_pos#"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2003/01/geo/wgs84_pos#"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
>
|
||||
<xs:simpleType name="Latitude">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minInclusive value="-90" />
|
||||
<xs:maxInclusive value="90" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Longitude">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minInclusive value="-180" />
|
||||
<xs:maxInclusive value="180" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="lat" type="Latitude">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Latitude of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="long" type="Longitude">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Longitude of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="alt" type="xs:decimal">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Elevation of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!--
|
||||
W3C Basic Geo (WGS84 lat/long) Vocabulary 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://www.w3.org/2003/01/geo/wgs84_pos#"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2003/01/geo/wgs84_pos#"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
>
|
||||
<xs:simpleType name="Latitude">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minInclusive value="-90" />
|
||||
<xs:maxInclusive value="90" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="Longitude">
|
||||
<xs:restriction base="xs:decimal">
|
||||
<xs:minInclusive value="-180" />
|
||||
<xs:maxInclusive value="180" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="lat" type="Latitude">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Latitude of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="long" type="Longitude">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Longitude of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
<xs:element name="alt" type="xs:decimal">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Elevation of the location being referred to by this channel or item, in WGS84.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
|
|
|
@ -136,7 +136,7 @@ and the RSS examples at <https://www.nhc.noaa.gov/rss_examples/>
|
|||
<xs:documentation>Location of the center of the weather system, as a WGS84 latitude and longitude.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
|
||||
|
||||
<xs:element name="type" type="CycloneTypeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Type of the weather system. Not all possible values are known.</xs:documentation>
|
||||
|
|
704
xsd/opml.xsd
704
xsd/opml.xsd
|
@ -1,352 +1,352 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Outline Processor Markup Language 2.0 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
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="2.0"
|
||||
>
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Outline Processor Markup Language 2.0 XML Schema
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Derived from the specification at <http://opml.org/spec2.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:complexType name="OPML">
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="head" type="Head" minOccurs="1" maxOccurs="1" />
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="body" type="Body" minOccurs="1" maxOccurs="1" />
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string" use="required" fixed="2.0" />
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="RFC822Date">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="((Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s*)?\d\d?\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d\d(\d\d)?\s+\d\d:\d\d(:\d\d)?\s+([+\-]?\d\d\d\d|[A-Z]{2,3})" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="EmailAddress">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[a-zA-Z0-9_\-][a-zA-Z0-9_.\-]*@[a-zA-Z0-9_\-][a-zA-Z0-9_.\-]*" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="Head">
|
||||
<xs:all>
|
||||
<xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="dateCreated" type="RFC822Date" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="dateModified" type="RFC822Date" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerEmail" type="EmailAddress" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerId" type="xs:anyURI" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Address of a web page that identifies the author or allows contacting them.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
No two authors have the same ownerId.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="docs" type="xs:anyURI" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Address of the specification for the OPML file format.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[The recommended value is <http://opml.org/spec2.opml>.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="expansionState" type="xs:string" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Comma-separated list of line numbers indicating which outline elements should be in an expanded state.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Expanding an outline will change the line numbers of the outlines below, allowing to expand outlines recursively.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Child outlines of non-expanded outlines cannot be stored as expanded.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="vertScrollState" type="xs:positiveInteger" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Line number of the outline element that should be at the top of the window, calculated after the expansion state is already applied.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowTop" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the top edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowLeft" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the left edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowBottom" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the bottom edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowRight" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the right edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="Body">
|
||||
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="outline" type="Outline" />
|
||||
<xs:any namespace="##other" processContents="lax" />
|
||||
</xs:choice>
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:attributeGroup name="LinkIncludeAttributes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Attributes that are defined for `type="link"` and `type="include"` outlines.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
XSD 1.0 does not allow us to restrict those attributes to those two types.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="url" type="xs:anyURI" use="optional" />
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:simpleType name="RSSVersion">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Format and version of a feed described in a `type="rss"` outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<!-- Use a union to allow any string, but still suggest some known values -->
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string" />
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="RSS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for Really Simple Syndication 0.91, 0.92 or 2.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="RSS1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for RDF Site Summary 1.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="scriptingNews">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for the Scripting News format.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ATOM">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for Atom 1.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:attributeGroup name="RSSAttributes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Attributes that are defined for `type="rss"` outlines.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
XSD 1.0 does not allow us to restrict those attributes to this type.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="xmlUrl" type="xs:anyURI" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of the feed. This is required when using a `type="rss"` outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="htmlUrl" type="xs:anyURI" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[URL reported as the <link> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="title" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Contents of the <title> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
While `text` can contain a user-defined feed name, `title` should always contain the original title of the feed.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="version" type="RSSVersion" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Format and version of feed, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="language" type="xs:language" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Language code reported as the <language> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="description" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Contents of the <description> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:simpleType name="OutlineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The type of an outline element.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
An outline without a type is considered to be either a simple text outline if it does not contain any child outlines, or a directory.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="link">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A link to an online resource. Link outlines must have a `url` attribute.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
When the link's URL ends with `.opml`, this outline behaves like an `include` outline, with the OPML file getting downloaded and this outline getting replaced with the OPML file's contents.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Otherwise, this outline should be rendered as a clickable link to any other resource.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="include">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A link to an OPML file. The `url` attribute must be set to the URL of the OPML file. The OPML file should be downloaded, and this outline should be replaced with its contents.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="rss">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A syndication feed. The `xmlUrl` attribute must be set to the URL of the feed. The `description`, `htmlUrl`, `language`, `title` and `version` attributes may be set to provide additional information.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string" />
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="Outline">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="outline" type="Outline" />
|
||||
<xs:any namespace="##other" processContents="lax" />
|
||||
</xs:choice>
|
||||
<xs:attribute name="type" type="OutlineType" use="optional" />
|
||||
<xs:attribute name="text" type="xs:string" use="required" />
|
||||
<xs:attribute name="isComment" type="xs:boolean" use="optional" default="false">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Whether this outline is commented. If an outline is commented, all its child outlines are implicitly commented.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="isBreakpoint" type="xs:boolean" use="optional" default="false">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Whether or not a breakpoint is set on this outline. This is mostly used for outlines that allow editing scripts.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="created" type="RFC822Date" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Date of creation of this outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="category" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Comma-separated list of categories and tags, in a format similar to the Really Simple Syndication 2.0 category element.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
A category starts with a slash, and a hierarchy of sub-categories can be defined: /Formats/OPML/2.0
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
A tag does not start with a slash, and there is no hierarchy.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attributeGroup ref="LinkIncludeAttributes" />
|
||||
<xs:attributeGroup ref="RSSAttributes" />
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="opml" type="OPML" />
|
||||
</xs:schema>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Outline Processor Markup Language 2.0 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
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="2.0"
|
||||
>
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Outline Processor Markup Language 2.0 XML Schema
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Derived from the specification at <http://opml.org/spec2.html>]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:complexType name="OPML">
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="head" type="Head" minOccurs="1" maxOccurs="1" />
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
<xs:element name="body" type="Body" minOccurs="1" maxOccurs="1" />
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string" use="required" fixed="2.0" />
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="RFC822Date">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="((Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s*)?\d\d?\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d\d(\d\d)?\s+\d\d:\d\d(:\d\d)?\s+([+\-]?\d\d\d\d|[A-Z]{2,3})" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="EmailAddress">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="[a-zA-Z0-9_\-][a-zA-Z0-9_.\-]*@[a-zA-Z0-9_\-][a-zA-Z0-9_.\-]*" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="Head">
|
||||
<xs:all>
|
||||
<xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="dateCreated" type="RFC822Date" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="dateModified" type="RFC822Date" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerName" type="xs:string" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerEmail" type="EmailAddress" minOccurs="0" maxOccurs="1" />
|
||||
<xs:element name="ownerId" type="xs:anyURI" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Address of a web page that identifies the author or allows contacting them.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
No two authors have the same ownerId.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="docs" type="xs:anyURI" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Address of the specification for the OPML file format.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
<![CDATA[The recommended value is <http://opml.org/spec2.opml>.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="expansionState" type="xs:string" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Comma-separated list of line numbers indicating which outline elements should be in an expanded state.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Expanding an outline will change the line numbers of the outlines below, allowing to expand outlines recursively.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Child outlines of non-expanded outlines cannot be stored as expanded.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="vertScrollState" type="xs:positiveInteger" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Line number of the outline element that should be at the top of the window, calculated after the expansion state is already applied.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowTop" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the top edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowLeft" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the left edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowBottom" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the bottom edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="windowRight" type="xs:integer" minOccurs="0" maxOccurs="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Location of the right edge of the outliner's window, in pixels.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="Body">
|
||||
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
||||
<xs:element name="outline" type="Outline" />
|
||||
<xs:any namespace="##other" processContents="lax" />
|
||||
</xs:choice>
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:attributeGroup name="LinkIncludeAttributes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Attributes that are defined for `type="link"` and `type="include"` outlines.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
XSD 1.0 does not allow us to restrict those attributes to those two types.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="url" type="xs:anyURI" use="optional" />
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:simpleType name="RSSVersion">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Format and version of a feed described in a `type="rss"` outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<!-- Use a union to allow any string, but still suggest some known values -->
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string" />
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="RSS">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for Really Simple Syndication 0.91, 0.92 or 2.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="RSS1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for RDF Site Summary 1.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="scriptingNews">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for the Scripting News format.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="ATOM">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Recommended value for Atom 1.0.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:attributeGroup name="RSSAttributes">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Attributes that are defined for `type="rss"` outlines.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
XSD 1.0 does not allow us to restrict those attributes to this type.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:attribute name="xmlUrl" type="xs:anyURI" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
URL of the feed. This is required when using a `type="rss"` outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="htmlUrl" type="xs:anyURI" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[URL reported as the <link> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="title" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Contents of the <title> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
While `text` can contain a user-defined feed name, `title` should always contain the original title of the feed.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="version" type="RSSVersion" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Format and version of feed, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="language" type="xs:language" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Language code reported as the <language> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="description" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<![CDATA[Contents of the <description> element of the RSS feed's channel, for `type="rss"` outlines.]]>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:simpleType name="OutlineType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The type of an outline element.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
An outline without a type is considered to be either a simple text outline if it does not contain any child outlines, or a directory.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="link">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A link to an online resource. Link outlines must have a `url` attribute.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
When the link's URL ends with `.opml`, this outline behaves like an `include` outline, with the OPML file getting downloaded and this outline getting replaced with the OPML file's contents.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
Otherwise, this outline should be rendered as a clickable link to any other resource.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="include">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A link to an OPML file. The `url` attribute must be set to the URL of the OPML file. The OPML file should be downloaded, and this outline should be replaced with its contents.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="rss">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A syndication feed. The `xmlUrl` attribute must be set to the URL of the feed. The `description`, `htmlUrl`, `language`, `title` and `version` attributes may be set to provide additional information.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string" />
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:complexType name="Outline">
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="outline" type="Outline" />
|
||||
<xs:any namespace="##other" processContents="lax" />
|
||||
</xs:choice>
|
||||
<xs:attribute name="type" type="OutlineType" use="optional" />
|
||||
<xs:attribute name="text" type="xs:string" use="required" />
|
||||
<xs:attribute name="isComment" type="xs:boolean" use="optional" default="false">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Whether this outline is commented. If an outline is commented, all its child outlines are implicitly commented.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="isBreakpoint" type="xs:boolean" use="optional" default="false">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Whether or not a breakpoint is set on this outline. This is mostly used for outlines that allow editing scripts.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="created" type="RFC822Date" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Date of creation of this outline.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="category" type="xs:string" use="optional">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Comma-separated list of categories and tags, in a format similar to the Really Simple Syndication 2.0 category element.
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
A category starts with a slash, and a hierarchy of sub-categories can be defined: /Formats/OPML/2.0
|
||||
</xs:documentation>
|
||||
<xs:documentation>
|
||||
A tag does not start with a slash, and there is no hierarchy.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attributeGroup ref="LinkIncludeAttributes" />
|
||||
<xs:attributeGroup ref="RSSAttributes" />
|
||||
<xs:anyAttribute namespace="##other" processContents="lax" />
|
||||
</xs:complexType>
|
||||
|
||||
<xs:element name="opml" type="OPML" />
|
||||
</xs:schema>
|
||||
|
|
38
xsd/rss.xsd
38
xsd/rss.xsd
|
@ -18,8 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
Changes from the upstream at <https://github.com/jthelin/rss2schema>:
|
||||
-->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="unqualified"
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="unqualified"
|
||||
version="2.0.2.19">
|
||||
<xs:annotation>
|
||||
<xs:documentation>XML Schema for RSS v2.0 feed files.</xs:documentation>
|
||||
|
@ -206,10 +206,10 @@ Changes from the upstream at <https://github.com/jthelin/rss2schema>:
|
|||
</xs:any>
|
||||
</xs:choice>
|
||||
<xs:element name="item" type="RssItem" minOccurs="1" maxOccurs="unbounded">
|
||||
<!--
|
||||
HACK: According to the RSS 2.0 spec, it should strictly be possible to have zero item elements,
|
||||
<!--
|
||||
HACK: According to the RSS 2.0 spec, it should strictly be possible to have zero item elements,
|
||||
but this makes the schema non-deterministic with regard to extensibility elements
|
||||
so for the moment we undid bug-fix 10231 and set minOccurs=1 to work around this problem.
|
||||
so for the moment we undid bug-fix 10231 and set minOccurs=1 to work around this problem.
|
||||
-->
|
||||
</xs:element>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
|
||||
|
@ -432,30 +432,30 @@ Date Revision Description
|
|||
- Use namespace="##other" on <any>'s to create a more deterministic data model.
|
||||
- Added missing xs:documentation inside xs:annotation at the schema level.
|
||||
- Use xs:language for ISO Language Codes in <language> element.
|
||||
- Change guid to a single declaration. This loses some of the checking of the
|
||||
URL when the contents of the guid is a permaLink, so we will need to add
|
||||
- Change guid to a single declaration. This loses some of the checking of the
|
||||
URL when the contents of the guid is a permaLink, so we will need to add
|
||||
that back in with a regexp pattern.
|
||||
14-Apr-2003 3 Changes to solve some element ordering problems.
|
||||
- Use xs:all in place of xs:sequence to support flexible ordering of elements.
|
||||
Although the ordering constraints for elements is not clear from the
|
||||
original specification, the custom and practice seems to be that
|
||||
Although the ordering constraints for elements is not clear from the
|
||||
original specification, the custom and practice seems to be that
|
||||
element ordering is free-form.
|
||||
- Use elementFormDefault="qualified" for explicit intent.
|
||||
15-Apr-2003 4 Changes to solve some element ordering problems.
|
||||
- Use xs:choice in place of xs:all as previous usage of <all> was invalid.
|
||||
This creates the problem that insufficient constraints can be applied
|
||||
This creates the problem that insufficient constraints can be applied
|
||||
by the schema - for example, it can't prevent two title elements for an item.
|
||||
- Use elementFormDefault="unqualified" for to get the correct behaviours
|
||||
- Use elementFormDefault="unqualified" for to get the correct behaviours
|
||||
when importing and combining schemas.
|
||||
15-Apr-2003 5 Putting the extensibility element inside the repeating choice solves
|
||||
15-Apr-2003 5 Putting the extensibility element inside the repeating choice solves
|
||||
all problems with element ordering.
|
||||
15-Apr-2003 6 - skipHours and skipDays should contain a nested list of values,
|
||||
15-Apr-2003 6 - skipHours and skipDays should contain a nested list of values,
|
||||
not just a single value.
|
||||
- Added version attribute to schema definition.
|
||||
- Corrected type of the cloud element
|
||||
25-Apr-2003 7 - Add regexp for RFC-822 date suggested by Sam Ruby
|
||||
- I had to leave the base type of the tRfc822FormatDate type
|
||||
as xs:string due to the problems with using
|
||||
- I had to leave the base type of the tRfc822FormatDate type
|
||||
as xs:string due to the problems with using
|
||||
a pattern with xs:dateTime described at
|
||||
http://www.thearchitect.co.uk/weblog/archives/2003/04/000142.html
|
||||
19-Jun-2003 8 - Fixed a bug that the Oxygen XML Editor spotted in the regexp for RFC-822 dates
|
||||
|
@ -464,11 +464,11 @@ Date Revision Description
|
|||
24-Jun-2003 10 - Missing types for item/title and item/description - Spotted by Andreas Schwotzer.
|
||||
01-Jan-2008 11 - Copy made available under the Microsoft Public License (MS-PL).
|
||||
25-May-2008 12 - Bug fix 10231 from Ken Gruven - channel can contain zero or more items.
|
||||
06-Sep-2008 13 - Fixed tab-space whitespace issues. Now always use spaces.
|
||||
- Undid the fix for bug-fix 10231 since it made the schema non-deterministic
|
||||
06-Sep-2008 13 - Fixed tab-space whitespace issues. Now always use spaces.
|
||||
- Undid the fix for bug-fix 10231 since it made the schema non-deterministic
|
||||
with respect to extensibility elements in tRssChannel - need to reconsider the fix.
|
||||
08-Sep-2008 14 - Removed 't' prefixes from type names to improve class names
|
||||
that get code-generated from the schema.
|
||||
08-Sep-2008 14 - Removed 't' prefixes from type names to improve class names
|
||||
that get code-generated from the schema.
|
||||
22-Sep-2008 15 - Move type def for rss element in-line for improved compatibility with Java 1.6 tools.
|
||||
01-Nov-2008 16 - Added the missing rating element from the spec to RssChannel.
|
||||
04-Sep-2019 17 - Fixed some minor typos in comments and messages.
|
||||
|
|
|
@ -1,71 +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>
|
||||
<?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>
|
||||
|
|
|
@ -84,7 +84,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
|
||||
|
||||
<xs:element name="cover" type="Cover" />
|
||||
|
||||
<xs:element name="wordmark" type="xs:anyURI">
|
||||
|
|
Loading…
Reference in New Issue