Up: No Title

Package cxml-types

cxml-types defines an extensible interface for XML-related data types as required for use in Relax NG validation.

It includes Relax NG's minimal built-in type library, which is named :|| and defines the types "string" and "token".

In addition, it implements the built-in types of XML Schema Datatypes as specified in Guidelines for using W3C XML Schema Datatypes with RELAX NG. The XSD type library is named :|http://www.w3.org/2001/XMLSchema-datatypes|.

The types defined by RELAX NG DTD Compatibility are available through the data type library named :|http://relaxng.org/ns/compatibility/datatypes/1.0|.

About This Package

Example
Type instances
Using types
The validation context
Relax NG built-in types
DTD compatibility types
Primitive XSD built-in types
Enumerated XSD built-in types
Derived XSD built-in types

Example

* (setf ttt (cxml-types:find-type :|| "token"))
#<CXML-TYPES:TOKEN-TYPE {1002D16B71}>
* (cxml-types:parse ttt "a b")
"a b"
* (cxml-types:parse ttt "a     b")
"a b"
* (cxml-types:equal-using-type ttt ** *)
T    

Type instances

Each type, together with its parameters, is represented by an instance of data-type. The generic function find-type, defined for each library, creates type instances. A type's properties are accessible using type-name, type-library, and type-context-dependent-p.

The abstract superclass of all types. ...

The class of Relax NG built-in types. ...

The class of XML Schema built-in types. ...

Look up the type named name in datatype library library. ...

Return the name this type has within its library. ...

Return the name of the library this type belongs to. ...

Return true if parsing and validation of values by this type depends on the validation context. ...

Using types

Types allow strings to be tested for validity and equality. validp checks whether a string can be parsed. If it is valid, parse will compute the string's value, and return a Lisp object of a type-specific class as a representation of that value. Values returned by parse can be compared for equality using equal-using-type. Some types also define a partial ordering, which can be queried using lessp-using-type.

Determine whether a string is a valid lexical representation for a type. ...

Parse string e and return a representation of its value as defined by the data type. ...

Compare the values u and v using a data-type-dependent equality function. ...

Compare the values u and v using a data-type-dependent partial ordering. ...

The validation context

Some types are context dependent, as indicated by type-context-dependent-p. Those types need access to state computed by the XML parser implicitly, like namespace bindings or the Base URI.

An abstract class validation-context is defined that users of this API can implement a subclass of to define methods for the generic functions listed below.

In addition, two pre-defined validation context implementations are provided, one for use with SAX, the other based on Klacks.

This abstract class defines a protocol allowing data types to query the XML parser about its current state. ...

A class that implements validation-context as a mixin for user-defined SAX handler classes. ...

A validation-context implementation that queries a klacks source for information about the parser's current state.

This function resolves a namespace prefix to a namespace URI in the current context. ...

This function looks for an unparsed entity in the current context.

Relax NG built-in types

The following primitive types are defined by Relax NG:

The Relax NG 'string' type. ...

The Relax NG 'token' type. ...

DTD compatibility types

The following primitive types are defined by Relax NG DTD Compatibility:

The DTD compatibility 'ID' type. ...

The DTD compatibility 'IDREF' type. ...

The DTD compatibility 'IDREFS' type. ...

Primitive XSD built-in types

The following primitive types are part of the XSD built-in data type library:

The duration data type, representing a duration of time. ...

The dateTime data type, representing a moment in time. ...

The time data type, representing a time of day. ...

The date data type, representing a day of the year. ...

The gYearMonth data type, representing the calendar month of a specific year. ...

The gYear data type, representing a calendar year. ...

The gMonthDay data type, representing a calendar month and day. ...

The gDay data type, representing a calendar day. ...

The gMonth data type, representing a calendar month. ...

The boolean data type. ...

The base64Binary data type. ...

The hexBinary data type. ...

The float data type. ...

The decimal data type. ...

The double data type. ...

The anyURI data type. ...

The QName data type. ...

The NOTATION data type. ...

The string data type. ...

Enumerated XSD built-in types

The following types are part of the XSD built-in data type library, and are defined as derived types through enumeration. Relax NG does not implement the enumeration facet, so although these types are described as "derived", they are implemented directly.

The IDREFS data type, an enumeration. ...

The ENTITIES data type, an enumeration. ...

The NMTOKENS data type, an enumeration. ...

Derived XSD built-in types

The following types are part of the XSD built-in data type library, and are defined as derived types through restriction.

The normalizedString data type, derived from string. ...

The token data type, derived from normalizedString. ...

The language data type, derived from token. ...

The Name data type, derived from token. ...

The NCName data type, derived from Name. ...

The ID data type, derived from NCName. ...

The IDREF data type, derived from ID. ...

The ENTITY data type, derived from NCName. ...

The NMTOKEN data type, derived from token. ...

The integer data type, derived from decimal. ...

The nonPositiveInteger data type, derived from integer. ...

The negativeInteger data type, derived from nonPositiveInteger. ...

The long data type, derived from integer. ...

The int data type, derived from long. ...

The short data type, derived from int. ...

The byte data type, derived from short. ...

The nonNegativeInteger data type, derived from integer. ...

The unsignedLong data type, derived from nonNegativeInteger. ...

The unsignedInt data type, derived from unsignedLong. ...

The unsignedShort data type, derived from unsignedInt. ...

The unsignedByte data type, derived from unsignedInt. ...

The positiveInteger data type, derived from nonNegativeInteger. ...

Exported Symbol Index

any-uri-type, class
base64-binary-type, class
boolean-type, class
byte-type, class
context-find-namespace-binding, function
context-find-unparsed-entity, function
data-type, class
date-time-type, class
date-type, class
day-type, class
decimal-type, class
double-type, class
dtd-compatibility-type, class
duration-type, class
entities-type, class
entity-type, class
equal-using-type, function
exact-length, function
find-type, function
float-type, class
fraction-digits, function
hex-binary-type, class
id-type, class
idref-type, class
idrefs-type, class
int-type, class
integer-type, class
klacks-validation-context, class
language-type, class
lessp-using-type, function
long-type, class
make-klacks-validation-context, function
make-param, function
max-exclusive, function
max-inclusive, function
max-length, function
min-exclusive, function
min-inclusive, function
min-length, function
month-day-type, class
month-type, class
name-type, class
ncname-type, class
negative-integer-type, class
nmtoken-type, class
nmtokens-type, class
non-negative-integer-type, class
non-positive-integer-type, class
normalized-string-type, class
notation-type, class
param, class
param-name, function
param-value, function
parse, function
patterns, function
positive-integer-type, class
qname-type, class
rng-type, class
sax-validation-context-mixin, class
short-type, class
string-type, class
time-type, class
token-type, class
total-digits, function
type-context-dependent-p, function
type-id-type, function
type-library, function
type-name, function
unsigned-byte-type, class
unsigned-int-type, class
unsigned-long-type, class
unsigned-short-type, class
validation-context, class
validp, function
xsd-id-type, class
xsd-idref-type, class
xsd-idrefs-type, class
xsd-string-type, class
xsd-token-type, class
xsd-type, class
year-month-type, class
year-type, class