There are 3 option names which may be specified in the optional left argument X
whose possible values are summarised below. Note that the default value is shown first in bold text, and that the option names and values are case-sensitive.
Errors detected in the input arrays or options will all cause DOMAIN ERROR.
When converting from XML whitespace specifies the default handling of white space surrounding and within character data. When converting to XML whitespace specifies the default formatting of the XML. Note that attribute values are not comprised of character data so whitespace in attribute values is always preserved.
| Converting from XML | |
| strip | All leading and trailing whitespace sequences are removed; remaining whitespace sequences are replaced by a single space character. |
| trim | All leading and trailing whitespace sequences are removed; all remaining whitespace sequences are handled as preserve. |
| preserve | Whitespace is preserved as given except that line endings are represented by CR (⎕UCS 13) under Windows and NEL (⎕UCS 133) under Unix. |
| Converting to XML | |
| strip | All leading and trailing whitespace sequences are removed; remaining whitespace sequences within the data are replaced by a single space character. XML is generated with formatting and indentation to show the data structure. |
| trim | Synonymous with strip. |
| preserve | Whitespace in the data is preserved as given, except that line endings are represented by CR (⎕UCS 13) under Windows and NEL (⎕UCS 133) under Unix. XML is generated with no formatting and indentation other than that which is contained within the data. |
]display eg
┌→───────────────────┐
│<xml> │
│ <a> │
│ Data1 │
│ <!-- Comment -->│
│ Data2 │
│ <b> Data3 </b> │
│ Data4 │
│ <c att="val"/> │
│ </a> │
│</xml> │
└────────────────────┘
]display 'whitespace' 'strip' ⎕xml eg
┌→────────────────────────────────────────┐
↓ ┌→──┐ ┌⊖┐ ┌→────────┐ │
│ 0 │xml│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 3 │
│ └───┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────┐ │
│ 1 │a│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 7 │
│ └─┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→──────────┐ ┌→────────┐ │
│ 2 │ │ │Data1 Data2│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └───────────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌→────┐ ┌→────────┐ │
│ 2 │b│ │Data3│ ⌽ ┌⊖┐ ┌⊖┐ │ 5 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────┐ ┌→────────┐ │
│ 2 │ │ │Data4│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────────┐ │
│ 2 │c│ │ │ ↓ ┌→──┐ ┌→──┐ │ 1 │
│ └─┘ └─┘ │ │att│ │val│ │ │
│ │ └───┘ └───┘ │ │
│ └∊────────────┘ │
└∊────────────────────────────────────────┘
]display 'whitespace' 'preserve' ⎕xml eg
┌→──────────────────────────────────────┐
↓ ┌→──┐ ┌⊖┐ ┌→────────┐ │
│ 0 │xml│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 7 │
│ └───┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→─┐ ┌→────────┐ │
│ 1 │ │ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ │ │ │ │ │ │ │ │ │
│ └──┘ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────┐ │
│ 1 │a│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 7 │
│ └─┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────────┐ ┌→────────┐ │
│ 2 │ │ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ │ Data1│ │ │ │ │ │ │ │
│ │ │ │ └─┘ └─┘ │ │
│ │ Data2│ └∊────────┘ │
│ │ │ │
│ └─────────┘ │
│ ┌→┐ ┌→──────┐ ┌→────────┐ │
│ 2 │b│ │ Data3 │ ⌽ ┌⊖┐ ┌⊖┐ │ 5 │
│ └─┘ └───────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────────┐ ┌→────────┐ │
│ 2 │ │ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ │ Data4│ │ │ │ │ │ │ │
│ │ │ │ └─┘ └─┘ │ │
│ └─────────┘ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────────┐ │
│ 2 │c│ │ │ ↓ ┌→──┐ ┌→──┐ │ 1 │
│ └─┘ └─┘ │ │att│ │val│ │ │
│ │ └───┘ └───┘ │ │
│ └∊────────────┘ │
│ ┌⊖┐ ┌→─┐ ┌→────────┐ │
│ 2 │ │ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ │ │ │ │ │ │ │ │ │
│ └──┘ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→┐ ┌→────────┐ │
│ 1 │ │ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ │ │ │ │ │ │ │ │ │
│ └─┘ │ └─┘ └─┘ │ │
│ └∊────────┘ │
└∊──────────────────────────────────────┘
When converting from XML, markup determines whether markup (other than entity tags) appears in the output array or not. When converting to XML markup has no effect.
| Converting from XML | |
| strip | Markup data is not included in the output array. |
| preserve | Markup text appears in the output array, without the leading '<' and trailing '>' in the tag (2nd) column. |
]display eg
┌→───────────────────┐
│<xml> │
│ <a> │
│ Data1 │
│ <!-- Comment -->│
│ Data2 │
│ <b> Data3 </b> │
│ Data4 │
│ <c att="val"/> │
│ </a> │
│</xml> │
└────────────────────┘
]display 'markup' 'strip' ⎕xml eg
┌→────────────────────────────────────────┐
↓ ┌→──┐ ┌⊖┐ ┌→────────┐ │
│ 0 │xml│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 3 │
│ └───┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────┐ │
│ 1 │a│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 7 │
│ └─┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→──────────┐ ┌→────────┐ │
│ 2 │ │ │Data1 Data2│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └───────────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌→────┐ ┌→────────┐ │
│ 2 │b│ │Data3│ ⌽ ┌⊖┐ ┌⊖┐ │ 5 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────┐ ┌→────────┐ │
│ 2 │ │ │Data4│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────────┐ │
│ 2 │c│ │ │ ↓ ┌→──┐ ┌→──┐ │ 1 │
│ └─┘ └─┘ │ │att│ │val│ │ │
│ │ └───┘ └───┘ │ │
│ └∊────────────┘ │
└∊────────────────────────────────────────┘
]display 'markup' 'preserve' ⎕xml eg
┌→──────────────────────────────────────────────┐
↓ ┌→──┐ ┌⊖┐ ┌→────────┐ │
│ 0 │xml│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 3 │
│ └───┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────┐ │
│ 1 │a│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 23 │
│ └─┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────┐ ┌→────────┐ │
│ 2 │ │ │Data1│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→─────────────┐ ┌⊖┐ ┌→────────┐ │
│ 2 │!-- Comment --│ │ │ ⌽ ┌⊖┐ ┌⊖┐ │ 16 │
│ └──────────────┘ └─┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────┐ ┌→────────┐ │
│ 2 │ │ │Data2│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌→────┐ ┌→────────┐ │
│ 2 │b│ │Data3│ ⌽ ┌⊖┐ ┌⊖┐ │ 5 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌⊖┐ ┌→────┐ ┌→────────┐ │
│ 2 │ │ │Data4│ ⌽ ┌⊖┐ ┌⊖┐ │ 4 │
│ └─┘ └─────┘ │ │ │ │ │ │ │
│ │ └─┘ └─┘ │ │
│ └∊────────┘ │
│ ┌→┐ ┌⊖┐ ┌→────────────┐ │
│ 2 │c│ │ │ ↓ ┌→──┐ ┌→──┐ │ 1 │
│ └─┘ └─┘ │ │att│ │val│ │ │
│ │ └───┘ └───┘ │ │
│ └∊────────────┘ │
└∊──────────────────────────────────────────────┘
When converting from XML, this option determines what happens when an unknown entity reference, or a character reference for a Unicode character which cannot be represented as an APL character, is encountered.
When converting to XML, this option determines what happens to Esc characters (⎕AV[8+⎕IO]) in data.
| Converting from XML | |
| replace | The reference is replaced a single '?' character. |
| preserve | The reference is included in the output data as given, but with the leading '&' replaced by Esc (⎕UCS 27). |
| Converting to XML | |
| replace | Esc (⎕UCS 27) is preserved |
| preserve | ⎕AV[8+⎕IO] is replaced by '&' |