< 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/