Add Feed Access Control XML schema

This commit is contained in:
~lucidiot 2023-11-22 23:29:43 +01:00
parent cff96c6a62
commit 2dac77856f
1 changed files with 69 additions and 0 deletions

69
xsd/fac.xsd Normal file
View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Feed Access Control 1.0 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.bloglines.com/about/specs/fac-1.0"
version="1.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns="http://www.bloglines.com/about/specs/fac-1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:annotation>
<xs:documentation>Feed Access Control 1.0 XML schema</xs:documentation>
<xs:documentation>
<![CDATA[Derived from the documentation archived at <https://web.archive.org/web/20080101062756/http://www.bloglines.com/about/specs/fac-1.0>]]>
</xs:documentation>
</xs:annotation>
<xs:simpleType name="AccessRestrictionRelationship">
<xs:annotation>
<xs:documentation>Defines the currently applied redistribution rules.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="allow">
<xs:annotation>
<xs:documentation>Allow redistributing this feed to other public sources, including search.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="deny">
<xs:annotation>
<xs:documentation>Deny redistributing this feed to other public sources, including search.</xs:documentation>
<xs:documentation>
Note that the original specification does not say whether or not an aggregator
should delete any previous redistributions of the feed when this value is set.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AccessRestriction">
<xs:annotation>
<xs:documentation>Defines whether this feed allows or denies redistribution to other public sources, including search.</xs:documentation>
<xs:documentation>When this element is missing from a feed, feed aggregators should default to a relationship value of `allow`.</xs:documentation>
<xs:documentation>
When the relationship value was previously set to `deny`, and the element gets removed,
feed aggregators should continue applying the `deny` value until a value of `allow` is explicitly set.
Removing the element is not enough to resume allowing redistribution.
</xs:documentation>
</xs:annotation>
<xs:attribute name="relationship" type="AccessRestrictionRelationship" use="required" />
</xs:complexType>
<xs:element name="restriction" type="AccessRestriction" />
</xs:schema>