|
Hello Jonathan,
The http://tools.ietf.org/html/draft-ietf-simple-xcap-diff-05 describes a format how to sending information about the changes of an xcap document.
In some situation it is useful be able to include more information in the change log than just what has been changed. Information that can be useful to have is when the changed occured, who did the change and the etag before and after the change. I have tried to find a way of adding such new elements but failed.
My proposal is to change the xml schema in such away that it is posssible to add new attributes the elements <add>, <remove> and <replace> making it possible to define a document like
<?xml version="1.0" encoding="UTF-8"?>
<xcap-diff xmlns="urn:ietf:params ml:ns cap-diff"
xmlns:ns="newnamespace">
xcap-root="http://xcap.example.com/root">
xmlns:ns="newnamespace">
<document new-etag="7ahggs"
doc-selector="resource-lists/users/joe/coworkers"
previous-etag="8a77f8d"/>
<change-log>
<add sel="*/elem[ a='bar']" type=" b" ns:timestamp="2007-05-30" ns:changed-by="bob" previuos-etag="8a77f8d" new-etag="9ddgsds">new attr</add>
<add sel="........." Type="-----" ns:timestamp="2007-06-01" ns:changed-by="joe" previuos-etag="9ddgsds" new-etag="7ahggs">------</add>
</change-log>
</xcap-diff>
If I understand it correctly it is the definitions below that needs to be changed to allow new attributes to be added.
<xs:element name="add" type="add"/>
<xs:element name="remove" type="remove"/>
<xs:element name="replace" type="replace"/>
They need to be of the form
<xsd:element name="add">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="tns:add">
<xsd:anyAttribute processContents="lax"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
instead.
It might also be useful to be able to reuse the attributes "previuos-etag" and "new-etag" in the <document> element also as attributes to the <change-log> child elements above.
It would be nice to get your comments on this issue.
Regards
Anders
|