HTTP PUT storage

When using the HTTP PUT verb, does Tamino store the supplied entity using the XML Infoset or as an octet-by-octet copy?

In other words, if a GET is performed after a PUT, is the returned entity an exact duplicate of the original one?

Thanks

Hi,

it is not an exact byte by byte copy. for example may be changed to

Regards,
Martin

Interesting. I’ve seen discussion that the semantics of PUT demand byte-by-byte preservation of the enclosed entity, although I’ve never seen any mention of this in the HTTP or WebDAV specs.

Are you aware of any Tamino documentation that justifies their approach?

Hello Vinbot,

there is a similar discussion at the WebDAV list: ietf-dav-versioning@w3.org.

The Tamino XML Server (as the back end store of Tamino WebDAV Server) ?optimizes? the XML representation. From an XML perspective both representations are identical. From a binary perspective, they are obviously different.
If you want to get back the original input document (also on a binary level), Tamino WebDAV Server offers some configuration parameters, which will allow doing so.

Property setting at the store configuration file:

Set autoCreateXmlSchema to false and
set allowNonXML to true (which is the default).

In this case Tamino WebDAV Server will return your input exactly on a binary basis back (GET).

Best regards

Juergen

Tamino does not make a difference on the storage method used. It does not matter whether you use PUT, POST or anything else to store a document.
Tamino does not preserve the byte-by-byte representation of XML documents, this is true if you store data as XML. There are two areas which are involved
a) encoding. Tamino transforms all documents into Unicode before processing them. As you know, transformation back to the original encoding is not in all cases unambiguous, therefore the resulting document might differ in the code points used (although semantically equivalent
b) XML model. XML declares attributes to have no fixed sequence, defines to be equivalent to etc.

Tamino guarantees the following: if you store a document, the canonical XML representation of this document is identical to the one produced from the retrieved document. Canonical form refers to the standard on Canonical XML at W3C.

You can store any data (including XML) as so-called nonXML. The issue b) is not applied, because Tamino does not handle the data as XML

Regards

Harald