OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Action Items for todays meeting


Dear TC members,

there have been some action items for me for todays meeting. I also 
would like to propose to change the URL schema used within packages from 
what is used in OpenOffice.org.


Change Tracking
---------------
We discussed change tracking for tables on April, the 28th. We clarified 
what the differences to change tracking for text documents are, and we 
have set up the action item to unify these two concepts. We did not 
formally agree that we keep the specification for table change tracking 
unchanged if we do not get a proposal for an unified change tracking for 
whatever reason. Since we decided to move this proposal into the second 
TC phase, I suggest that we agree to today to leave the specification 
for table change tracking unchanged.


Proposal for generator Ids
--------------------------
For the HTTP protocol, the user agent is specified as

User-Agent     = "User-Agent" ":" 1*( product | comment )
product         = token ["/" product-version]
product-version = token

token          = 1*<any CHAR except CTLs or separators>
separators     = "(" | ")" | "<" | ">" | "@"
                       | "," | ";" | ":" | "\" | <">
                       | "/" | "[" | "]" | "?" | "="
                       | "{" | "}" | SP | HT
comment        = "(" *( ctext | quoted-pair | comment ) ")"
ctext          = <any TEXT excluding "(" and ")">

See
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43
and
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.8
for details

An example for this is

User-Agent: CERN-LineMode/2.15 libwww/2.17b3

This means that the user agents in HTTP can contain an arbitrary number 
of product and product version pairs, but that there is no specification 
what product versions should look like.

I propose that we adopt this user agent syntax as a SHOULD for the 
generator id, where the product version SHOULD additionally allow to 
differ between all versions that get released of a product. This means 
that it should for instance contain a build id if all builds of a 
product are available like this is the case for many open source 
projects, or that it should contain a patch level if different patch 
levels exist for one and the same version of a product. However, since 
these are only SHOULDs, an application might use different generator 
idswhere this is more apropriate.


URLs within packages
--------------------
The OpenOffice.org file format specification does not specify what URLs 
that reference files within a package should look like. However, in the 
OpenOffice.org file format, references to files within a package are 
currently encoded into the fragment identifier. This means that in a 
package that contains the sub files

content.xml
meta.xml
Pitures/Image1.png

the following URL is used to reference Pictures/Image1.gif from inside 
content.xml:

#Pictures/Image1.png.

However, since this might collide with other schemas used inside 
fragment identifiers, I would like to propose to use a URL like

#package( Pictures/Image1.png )

instead. This in fact would be very similar to the XPointer 
specification (http://www.w3.org/TR/xptr-framework/) where the schema is

#xpointer( ... )

What needs to be specified separately is whether the paths within the 
fragment are interpreted as absolute paths with the package root as base 
or as relative paths with the file they are contained in as base. For 
simplicity, I would suggest to interpret them as absolute paths, but to 
specify that they have to start with a "/" so that we can support 
relative paths later on if we want to. The above example then would have 
to be

#package( /Pictures/Image1.png )

In any case, putting paths within packages into fragment identifiers 
means that URLs that reference files outside the package do not need any 
processing an behave as expected. Moreover, the base URL (for non 
package URLS) in all cases would be the package rather than the a file 
within the package. This means that a file "Image2.png" that is located 
next to the package in the file system still could be referenced by the URL

Image1.png

This has the large advantage that in a transformation of a content.xml 
included in a package into for instance HTML, only #package-URLs need 
any special handling. All other URLs do not need any special processing, 
and a differentiation between flat and pacakges office documents is not 
required. Moreover, to resolve a non package URL, it can be passed to 
the operating system unmodified and no knowledge about URL syntax is 
required at all.

A third option where all this is not the case would be to use relative 
URLs within a package where it is assumed that the package behaves like 
a folder in the file system. The above example then would look like

Pictures/Image1.png

but the reference to the a file "Image2.png" located next to the package 
would be

../Image2.png

While this solutions looks very elegant at the first glance, it has the 
severe disadvantages that every URL needs to be checked whether it is a 
reference into the package or not (what is not even trivial) and that 
references to one and the same file would look different in flat and 
packaged office documents. For these reasons, I personally would not 
recommend to use these kind of URLs.

Best regards

Michael




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]