Subject: Re: Media Type registration for XSLT 2, XQuery 1.0 and XQueryX 1.0
From: "Liam R. E. Quin" <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Date: Wed, 17 Jan 2007 22:37:50 -0500
List-Id: <ietf-xml-mime.imc.org>

In my cover letter last night I stupidly said that I was enclosing
information for twp registratoins, and then included information for
three.  OK, so I can't count to three.

The third media type enclosed, as per the Subject of the message, was
for XSLT, and was sent on behalf of the W3C XSL Working Group.

XQuery and XQueryX were developed by the XML Query Working Group,
and the two Working Groups collaborated on the shared parts of
those specifications, along with help and comments from other
Working Groups and individuals.

I hope this clears up any confusion about who is responsible for
which of the three media types.

Liam

-- 
Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/
http://www.holoweb.net/~liam/ * http://www.fromoldbooks.org/

Date: Tue, 16 Jan 2007 21:42:17 -0500
From: "Liam R. E. Quin" <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]
Subject: Media Type registration for XSLT 2, XQuery 1.0 and XQueryX 1.0
Sender: [email-masked]

Last April I posted to these lists a draft for the media
type registrations for interchange of XQuery expressions,
XQueryX expressions and XSLT stylesheets.

There were some issues raised, which we hope we have
resolved:

(1) That each registration should mention the URI of the
    corresponding document, so that it stands alone as well
    as an appendix to the corresponding document; this has
    been done.

(2) That the security sections (particularly for XQuery) be
    expanded.  They have been expanded in XQuery and XQueryX
    based on the results of implementation experience.

We are using Bugzilla to track comments on these documents;
however, at this stage in the W3C Process, any changes will
be reflected as errata or (eventually) incorporated into any
new revision and/or future version of the respective documents.

See the individual documents and their "Status of this Document"
sections for further information on using Bugzilla to comment
on them, or respond to this message.

- Liam Quin (W3C staff participant for the XML Query Working Group,
  and also XML Activity Lead)

In accordance with the Media Type Specifications and
Registration Procedures [1], and on behalf of the W3C XML Query
Working Group [2], I hereby give notice that W3C has published
two specifications at the stage "Last Call Working Draft" which
each incorporate definitions of a standards-tree MIME media type,
as allowed for in section 3.1 of [1], and request comments on
these definitions.

The types and subtypes are
    application/xquery
	defined in "XQuery 1.0: An XML Query Language" [3]
	optional parameter: charset
    application/xquery+xml
	defined in "XML Syntax for XQuery 1.0 (XQueryX)" [4]
	optional parameter: charset

**** Registration for application/xquery also at [3]

I The application/xquery Media Type
-----------------------------------

This Appendix specifies the media type for XQuery Version 1.0. XQuery is
a language for querying over collections of data from XML data sources,
as specified in the main body of this document.

This media type is being submitted to the IESG (Internet Engineering
Steering Group) for review, approval, and registration with IANA
(Internet Assigned Numbers Authority.)

1 Introduction
----------------

This document, found at http://www.w3.org/TR/xquery/ together with its
normative references, defines the language XQuery Version 1.0.
This Appendix provides information about the application/xquery media
type, which is intended to be used for transmitting queries written
in the XQuery language.

This document was prepared by members of the W3C XML Query Working
Group. Please send comments to public-qt-comments [at] w3.org, a public
mailing list with archives at
http://lists.w3.org/Archives/Public/public-qt-comments.

2 Registration of MIME Media Type application/xquery
------------------------------------------------------

MIME media type name: application

MIME subtype name: xquery

Required parameters: none

Optional parameters: none

The syntax of XQuery is expressed in Unicode but may be written with any
Unicode-compatible character encoding, including UTF-8 or UTF-16, or
transported as US-ASCII or Latin-1 with Unicode characters outside the
range of the given encoding represented using an XML-style &#xddd;
syntax.

2.1 Interoperability Considerations

None known.

2.2 Published Specification

This media type registration is for XQueryX documents as described
by the XQueryX 1.0 specification, which is located at
http://www.w3.org/TR/xqueryx/">http://www.w3.org/TR/xqueryx/

It is also appropriate to use this media type with later versions
of the XQueryX language.

2.2 Applications Using this Media Type

The public XQuery Web page lists more than two dozen implementations of
the XQuery language, both proprietary and open source.  Some of these
are known to support XQueryX.

This new media type is being registered to allow for deployment of
XQueryX on the World Wide Web.

There is no experimental, vendor specific, or personal tree
predecessor to "application/xquery+xml", reflecting the fact
that no applications currently recognize it. This new type is
being registered in order to allow for the expected deployment
of XQueryX 1.0 on the World Wide Web, as a first class XML application.

3 Encoding Considerations

For use with transports that are not 8-bit clean, quoted-printable
encoding is recommended since the XQuery syntax itself uses the
US-ASCII-compatible subset of Unicode.

An XQuery document may contain an encoding declaration as part of its
version declaration:
    xquery version "1.0" encoding "utf-8";

4 Recognizing XQuery Files

An XQuery file may have the string xquery version "V.V" near the
beginning of the document, where "V.V" is a version number. Currently
the version number, if present, must be "1.0".

5 Charset Default Rules

XQuery documents use the Unicode character set and, by default, the
UTF-8 encoding.

6 Security Considerations

Queries written in XQuery may cause arbitrary URIs or IRIs to be
dereferenced.  Therefore, the security issues of RFC 3987 [Uniform
Resource Locators (URL)] Section 6 should be considered. In addition,
the contents of file: URIs can in some cases be accessed, processed and
returned as results.
XQuery expressions can invoke any of the functions defined in 
Functions And Opertors [5].  For example, the
fn:doc() and fn:doc-available() functions allow local filesystem probes
as well as access to any URI-defined resource accessible from the system
evaluating the XQuery expression.

XQuery is a full declarative programming language, and supports
user-defined functions, external function libraries (modules)
referenced by URI, and system-specific "native" functions.

Arbitrary recursion is possible, as is arbitrarily large
memory usage, and implementations may place limits on CPU
and memory usage, as well as restricting access to system-defined
functions.

The XML Query Working group is working on a facility to allow XQuery
expressions to be used to create and update persistent data. Untrusted
queries should not be given write access to data.

Furthermore, because the XQuery language permits extensions, 
it is possible that application/xquery may describe content
that has security implications beyond those described here.

**** Registration for application/xquery+xml also at [4]

The application/xquery+xml Media Type
-------------------------------------

This Appendix specifies the media type for XQueryX Version 1.0. XQueryX
is the XML syntax of a language, XQuery, for querying over data from XML
data sources, as specified in [2], XQuery 1.0: An XML Query Language].

1 Introduction
--------------

This document, together with its normative references, defines the XML
syntax for the XML Query language XQuery Version 1.0. This Appendix
specifies the application/xquery+xml media type, which is intended to be
used for transmitting queries expressed in the XQueryX syntax.

This media type is being submitted to the IESG for
review, approval, and registration with IANA.

This document was prepared by members of the W3C XML Query Working
Group. Please send comments to public-qt-comments [at] w3.org, a public
mailing list with archives at
http://lists.w3.org/Archives/Public/public-qt-comments.

2 Registration of MIME Media Type application/xquery+xml

MIME media type name: application

MIME subtype name: xquery+xml

Required parameters: none

Optional parameters: charset

    This parameter has identical semantics to the charset parameter
    of the application/xml media type as specified in [RFC 3023].

2.1 Encoding Considerations

By virtue of XQueryX content being XML, it has the same considerations
when sent as "application/xquery+xml" as does XML.
See [RFC 3023], section 3.2.

2.2 Fragment Identifiers

For documents labeled as 'application/xquery+xml', fragment identifiers
are handled as specified in RFC 3023.

2.3 Restrictions on usage

The intended usage of this media type is for interchange of XQueryX
expressions.

2.4 Security Considerations

Queries written in XQuery may cause arbitrary URIs or IRIs to be
dereferenced. 
Therefore, the security issues of [RFC3987] Section 8 should be
considered.
In addition, the contents of resources identified by file: URIs can in
some cases be accessed, processed and returned as results. 

XQuery expressions can invoke any of the functions defined in
XQuery 1.0 and XPath 2.0 Functions and Operators, including
file-exists();
a doc() function also allows local filesystem probes as well as
access to any URI-defined resource accessible from the system
evaluating the XQuery expression.

XQuery is a full declarative programming language, and supports
user-defined functions, external function libraries (modules)
referenced by URI, and system-specific "native" functions.

Arbitrary recursion is possible, as is arbitrarily large
memory usage, and implementations may place limits on CPU and
memory usage, as well as restricting access to system-defined functions.

The XML Query Working group is working on a facility to allow XQuery
expressions to be used to create and update persistent data.
Untrusted queries should not be given write access to data.

Furthermore, because the XQuery language permits extensions, it is
possible that application/xquery may describe content that has security
implications beyond those described here.

2.5 Interoperability Considerations

See Section 5 Conformance.

2.6 Applications That Use This Media Type

The public XQuery Web page lists more than two dozen implementations of
the XQuery language, both proprietary and open source. Some of these are
known to support XQueryX.

This new media type is being registered to allow for deployment of
XQueryX on the World Wide Web.

There is no experimental, vendor specific, or personal tree predecessor
to "application/xquery+xml", reflecting the fact that no applications
currently recognize it. This new type is being registered in order to
allow for the expected deployment of XQueryX 1.0 on the World Wide Web,
as a first class XML application.

2.7 Additional Information

2.7.1 Recognizing XQuery Files ("Magic Numbers")

Although no byte sequences can be counted on to consistently identify
XQueryX, XQueryX documents will have the sequence
"http://www.w3.org/2005/XQueryX" to identify the XQueryX namespace.
This sequence will normally be found in a namespace
attribute of the first element in the document.

2.7.2 File Extensions

The most common file extension in use for XQueryX is .xqx.

2.7.3 Macintosh File Type Code(s)

The appropriate Macintosh file type code is TEXT.

2.8 Person and Email Address to Contact For Further Information

Jim Melton, Oracle Corp., jim.melton [at] oracle.com

2.9 Intended Usage

COMMON

2.10 Author/Change Controller

XQueryX was produced by, and is maintained by, the World Wide Web
Consortium's XML Query Working Group. The W3C has change control over
this specification.

**** Registration for application/xquery+xml also at [4]

Registration of MIME Media Type application/xslt+xml
----------------------------------------------------

MIME media type name: application

MIME subtype name: xslt+xml

Required parameters: None.

Optional parameters: charset

    This parameter has identical semantics to the charset parameter of
    the application/xml media type as specified in [RFC3023].

Encoding considerations:

    By virtue of XSLT content being XML, it has the same considerations
when sent as "application/xslt+xml" as does XML. See RFC 3023, section
3.2.

Security considerations:

    Several XSLT instructions may cause arbitrary URIs to be
dereferenced. In this case, the security issues of [RFC3986], section 7,
should be considered.

    In addition, because of the extensibility features for XSLT, it is
possible that "application/xslt+xml" may describe content that has
security implications beyond those described here. However, if the
processor follows only the normative semantics of this specification,
this content will be ignored. Only in the case where the processor
recognizes and processes the additional content, or where further
processing of that content is dispatched to other processors, would
security issues potentially arise. And in that case, they would fall
outside the domain of this registration document.

Interoperability considerations:

    This specification describes processing semantics that dictate
behavior that must be followed when dealing with, among other things,
unrecognized elements.

    Because XSLT is extensible, conformant "application/xslt+xml"
processors can expect that content received is well-formed XML, but it
cannot be guaranteed that the content is valid XSLT or that the
processor will recognize all of the elements and attributes in the
document.

Published specification:

    This media type registration is for XSLT stylesheet modules as
described by the XSLT 2.0 specification, which is located at
http://www.w3.org/TR/xslt20/. It is also appropriate to use this media
type with earlier and later versions of the XSLT language.

Applications which use this media type:

    Existing XSLT 1.0 stylesheets are most often described using the
unregistered media type "text/xsl".

    There is no experimental, vendor specific, or personal tree
predecessor to "application/xslt+xml", reflecting the fact that no
applications currently recognize it. This new type is being registered
in order to allow for the expected deployment of XSLT 2.0 on the World
Wide Web, as a first class XML application.

Additional information:

Magic number(s):

    There is no single initial octet sequence that is always present
    in XSLT documents.

File extension(s):

    XSLT documents are most often identified with the extensions
    ".xsl" or ".xslt".

Macintosh File Type Code(s):

    TEXT

Person & email address to contact for further information:

    Norman Walsh, <Norman.Walsh [at] Sun.COM>.

Intended usage:

    COMMON

Author/Change controller:

    The XSLT specification is a work product of the World Wide Web
    Consortium's XSL Working Group. The W3C has change control over
    these specifications.

B.2 Fragment Identifiers

For documents labeled as "application/xslt+xml", the fragment identifier
notation is exactly that for "application/xml", as specified in RFC
3023.

-------------------------------------

[1] http://www.ietf.org/internet-drafts/draft-freed-media-type-reg-05.txt
    and http://www.w3.org/2002/06/registering-mediatype
[2] http://www.w3.org/XML/Query
[3] http://www.w3.org/TR/2005/WD-xquery-20050404/#id-mime-type
[4] http://www.w3.org/TR/2005/WD-xqueryx-20050404/#xqueryx-id-mime-type
[5] XQuery 1.0 and XPath 2.0 Functions and Operators,
    http://www.w3.org/TR/xpath-functions/

[end]

-- 
Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/
http://www.holoweb.net/~liam/ * http://www.fromoldbooks.org/