Subject: [Simple] Updated XCAP specification

From: Jonathan Rosenberg <[email-masked]>
Date: Sun, 15 Feb 2004 02:43:43 -0500

Folks,

I've just submitted an update to the main xcap spec. Until it appears in 
the archives, you can pick up a copy at:

http://www.jdrosen.net/papers/draft-ietf-simple-xcap-02.txt

Here are the differences from the previous version:

* MIME type for element PUTs and GETs is now defined as
application/xml-fragment-body. Did not include proposed "root"
type - wasnt clear why it was needed. The root is known by the
requesting client.

* MIME type for attribute PUT and GETs is now defined as
application/xml-attribute-value and is just the value, not the
attribute name.

* combined the create and replace document, element and attribute
sections into one section each

* when the server gets a PUT request to create a new element,
clarified that, if the parent of that element does not exist, the
server returns a 409. Similarly for an attribute creation. This case
was formerly described as "if the server needs to create additional
content in order to perform the insertion, return a 409". This was too
vague.

* defined the default authorization policy for resources in the global
tree - read can be done by all users, write only by priviledged
administrators.

* clarified that you cannot select comments, processing instructions,
text content or namespace attributes with a URI.

* clarified that the response to a PUT is a 200 OK with no content.

* Etag behavior has completely changed. Now, the server maintains a
single etag for the document. Any sub-component will share that etag.

* Add text to clarify that, in the case of data dependencies, if the
client wants to find out the data computed by the server, it needs to
do a subsequent GET, or use the xcap event package. Also clarified
that the server is responsible for computing this data after a PUT,
and responsible for changing the etag.

* In the introduction, clarified that resource lists were useful for
list subscriptions as one example use case, and another use case was
to allow a user to log in to different clients and still have access
to their buddy list.

* Clarified that the URI hierarchy defined in the spec is a MUST to
implement by servers. I.e., its not a recommended document storage
structure.

* Defined an XML body that can be included in a 409 that indicates
specific details about the reason for the conflict. This body is
optional. One of the cases it covers is if the users is trying to
create an element or document that requires a URI within the document
to be unique (for example, a resource list URI), but the proposed URI
exists. The error body indicates the URI(s) which exist, and can also
suggest alternates.

* The client behavior sections now detail error handling
procedures. These are provided only for the 409 case, and in
particular, it states that the body of the 409 may be there, providing
additional information to assist the client in a retry.

* The XCAP URI no longer separates the document URI from the node
selector through a query ("?"). Rather, the path of the URI extends
naturally from the document down into the content of the document. As
per discussion in Minneapolis, this was done since it was anticipated
that HTTP server infrastructure would have trouble handling HTTP GET
operations for resources containing query strings.

* Restructured the section on application usages

* Added a discussion of how to extend the schema for an application
usage. It is now possible for a server to process a document without
understanding all of its namespaces and schemas; it only needs to
understand the
application usage. The equivalent of the SIP "Require" functionality
is now defined through an XML element called "mandatory-ns" that is
optionally included in a document. When present, it indicates the
namespaces that must be understood by the server in order to process
the document.

Comments and questions welcome. In particular, I'd like to know whether 
people are happy with the two most major changes, (1) the usage of the 
XML document in 409, (2) the ability of the server to process documents 
without understanding all of its namespaces.

There arent any major open issues at this point. The following are the 
minor open issues I am aware of:

* For the XML fragment body and XML attribute value MIME types - do
they need to use the +xml convention in RFC 3023? Neither of these are
valid XML documents per se. I think the answer is no. Other opinions 
welcome.

* The specification requires that a server uses the same etag across
all resources that point to the same document. Whilst this is allowed
per se by HTTP 1.1, it feels ugly. Is there anything we can do about
it?

* Knowing the contents of a directory - how to do it? Separate
package? This is being discussed in a separate thread.

* Is there a more efficient way to find out server assigned URIs? Right 
now, its a separate GET after the PUT completes.

Thanks,
Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                600 Lanidex Plaza
Chief Technology Officer                    Parsippany, NJ 07054-2711
dynamicsoft
[email-masked]                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
Simple mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/simple

---

From: Adam Roach <[email-masked]>
Date: Fri, 27 Feb 2004 20:10:57 -0600

> type - wasnt clear why it was needed. The root is known by the

The primary reason for proposing a "root" type is to make the
mime type more re-usable. Strictly speaking, it is not necessary
for XCAP usage. However, if anyone ever wants to use
xml-fragment-bodies in any other context, it is likely to be
very useful to know what the type of the root document was
to start with.

Generality and all that.

/a

---

From: Adam Roach <[email-masked]>
Date: Sun, 29 Feb 2004 19:29:18 -0600

Jonathan Rosenberg [mailto:[email-masked]] wrote:

> I also imagine that in many cases, the client is receiving the XML and 
> the root document has no MIME type per se. There are actually relatively 
> few registered XML mime types in the registry, in fact. I suspect most 
> cases, knowing the schema or other forms of XML context is more 
> important. 

Hmmm... you raise an interesting point. I guess to be "complete,"
we would need to include parameters to indicate root type, schema,
and something like an xpath expression to demonstrate where in the
schema the excerpt lives. That seems a bit extreme, so I guess
leaving it off -- for the time being, at least -- is probably okay.

> ...you need to understand the requirements 
> for the problem you are trying to solve. Its not clear to me what cases 
> would benefit from MIME type information as opposed to other XML context.

I can get along with that. If future applications need this (kind of)
information in the future, they can always add parameters to convey
specifically what they need.

/a