dc09453a77
* renamed FeedSub plugin to OStatus * now setting avatar on subscriptions * general fixes for subscription * integrated PuSH hub to handle only user timelines on canonical ID url; sends updates directly * set $config['feedsub']['nohub'] = true to test w/ foreign feeds that don't have hubs (won't actually receive updates though) * a few bits of code documentation * HMAC support for verified distributions (safest if sub setup is on HTTPS) And a couple core changes: * minimizing HTML output for exceptions in API requests to aid in debugging * fix for rel=self link in apitimelineuser when id given This does not not yet include any of the individual subscription management (Salmon notifications for sub/unsub, etc) nor a nice UI for user subscriptions. Needs some further cleanup to treat posts as status updates instead of link references.
219 lines
5.0 KiB
XML
Executable File
219 lines
5.0 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
RELAX NG Compact Schema for RSS 1.1
|
|
Sean B. Palmer, inamidst.com
|
|
Christopher Schmidt, crschmidt.net
|
|
License: This schema is in the public domain
|
|
-->
|
|
<grammar xmlns:rss="http://purl.org/net/rss1.1#" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ns="http://purl.org/net/rss1.1#" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<start>
|
|
<ref name="Channel"/>
|
|
</start>
|
|
<define name="Channel">
|
|
<a:documentation>http://purl.org/net/rss1.1#Channel</a:documentation>
|
|
<element name="Channel">
|
|
<ref name="Channel.content"/>
|
|
|
|
</element>
|
|
</define>
|
|
<define name="Channel.content">
|
|
<optional>
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="AttrXMLBase"/>
|
|
</optional>
|
|
|
|
<ref name="AttrRDFAbout"/>
|
|
<interleave>
|
|
<ref name="title"/>
|
|
<ref name="link"/>
|
|
<ref name="description"/>
|
|
<optional>
|
|
<ref name="image"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
|
|
<ref name="Any"/>
|
|
</zeroOrMore>
|
|
<ref name="items"/>
|
|
</interleave>
|
|
</define>
|
|
<define name="title">
|
|
<a:documentation>http://purl.org/net/rss1.1#title</a:documentation>
|
|
<element name="title">
|
|
|
|
<ref name="title.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="title.content">
|
|
<optional>
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<text/>
|
|
</define>
|
|
|
|
<define name="link">
|
|
<a:documentation>http://purl.org/net/rss1.1#link</a:documentation>
|
|
<element name="link">
|
|
<ref name="link.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="link.content">
|
|
<data type="anyURI"/>
|
|
|
|
</define>
|
|
<define name="description">
|
|
<a:documentation>http://purl.org/net/rss1.1#description</a:documentation>
|
|
<element name="description">
|
|
<ref name="description.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="description.content">
|
|
|
|
<optional>
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<text/>
|
|
</define>
|
|
<define name="image">
|
|
<a:documentation>http://purl.org/net/rss1.1#image</a:documentation>
|
|
<element name="image">
|
|
|
|
<ref name="image.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="image.content">
|
|
<optional>
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<ref name="AttrRDFResource"/>
|
|
<interleave>
|
|
|
|
<ref name="title"/>
|
|
<optional>
|
|
<ref name="link"/>
|
|
</optional>
|
|
<ref name="url"/>
|
|
<zeroOrMore>
|
|
<ref name="Any"/>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
|
|
</define>
|
|
<define name="url">
|
|
<a:documentation>http://purl.org/net/rss1.1#url</a:documentation>
|
|
<element name="url">
|
|
<ref name="url.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="url.content">
|
|
|
|
<data type="anyURI"/>
|
|
</define>
|
|
<define name="items">
|
|
<a:documentation>http://purl.org/net/rss1.1#items</a:documentation>
|
|
<element name="items">
|
|
<ref name="items.content"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="items.content">
|
|
<optional>
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<ref name="AttrRDFCollection"/>
|
|
<zeroOrMore>
|
|
<ref name="item"/>
|
|
</zeroOrMore>
|
|
</define>
|
|
|
|
<define name="item">
|
|
<a:documentation>http://purl.org/net/rss1.1#item</a:documentation>
|
|
<element name="item">
|
|
<ref name="item.content"/>
|
|
</element>
|
|
</define>
|
|
<define name="item.content">
|
|
<optional>
|
|
|
|
<ref name="AttrXMLLang"/>
|
|
</optional>
|
|
<ref name="AttrRDFAbout"/>
|
|
<interleave>
|
|
<ref name="title"/>
|
|
<ref name="link"/>
|
|
<optional>
|
|
<ref name="description"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="image"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="Any"/>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</define>
|
|
<define name="Any">
|
|
|
|
<a:documentation>http://purl.org/net/rss1.1#Any</a:documentation>
|
|
<element>
|
|
<anyName>
|
|
<except>
|
|
<nsName/>
|
|
</except>
|
|
</anyName>
|
|
<ref name="Any.content"/>
|
|
|
|
</element>
|
|
</define>
|
|
<define name="Any.content">
|
|
<zeroOrMore>
|
|
<attribute>
|
|
<anyName>
|
|
<except>
|
|
<nsName/>
|
|
<nsName ns=""/>
|
|
|
|
</except>
|
|
</anyName>
|
|
</attribute>
|
|
</zeroOrMore>
|
|
<mixed>
|
|
<zeroOrMore>
|
|
<ref name="Any"/>
|
|
</zeroOrMore>
|
|
</mixed>
|
|
|
|
</define>
|
|
<define name="AttrXMLLang">
|
|
<attribute name="xml:lang">
|
|
<data type="language"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="AttrXMLBase">
|
|
<attribute name="xml:base">
|
|
<data type="anyURI"/>
|
|
|
|
</attribute>
|
|
</define>
|
|
<define name="AttrRDFAbout">
|
|
<attribute name="rdf:about">
|
|
<data type="anyURI"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="AttrRDFResource">
|
|
<attribute name="rdf:parseType">
|
|
|
|
<value>Resource</value>
|
|
</attribute>
|
|
</define>
|
|
<define name="AttrRDFCollection">
|
|
<attribute name="rdf:parseType">
|
|
<value>Collection</value>
|
|
</attribute>
|
|
</define>
|
|
|
|
</grammar>
|