Constructing Strings

There are three common ways to construct strings: using string literals, the xs:string constructor, and the string function.

String Literals

Strings can be included in queries as literals, using double or single quotes. For example, ($name = "Priscilla") and string-length('query') are valid expressions that contain string literals. If a literal value is enclosed in quotes, it is automatically assumed to be a string as opposed to a number.

Between quotes, you can escape the surrounding quote character by including it twice. For example, the literal expression "inner ""quotes""!" evaluates to the string inner "quotes"!. This is true for both single and double quotes.

In string literals, you can use single character references that use XML syntax. For example,   can be used to include a space. You can also use the predefined entity references. For example, you can specify the string literal "PB&J" to represent the string PB&J. In fact, ampersands must be escaped with & in string literals.

The xs:string Constructor and the string Function

There is a standard constructor for strings named xs:string. The xs:string constructor, like all constructors, accepts either an atomic value or a single node. If it is an atomic value, it simply returns that value cast as an xs:string.

Some types have special rules about how their values are formatted when they are cast to xs:string. For example, integers have their leading zeros stripped, and xs:hexBinary values have their letters converted to uppercase. In addition, when values of most nonstring types are cast to xs:string, their whitespace is collapsed. This means that consecutive whitespace characters are replaced by a single space, and leading and trailing whitespace is removed. The rules (if any) for each type are described in Appendix B.

If the xs:string constructor is passed a node, it uses atomization to extract the typed value of the node, and then casts it to xs:string. For an attribute, this is simply its value. For an element, it is the character data of the element itself and all its descendants, concatenated together in document order.

In addition, there is a built-in function named string that has almost identical behavior. One difference is that if you use the string function with no arguments, it will use the current context item.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.93.0