[Bug 28140] Options of fn:serialize

https://www.w3.org/Bugs/Public/show_bug.cgi?id=28140

--- Comment #6 from Michael Kay <mike@saxonica.com> ---
The following recasts the proposed rules to take account of the general rules
for option parameters, which were defined in response to bug #28196.

Representing Serialization Parameters as a Map

The fn:serialize() function will accept serialization parameters either using
the current representation (defined in Serialization 3.1) or using a new
representation defined here.

The *option parameter conventions* apply.

The option values represented according to the following rules:

* Where the serialization parameter value is a string (for example
doctype-public or item-separator), then the required type is xs:string. Note:
because the function conversion rules apply, the value can also be supplied as
xs:untypedAtomic or xs:anyURI.

* Where the serialization parameter value is defined as an enumerated set of
values, then the required type is xs:string; except:

** where the enumerated set is ("yes", "no"), then the required type is
xs:boolean in which "true" represents "yes" and "false" represents "no". 

** where the enumerated set is ("yes", "no", "omit"), then the required type is
xs:boolean? in which "true" represents "yes", "false" represents "no", and the
empty sequence represents "omit". 

* Where the serialization parameter value is decimal [for example, the
html-version parameter], then the required type is xs:double. Note: because the
function conversion rules apply, the value can also be supplied as (for
example) xs:integer, xs:decimal, or xs:untypedAtomic.

* Where the serialization parameter value is an expanded QName, then the
required type is a union type with member types xs:QName and xs:string. The
value may be supplied as any of the following:

** an instance of xs:QName
** an xs:string in the form of an NCName representing a name in no namespace
** an xs:string in the form of an EQName

* Where the serialization parameter value is a list of expanded QNames, then
the required type is item()*. The list of values may be supplied as either a
sequence or an array, whose members represent these names using any of the
three representations described in the previous list item.

* Where the required value is a list of (character C, string S) pairs (that is,
for the use-character-maps parameter), a map of type map(xs:string, xs:string)
containing one entry for each pair, where the key is C represented as an
xs:string instance of length 1, and the associated value is S as an instance of
xs:string. The *option parameter conventions* do NOT apply to this map.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 25 March 2015 12:18:19 UTC