diff --git a/steps/src/main/xml/steps/cast-content-type.xml b/steps/src/main/xml/steps/cast-content-type.xml
index 94f2474..0c17a77 100644
--- a/steps/src/main/xml/steps/cast-content-type.xml
+++ b/steps/src/main/xml/steps/cast-content-type.xml
@@ -49,17 +49,18 @@
- Casting from an XML media type to a JSON media type converts the
- XML into JSON. The precise nature of the conversion from XML to JSON
- is implementation-defined.
- If the input document is an XML representation of JSON as defined in
- ,
- implementations must produce the same result as
- fn:parse-json(fn:xml-to-json())
- by default. If the input document has a c:param-set document element,
- an instance of map(xs:QName, xs:string)
- must be returned that represents the document's
- c:param elements. The serialization property is removed.
+ Casting from an XML media type to a JSON media type converts
+ the XML into JSON. If the input document is an XML representation of
+ JSON as defined in ,
+ implementations must produce the same result as
+ fn:parse-json(fn:xml-to-json()) by default. If
+ the input document has a c:param-set document element, an
+ instance of map(xs:QName, xs:string)
+ must be returned that represents the document's
+ c:param elements. It is
+ implementation-defined if any additional
+ conversions are supported. The serialization property is
+ removed.
@@ -92,6 +93,67 @@
implementation-defined.
+
+
+ Parameter sets
+
+ In XProc 3.1, maps are used for parameters. In XProc 1.0, no maps were
+ available, so an XML vocabulary was defined. It is sometimes convenient to generate
+ a map this way, so the vocabulary is retained.
+
+ A c:parameter-set is a wrapper around zero or more c:param
+ elements.
+
+
+
+ It is a dynamic error if
+ the parameter list contains any elements other than c:param.
+
+ Any namespace-qualified attribute names that appear on the
+ c:param-set element are ignored. It is a
+ dynamic error for any unqualified
+ attribute names to appear on a c:param-set element.
+
+ A c:param is a name/value pair with an optional namespace.
+
+
+
+ The name attribute of the
+ c:param must have the lexical form of a QName.
+
+ If the namespace attribute is specified,
+ then the expanded name of the parameter is constructed from the specified
+ namespace and the name value. It is a
+ dynamic error if the namespace attribute is
+ specified, the name contains a colon, and the specified namespace is not
+ the same as the in-scope namespace binding for the specified prefix.
+
+ If the namespace attribute is not
+ specified, and the name contains a colon, then
+ the expanded name of the parameter is constructed using the name value and
+ the namespace declarations in-scope on the c:param element.
+
+ If the namespace attribute is not
+ specified, and the name does not contain a
+ colon, then the expanded name of the parameter is in no namespace.
+
+ If the c:param element has a value
+ attribute, the element must be empty. If it does not have a
+ value attribute, the content of the element is
+ the value. In either case, the type of the value may be specified with a
+ sequence type in the
+ as attribute. It is a
+ dynamic error if the c:param element has a
+ value attribute and is not empty.
+ It is a dynamic error if the
+ c:param specifies a sequence type and the value does not
+ satisfy that type.
+
+ Any namespace-qualified attribute names that appear on the
+ c:param element are ignored. It is a
+ dynamic error for any unqualified attribute names
+ other than those specified here to appear on a c:param element.
+
Casting from an HTML media type