| < draft-urpalainen-simple-presence-relaxng-04.txt | draft-urpalainen-simple-presence-relaxng-05.txt > | |||
|---|---|---|---|---|
| SIMPLE WG J. Urpalainen | SIMPLE WG J. Urpalainen | |||
| Internet-Draft Nokia | Internet-Draft Nokia | |||
| Intended status: Informational September 30, 2008 | Intended status: Informational October 9, 2008 | |||
| Expires: April 3, 2009 | Expires: April 12, 2009 | |||
| Combined Presence Schemas Utilizing RELAX NG | Combined Presence Schemas Utilizing RELAX NG | |||
| draft-urpalainen-simple-presence-relaxng-04 | draft-urpalainen-simple-presence-relaxng-05 | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on April 3, 2009. | This Internet-Draft will expire on April 12, 2009. | |||
| Abstract | Abstract | |||
| This memo describes a batch of Presence Information Data Format | This memo describes a batch of Presence Information Data Format | |||
| (PIDF) and its extension schemas written with the RELAX NG schema | (PIDF) and its extension schemas written with the RELAX NG schema | |||
| language. Unlike with the current W3C XML Schema language it is | language. Unlike with the current W3C XML Schema language it is | |||
| possible to write reasonable forwards and backwards compatible | possible to write reasonable forwards and backwards compatible | |||
| presence combination schemas. These RELAX NG schemas are stricter | presence combination schemas. These RELAX NG schemas are stricter | |||
| than the W3C Schemas and thus the instance documents that validate | than the W3C Schemas and thus the instance documents that validate | |||
| with these schemas follow the intended content model more closely. | with these schemas follow the intended content model more closely. | |||
| skipping to change at page 4, line 38 ¶ | skipping to change at page 4, line 38 ¶ | |||
| are used to constrain the element and attribute content in these | are used to constrain the element and attribute content in these | |||
| schemas. | schemas. | |||
| The model for these schemas is based on the approximate chronological | The model for these schemas is based on the approximate chronological | |||
| order of appearance of these schemas, i.e. the PIDF schema is the | order of appearance of these schemas, i.e. the PIDF schema is the | |||
| baseline schema and the DataModel schema includes it by adding some | baseline schema and the DataModel schema includes it by adding some | |||
| extensions. Then the RPID schema includes the DataModel schema and | extensions. Then the RPID schema includes the DataModel schema and | |||
| defines new extensions, etc. When an implementation wants to | defines new extensions, etc. When an implementation wants to | |||
| validate an instance document it just has to provide a single schema | validate an instance document it just has to provide a single schema | |||
| e.g. a RPID reference to the validator as that schema will include | e.g. a RPID reference to the validator as that schema will include | |||
| all the others. | all the other schemas. | |||
| Extension points, i.e. where <any> wildcards are used in W3C XML | Extension points, i.e. where <any> wildcards are used in W3C XML | |||
| Schemas, are described by adding a similar extension definition which | Schemas, are described by adding a similar extension definition which | |||
| can be extended by using the combine="interleave" pattern rule. The | can be extended by using the combine="interleave" pattern rule. The | |||
| wildcard definition MUST be redefined in extension schemas since name | wildcard definition MUST be redefined in extension schemas since name | |||
| classes MUST NOT overlap with the interleave pattern. The schemas | classes MUST NOT overlap with the interleave pattern. The schemas | |||
| presented in this memo are thus deterministic and unambiguous | presented in this memo are thus deterministic and unambiguous | |||
| although it is not a general requirement of the RELAX NG schema | although it is not a general requirement of the RELAX NG schema | |||
| language. | language. | |||
| The ability to easily redefine extension points can help to detect | The ability to easily redefine extension points can help to detect | |||
| implementation errors when an application does not have any | implementation errors when an application does not have any | |||
| extensions beyond e.g. RPID and DataModel: | extensions beyond e.g. RPID and DataModel elements: | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | <grammar xmlns="http://relaxng.org/ns/structure/1.0"> | |||
| <include href="rpid.rng"> | <include href="rpid.rng"> | |||
| <!-- rule out extensions --> | <!-- rule out extensions --> | |||
| <define name="anyRPID"> | <define name="anyRPID"> | |||
| <empty/> | <empty/> | |||
| </define> | </define> | |||
| skipping to change at page 5, line 31 ¶ | skipping to change at page 5, line 31 ¶ | |||
| Without touching the PIDF, DataModel or RPID schemas all the wildcard | Without touching the PIDF, DataModel or RPID schemas all the wildcard | |||
| extensions have been practically removed. Similarly, if "rpid.rng" | extensions have been practically removed. Similarly, if "rpid.rng" | |||
| is replaced with "prescaps.rng" and "anyRPID" with "anyCaps" the | is replaced with "prescaps.rng" and "anyRPID" with "anyCaps" the | |||
| combined schema will rule out all the wildcard extensions while | combined schema will rule out all the wildcard extensions while | |||
| retaining the other element and attribute definitions within the | retaining the other element and attribute definitions within the | |||
| PIDF, DataModel, RPID, CIPID and CAPS schemas. Wildcards in these | PIDF, DataModel, RPID, CIPID and CAPS schemas. Wildcards in these | |||
| RELAX NG schemas do not strictly follow the "##other" namespace rules | RELAX NG schemas do not strictly follow the "##other" namespace rules | |||
| of the W3C Schema versions. Instead a conservative and simple | of the W3C Schema versions. Instead a conservative and simple | |||
| deterministic model were just chosen where wildcard except rules are | deterministic model were just chosen where wildcard except rules are | |||
| redefined by just adding new <nsName> namespace definitions onto the | redefined by just adding a new <nsName> namespace definitions onto | |||
| <except> list. | the new <except> list. | |||
| 4. PIDF schema | 4. PIDF schema | |||
| The RELAX NG version of the PIDF [RFC3863] schema. Hereafter it is | The RELAX NG version of the PIDF [RFC3863] schema. Hereafter it is | |||
| called with "pidf.rng" as if it were represented as an equivalent | called with "pidf.rng" as if it were represented as an equivalent | |||
| filesystem object. | filesystem object. | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" | <grammar xmlns="http://relaxng.org/ns/structure/1.0" | |||
| ns="urn:ietf:params:xml:ns:pidf" | ns="urn:ietf:params:xml:ns:pidf" | |||
| skipping to change at page 7, line 50 ¶ | skipping to change at page 7, line 50 ¶ | |||
| </anyName> | </anyName> | |||
| <ref name="anyExtension"/> | <ref name="anyExtension"/> | |||
| </element> | </element> | |||
| </define> | </define> | |||
| <!-- wildcard type for complex elements (of mixed type) | <!-- wildcard type for complex elements (of mixed type) | |||
| without any namespace restrictions --> | without any namespace restrictions --> | |||
| <define name="any"> | <define name="any"> | |||
| <element> | <element> | |||
| <anyName/> | <anyName/> | |||
| <ref name="anyExtension"/> | <zeroOrMore> | |||
| </element> | <choice> | |||
| <attribute> | ||||
| <anyName/> | ||||
| </attribute> | ||||
| <text/> | ||||
| <ref name="any"/> | ||||
| </choice> | ||||
| </zeroOrMore> | ||||
| </element> | ||||
| </define> | </define> | |||
| <!-- the rest of the "any" wildcard definition --> | ||||
| <!-- the rest of the "anyPIDF" wildcard definition --> | ||||
| <define name="anyExtension"> | <define name="anyExtension"> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <choice> | <choice> | |||
| <attribute> | <attribute> | |||
| <anyName/> | <anyName/> | |||
| </attribute> | </attribute> | |||
| <text/> | ||||
| <ref name="any"/> | <ref name="any"/> | |||
| </choice> | </choice> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| </define> | </define> | |||
| <!-- note --> | <!-- note --> | |||
| <define name="note"> | <define name="note"> | |||
| <element name="note"> | <element name="note"> | |||
| <optional> | <optional> | |||
| <attribute> | <attribute> | |||
| skipping to change at page 8, line 33 ¶ | skipping to change at page 8, line 41 ¶ | |||
| <data type="language"/> | <data type="language"/> | |||
| </attribute> | </attribute> | |||
| </optional> | </optional> | |||
| <data type="string"/> | <data type="string"/> | |||
| </element> | </element> | |||
| </define> | </define> | |||
| </grammar> | </grammar> | |||
| This is the only schema that defines a document root element. The | This is the only schema that defines a document root element. The | |||
| "anyPIDF" wildcard definition rules out elements from the PIDF | "anyPIDF" wildcard definition rules out elements from the PIDF | |||
| namespace and also elements that don't have any namespace attached. | namespace and also unqualified elements. The "PresenceExtension", | |||
| The "PresenceExtension", "StatusExtension" and "TupleExtension" | "StatusExtension" and "TupleExtension" definitions are extension | |||
| definitions are extension points which can be extended by new element | points which can be extended by new element definitions with the | |||
| definitions with the combine="interleave" pattern. | combine="interleave" pattern. | |||
| 5. DataModel schema | 5. DataModel schema | |||
| The RELAX NG version of the DataModel [RFC4479] schema, "data- | The RELAX NG version of the DataModel [RFC4479] schema, "data- | |||
| model.rng": | model.rng": | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" | <grammar xmlns="http://relaxng.org/ns/structure/1.0" | |||
| ns="urn:ietf:params:xml:ns:pidf:data-model" | ns="urn:ietf:params:xml:ns:pidf:data-model" | |||
| datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | |||
| skipping to change at page 9, line 4 ¶ | skipping to change at page 9, line 11 ¶ | |||
| The RELAX NG version of the DataModel [RFC4479] schema, "data- | The RELAX NG version of the DataModel [RFC4479] schema, "data- | |||
| model.rng": | model.rng": | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" | <grammar xmlns="http://relaxng.org/ns/structure/1.0" | |||
| ns="urn:ietf:params:xml:ns:pidf:data-model" | ns="urn:ietf:params:xml:ns:pidf:data-model" | |||
| datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | |||
| <include href="pidf.rng"> | <include href="pidf.rng"> | |||
| <!-- rule out data-model+pidf namespace --> | <!-- rule out data-model+pidf namespace --> | |||
| <define name="anyPIDF"> | <define name="anyPIDF"> | |||
| <ref name="anyDataModel"/> | <ref name="anyDataModel"/> | |||
| </define> | </define> | |||
| </include> | </include> | |||
| <!-- presence <device> extension definition --> | <!-- presence <device> extension definition --> | |||
| <define name="PresenceExtension" combine="interleave"> | <define name="PresenceExtension" combine="interleave"> | |||
| <interleave> | <interleave> | |||
| <optional> | <zeroOrMore> | |||
| <element name="device"> | <element name="device"> | |||
| <attribute name="id"> | <attribute name="id"> | |||
| <data type="ID"/> | <data type="ID"/> | |||
| </attribute> | </attribute> | |||
| <ref name="DeviceExtension"/> | <ref name="DeviceExtension"/> | |||
| <ref name="deviceIDDataModel"/> | <ref name="deviceIDDataModel"/> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="noteDataModel"/> | <ref name="noteDataModel"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| <optional> | <optional> | |||
| <ref name="timestampDataModel"/> | <ref name="timestampDataModel"/> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </zeroOrMore> | |||
| <optional> | <zeroOrMore> | |||
| <element name="person"> | <element name="person"> | |||
| <attribute name="id"> | <attribute name="id"> | |||
| <data type="ID"/> | <data type="ID"/> | |||
| </attribute> | </attribute> | |||
| <ref name="PersonExtension"/> | <ref name="PersonExtension"/> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="noteDataModel"/> | <ref name="noteDataModel"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| skipping to change at page 9, line 45 ¶ | skipping to change at page 10, line 4 ¶ | |||
| <element name="person"> | <element name="person"> | |||
| <attribute name="id"> | <attribute name="id"> | |||
| <data type="ID"/> | <data type="ID"/> | |||
| </attribute> | </attribute> | |||
| <ref name="PersonExtension"/> | <ref name="PersonExtension"/> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="noteDataModel"/> | <ref name="noteDataModel"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| <optional> | <optional> | |||
| <ref name="timestampDataModel"/> | <ref name="timestampDataModel"/> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </zeroOrMore> | |||
| </interleave> | </interleave> | |||
| </define> | </define> | |||
| <!-- tuple extension definition --> | <!-- tuple extension definition --> | |||
| <define name="TupleExtension" combine="interleave"> | <define name="TupleExtension" combine="interleave"> | |||
| <optional> | <optional> | |||
| <ref name="deviceIDDataModel"/> | <ref name="deviceIDDataModel"/> | |||
| </optional> | </optional> | |||
| </define> | </define> | |||
| <!-- extension point with interleave for person element --> | <!-- extension point with interleave for person element --> | |||
| skipping to change at page 10, line 28 ¶ | skipping to change at page 10, line 33 ¶ | |||
| </zeroOrMore> | </zeroOrMore> | |||
| </define> | </define> | |||
| <!-- extension point with interleave for device element --> | <!-- extension point with interleave for device element --> | |||
| <define name="DeviceExtension"> | <define name="DeviceExtension"> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="anyDataModel"/> | <ref name="anyDataModel"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| </define> | </define> | |||
| <!-- wildcarcd from other than | <!-- wildcard from the other than | |||
| pidf and data-model namespaces --> | pidf and data-model namespaces --> | |||
| <define name="anyDataModel"> | <define name="anyDataModel"> | |||
| <element> | <element> | |||
| <anyName> | <anyName> | |||
| <except> | <except> | |||
| <nsName ns="urn:ietf:params:xml:ns:pidf:data-model"/> | <nsName ns="urn:ietf:params:xml:ns:pidf:data-model"/> | |||
| <nsName ns="urn:ietf:params:xml:ns:pidf"/> | <nsName ns="urn:ietf:params:xml:ns:pidf"/> | |||
| <nsName ns=""/> | <nsName ns=""/> | |||
| </except> | </except> | |||
| </anyName> | </anyName> | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 11, line 10 ¶ | |||
| <!-- data-model note --> | <!-- data-model note --> | |||
| <define name="noteDataModel"> | <define name="noteDataModel"> | |||
| <element name="note"> | <element name="note"> | |||
| <optional> | <optional> | |||
| <attribute> | <attribute> | |||
| <name ns="http://www.w3.org/XML/1998/namespace">lang</name> | <name ns="http://www.w3.org/XML/1998/namespace">lang</name> | |||
| <data type="language"/> | <data type="language"/> | |||
| </attribute> | </attribute> | |||
| </optional> | </optional> | |||
| <data type="string"/> | <data type="string"/> | |||
| </element> | </element> | |||
| </define> | </define> | |||
| <!-- deviceID --> | <!-- deviceID --> | |||
| <define name="deviceIDDataModel"> | <define name="deviceIDDataModel"> | |||
| <element name="deviceID"> | <element name="deviceID"> | |||
| <data type="anyURI"/> | <data type="anyURI"/> | |||
| </element> | </element> | |||
| </define> | </define> | |||
| <!-- timestamp --> | <!-- timestamp --> | |||
| <define name="timestampDataModel"> | <define name="timestampDataModel"> | |||
| <element name="timestamp"> | <element name="timestamp"> | |||
| <data type="dateTime"/> | <data type="dateTime"/> | |||
| </element> | </element> | |||
| </define> | </define> | |||
| </grammar> | </grammar> | |||
| The DataModel schema includes "pidf.rng" and the "anyPIDF" wildcard | The DataModel schema includes "pidf.rng" and the "anyPIDF" wildcard | |||
| definition is redefined with "anyDataModel". The "PersonExtension" | definition is redefined with "anyDataModel". The "PersonExtension" | |||
| and "DeviceExtension" definitions are extension points. | and "DeviceExtension" definitions are DataModel extension points. | |||
| 6. RPID schema | 6. RPID schema | |||
| The RELAX NG version of the RPID [RFC4480] schema, "rpid.rng": | The RELAX NG version of the RPID [RFC4480] schema, "rpid.rng": | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <grammar xmlns="http://relaxng.org/ns/structure/1.0" | <grammar xmlns="http://relaxng.org/ns/structure/1.0" | |||
| ns="urn:ietf:params:xml:ns:pidf:rpid" | ns="urn:ietf:params:xml:ns:pidf:rpid" | |||
| datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> | |||
| skipping to change at page 31, line 47 ¶ | skipping to change at page 32, line 4 ¶ | |||
| <optional> | <optional> | |||
| <element name="notsupported"> | <element name="notsupported"> | |||
| <ref name="classtypes"/> | <ref name="classtypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="control"> | <element name="control"> | |||
| <data type="boolean"/> | <data type="boolean"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="data"> | <element name="data"> | |||
| <data type="boolean"/> | <data type="boolean"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="description"/> | <ref name="description"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| <optional> | <optional> | |||
| <element name="duplex"> | <element name="duplex"> | |||
| <optional> | <optional> | |||
| <element name="supported"> | <element name="supported"> | |||
| <ref name="duplextypes"/> | <ref name="duplextypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="notsupported"> | <element name="notsupported"> | |||
| <ref name="duplextypes"/> | <ref name="duplextypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="extensions"> | <element name="event-packages"> | |||
| <optional> | <optional> | |||
| <element name="supported"> | <element name="supported"> | |||
| <ref name="extensiontypes"/> | <ref name="eventtypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="notsupported"> | <element name="notsupported"> | |||
| <ref name="extensiontypes"/> | <ref name="eventtypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="event-packages"> | <element name="extensions"> | |||
| <optional> | <optional> | |||
| <element name="supported"> | <element name="supported"> | |||
| <ref name="eventtypes"/> | <ref name="extensiontypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="notsupported"> | <element name="notsupported"> | |||
| <ref name="eventtypes"/> | <ref name="extensiontypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="isfocus"> | <element name="isfocus"> | |||
| <data type="boolean"/> | <data type="boolean"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| skipping to change at page 36, line 8 ¶ | skipping to change at page 36, line 13 ¶ | |||
| <optional> | <optional> | |||
| <element name="message-summary"><data type="string"/></element> | <element name="message-summary"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="poc-settings"><data type="string"/></element> | <element name="poc-settings"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="presence"><data type="string"/></element> | <element name="presence"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="refer"><data type="string"/></element> | ||||
| </optional> | ||||
| <optional> | ||||
| <element name="reg"><data type="string"/></element> | <element name="reg"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="refer"><data type="string"/></element> | <element name="refer"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="Siemens-RTP-Stats"><data type="string"/></element> | <element name="Siemens-RTP-Stats"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="spirits-INDPs"><data type="string"/></element> | <element name="spirits-INDPs"><data type="string"/></element> | |||
| skipping to change at page 37, line 4 ¶ | skipping to change at page 37, line 6 ¶ | |||
| <element name="eventlist"><data type="string"/></element> | <element name="eventlist"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="from-change"><data type="string"/></element> | <element name="from-change"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="gruu"><data type="string"/></element> | <element name="gruu"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="hist-info"><data type="string"/></element> | <element name="hist-info"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="join"><data type="string"/></element> | <element name="join"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="norefersub"><data type="string"/></element> | <element name="norefersub"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="path"><data type="string"/></element> | <element name="path"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="precondition"><data type="string"/></element> | <element name="precondition"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="pref"><data type="string"/></element> | <element name="pref"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="privacy"><data type="string"/></element> | <element name="privacy"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="recipient-list-invite"> | ||||
| <data type="string"/></element> | ||||
| </optional> | ||||
| <optional> | ||||
| <element name="recipient-list-subscribe"> | ||||
| <data type="string"/></element> | ||||
| </optional> | ||||
| <optional> | ||||
| <element name="replaces"><data type="string"/></element> | <element name="replaces"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="resource-priority"><data type="string"/></element> | <element name="resource-priority"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="sdp-anat"><data type="string"/></element> | <element name="sdp-anat"><data type="string"/></element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="sec-agree"><data type="string"/></element> | <element name="sec-agree"><data type="string"/></element> | |||
| skipping to change at page 40, line 4 ¶ | skipping to change at page 40, line 14 ¶ | |||
| <ref name="mobilitytypes"/> | <ref name="mobilitytypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | <optional> | |||
| <element name="notsupported"> | <element name="notsupported"> | |||
| <ref name="mobilitytypes"/> | <ref name="mobilitytypes"/> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| <optional> | ||||
| <element name="priority"> | ||||
| <optional> | ||||
| <element name="supported"> | ||||
| <ref name="prioritytypes"/> | ||||
| </element> | ||||
| </optional> | ||||
| <optional> | ||||
| <element name="notsupported"> | ||||
| <ref name="prioritytypes"/> | ||||
| </element> | ||||
| </optional> | ||||
| </element> | ||||
| </optional> | ||||
| <zeroOrMore> | <zeroOrMore> | |||
| <ref name="anyCaps"/> | <ref name="anyCaps"/> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| <zeroOrMore> | <zeroOrMore> | |||
| <attribute> | <attribute> | |||
| <anyName/> | <anyName/> | |||
| </attribute> | </attribute> | |||
| </zeroOrMore> | </zeroOrMore> | |||
| </element> | </element> | |||
| </optional> | </optional> | |||
| skipping to change at page 48, line 23 ¶ | skipping to change at page 48, line 19 ¶ | |||
| <ci:card>http://example.com/~someone/card.vcd</ci:card> | <ci:card>http://example.com/~someone/card.vcd</ci:card> | |||
| <ci:homepage>http://example.com/~someone</ci:homepage> | <ci:homepage>http://example.com/~someone</ci:homepage> | |||
| <ci:icon>http://example.com/~someone/icon.gif</ci:icon> | <ci:icon>http://example.com/~someone/icon.gif</ci:icon> | |||
| <ci:map>http://example.com/~someone/gml-map.xml</ci:map> | <ci:map>http://example.com/~someone/gml-map.xml</ci:map> | |||
| <ci:sound>http://example.com/~someone/whoosh.wav</ci:sound> | <ci:sound>http://example.com/~someone/whoosh.wav</ci:sound> | |||
| <dm:timestamp>2005-05-30T16:09:44+05:00</dm:timestamp> | <dm:timestamp>2005-05-30T16:09:44+05:00</dm:timestamp> | |||
| </dm:person> | </dm:person> | |||
| </presence> | </presence> | |||
| This instance document can be validated with the described PIDF, | This instance document can be validated with the described PIDF, PIDF | |||
| PIDF+DataModel, PIDF+DataModel+RPID, PIDF+DataModel+RPID+CIPID, PIDF+ | + DataModel, PIDF + DataModel + RPID, PIDF + DataModel + RPID + | |||
| DataModel+RPID+CIPID+CAPS, PIDF+DataModel+RPID+CIPID+CAPS+ | CIPID, PIDF + DataModel + RPID + CIPID + CAPS, PIDF + DataModel + | |||
| LocationTypes or PIDF+DataModel+RPID+CIPID+CAPS+LocationTypes+ | RPID + CIPID + CAPS + LocationTypes or PIDF + DataModel + RPID + | |||
| TimedStatus schemas. The wildcard definitions can be disabled when | CIPID + CAPS + LocationTypes + TimedStatus schemas. The wildcard | |||
| using e.g. the CAPS schema as there are no "private" extensions. | definitions can be disabled when using e.g. the CAPS schema as there | |||
| Likewise a simple basic PIDF instance document can be validated with | are no "private" extensions. Likewise a simple basic PIDF instance | |||
| all of these schema combinations. This shows how forwards and | document can be validated with all of these schema combinations. | |||
| backwards compatible schemas work in practice, only the level of | This shows how forwards and backwards compatible schemas work in | |||
| scrutiny changes. | practice, only the level of scrutiny changes. | |||
| It is worth noting that the ordering of the extension child elements | It is worth noting that the ordering of the extension child elements | |||
| of the <tuple> element can interchange. This applies to the <person> | of the <tuple> element can interchange. This applies to the <person> | |||
| element extensions as well. The "interleave" definition allows | element extensions as well. The "interleave" definition allows | |||
| unordered content. | unordered content. | |||
| 12. Security considerations | 12. Security considerations | |||
| Information transported within these documents can be highly | Information transported within these documents can be highly | |||
| sensitive. All the security considerations described in PIDF and | sensitive. All the security considerations described in PIDF and | |||
| End of changes. 33 change blocks. | ||||
| 60 lines changed or deleted | 57 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||