O'Reilly logo

XQuery, 2nd Edition by Priscilla Walmsley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 18. Working with Strings

Strings are probably the most used type of atomic values in queries. This chapter discusses constructing and comparing strings and provides an overview of the many built-in functions that manipulate strings. It also explains string- and text-related features such as whitespace handling and internationalization.

The xs:string Type

The basic string type that is intended to represent generic character data is called, appropriately, xs:string. The xs:string type is not the default type for untyped values. If a value is selected from an input document with no schema, the value is given the type xs:untypedAtomic, not xs:string. However, it is easy enough to cast an untyped value to xs:string. In fact, you can cast a value of any type to xs:string and cast an xs:string value to any type.

The xs:string type is a primitive type from which a number of other types are derived. All the operations and functions that can be performed on xs:string values can also be performed on values whose types are restrictions of xs:string. This includes user-defined types that appear in a schema, as well as built-in derived types such as xs:token, xs:language, and xs:ID. For a complete explanation of the built-in types, see Appendix B.

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, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required