Added: incubator/wave/whitepapers/federation/refs/RFC3920.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/whitepapers/federation/refs/RFC3920.xml?rev=1489334&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wave/whitepapers/federation/refs/RFC3920.xml
------------------------------------------------------------------------------
svn:mime-type = application/xml
Added: incubator/wave/whitepapers/federation/refs/VERFED.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/whitepapers/federation/refs/VERFED.xml?rev=1489334&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wave/whitepapers/federation/refs/VERFED.xml
------------------------------------------------------------------------------
svn:mime-type = application/xml
Added: incubator/wave/whitepapers/federation/refs/XEP0060.xml
URL:
http://svn.apache.org/viewvc/incubator/wave/whitepapers/federation/refs/XEP0060.xml?rev=1489334&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wave/whitepapers/federation/refs/XEP0060.xml
------------------------------------------------------------------------------
svn:mime-type = application/xml
Added: incubator/wave/whitepapers/federation/waveschema.rnc
URL:
http://svn.apache.org/viewvc/incubator/wave/whitepapers/federation/waveschema.rnc?rev=1489334&view=auto
==============================================================================
--- incubator/wave/whitepapers/federation/waveschema.rnc (added)
+++ incubator/wave/whitepapers/federation/waveschema.rnc Tue Jun 4 08:33:44
2013
@@ -0,0 +1,222 @@
+namespace default = ""
+namespace pubsub = "http://jabber.org/protocol/pubsub"
+namespace disco = "http://jabber.org/protocol/disco#info"
+namespace rec = "urn:xmpp:receipts" # NAMESPACE_XMPP_RECEIPTS
+namespace discoitems = "http://jabber.org/protocol/disco#items" #
NAMESPACE_DISCO_ITEMS
+namespace pubsubevt = "http://jabber.org/protocol/pubsub#event" #
NAMESPACE_PUBSUB_EVENT
+namespace wavesrv = "http://waveprotocol.org/protocol/0.2/waveserver" #
NAMESPACE_WAVE_SERVER
+namespace rcpt = "urn:xmpp:receipts"
+
+
+## Our possible iq children
+start = update
+ | submitrequest | submitresponse
+ | history-request | history-response
+ | signer-get-request | signer-get-response
+ | signer-post-request | signer-post-response
+
+## Envelope to push wavelet operations. Used in iq set stanza.
+update =
+ element message {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element rcpt:request { empty },
+ element pubsubevt:event {
+ element pubsubevt:items {
+ element pubsubevt:item {
+ element wavesrv:wavelet-update {
+ attribute wavelet-name { xsd:string },
+ element wavesrv:applied-delta { text }*,
+ commit-notice?
+ } *
+ }
+ }
+ }
+ }
+
+
+## Request for historical wavelet operations. Used in iq get stanza.
+history-request =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:items {
+ attribute node { text }, # set to "wavelet"
+ element wavesrv:delta-history {
+ attribute wavelet-name { xsd:string },
+ attribute start-version { xsd:integer },
+ attribute start-version-hash { xsd:string },
+ attribute end-version { xsd:integer },
+ attribute end-version-hash { xsd:string },
+ attribute response-length-limit { xsd:integer }?
+ } *
+ }
+ }
+ }
+
+## Response to history-request. Used in iq result stanza.
+history-response =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:items {
+ element pubsub:item {
+ element wavesrv:applied-delta {
+ text
+ }
+ | element wavesrv:history-truncated {
+ attribute version { xsd:integer }
+ }
+ | commit-notice
+ } *
+ }
+ }
+ }
+
+## Request to submit operations to a wavelet. Used in iq set stanza.
+submitrequest =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:publish {
+ attribute node { xsd:string },
+ element pubsub:item {
+ element wavesrv:submit-request {
+ element wavesrv:delta {
+ attribute wavelet-name { xsd:string },
+ text
+ }
+ }
+ }
+ }
+ }
+ }
+
+## Response to submit-request. Used in iq result stanza.
+submitresponse =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:publish {
+ element pubsub:item {
+ element wavesrv:submit-response {
+ attribute application-timestamp { xsd:integer },
+ attribute operations-applied { xsd:integer },
+ attribute error-message { xsd:string }?,
+ hashed-version
+ }
+ }
+ }
+ }
+ }
+
+
+## Signer get request
+signer-get-request =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:items {
+ attribute node { xsd:string }, # need to be hardcoded value "signer"
+ element wavesrv:signer-request {
+ attribute signer-id {xsd:string },
+ attribute wavelet-name { xsd:string },
+ version-hash-attributes
+ }
+ }
+ }
+ }
+
+## Signer get response
+signer-get-response =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:items {
+ element wavesrv:signature {
+ attribute domain { text },
+ attribute algorithm { text },
+ element wavesrv:certificate { text } +
+ }
+ }
+ }
+ }
+
+
+
+## Signer post request
+signer-post-request =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:publish {
+ attribute node { xsd:string }, # need to be hardcoded value "signer"
+ element pubsub:item {
+ element wavesrv:signature {
+ attribute domain { text },
+ attribute algorithm { text },
+ element wavesrv:certificate { text } +
+ }
+ }
+ }
+ }
+ }
+
+## Signer post response
+signer-post-response =
+ element iq {
+ attribute id { text },
+ attribute from { text },
+ attribute to { text },
+ attribute type { text },
+ element pubsub:pubsub {
+ element pubsub:publish {
+ element pubsub:item {
+ attribute node { xsd:string }, # need to be hardcoded value "signer"
+ element wavesrv:signature-response { empty }
+ }
+ }
+ }
+ }
+
+
+## A wavelet version and the wavelet's history hash at that version.
+version-hash-attributes =
+ attribute version { xsd:integer } & attribute history-hash { xsd:string }
+
+## Notification of the fact that the host provider has persisted a
+## wavelet up to the specified version.
+commit-notice =
+ element wavesrv:commit-notice {
+ attribute version { xsd:integer }
+ }
+
+## Describes a wavelet version and the wavelet's history hash at that version.
+hashed-version =
+ element wavesrv:hashed-version {
+ version-hash-attributes
+ }
+