net.sf.saxon.value
public class StringValue extends AtomicValue
Nested Class Summary | |
---|---|
class | StringValue.CharacterIterator
CharacterIterator is used to iterate over the characters in a string,
returning them as integers representing the Unicode code-point. |
Field Summary | |
---|---|
static StringValue | EMPTY_STRING |
static StringValue | FALSE |
protected boolean | noSurrogates |
static StringValue | SINGLE_SPACE |
static StringValue | TRUE |
protected CharSequence | value |
Constructor Summary | |
---|---|
protected | StringValue()
Protected constructor for use by subtypes |
StringValue(CharSequence value)
Constructor. |
Method Summary | |
---|---|
boolean | codepointEquals(StringValue other)
Test whether this StringValue is equal to another under the rules of the codepoint collation |
boolean | containsSurrogatePairs()
Determine whether the string contains surrogate pairs |
static CharSequence | contract(int[] codes, int used)
Contract an array of integers containing Unicode codepoints into a Java string |
ConversionResult | convertPrimitive(BuiltInAtomicType requiredType, boolean validate, XPathContext context)
Convert a value to another primitive data type, with control over how validation is
handled. |
static ConversionResult | convertStringToAtomicType(CharSequence value, AtomicType targetType, NameChecker checker)
Convert the value to a given type. |
static ConversionResult | convertStringToBuiltInType(CharSequence value, BuiltInAtomicType requiredType, NameChecker checker)
Convert a string value to another built-in data type, with control over how validation is
handled. |
AtomicValue | copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value, with a different type label
|
static String | diagnosticDisplay(String s)
Produce a diagnostic representation of the contents of the string |
boolean | effectiveBooleanValue()
Get the effective boolean value of a string |
boolean | equals(Object other)
Determine if two AtomicValues are equal, according to XPath rules. |
int[] | expand()
Expand a string containing surrogate pairs into an array of 32-bit characters |
static int[] | expand(CharSequence s)
Expand a string containing surrogate pairs into an array of 32-bit characters |
String | getPrimitiveStringValue()
Get the string value as a String |
BuiltInAtomicType | getPrimitiveType()
Determine the primitive type of the value. |
Comparable | getSchemaComparable()
Get a Comparable value that implements the XML Schema comparison semantics for this value.
|
int | getStringLength()
Get the length of this string, as defined in XPath. |
static int | getStringLength(CharSequence s)
Get the length of a string, as defined in XPath. |
Object | getXPathComparable(boolean ordered, StringCollator collator, XPathContext context)
Get an object value that implements the XPath equality and ordering comparison semantics for this value.
|
boolean | isIdentical(Value v)
Determine whether two atomic values are identical, as determined by XML Schema rules. |
boolean | isKnownToContainNoSurrogates()
Ask whether the string is known to contain no surrogate pairs. |
boolean | isZeroLength()
Determine whether the string is a zero-length string. |
UnfailingIterator | iterateCharacters()
Iterate over a string, returning a sequence of integers representing the Unicode code-point values |
static ConversionResult | makeRestrictedString(CharSequence value, BuiltInAtomicType typeLabel, NameChecker checker)
Factory method to create a string value belonging to a built-in type derived from string |
static StringValue | makeStringValue(CharSequence value)
Factory method. |
void | setContainsNoSurrogates()
Assert that the string is known to contain no surrogate pairs |
void | setStringValueCS(CharSequence value)
Set the value of the item as a CharSequence.
|
String | toString() |
static ValidationFailure | validate(BuiltInAtomicType typeLabel, CharSequence val, NameChecker checker)
Validate that the string conforms to the rules for a built-in subtype of xs:string |
Parameters: value the String value. Null is taken as equivalent to "".
Parameters: other the value to be compared with this value
Returns: true if the strings are equal on a codepoint-by-codepoint basis
Returns: true if the string contains any non-BMP characters
Parameters: codes an array of integers representing the Unicode code points used the number of items in the array that are actually used
Returns: the constructed string
Parameters: requiredType type code of the required atomic type. This must not be a namespace-sensitive type. validate true if validation is required. If set to false, the caller guarantees that the value is valid for the target data type, and that further validation is therefore not required. Note that a validation failure may be reported even if validation was not requested. context XPath dynamic context. Used only where the target type is one such as NCName whose definition is context-sensitive
Returns: the result of the conversion, if successful. If unsuccessful, the value returned will be a ValidationErrorValue. The caller must check for this condition. No exception is thrown, instead the exception will be encapsulated within the ErrorValue.
Parameters: value the value to be converted targetType the type to which the value is to be converted. This must not be a namespace-sensitive type. checker a NameChecker if validation is required, null if the caller already knows that the value is valid. Note that a non-null NameChecker acts as a signal that validation is required, even when the value to be checked is not a name.
Returns: the value after conversion if successful; or a ValidationFailure if conversion failed. The caller must check for this condition. Validation may fail even if validation was not requested.
Parameters: value the value to be converted requiredType the required atomic type. This must not be a namespace-sensitive type. checker if validation is required, a NameChecker. If set to null, the caller guarantees that the value is valid for the target data type, and that further validation is therefore not required. Note that a validation failure may be reported even if validation was not requested.
Returns: the result of the conversion, if successful. If unsuccessful, the value returned will be a ValidationFailure. The caller must check for this condition. No exception is thrown, instead the exception will be encapsulated within the ValidationFailure.
Parameters: typeLabel the type label of the new copy. The caller is responsible for checking that the value actually conforms to this type.
Parameters: s the string
Returns: a string in which non-Ascii-printable characters are replaced by \ uXXXX escapes
Returns: true if the string has length greater than zero
Throws: ClassCastException always
Returns: an array of integers representing the Unicode code points
Parameters: s the string to be expanded
Returns: an array of integers representing the Unicode code points
Returns: the length of the string in Unicode code points
Parameters: s The string whose length is required
Returns: the length of the string in Unicode code points
Parameters: ordered true if an ordered comparison is required. In this case the result is null if the type is unordered; in other cases the returned value will be a Comparable. collator Collation to be used for comparing strings context the XPath dynamic evaluation context, used in cases where the comparison is context sensitive
Returns: an Object whose equals() and hashCode() methods implement the XPath comparison semantics with respect to this atomic value. If ordered is specified, the result will either be null if no ordering is defined, or will be a Comparable
Note that even this check ignores the type annotation of the value. The integer 3 and the short 3 are considered identical, even though they are not fully interchangeable. "Identical" means the same point in the value space, regardless of type annotation.
NaN is identical to itself.
Parameters: v the other value to be compared with this one
Returns: true if the two values are identical, false otherwise.
Returns: true if it is known to contain no surrogates, false if the answer is not known
Returns: true if the string is zero length
Returns: an iterator over the characters (Unicode code points) in the string
Parameters: value the String value. Null is taken as equivalent to "". typeLabel the required type, must be a built in type derived from xs:string checker a NameChecker if validation is required, null if the caller already knows that the value is valid
Returns: either the required StringValue if the value is valid, or a ValidationFailure encapsulating the error message if not.
Parameters: value the String value. Null is taken as equivalent to "".
Returns: the corresponding StringValue
For system use only. In principle, a StringValue is immutable. However, in special circumstances, if it is newly constructed, the content can be changed to reflect the effect of the whiteSpace facet.
Parameters: value the value of the string
Parameters: typeLabel the built-in atomic type against which the string should be validated val the string to be validated checker object that checks names against the XML 1.0 or XML 1.1 rules as appropriate
Returns: null if the value is OK, otherwise a ValidationException containing details of the failure