The cxml-rng Reference Manual

This is the cxml-rng Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 04:56:16 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cxml-rng

Dependencies
  • cxml (system).
  • cl-ppcre (system).
  • yacc (system).
  • parse-number (system).
  • cl-base64 (system).
Source

cxml-rng.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 cxml-rng/cxml-rng.asd

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

ASDF Systems

cxml-rng.

Packages

cxml-rng-system.

Public Interface

perform (method).

Internals

closure-source-file (class).


3.1.2 cxml-rng/package.lisp

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Packages

3.1.3 cxml-rng/floats.lisp

Dependency

package.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Internals

3.1.4 cxml-rng/unicode.lisp

Dependency

floats.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Internals

3.1.5 cxml-rng/nppcre.lisp

Dependency

unicode.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Internals

3.1.6 cxml-rng/types.lisp

Dependency

nppcre.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Public Interface
Internals

3.1.7 cxml-rng/parse.lisp

Dependency

types.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Public Interface
Internals

3.1.8 cxml-rng/validate.lisp

Dependency

parse.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Public Interface
Internals

3.1.9 cxml-rng/test.lisp

Dependency

validate.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Internals

3.1.10 cxml-rng/clex.lisp

Dependency

test.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Packages

cxml-clex.

Public Interface

deflexer (macro).

Internals

3.1.11 cxml-rng/compact.lisp

Dependency

clex.lisp (file).

Source

cxml-rng.asd.

Parent Component

cxml-rng (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 cxml-rng

@code{cxml-rng} implements @a[http://relaxng.org/spec-20011203.html]{ Relax NG} schema validation for Closure XML.

Support for @a[http://relaxng.org/compact-20021121.html]{Compact Syntax} and @a[http://relaxng.org/compatibility-20011203.html]{DTD Compatibility} is included.

@begin[Example]{section}
@begin{pre}(cxml:parse-file "test.xml" (cxml-rng:make-validator
(cxml-rng:parse-schema #p"test.rng")))
@end{pre}
@end{section}
@begin[Classes]{section}
@aboutclass{schema}
@aboutclass{rng-error}
@aboutclass{dtd-compatibility-error}
@end{section}
@begin[Parsing and validating]{section}
@aboutfun{parse-schema}
@aboutfun{parse-compact}
@aboutfun{make-validator} @aboutfun{make-dtd-compatibility-handler} @aboutfun{serialize-grammar}
@end{section}
@begin[Grammar introspection]{section}
The following classes and function are exported so that users can take a peek at the internals of the parsed and simplified grammar.

@aboutfun{schema-start}
@aboutclass{attribute}
@aboutclass{choice}
@aboutclass{data}
@aboutclass{element}
@aboutclass{empty}
@aboutclass{group}
@aboutclass{interleave}
@aboutclass{list-pattern}
@aboutclass{not-allowed}
@aboutclass{one-or-more}
@aboutclass{pattern}
@aboutclass{ref}
@aboutclass{text}
@aboutclass{value}
@aboutfun{pattern-child}
@aboutfun{pattern-a}
@aboutfun{pattern-b}
@aboutfun{pattern-name}
@aboutfun{pattern-element}
@aboutfun{pattern-type}
@aboutfun{pattern-string}
@aboutfun{pattern-value}
@aboutfun{pattern-params}
@aboutfun{pattern-except}
@end{section}

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

4.2 cxml-rng-system

Source

cxml-rng.asd.

Use List
  • asdf/interface.
  • common-lisp.
Internals

closure-source-file (class).


4.3 cxml-clex

Source

clex.lisp.

Use List
  • common-lisp.
  • runes.
Public Interface

deflexer (macro).

Internals

4.4 cxml-types

@code{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 @code{:||} and defines the types "string" and "token".

In addition, it implements the built-in types of @a[http://www.w3.org/TR/xmlschema-2/]{XML Schema Datatypes}
as specified in @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}. The XSD type library is named @code{:|http://www.w3.org/2001/XMLSchema-datatypes|}.

The types defined by @a[http://relaxng.org/compatibility-20011203.html]{ RELAX NG DTD Compatibility}
are available through the data type library named @code{:|http://relaxng.org/ns/compatibility/datatypes/1.0|}.

@begin[Example]{section}
@begin{pre}
* (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
@end{pre}
@end{section}
@begin[Type instances]{section}
Each type, together with its parameters, is represented by an instance of @code{data-type}. The generic function @fun{find-type}, defined for each library, creates type instances. A type’s properties are accessible using @fun{type-name}, @fun{type-library}, and @fun{type-context-dependent-p}.

@aboutclass{data-type}
@aboutclass{rng-type}
@aboutclass{xsd-type}
@aboutfun{find-type}
@aboutfun{type-name}
@aboutfun{type-library}
@aboutfun{type-context-dependent-p}
@end{section}
@begin[Using types]{section}
Types allow strings to be tested for validity and equality. @fun{validp} checks whether a string can be parsed. If it is valid, @fun{parse} will compute the string’s @emph{value}, and return a Lisp object of a type-specific class as a representation of that value. Values returned by @fun{parse} can be compared for equality using @fun{equal-using-type}. Some types also define a partial ordering, which can be queried using @fun{lessp-using-type}.

@aboutfun{validp}
@aboutfun{parse}
@aboutfun{equal-using-type}
@aboutfun{lessp-using-type}
@end{section}
@begin[The validation context]{section}
Some types are context dependent, as indicated by @fun{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 @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.

@aboutclass{validation-context} @aboutclass{sax-validation-context-mixin} @aboutclass{klacks-validation-context} @aboutfun{context-find-namespace-binding} @aboutfun{context-find-unparsed-entity}
@end{section}
@begin[Relax NG built-in types]{section}
The following primitive types are defined by Relax NG:

@aboutclass{string-type}
@aboutclass{token-type}
@end{section}
@begin[DTD compatibility types]{section}
The following primitive types are defined by Relax NG DTD Compatibility:

@aboutclass{id-type}
@aboutclass{idref-type}
@aboutclass{idrefs-type}
@end{section}
@begin[Primitive XSD built-in types]{section}
The following primitive types are part of the XSD built-in data type library:

@aboutclass{duration-type}
@aboutclass{date-time-type}
@aboutclass{time-type}
@aboutclass{date-type}
@aboutclass{year-month-type}
@aboutclass{year-type}
@aboutclass{month-day-type}
@aboutclass{day-type}
@aboutclass{month-type}
@aboutclass{boolean-type}
@aboutclass{base64-binary-type}
@aboutclass{hex-binary-type}
@aboutclass{float-type}
@aboutclass{decimal-type}
@aboutclass{double-type}
@aboutclass{any-uri-type}
@aboutclass{qname-type}
@aboutclass{notation-type}
@aboutclass{xsd-string-type}
@end{section}
@begin[Enumerated XSD built-in types]{section}
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.

@aboutclass{xsd-idrefs-type}
@aboutclass{entities-type}
@aboutclass{nmtokens-type}
@end{section}
@begin[Derived XSD built-in types]{section}
The following types are part of the XSD built-in data type
library, and are defined as derived types through restriction.

@aboutclass{normalized-string-type} @aboutclass{xsd-token-type}
@aboutclass{language-type}
@aboutclass{name-type}
@aboutclass{ncname-type}
@aboutclass{xsd-id-type}
@aboutclass{xsd-idref-type}
@aboutclass{entity-type}
@aboutclass{nmtoken-type}
@aboutclass{integer-type} @aboutclass{non-positive-integer-type} @aboutclass{negative-integer-type}
@aboutclass{long-type}
@aboutclass{int-type}
@aboutclass{short-type}
@aboutclass{byte-type}
@aboutclass{non-negative-integer-type} @aboutclass{unsigned-long-type} @aboutclass{unsigned-int-type} @aboutclass{unsigned-short-type} @aboutclass{unsigned-byte-type} @aboutclass{positive-integer-type}
@end{section}

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Macros

Macro: deflexer (name macro-defs &rest rule-defs)
Package

cxml-clex.

Source

clex.lisp.


5.1.2 Ordinary functions

Reader: any-name-except (instance)

@arg[instance]{an instance of @class{any-name}}
@return{a @class{name-class} or @code{nil}}

Return the name class @em{not} allowed by this @code{any-name}, or @code{nil} if there is no such exception.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Writer: (setf any-name-except) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Function: attribute (lname attrs)

@unexport{}

Package

cxml-rng.

Source

parse.lisp.

Function: make-dtd-compatibility-handler (schema handler)

@arg[schema]{the parsed Relax NG @class{schema} object}
@arg[handler]{an additional SAX handler to broadcast events to} @return{a SAX handler}
@short{This function creates a handler for DTD Compatibility processing} according to @code{schema}.

The validation handler processes SAX events and can be used with any function generating such events, in particular with cxml:parse-file.

Compatibility processing consists of two steps: Infoset modification for default values, and soundness checking for attributes with an ID-type.

In @code{sax:start-element}, infoset modification will be performed as specified for DTD compatibility. This entails addition of attributes according to their defaultValue, and addition (and, when the element ends, removal) of suitable namespace declarations if no prefix has been declared for the defaulted attribute yet.

Also in @code{sax:start-element}, the handler checks that no ID is declared more than once. Before the end of the document, the handler checks that all IDs referred to by attributes with ID-types IDREF or IDREFS have been declared.

@see{parse-schema}
@see{make-validator}

Package

cxml-rng.

Source

validate.lisp.

Function: make-klacks-validation-context (source)

@arg[source]{a @a[http://common-lisp.net/project/cxml/klacks.html]{ klacks source}}
@return{a @class{klacks-validation-context}}
Create a validation-context that will query the given klacks source for the current parser context.

Package

cxml-types.

Source

types.lisp.

Function: make-param (name value)

@arg[name]{parameter name, a string} @arg[value]{parameter value, a string} @return{a @class{param}}
Create a data type parameter. @see{param-name} @see{param-value}

Package

cxml-types.

Source

types.lisp.

Function: make-validating-source (input schema)

@arg[input]{a @code{source} or a stream designator}
@arg[schema]{the parsed Relax NG @class{schema} object}
@return{a klacks source}
@short{This function creates a klacks source for @code{input} that validates events against @code{schema}.}

Input can be a klacks source or any argument applicable to @code{cxml:make-source}.

@see{parse-schema}
@see{make-validator}

Package

cxml-rng.

Source

parse.lisp.

Function: make-validator (schema &optional handler)

@arg[schema]{the parsed Relax NG @class{schema} object} @arg[handler]{an additional SAX handler to broadcast events to} @return{a SAX handler}
@short{This function creates a validation handler for @code{schema}}, to be used for validation of a document against that schema.

The validation handler processes SAX events and can be used with any function generating such events, in particular with cxml:parse-file.

Events will be passed on unchanged to @code{handler}.

This validator does @em{not} perform DTD compatibility processing. (Specify a DTD compatibility handler as the second argument to this function instead.)

@see{parse-schema}
@see{make-validating-source} @see{make-dtd-compatibility-handler}

Package

cxml-rng.

Source

validate.lisp.

Reader: name-class-choice-a (instance)

@arg[instance]{an instance of @class{name-class-choice}} @return{a @class{name-class}}
Returns the ’first’ of two name classes that are allowed. @see{name-class-choice-b}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

a.

Writer: (setf name-class-choice-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

a.

Reader: name-class-choice-b (instance)

@arg[instance]{an instance of @class{name-class-choice}} @return{a @class{name-class}}
Returns the ’second’ of two name classes that are allowed. @see{name-class-choice-a}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

b.

Writer: (setf name-class-choice-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

b.

Reader: name-lname (instance)

@arg[instance]{an instance of @class{name}} @return{a string}
Return the expected local name.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

lname.

Writer: (setf name-lname) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

lname.

Reader: name-uri (instance)

@arg[instance]{an instance of @class{name}} @return{a string}
Return the expected namespace URI.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

uri.

Writer: (setf name-uri) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

uri.

Reader: ns-name-except (instance)

@arg[instance]{an instance of @class{ns-name}}
@return{a @class{name-class} or @code{nil}}

Return the name class @em{not} allowed by this @code{ns-name}, or @code{nil} if there is no such exception.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Writer: (setf ns-name-except) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Reader: ns-name-uri (instance)

@arg[instance]{an instance of @class{ns-name}} @return{a string}
Return the expected namespace URI.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

uri.

Writer: (setf ns-name-uri) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

uri.

Reader: param-name (instance)

@arg[instance]{an instance of @class{param}} @return{a string}
The data type parameter’s name. @see{param-value}

Package

cxml-types.

Source

types.lisp.

Target Slot

name.

Writer: (setf param-name) (instance)
Package

cxml-types.

Source

types.lisp.

Target Slot

name.

Reader: param-value (instance)

@arg[instance]{an instance of @class{param}} @return{a string}
The data type parameter’s value. @see{param-name}

Package

cxml-types.

Source

types.lisp.

Target Slot

value.

Writer: (setf param-value) (instance)
Package

cxml-types.

Source

types.lisp.

Target Slot

value.

Function: parse-compact (pathname)

@arg[pathname]{a pathname designator for a Relax NG compact file} @return{a parsed @class{schema}}
@short{This function parses a Relax NG schema file in compact syntax} and returns a parsed representation of that schema.

@see{parse-schema}
@see{make-validator}

Package

cxml-rng.

Source

compact.lisp.

Function: parse-schema (input &key entity-resolver process-dtd-compatibility)

@arg[input]{a string, pathname, stream, or xstream} @arg[entity-resolver]{a function of two arguments, or NIL} @arg[process-dtd-compatibility]{a boolean}
@return{a parsed @class{schema}}
@short{This function parses a Relax NG schema file in XML syntax}
and returns a parsed representation of that schema.

@code{input} can be any stream designator as understood by @code{cxml:make-source}.

Note that namestrings are not valid arguments,
because they would be interpreted as XML source code. Use pathnames instead.

@code{entity-resolver} can be passed as a function of two arguments. It is invoked for every entity referenced by the
document with the entity’s Public ID (a rod) and System ID (an
URI object) as arguments. The function may either return
nil, CXML will then try to resolve the entity as usual.
Alternatively it may return a Common Lisp stream specialized on @code{(unsigned-byte 8)} which will be used instead.

If @code{process-dtd-compatibility} is true, the schema will be checked for @em{compatibility} with Relax NG DTD Compatibility, and default values will be recorded. (Without @code{process-dtd-compatibility}, the schema will not be checked @em{compatibility}, and annotations for
DTD Compatibility will be ignored like any other foreign element.)

@see{parse-compact}
@see{make-validator}

Package

cxml-rng.

Source

parse.lisp.

Reader: pattern-a (instance)

@arg[instance]{an instance of @class{pattern}}
@return{an instance of @class{pattern}}
@short{Returns the first of two sub-patterns the pattern instance has.}

(Elements in the full Relax NG syntax allow more than two child patterns, but simplification normalizes the representation so that any such element has exactly two children.)

@see{pattern-b}
@see{group}
@see{interleave}
@see{choice}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

a.

Writer: (setf pattern-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

a.

Reader: pattern-b (instance)

@arg[instance]{an instance of @class{pattern}}
@return{an instance of @class{pattern}}
@short{Returns the second of two sub-patterns the pattern instance has.}

(Elements in the full Relax NG syntax allow more than two child patterns, but simplification normalizes the representation so that any such element has exactly two children.)

@see{pattern-a}
@see{group}
@see{interleave}
@see{choice}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

b.

Writer: (setf pattern-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

b.

Reader: pattern-child (instance)

@arg[instance]{an instance of @class{pattern}}
@return{an instance of @class{pattern}}
@short{Returns the pattern’s sub-pattern.}

(Elements in the full Relax NG syntax allow more than one child pattern, but simplification normalizes the representation so that any such element has exactly one child.)

@see{element}
@see{attribute}
@see{one-or-more}
@see{list-pattern}
@see{choice}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

child.

Writer: (setf pattern-child) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

child.

Function: pattern-element (ref)

@arg[ref]{an instance of @class{ref}}
@return{an instance of @class{element}}
@short{Returns the ref pattern’s target.}

@code{ref} is the only pattern to introduce shared structure and circularity into the pattern graph, by referring to elements defined elsewhere.

(@code{ref} patterns in the full Relax NG syntax can be used to refer to any pattern definition in the grammar. Simplification normalizes the schema so that ref patterns only refer to definitions which have an @code{element} as their child.)

Package

cxml-rng.

Source

parse.lisp.

Reader: pattern-except (instance)

@arg[instance]{an instance of @class{data}}
@return{a @class{pattern}, or @code{nil}}
@short{Returns the @code{data} instance’s @code{except} pattern.}

In addition to a data type, @code{data} can specify that certain values are @em{not} permitted. They are described using a pattern.

If this slot is @code{nil}, no exception is defined.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Writer: (setf pattern-except) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

except.

Reader: pattern-name (instance)

@arg[instance]{an instance of @class{pattern}}
@return{a @class{name-class}}
@short{Returns the @code{pattern}’s name class.}

This slot describes the name allowed for the current element or attribute.

@see{element}
@see{attribute}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

name.

Writer: (setf pattern-name) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

name.

Reader: pattern-params (instance)

@arg[instance]{an instance of @class{data}}
@return{a list of @fun{cxml-types:param}}
@short{The data type parameters for this data pattern.}

(With the XSD type library, these are known as restricting facets.)

Package

cxml-rng.

Source

parse.lisp.

Target Slot

params.

Writer: (setf pattern-params) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

params.

Reader: pattern-string (instance)

@arg[instance]{an instance of @class{value}}
@return{a string}
@short{Returns the string expected at this position.}

This string is the lexical representation expected, not parsed into a value object yet. The parsed object is available as @fun{pattern-value}.

@see{pattern-type}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

string.

Writer: (setf pattern-string) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

string.

Reader: pattern-type (instance)

@arg[instance]{an instance of @class{pattern}}
@return{a @class{cxml-types:data-type}}
@short{Returns the data type expected at this position.}

This type has already been parsed into an object. Its name and the URI of its library can be queried from that object.

@see{data}
@see{value}
@see{cxml-types:type-name} @see{cxml-types:type-library}

Package

cxml-rng.

Source

parse.lisp.

Target Slot

type.

Writer: (setf pattern-type) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

type.

Reader: pattern-value (instance)

@arg[instance]{an instance of @class{value}}
@return{an object as returned by @fun{cxml-types:parse}} @short{Returns the value expected at this position.}

This object is the result of parsing @fun{pattern-string} using @fun{pattern-type}.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

value.

Writer: (setf pattern-value) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

value.

Function: rng-error (source fmt &rest args)

@unexport{}

Package

cxml-rng.

Source

parse.lisp.

Reader: schema-start (instance)

@arg[instance]{an instance of @class{schema}}
@return{the start pattern, an instance of @class{pattern}} Reader function for the grammar’s start pattern, from which all of the grammar’s patters are reachable.

Package

cxml-rng.

Source

parse.lisp.

Target Slot

start.

Writer: (setf schema-start) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

start.

Function: serialize-schema (schema sink)

@arg[schema]{a Relax NG @class{schema}}
@arg[sink]{a SAX handler}
@return{the result of @code{sax:end-document}}
@short{This function serializes a parsed Relax NG back into XML syntax.}

Note that the schema represented in memory has gone through simplification as is textually different from the original XML document.

@see{parse-schema}

Package

cxml-rng.

Source

parse.lisp.


5.1.3 Generic functions

Generic Function: context-find-namespace-binding (context prefix)

@arg[context]{an instance of @class{validation-context}}
@arg[prefix]{name prefix, a string}
@return{the namespace URI as a string, or NIL}
@short{This function resolves a namespace prefix to a namespace URI in the current context.}
All currently declared namespaces
are taken into account, including those declared directly on the current element.

Package

cxml-types.

Source

types.lisp.

Methods
Method: context-find-namespace-binding ((context sax-validation-context-mixin) prefix)
Method: context-find-namespace-binding ((context klacks-validation-context) prefix)
Generic Function: context-find-unparsed-entity (context name)

@arg[context]{an instance of @class{validation-context}} @arg[name]{entity name, a string}
@return{@code{nil}, or a list of public id, system id, and notation name} This function looks for an unparsed entity in the current context.

Package

cxml-types.

Source

types.lisp.

Methods
Method: context-find-unparsed-entity ((context sax-validation-context-mixin) name)
Method: context-find-unparsed-entity ((context klacks-validation-context) name)
Generic Function: equal-using-type (type u v)

@arg[type]{an instance of @class{data-type}}
@arg[u]{a parsed value as returned by @fun{parse}} @arg[v]{a parsed value as returned by @fun{parse}} @return{a boolean}
@short{Compare the @emph{values} @code{u} and @code{v} using a data-type-dependent equality function.}

@see{validp}

Package

cxml-types.

Source

types.lisp.

Methods
Method: equal-using-type ((type ncname-type) u v)
Method: equal-using-type ((type xsd-string-type) u v)
Method: equal-using-type ((type qname-like) u v)
Method: equal-using-type ((type any-uri-type) u v)
Method: equal-using-type ((type double-type) u v)
Method: equal-using-type ((type decimal-type) u v)
Method: equal-using-type ((type float-type) u v)
Method: equal-using-type ((type hex-binary-type) u v)
Method: equal-using-type ((type base64-binary-type) u v)
Method: equal-using-type ((type time-ordering-mixin) u v)
Method: equal-using-type ((type duration-type) u v)
Method: equal-using-type ((type rng-type) u v)
Generic Reader: exact-length (data-type)

@arg[data-type]{a data type supporting restrictions on value lengths} @return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-length]{length facet}, or @code{nil} if none was specified.
@see{min-length}
@see{max-length}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: exact-length ((length-mixin length-mixin))

automatically generated reader method

Target Slot

exact-length.

Generic Writer: (setf exact-length) (object)
Package

cxml-types.

Methods
Writer Method: (setf exact-length) ((length-mixin length-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

exact-length.

Generic Function: find-type (library name params)

@arg[library]{datatype library, a keyword symbol}
@arg[name]{the type’s name, a string}
@arg[params]{type parameters, a list of @class{param} instances} @return{an instance of @class{data-type}, or @code{nil}}
@short{Look up the type named @em{name} in datatype library @em{library}.}

Additional parameters (knows as restricting facets in XSD) can be passed to specify or restrict the type for the purposes of @fun{validp}.

Return a type instance for this type and the additional parameters, @code{nil} if the type does not exist, or
@code{:error} if the type exists, but the specified parameters are not valid for that type.

@see{data-type}

Package

cxml-types.

Source

types.lisp.

Methods
Method: find-type ((library (eql :|http://www.w3.org/2001/xmlschema-datatypes|)) name params)
Method: find-type ((library (eql :|http://relaxng.org/ns/compatibility/datatypes/1.0|)) name params)
Method: find-type ((library (eql :||)) name params)
Method: find-type (library name params)
Generic Reader: fraction-digits (data-type)

@arg[data-type]{a subtype of @class{decimal-type}}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-fractionDigits]{fractionDigits facet}, or @code{nil} if none was specified.
@see{total-digits}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: fraction-digits ((decimal-type decimal-type))

automatically generated reader method

Target Slot

fraction-digits.

Generic Writer: (setf fraction-digits) (object)
Package

cxml-types.

Methods
Writer Method: (setf fraction-digits) ((decimal-type decimal-type))

automatically generated writer method

Source

types.lisp.

Target Slot

fraction-digits.

Generic Function: lessp-using-type (type u v)

@arg[type]{an ordered @class{data-type}}
@arg[u]{a parsed value as returned by @fun{parse}}
@arg[v]{a parsed value as returned by @fun{parse}}
@return{a boolean}
@short{Compare the @emph{values} @code{u} and @code{v} using a data-type-dependent partial ordering.}

A method for this function is provided only by types that have a natural partial ordering.

@see{equal-using-type}

Package

cxml-types.

Source

types.lisp.

Methods
Method: lessp-using-type ((type double-type) u v)
Method: lessp-using-type ((type decimal-type) u v)
Method: lessp-using-type ((type float-type) u v)
Method: lessp-using-type ((type time-ordering-mixin) p q)
Method: lessp-using-type ((type duration-type) u v)
Generic Reader: max-exclusive (data-type)

@arg[data-type]{an ordered data type}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-maxExclusive]{maxExclusive facet}, or @code{nil} if none was specified.
@see{min-exclusive}
@see{min-inclusive}
@see{max-inclusive}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: max-exclusive ((ordering-mixin ordering-mixin))

automatically generated reader method

Target Slot

max-exclusive.

Generic Writer: (setf max-exclusive) (object)
Package

cxml-types.

Methods
Writer Method: (setf max-exclusive) ((ordering-mixin ordering-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

max-exclusive.

Generic Reader: max-inclusive (data-type)

@arg[data-type]{an ordered data type}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-maxInclusive]{maxInclusive facet}, or @code{nil} if none was specified.
@see{min-exclusive}
@see{max-exclusive}
@see{min-inclusive}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: max-inclusive ((ordering-mixin ordering-mixin))

automatically generated reader method

Target Slot

max-inclusive.

Generic Writer: (setf max-inclusive) (object)
Package

cxml-types.

Methods
Writer Method: (setf max-inclusive) ((ordering-mixin ordering-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

max-inclusive.

Generic Reader: max-length (data-type)

@arg[data-type]{a data type supporting restrictions on value lengths} @return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-maxLength]{maxLength facet}, or @code{nil} if none was specified.
@see{exact-length}
@see{min-length}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: max-length ((length-mixin length-mixin))

automatically generated reader method

Target Slot

max-length.

Generic Writer: (setf max-length) (object)
Package

cxml-types.

Methods
Writer Method: (setf max-length) ((length-mixin length-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

max-length.

Generic Reader: min-exclusive (data-type)

@arg[data-type]{an ordered data type}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-minExclusive]{minExclusive facet}, or @code{nil} if none was specified.
@see{max-exclusive}
@see{min-inclusive}
@see{max-inclusive}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: min-exclusive ((ordering-mixin ordering-mixin))

automatically generated reader method

Target Slot

min-exclusive.

Generic Writer: (setf min-exclusive) (object)
Package

cxml-types.

Methods
Writer Method: (setf min-exclusive) ((ordering-mixin ordering-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

min-exclusive.

Generic Reader: min-inclusive (data-type)

@arg[data-type]{an ordered data type}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-minInclusive]{minInclusive facet}, or @code{nil} if none was specified.
@see{min-exclusive}
@see{max-exclusive}
@see{max-inclusive}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: min-inclusive ((ordering-mixin ordering-mixin))

automatically generated reader method

Target Slot

min-inclusive.

Generic Writer: (setf min-inclusive) (object)
Package

cxml-types.

Methods
Writer Method: (setf min-inclusive) ((ordering-mixin ordering-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

min-inclusive.

Generic Reader: min-length (data-type)

@arg[data-type]{a data type supporting restrictions on value lengths} @return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-minLength]{minLength facet}, or @code{nil} if none was specified.
@see{exact-length}
@see{max-length}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: min-length ((length-mixin length-mixin))

automatically generated reader method

Target Slot

min-length.

Generic Writer: (setf min-length) (object)
Package

cxml-types.

Methods
Writer Method: (setf min-length) ((length-mixin length-mixin))

automatically generated writer method

Source

types.lisp.

Target Slot

min-length.

Generic Function: parse (type e &optional context)

@arg[type]{an instance of @class{data-type}}
@arg[e]{a string}
@arg[context]{an instance of @class{validation-context}}
@return{an object}
@short{Parse string @code{e} and return a representation of its value as defined by the data type.}

The @code{context} argument is required if @fun{type-context-dependent-p} is true for @code{type}, and will be ignored otherwise.

@see{equal-using-type}
@see{validp}

Package

cxml-types.

Source

types.lisp.

Methods
Method: parse ((type xsd-type) e &optional context)
Method: parse ((type dtd-compatibility-type) e &optional context)
Method: parse ((type token-type) e &optional context)
Method: parse ((type string-type) e &optional context)
Generic Reader: patterns (data-type)

@arg[data-type]{a subtype of @class{xsd-type}}
@return{a list of strings}
This slot reader returns a list of the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-pattern]{pattern facets}.

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: patterns ((xsd-type xsd-type))

automatically generated reader method

Target Slot

patterns.

Generic Function: (setf patterns) (data-type)
Package

cxml-types.

Methods
Writer Method: (setf patterns) ((xsd-type xsd-type))

automatically generated writer method

Source

types.lisp.

Target Slot

patterns.

Method: (setf patterns) :after (data-type)
Source

types.lisp.

Generic Reader: rng-error-column-number (condition)

@arg[instance]{an instance of @class{rng-error}}
@return{an integer, or nil}
Return the column number reported by the parser when the Relax NG error was detected, or NIL if not available.

Package

cxml-rng.

Methods
Reader Method: rng-error-column-number ((condition rng-error))
Source

parse.lisp.

Target Slot

column-number.

Generic Writer: (setf rng-error-column-number) (condition)
Package

cxml-rng.

Methods
Writer Method: (setf rng-error-column-number) ((condition rng-error))
Source

parse.lisp.

Target Slot

column-number.

Generic Reader: rng-error-line-number (condition)

@arg[instance]{an instance of @class{rng-error}}
@return{an integer, or nil}
Return the line number reported by the parser when the Relax NG error was detected, or NIL if not available.

Package

cxml-rng.

Methods
Reader Method: rng-error-line-number ((condition rng-error))
Source

parse.lisp.

Target Slot

line-number.

Generic Writer: (setf rng-error-line-number) (condition)
Package

cxml-rng.

Methods
Writer Method: (setf rng-error-line-number) ((condition rng-error))
Source

parse.lisp.

Target Slot

line-number.

Generic Reader: rng-error-system-id (condition)

@arg[instance]{an instance of @class{rng-error}}
@return{a puri:uri, or nil}
Return the System ID of the document being parsed when the Relax NG error was detected, or NIL if not available.

Package

cxml-rng.

Methods
Reader Method: rng-error-system-id ((condition rng-error))
Source

parse.lisp.

Target Slot

system-id.

Generic Writer: (setf rng-error-system-id) (condition)
Package

cxml-rng.

Methods
Writer Method: (setf rng-error-system-id) ((condition rng-error))
Source

parse.lisp.

Target Slot

system-id.

Generic Reader: total-digits (data-type)

@arg[data-type]{a subtype of @class{decimal-type}}
@return{an integer, or @code{nil}}
This slot reader returns the type’s @a[http://www.w3.org/TR/xmlschema-2/#rf-totalDigits]{totalDigits facet}, or @code{nil} if none was specified.
@see{fraction-digits}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: total-digits ((decimal-type decimal-type))

automatically generated reader method

Target Slot

total-digits.

Generic Writer: (setf total-digits) (object)
Package

cxml-types.

Methods
Writer Method: (setf total-digits) ((decimal-type decimal-type))

automatically generated writer method

Source

types.lisp.

Target Slot

total-digits.

Generic Function: type-context-dependent-p (type)

@arg[type]{an instance of @class{data-type}}
@return{a boolean}
@short{Return true if parsing and validation of values by this type depends on the validation context.}

In this case, the optional @code{context} argument to @fun{parse} and @fun{validp} is required, and an error will be signalled if it is missing.

@see{validation-context}
@see{type-name}
@see{type-library}
@see{type-context-dependent-p}
@see{type-id-type}

Package

cxml-types.

Source

types.lisp.

Methods
Method: type-context-dependent-p ((type entity-type))
Method: type-context-dependent-p ((type qname-like))
Method: type-context-dependent-p ((type data-type))
Generic Function: type-id-type (type)

@arg[type]{an instance of @class{data-type}}
@return{one of @code{nil}, @code{:id}, @code{:idref}, or @code{:idrefs}} @short{Returns the @em{ID-type} of @code{type}.}

The symbols @code{nil}, @code{:id}, @code{:idref}, or @code{:idrefs} represent the ID-types @em{null}, @em{ID}, @em{IDREF}, and @em{IDREFS}, respectively, as defined by @a[http://relaxng.org/compatibility-20011203.html]{
RELAX NG DTD Compatibility}.

@see{type-name}
@see{type-library}
@see{type-context-dependent-p}

Package

cxml-types.

Source

types.lisp.

Methods
Method: type-id-type ((type xsd-idrefs-type))
Method: type-id-type ((type xsd-idref-type))
Method: type-id-type ((type xsd-id-type))
Method: type-id-type ((type dtd-compatibility-type))
Method: type-id-type ((type data-type))
Generic Function: type-library (type)

@arg[type]{an instance of @class{data-type}}
@return{library name, a keyword}
@short{Return the name of the library this type belongs to.}

@see{type-name}
@see{type-context-dependent-p}
@see{type-id-type}

Package

cxml-types.

Source

types.lisp.

Methods
Method: type-library ((type xsd-type))
Method: type-library ((type dtd-compatibility-type))
Method: type-library ((type rng-type))
Generic Function: type-name (type)

@arg[type]{an instance of @class{data-type}}
@return{type name, a string}
@short{Return the name this type has within its library.}

@see{type-library}
@see{type-context-dependent-p}
@see{type-id-type}

Package

cxml-types.

Source

types.lisp.

Methods
Reader Method: type-name ((positive-integer-type positive-integer-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((unsigned-byte-type unsigned-byte-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((unsigned-short-type unsigned-short-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((unsigned-int-type unsigned-int-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((unsigned-long-type unsigned-long-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((non-negative-integer-type non-negative-integer-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((byte-type byte-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((short-type short-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((int-type int-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((long-type long-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((negative-integer-type negative-integer-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((non-positive-integer-type non-positive-integer-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((integer-type integer-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((nmtokens-type nmtokens-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((nmtoken-type nmtoken-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((entities-type entities-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((entity-type entity-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((xsd-idrefs-type xsd-idrefs-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((xsd-idref-type xsd-idref-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((xsd-id-type xsd-id-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((ncname-type ncname-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((name-type name-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((language-type language-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((xsd-token-type xsd-token-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((normalized-string-type normalized-string-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((xsd-string-type xsd-string-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((notation-type notation-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((qname-type qname-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((any-uri-type any-uri-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((double-type double-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((decimal-type decimal-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((float-type float-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((hex-binary-type hex-binary-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((base64-binary-type base64-binary-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((boolean-type boolean-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((month-type month-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((day-type day-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((month-day-type month-day-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((year-type year-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((year-month-type year-month-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((date-type date-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((time-type time-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((date-time-type date-time-type))

automatically generated reader method

Target Slot

type-name.

Reader Method: type-name ((duration-type duration-type))

automatically generated reader method

Target Slot

type-name.

Method: type-name ((type idrefs-type))
Method: type-name ((type idref-type))
Method: type-name ((type id-type))
Method: type-name ((type token-type))
Method: type-name ((type string-type))
Generic Function: validp (type e &optional context)

@arg[type]{an instance of @class{data-type}}
@arg[e]{a string}
@arg[context]{an instance of @class{validation-context}}
@return{a boolean}
@short{Determine whether a string is a valid lexical representation for a type.}

The @code{context} argument is required if @fun{type-context-dependent-p} is true for @code{type}, and will be ignored otherwise.

@see{parse}
@see{equal-using-type}

Package

cxml-types.

Source

types.lisp.

Methods
Method: validp ((type xsd-type) e &optional context)
Method: validp ((type dtd-compatibility-type) e &optional context)
Method: validp ((type rng-type) e &optional context)

5.1.4 Standalone methods

Method: characters ((hsx validator) data)
Package

sax.

Source

validate.lisp.

Method: characters ((handler text-normalizer) data)
Package

sax.

Source

validate.lisp.

Method: end-document :before ((hsx dtd-compatibility-handler))
Package

sax.

Source

validate.lisp.

Method: end-element ((hsx validator) uri lname qname)
Package

sax.

Source

validate.lisp.

Method: end-element :before ((handler text-normalizer) uri lname qname)
Package

sax.

Source

validate.lisp.

Method: end-element :before ((hsx dtd-compatibility-handler) uri lname qname)
Package

sax.

Source

validate.lisp.

Method: end-prefix-mapping :after ((handler sax-validation-context-mixin) prefix)
Package

sax.

Source

types.lisp.

Method: initialize-instance :after ((type non-positive-integer-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((instance id-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type unsigned-byte-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type short-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type long-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((instance idrefs-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type byte-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type positive-integer-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type negative-integer-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type unsigned-short-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type unsigned-long-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type non-negative-integer-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((instance xsd-type) &key patterns)
Source

types.lisp.

Method: initialize-instance :after ((type int-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type unsigned-int-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((instance idref-type) &key)
Source

types.lisp.

Method: initialize-instance :after ((type enumeration-type) &key)
Source

types.lisp.

Method: perform :around ((o compile-op) (s closure-source-file))
Package

asdf/action.

Source

cxml-rng.asd.

Method: print-object ((object schema) stream)
Source

parse.lisp.

Method: print-object :around ((object pattern) stream)
Source

parse.lisp.

Method: print-object ((object dtd-compatibility-type) stream)
Source

types.lisp.

Method: print-object ((object rng-type) stream)
Source

types.lisp.

Method: print-object ((object xsd-type) stream)
Source

types.lisp.

Method: start-element ((hsx validator) uri lname qname attributes)
Package

sax.

Source

validate.lisp.

Method: start-element :before ((handler text-normalizer) uri lname qname attributes)
Package

sax.

Source

validate.lisp.

Method: start-element ((hsx dtd-compatibility-handler) uri lname qname attributes)
Package

sax.

Source

validate.lisp.

Method: start-prefix-mapping :after ((handler sax-validation-context-mixin) prefix uri)
Package

sax.

Source

types.lisp.

Method: stream-file-position ((s hex-stream))
Package

trivial-gray-streams.

Source

compact.lisp.

Method: stream-read-char ((s hex-stream))
Package

sb-gray.

Source

compact.lisp.

Method: unparsed-entity-declaration ((context sax-validation-context-mixin) name public-id system-id notation-name)
Package

sax.

Source

types.lisp.


5.1.5 Conditions

Condition: dtd-compatibility-error

@short{The class of DTD compatibility errors.}

Signalled while parsing a schema, this error signifies that the schema is not compatible (as opposed to incorrect).

Signalled during validation, this error signifies that the document is not sound (as opposed to invalid).

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

rng-error.

Condition: rng-error

@short{The class of all validation and schema parsing errors.}

Signalled while parsing a schema, this error signifies that the schema is incorrect (or not compatible with DTD Compatibility). Signalled during validation, this error signifies that the document is invalid (or not sound).

When parsing or validating with DTD Compatibility, check for @code{dtd-compatibility-error} to distinguish between
correctness and compatibility or validity and soundness.

@see-slot{rng-error-line-number} @see-slot{rng-error-column-number} @see-slot{rng-error-system-id}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

simple-error.

Direct subclasses

dtd-compatibility-error.

Direct methods
Direct slots
Slot: line-number
Initargs

:line-number

Readers

rng-error-line-number.

Writers

(setf rng-error-line-number).

Slot: column-number
Initargs

:column-number

Readers

rng-error-column-number.

Writers

(setf rng-error-column-number).

Slot: system-id
Initargs

:system-id

Readers

rng-error-system-id.

Writers

(setf rng-error-system-id).


5.1.6 Structures

Structure: any-name

@short{This name class allows any name.}

Exceptions are given as @code{any-name-except}.

@see-slot{any-name-except}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

name-class.

Direct methods
Direct slots
Slot: except
Type

(or null cxml-rng:name-class)

Initform

(cxml-rng::missing)

Readers

any-name-except.

Writers

(setf any-name-except).

Structure: attribute

@short{This pattern specifies that an attribute of a certain name class is required.}

Its child pattern describes the type of the attribute’s contents.
@see-slot{pattern-name}
@see-slot{pattern-child}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%named-pattern.

Direct methods
Direct slots
Slot: default-value
Readers

pattern-default-value.

Writers

(setf pattern-default-value).

Structure: choice

@short{This pattern specifies that one of two possible subpatterns are allowed at the current position, given as its children.}

@see-slot{pattern-a}
@see-slot{pattern-b}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%combination.

Direct methods
Structure: data

@short{This pattern specifies that text of a specific data type is expected.}

The data type instance stored in the @code{pattern-type} slot takes into account additional paramaters, which can be retrieved using @code{pattern-params} in their original form.

@see-slot{pattern-type}
@see-slot{pattern-params}
@see-slot{pattern-except}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%typed-pattern.

Direct methods
Direct slots
Slot: params
Readers

pattern-params.

Writers

(setf pattern-params).

Slot: except
Readers

pattern-except.

Writers

(setf pattern-except).

Structure: element

@short{This pattern specifies that an element of a certain name class is required.}

Its child pattern describes the attributes and child nodes
of this element.
@see-slot{pattern-name}
@see-slot{pattern-child}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%named-pattern.

Direct methods
Structure: empty

@short{This pattern specifies that nothing more is expected at the current position.}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%leaf.

Direct methods
Structure: group

@short{This pattern specifies that two subpatterns are required at the current position in a specific order.}

@see-slot{pattern-a}
@see-slot{pattern-b}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%combination.

Direct methods
Structure: interleave

@short{This pattern specifies that two possible subpatterns are allowed to occur in any order at the current position.}

@see-slot{pattern-a}
@see-slot{pattern-b}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%combination.

Direct methods
Structure: list-pattern

@short{This pattern specifies that a subpatterns is allowed multiple times a the current position, with whitespace as a separator.}

@see-slot{pattern-child}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%parent.

Direct methods
Structure: name

@short{This name class allows only a specific name.}

A specific namespace URI and local name are expected.

@see-slot{name-uri}
@see-slot{name-lname}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

name-class.

Direct methods
Direct slots
Slot: uri
Type

string

Initform

(cxml-rng::missing)

Readers

name-uri.

Writers

(setf name-uri).

Slot: lname
Type

string

Initform

(cxml-rng::missing)

Readers

name-lname.

Writers

(setf name-lname).

Structure: name-class

@short{The abstract superclass of all name-related classes.}

Name classes represent sets of permissible names for an element or attribute.

Names are pairs of namespace URI and local-name.

@see{attribute}
@see{element}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

structure-object.

Direct subclasses
Structure: name-class-choice

@short{This name class represents the union of two other name classes.}

@see-slot{name-class-choice-a}
@see-slot{name-class-choice-b}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

name-class.

Direct methods
Direct slots
Slot: a
Type

cxml-rng:name-class

Initform

(cxml-rng::missing)

Readers

name-class-choice-a.

Writers

(setf name-class-choice-a).

Slot: b
Type

cxml-rng:name-class

Initform

(cxml-rng::missing)

Readers

name-class-choice-b.

Writers

(setf name-class-choice-b).

Structure: not-allowed

@short{This pattern specifies that the part of the schema reached at this point is not valid.}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%leaf.

Direct methods
Structure: ns-name

@short{This name class allows all names in a specific namespace}, with possible exceptions.

A specific namespace URI is expected.

Exceptions are given as @code{ns-name-except}.

@see-slot{ns-name-uri}
@see-slot{ns-name-except}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

name-class.

Direct methods
Direct slots
Slot: uri
Type

string

Initform

(cxml-rng::missing)

Readers

ns-name-uri.

Writers

(setf ns-name-uri).

Slot: except
Type

(or null cxml-rng:name-class)

Initform

(cxml-rng::missing)

Readers

ns-name-except.

Writers

(setf ns-name-except).

Structure: one-or-more

@short{This pattern specifies that its subpattern is allowed to occur at the current position one or more times.}

@see-slot{pattern-child}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%parent.

Direct methods
Structure: param

@short{A named data type parameter.}

(With the XSD type library, parameters are known as restricting facets.) @see-constructor{make-param}
@see{find-type}
@see{cxml-rng:pattern-params}
@see{cxml-rng:data}
@see-slot{param-name}
@see-slot{param-value}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Readers

param-name.

Writers

(setf param-name).

Slot: value
Readers

param-value.

Writers

(setf param-value).

Structure: pattern

@short{The superclass of all patterns.}
Instances of this class represent elements in the "simplified syntax" of Relax NG.

Patterns are documented for introspective purposes and are not meant to be modified by user code.

The start pattern of a schema is available through @fun{schema-start}.

@see{schema}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

structure-object.

Direct subclasses
Direct methods
Direct slots
Slot: nullable
Initform

:uninitialized

Readers

pattern-nullable.

Writers

(setf pattern-nullable).

Structure: ref

@short{This pattern references another part of the pattern graph.}

@code{ref} is the only pattern to introduce shared structure and circularity into the pattern graph, by referring to elements defined elsewhere.

(@code{ref} patterns in the full Relax NG syntax can be used to refer to any pattern definition in the grammar. Simplification normalizes the schema so that ref patterns only refer to definitions which have an @code{element} as their child.)

@see-slot{pattern-element}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

pattern.

Direct methods
Direct slots
Slot: crdepth
Readers

pattern-crdepth.

Writers

(setf pattern-crdepth).

Slot: target
Readers

pattern-target.

Writers

(setf pattern-target).

Structure: schema

An instance of this class represents a Relax NG grammar that has been parsed and simplified.
@see-slot{schema-start}
@see-constructor{parse-schema}
@see{make-validator}
@see{serialize-schema}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: start
Type

cxml-rng:pattern

Initform

(cxml-rng::missing)

Readers

schema-start.

Writers

(setf schema-start).

Slot: definitions
Type

list

Initform

(cxml-rng::missing)

Readers

schema-definitions.

Writers

(setf schema-definitions).

Slot: interned-start
Type

(or null cxml-rng:pattern)

Readers

schema-interned-start.

Writers

(setf schema-interned-start).

Slot: registratur
Type

(or null hash-table)

Readers

schema-registratur.

Writers

(setf schema-registratur).

Slot: compatibility-table
Type

(or null cxml-rng::compatibility-table)

Readers

schema-compatibility-table.

Writers

(setf schema-compatibility-table).

Structure: text

@short{This pattern specifies that text is expected here.}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%leaf.

Direct methods
Structure: value

@short{This pattern specifies that a specific value is expected as text here.}

The value expected is @code{pattern-value}, parsed from @code{pattern-string} using @code{pattern-type}.

@see-slot{pattern-type}
@see-slot{pattern-value}
@see-slot{pattern-string}

Package

cxml-rng.

Source

parse.lisp.

Direct superclasses

%typed-pattern.

Direct methods
Direct slots
Slot: ns
Readers

pattern-ns.

Writers

(setf pattern-ns).

Slot: string
Package

common-lisp.

Readers

pattern-string.

Writers

(setf pattern-string).

Slot: value
Readers

pattern-value.

Writers

(setf pattern-value).


5.1.7 Classes

Class: any-uri-type

@short{The anyURI data type.}

@b{Syntax.} An arbitrary string (!).
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#anyURI]{specification}.

@b{Implementation.} This type returns a normalized string in which special characters have been escaped.

@b{Parameters.} This type allows restrictions on the length of the normalized string through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"anyuri"

Readers

type-name.

Writers

This slot is read-only.

Class: base64-binary-type

@short{The base64Binary data type.}

@b{Syntax.} Normal Base64 syntax.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#base64Binary]{specification}.

@b{Implementation.} This type returns an @code{(unsigned-byte 8)} vector.

@b{Parameters.} This type allows restrictions on the length of the octet vector through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"base64binary"

Readers

type-name.

Writers

This slot is read-only.

Class: boolean-type

@short{The boolean data type.}

@b{Syntax.} "1", "0", "true", or "false".
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#boolean]{specification}.

@b{Implementation.} This type returns @code{t} or @code{nil}.

@b{Parameters.} No parameters except for @fun{pattern} are available for this type.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"boolean"

Readers

type-name.

Writers

This slot is read-only.

Class: byte-type

@short{The byte data type, derived from short.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#byte]{specification}.

@b{Restrictions.} This type allows only values from the interval [-128, 127].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

short-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"byte"

Readers

type-name.

Writers

This slot is read-only.

Class: data-type

@short{The abstract superclass of all types.}

Each type belongs to a datatype library, named by a keyword. In each library, the types are named by strings.

@see-constructor{find-type}
@see-slot{type-name}
@see-slot{type-library}
@see-slot{type-context-dependent-p}
@see-slot{type-id-type}
@see{parse}
@see{equal-using-type}
@see{lessp-using-type}
@see{validp}

Package

cxml-types.

Source

types.lisp.

Direct subclasses
Direct methods
Class: date-time-type

@short{The dateTime data type, representing a moment in time.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#dateTime]{specification}.

@b{Implementation.} This type returns lists of the form
@code{(year month day hour minute second timezone)}. Each
value is an integer, except except for @code{second}, which is a real, and @code{timezone} which is a real or @code{nil}.
A @code{timezone} of @code{nil} indicates UTC.

@b{Example.} @code{2002-10-10T12:00:00-05:00}
maps to @code{(2002 10 10 12 0 0 -5)}

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"datetime"

Readers

type-name.

Writers

This slot is read-only.

Class: date-type

@short{The date data type, representing a day of the year.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#date]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"date"

Readers

type-name.

Writers

This slot is read-only.

Class: day-type

@short{The gDay data type, representing a calendar day.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#gDay]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{year}, @code{month}, @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"gday"

Readers

type-name.

Writers

This slot is read-only.

Class: decimal-type

@short{The decimal data type.}

@b{Syntax.} A rational number, written using an optional decimal point and decimal places.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#decimal]{specification}.

@b{Implementation.} This type returns a @code{rational}.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}.

In addition, the facets @slot{fraction-digits} @slot{total-digits} are recognized.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct subclasses

integer-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"decimal"

Readers

type-name.

Writers

This slot is read-only.

Slot: fraction-digits
Initargs

:fraction-digits

Readers

fraction-digits.

Writers

(setf fraction-digits).

Slot: total-digits
Initargs

:total-digits

Readers

total-digits.

Writers

(setf total-digits).

Class: double-type

@short{The double data type.}

@b{Syntax.} A floating-point number in a "scientific notation". C.f. the @a[http://www.w3.org/TR/xmlschema-2/#double]{specification}.

@b{Implementation.} This type returns a @code{double-float} or, on implementations where Infinity and Nan cannot be represented as such, a special symbol that is treated as if it was Infinity or NaN by the built-in ordering.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"double"

Readers

type-name.

Writers

This slot is read-only.

Class: dtd-compatibility-type

@short{The class of DTD Compatibility data types.}

This library contains three types: ID, IDREF, and IDREFS.

This type library is named @code{:|http://relaxng.org/ns/compatibility/datatypes/1.0|}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

data-type.

Direct subclasses
Direct methods
Direct slots
Slot: chained-type
Readers

chained-type.

Writers

(setf chained-type).

Class: duration-type

@short{The duration data type, representing a duration of time.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#duration]{specification}.

@b{Implementation.} This type returns lists of the form @code{(years months days hours minutes seconds)}. Each
value can be @code{nil} or a number. All values are integers except for @code{seconds}, which is a real.

@b{Example.} @code{P1Y2M3DT10H30M}
maps to @code{(1 2 3 10 30 nil)}

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"duration"

Readers

type-name.

Writers

This slot is read-only.

Class: entities-type

@short{The ENTITIES data type, an enumeration.}

@b{Syntax.} A whitespace-separated sequence of @class{entity-type} values, with at least one element.

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#ENTITIES]{specification}.

@b{Implementation.} This type returns a list of the values as returned by @class{entity-type}.

@b{Context dependent.} This type is context dependent and requires the @code{context} argument to @fun{parse} and @fun{validp}.

@b{Parameters.} This type allows restrictions on the number of values through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

enumeration-type.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"entities"

Readers

type-name.

Writers

This slot is read-only.

Slot: word-type
Initform

(make-instance (quote cxml-types:entity-type))

Class: entity-type

@short{The ENTITY data type, derived from NCName.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#ENTITY]{specification}.

@b{Restrictions.} This type restricts its supertype @class{ncname-type} to names that have been declared as unparsed entities in the context.

@b{Context dependent.} This type is context dependent and requires the @code{context} argument to @fun{parse} and @fun{validp}.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

ncname-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"entity"

Readers

type-name.

Writers

This slot is read-only.

Class: float-type

@short{The float data type.}

@b{Syntax.} A floating-point number in a "scientific notation". C.f. the @a[http://www.w3.org/TR/xmlschema-2/#float]{specification}.

@b{Implementation.} This type returns a @code{single-float} or, on implementations where Infinity and Nan cannot be represented as such, a special symbol that is treated as if it was Infinity or NaN by the built-in ordering.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"float"

Readers

type-name.

Writers

This slot is read-only.

Class: hex-binary-type

@short{The hexBinary data type.}

@b{Syntax.} A sequence of two-digit hexadecimal numbers representing one octet each.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#hexBinary]{specification}.

@b{Implementation.} This type returns an @code{(unsigned-byte 8)} vector.

@b{Parameters.} This type allows restrictions on the length of the octet vector through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"hexbinary"

Readers

type-name.

Writers

This slot is read-only.

Class: id-type

@short{The DTD compatibility ’ID’ type.}

For this type, @fun{parse} will return the string with leading and trailing whitespace removed.

The resulting value must be an NCName.

The ID-type of this data type is ’ID’, ensuring that each value is only used for one element in a document.

@see{xsd-id-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

dtd-compatibility-type.

Direct methods
Class: idref-type

@short{The DTD compatibility ’IDREF’ type.}

For this type, @fun{parse} will return the string with leading and trailing whitespace removed.

The resulting value must be an NCName.

The ID-type of this data type is ’IDREF’, ensuring that the value referenced must be declared as the ID of an element in the document.

@see{xsd-idref-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

dtd-compatibility-type.

Direct methods
Class: idrefs-type

@short{The DTD compatibility ’IDREFS’ type.}

Strings are valid for this data type they contain a whitespace-separated list of one or more NCNames. @fun{parse} will return a list of these substrings.

The ID-type of this data type is ’IDREFS’, ensuring that each value referenced must be declared as the ID of an element in the document.

@see{xsd-idrefs-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

dtd-compatibility-type.

Direct methods
Class: int-type

@short{The int data type, derived from long.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#int]{specification}.

@b{Restrictions.} This type allows only values from the interval [-2^31, 2^31-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

long-type.

Direct subclasses

short-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"int"

Readers

type-name.

Writers

This slot is read-only.

Class: integer-type

@short{The integer data type, derived from decimal.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#integer]{specification}.

@b{Syntax.} An integer, written it the decimal system without leading zeros. No decimal point is permitted.

@b{Implementation.} This type returns an @code{integer}.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

decimal-type.

Direct subclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"integer"

Readers

type-name.

Writers

This slot is read-only.

Class: klacks-validation-context

A validation-context implementation that queries
a klacks source for information about the parser’s current state. @see-constructor{make-klacks-validation-context}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

validation-context.

Direct methods
Direct slots
Slot: source
Initargs

:source

Readers

context-source.

Writers

(setf context-source).

Class: language-type

@short{The language data type, derived from token.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#language]{specification}.

@b{Restrictions.} This type restricts its supertype @class{token-type} to strings of the pattern "[a-zA-Z]{1,8@}(-[a-zA-Z0-9]{1,8@})*".

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-token-type.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"language"

Readers

type-name.

Writers

This slot is read-only.

Slot: patterns
Initform

(cxml-types::precompile "[a-za-z]{1,8}(-[a-za-z0-9]{1,8})*")

Class: long-type

@short{The long data type, derived from integer.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#long]{specification}.

@b{Restrictions.} This type allows only values from the interval [-2^63, 2^63-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

integer-type.

Direct subclasses

int-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"long"

Readers

type-name.

Writers

This slot is read-only.

Class: month-day-type

@short{The gMonthDay data type, representing a calendar month and day.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#monthDay]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{year}, @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"gmonthday"

Readers

type-name.

Writers

This slot is read-only.

Class: month-type

@short{The gMonth data type, representing a calendar month.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#gMonth]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{year}, @code{day}, @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"gmonth"

Readers

type-name.

Writers

This slot is read-only.

Class: name-type

@short{The Name data type, derived from token.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#Name]{specification}.

@b{Restrictions.} This type restricts its supertype @class{token-type} to strings of the pattern "\i\c*".

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-token-type.

Direct subclasses

ncname-type.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"name"

Readers

type-name.

Writers

This slot is read-only.

Slot: patterns
Initform

(cxml-types::precompile "\\i\\c*")

Class: ncname-type

@short{The NCName data type, derived from Name.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#NCName]{specification}.

@b{Restrictions.} This type restricts its supertype @class{name-type} to strings of the pattern "[\i-[:]][\c-[:]]*".

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

name-type.

Direct subclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"ncname"

Readers

type-name.

Writers

This slot is read-only.

Slot: patterns
Initform

(cxml-types::precompile "[\\i-[:]][\\c-[:]]*")

Class: negative-integer-type

@short{The negativeInteger data type, derived from nonPositiveInteger.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#negativeInteger]{specification}.

@b{Restrictions.} This type allows only values < 0.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

non-positive-integer-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"negativeinteger"

Readers

type-name.

Writers

This slot is read-only.

Class: nmtoken-type

@short{The NMTOKEN data type, derived from token.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#NMTOKEN]{specification}.

@b{Restrictions.} This type restricts its supertype @class{token-type} to strings of the pattern "\c+".

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-token-type.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"nmtoken"

Readers

type-name.

Writers

This slot is read-only.

Slot: patterns
Initform

(cxml-types::precompile "\\c+")

Class: nmtokens-type

@short{The NMTOKENS data type, an enumeration.}

@b{Syntax.} A whitespace-separated sequence of @class{nmtoken-type} values, with at least one element.

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#NMTOKENS]{specification}.

@b{Implementation.} This type returns a list of the values as returned by @class{nmtoken-type}.

@b{Parameters.} This type allows restrictions on the number of values through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

enumeration-type.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"nmtokens"

Readers

type-name.

Writers

This slot is read-only.

Slot: word-type
Initform

(make-instance (quote cxml-types:nmtoken-type))

Class: non-negative-integer-type

@short{The nonNegativeInteger data type, derived from integer.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger]{specification}.

@b{Restrictions.} This type allows only values >= 0.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

integer-type.

Direct subclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"nonnegativeinteger"

Readers

type-name.

Writers

This slot is read-only.

Class: non-positive-integer-type

@short{The nonPositiveInteger data type, derived from integer.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger]{specification}.

@b{Restrictions.} This type allows only values <= 0.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

integer-type.

Direct subclasses

negative-integer-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"nonpositiveinteger"

Readers

type-name.

Writers

This slot is read-only.

Class: normalized-string-type

@short{The normalizedString data type, derived from string.}

@b{Syntax.} An arbitrary string.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#normalizedString]{specification}.

@b{Implementation.} Returns the string with whitespace replaced.

I.e., each whitespace character is replaced by a space
(character code 32), but multiple spaces, as well as
leading and trailing spaces will still be returned.

(This is the only XSD type that replaces whitespace in this way.)

@b{Parameters.} This type allows restrictions on the length of the normalized string through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-string-type.

Direct subclasses

xsd-token-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"normalizedstring"

Readers

type-name.

Writers

This slot is read-only.

Class: notation-type

@short{The NOTATION data type.}

@b{Syntax.} A qualified name.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#NOTATION]{specification}.

@b{Implementation.} This type is treated exactly like @class{qname-type}, as specified in @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}.

@b{Parameters.} This type allows restrictions on the length of the original QName through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

qname-like.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"notation"

Readers

type-name.

Writers

This slot is read-only.

Class: positive-integer-type

@short{The positiveInteger data type, derived from nonNegativeInteger.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#positiveInteger]{specification}.

@b{Restrictions.} This type allows only values > 0.

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

non-negative-integer-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"positiveinteger"

Readers

type-name.

Writers

This slot is read-only.

Class: qname-type

@short{The QName data type.}

@b{Syntax.} A Qualified Name, as per the "Namespaces in XML" specification. The namespace prefix must be bound to a namespace URI in the context.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#QName]{specification}.

@b{Context dependent.} This type is context dependent and requires the @code{context} argument to @fun{parse} and @fun{validp}.

@b{Implementation.} This type returns a structure with two components, the namespace URI and the local name. fixme: and the original length. fixme: export this structure.

@b{Parameters.} This type allows restrictions on the length of the original QName through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

qname-like.

Direct methods

type-name.

Direct slots
Slot: type-name
Allocation

:class

Initform

"qname"

Readers

type-name.

Writers

This slot is read-only.

Class: rng-type

@short{The class of Relax NG built-in types.}
Relax NG defines two built-in data type: string and token.

The Relax NG type library is named @code{:||}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

data-type.

Direct subclasses
Direct methods
Class: sax-validation-context-mixin

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

The mixin will record namespace information
automatically, and the user’s SAX handler can simply be passed as a validation context to data type functions.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

validation-context.

Direct subclasses
Direct methods
Direct slots
Slot: stack
Readers

context-stack.

Writers

(setf context-stack).

Slot: unparsed-entities
Initform

(make-hash-table :test (quote equal))

Readers

unparsed-entities.

Writers

(setf unparsed-entities).

Class: short-type

@short{The short data type, derived from int.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#short]{specification}.

@b{Restrictions.} This type allows only values from the interval [-2^15, 2^15-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

int-type.

Direct subclasses

byte-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"short"

Readers

type-name.

Writers

This slot is read-only.

Class: string-type

@short{The Relax NG ’string’ type.}
This data type allows arbitrary strings and interprets them as-is.

For this type, @fun{parse} will return any string unchanged, and @fun{equal-using-type} compares strings using @code{equal}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

rng-type.

Direct methods
Class: time-type

@short{The time data type, representing a time of day.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#dateTime]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{year}, @code{month} and @code{day} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"time"

Readers

type-name.

Writers

This slot is read-only.

Class: token-type

@short{The Relax NG ’token’ type.}
This data type allows arbitrary strings and normalizes all whitespaces.

For this type, @fun{parse} will return the string with leading and trailing whitespace removed, and remaining sequences of spaces compressed down to one space character each.

A method for @fun{equal-using-type} compares strings using @code{equal}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

rng-type.

Direct methods
Class: unsigned-byte-type

@short{The unsignedByte data type, derived from unsignedInt.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#unsignedByte]{specification}.

@b{Restrictions.} This type allows only values from the interval
[0, 255].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

unsigned-short-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"unsignedbyte"

Readers

type-name.

Writers

This slot is read-only.

Class: unsigned-int-type

@short{The unsignedInt data type, derived from unsignedLong.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#unsignedInt]{specification}.

@b{Restrictions.} This type allows only values from the interval
[0, 2^32-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

unsigned-long-type.

Direct subclasses

unsigned-short-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"unsignedint"

Readers

type-name.

Writers

This slot is read-only.

Class: unsigned-long-type

@short{The unsignedLong data type, derived from nonNegativeInteger.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#unsignedLong]{specification}.

@b{Restrictions.} This type allows only values from the interval
[0, 2^64-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

non-negative-integer-type.

Direct subclasses

unsigned-int-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"unsignedlong"

Readers

type-name.

Writers

This slot is read-only.

Class: unsigned-short-type

@short{The unsignedShort data type, derived from unsignedInt.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#unsignedShort]{specification}.

@b{Restrictions.} This type allows only values from the interval
[0, 2^16-1].

@b{Parameters and implementation.} Unchanged from the supertype.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

unsigned-int-type.

Direct subclasses

unsigned-byte-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"unsignedshort"

Readers

type-name.

Writers

This slot is read-only.

Class: validation-context

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

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

User-defined subclasses must implement methods
for the functions @fun{context-find-namespace-binding} and @fun{context-find-unparsed-entity}.

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

Package

cxml-types.

Source

types.lisp.

Direct subclasses
Class: xsd-id-type

@short{The ID data type, derived from NCName.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#ID]{specification}.

@b{Restrictions.} None.

@b{ID type.} This type has the ID-type ’ID’for the purposes of DTD compatibility. See @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}.

@b{Parameters and implementation.} Unchanged from the supertype.

@see{id-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

ncname-type.

Direct subclasses

xsd-idref-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"id"

Readers

type-name.

Writers

This slot is read-only.

Class: xsd-idref-type

@short{The IDREF data type, derived from ID.}

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#IDREF]{specification}.

@b{Restrictions.} None.

@b{ID type.} This type has the ID-type ’IDREF’for the purposes of DTD compatibility. See @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}.

@b{Parameters and implementation.} Unchanged from the supertype.

@see{idref-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

xsd-id-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"idref"

Readers

type-name.

Writers

This slot is read-only.

Class: xsd-idrefs-type

@short{The IDREFS data type, an enumeration.}

@b{Syntax.} A whitespace-separated sequence of @class{xsd-idref-type} values, with at least one element.

C.f. the @a[http://www.w3.org/TR/xmlschema-2/#IDREFS]{specification}.

@b{Implementation.} This type returns a list of the values as returned by @class{xsd-idref-type}.

@b{ID type.} This type has the ID-type ’IDREFS’for the purposes of DTD compatibility. See @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}.

@b{Parameters.} This type allows restrictions on the number of values through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

@see{idrefs-type}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

enumeration-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"idrefs"

Readers

type-name.

Writers

This slot is read-only.

Slot: word-type
Initform

(make-instance (quote cxml-types:xsd-idref-type))

Class: xsd-string-type

@short{The string data type.}

@b{Syntax.} An arbitrary string.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#string]{specification}.

@b{Implementation.} Returns the string unchanged. This is the only XSD type that does not normalize or replace whitespace.

@b{Parameters.} This type allows restrictions on the length of the string through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct subclasses

normalized-string-type.

Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"string"

Readers

type-name.

Writers

This slot is read-only.

Class: xsd-token-type

@short{The token data type, derived from normalizedString.}

@b{Syntax.} An arbitrary string.
C.f. the @a[http://www.w3.org/TR/xmlschema-2/#token]{specification}.

@b{Implementation.} Returns the string with normalized whitespace.

I.e., each whitespace character is replaced by a space
(character code 32), multiple spaces are collapsed into one character, and leading and trailing spaces will be removed.

(This is the standard behaviour of all XSD types with the exception of token’s supertypes @class{string-type} and @class{normalized-string-type}.)

@b{Parameters.} This type allows restrictions on the length of the normalized string through the parameters @slot{exact-length}, @slot{min-length}, and @slot{max-length}.

Package

cxml-types.

Source

types.lisp.

Direct superclasses

normalized-string-type.

Direct subclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"token"

Readers

type-name.

Writers

This slot is read-only.

Class: xsd-type

@short{The class of XML Schema built-in types.}

Subclasses of xsd-type provide the built-in types of @a[http://www.w3.org/TR/xmlschema-2/]{
XML Schema Part 2: Datatypes Second Edition}
as specified in @a[http://relaxng.org/xsd-20010907.html]{Guidelines for using W3C XML Schema Datatypes with RELAX NG}.

The XSD type library
is named @code{:|http://www.w3.org/2001/XMLSchema-datatypes|}.

@b{Parameters.} All XSD types accept regular expressions restricting the set of strings accepted by the type. The pattern parameter is called @code{"pattern"}. This parameter can be repeated to specify multiple regular expressions that must all match the data.
As an initarg, specify @code{:pattern} with a list of regular expressions as an argument.

@see-slot{patterns}

Package

cxml-types.

Source

types.lisp.

Direct superclasses

data-type.

Direct subclasses
Direct methods
Direct slots
Slot: patterns
Readers

patterns.

Writers

(setf patterns).

Slot: compiled-patterns
Readers

compiled-patterns.

Writers

(setf compiled-patterns).

Class: year-month-type

@short{The gYearMonth data type, representing the calendar month of a specific year.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#gYearMonth]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{day}, @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"gyearmonth"

Readers

type-name.

Writers

This slot is read-only.

Class: year-type

@short{The gYear data type, representing a calendar year.}

@b{Syntax.} This type accepts an ISO-like syntax. For details refer to the @a[http://www.w3.org/TR/xmlschema-2/#gYear]{specification}.

@b{Implementation.} This type returns the same kind of lists as @class{date-time-type}, except that the fields @code{month}, @code{day}, @code{hour}, @code{minute} and @code{second} are filled with dummy values from the Gregorian year AD 1.

@b{Parameters.} This type is ordered and allows the parameters @slot{max-inclusive}, @slot{min-inclusive},
@slot{max-exclusive}, and @slot{min-exclusive}. The ordering is partial except within a timezone, see the spec for details.

Package

cxml-types.

Source

types.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: type-name
Allocation

:class

Initform

"gyear"

Readers

type-name.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Constants

Constant: +1+
Package

cxml-types.

Source

unicode.lisp.

Constant: +limit-1+
Package

cxml-types.

Source

unicode.lisp.


5.2.2 Special variables

Special Variable: !lname
Package

cxml-rng.

Source

parse.lisp.

Special Variable: !uri
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *annotation-attributes*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *annotation-elements*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *annotation-wrap*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *any-name-allowed-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *attribute-namespace-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *compact-parser*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *compatibility-grammar*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *compatibility-table*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *compatibility-test-p*
Package

cxml-rng.

Source

test.lisp.

Special Variable: *data-types*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *datatype-library*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *debug*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *default-namespace*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *definitions-to-names*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *dtd-restriction-validator*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *elementp*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *empty*
Package

cxml-rng.

Source

validate.lisp.

Special Variable: *entity-resolver*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *error-class*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *external-href-stack*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *full-table-p*
Package

cxml-clex.

Source

clex.lisp.

Special Variable: *grammar*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *id-type*
Package

cxml-types.

Source

types.lisp.

Special Variable: *idref-type*
Package

cxml-types.

Source

types.lisp.

Special Variable: *idrefs-type*
Package

cxml-types.

Source

types.lisp.

Special Variable: *in-attribute*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-attribute-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-choices*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-data-except-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-default-value-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-element*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-list-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-one-or-more-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-one-or-more//group-or-interleave-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *in-pattern-parser-p*
Package

cxml-types.

Source

nppcre.lisp.

Special Variable: *in-start-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *include-body-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *include-definitions*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *include-start*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *include-uri-stack*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *keywords*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *namespace-uri*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *namespaces*
Package

cxml-rng.

Source

compact.lisp.

Special Variable: *newly-seen-definitions*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *not-allowed*
Package

cxml-rng.

Source

validate.lisp.

Special Variable: *ns*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *ns-name-allowed-p*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *process-dtd-compatibility*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *relax-ng-grammar*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *rng-namespace*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *seen-elements*
Package

cxml-rng.

Source

validate.lisp.

Special Variable: *seen-names*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *standard-optimize-settings*
Package

cxml-types.

Source

nppcre.lisp.

Special Variable: *string-data-type*
Package

cxml-types.

Source

types.lisp.

Special Variable: *test-xmllint*
Package

cxml-rng.

Source

test.lisp.

Special Variable: *token-data-type*
Package

cxml-types.

Source

types.lisp.

Special Variable: *validate-grammar*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *whitespace*
Package

cxml-rng.

Source

parse.lisp.

Special Variable: *whitespace*
Package

cxml-types.

Source

types.lisp.

Special Variable: *xsd-types*
Package

cxml-types.

Source

types.lisp.

Special Variable: .
Package

cxml-types.

Source

unicode.lisp.

Special Variable: \c
Package

cxml-types.

Source

unicode.lisp.

Special Variable: \d
Package

cxml-types.

Source

unicode.lisp.

Special Variable: \i
Package

cxml-types.

Source

unicode.lisp.

Special Variable: \s
Package

cxml-types.

Source

unicode.lisp.

Special Variable: \w
Package

cxml-types.

Source

unicode.lisp.

Special Variable: ^c
Package

cxml-types.

Source

unicode.lisp.

Special Variable: ^d
Package

cxml-types.

Source

unicode.lisp.

Special Variable: ^i
Package

cxml-types.

Source

unicode.lisp.

Special Variable: ^s
Package

cxml-types.

Source

unicode.lisp.

Special Variable: ^w
Package

cxml-types.

Source

unicode.lisp.

Special Variable: double-float-nan
Package

cxml-types.

Source

floats.lisp.

Special Variable: double-float-negative-infinity
Package

cxml-types.

Source

floats.lisp.

Special Variable: double-float-positive-infinity
Package

cxml-types.

Source

floats.lisp.

Special Variable: p{cc}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{cf}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{cn}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{co}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{c}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isalphabeticpresentationforms}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isarabicpresentationforms-a}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isarabicpresentationforms-b}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isarabic}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isarmenian}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isarrows}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isbasiclatin}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isbengali}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isblockelements}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isbopomofoextended}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isbopomofo}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isboxdrawing}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isbraillepatterns}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ischerokee}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkcompatibilityforms}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkcompatibilityideographs}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkcompatibility}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkradicalssupplement}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjksymbolsandpunctuation}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkunifiedideographsextensiona}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscjkunifiedideographs}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscombiningdiacriticalmarks}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscombininghalfmarks}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscombiningmarksforsymbols}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscontrolpictures}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscurrencysymbols}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iscyrillic}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isdevanagari}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isdingbats}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isenclosedalphanumerics}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isenclosedcjklettersandmonths}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isethiopic}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgeneralpunctuation}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgeometricshapes}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgeorgian}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgreekextended}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgreek}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgujarati}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isgurmukhi}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishalfwidthandfullwidthforms}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishangulcompatibilityjamo}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishanguljamo}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishangulsyllables}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishebrew}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ishiragana}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isideographicdescriptioncharacters}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isipaextensions}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iskanbun}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iskangxiradicals}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iskannada}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iskatakana}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{iskhmer}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{islao}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{islatin-1supplement}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{islatinextended-a}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{islatinextended-b}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{islatinextendedadditional}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isletterlikesymbols}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismalayalam}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismathematicaloperators}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismiscellaneoussymbols}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismiscellaneoustechnical}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismongolian}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ismyanmar}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isnumberforms}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isogham}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isopticalcharacterrecognition}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isoriya}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isprivateuse}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isrunic}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{issinhala}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{issmallformvariants}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isspacingmodifierletters}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isspecials}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{issuperscriptsandsubscripts}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{issyriac}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{istamil}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{istelugu}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isthaana}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isthai}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{istibetan}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isunifiedcanadianaboriginalsyllabics}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isyiradicals}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{isyisyllables}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ll}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{lm}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{lo}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{lt}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{lu}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{l}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{mc}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{me}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{mn}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{m}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{nd}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{nl}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{no}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{n}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{pc}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{pd}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{pe}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{pf}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{pi}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{po}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{ps}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{p}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{sc}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{sk}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{sm}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{so}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{s}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{zl}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{zp}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{zs}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: p{z}
Package

cxml-types.

Source

unicode.lisp.

Special Variable: single-float-nan
Package

cxml-types.

Source

floats.lisp.

Special Variable: single-float-negative-infinity
Package

cxml-types.

Source

floats.lisp.

Special Variable: single-float-positive-infinity
Package

cxml-types.

Source

floats.lisp.


5.2.3 Macros

Macro: defblock (name min max)
Package

cxml-types.

Source

unicode.lisp.

Macro: define-uncompactor (name (&rest args) &body body)
Package

cxml-rng.

Source

compact.lisp.

Macro: defranges (name form)
Package

cxml-types.

Source

unicode.lisp.

Macro: defxsd ((class-name type-name) (&rest supers) (&rest slots) &rest args)
Package

cxml-types.

Source

types.lisp.

Macro: do-bits ((var set &optional result) &body body)

Iterate body with ‘var’ over all elements of ‘set’.

Package

cxml-clex.

Source

clex.lisp.

Macro: double (x)
Package

cxml-rng.

Source

compact.lisp.

Macro: element-of-set-p (elm set)

Determine whether ‘elm’ is element of the set ‘set’.

Package

cxml-clex.

Source

clex.lisp.

Macro: ensuref (key table value)
Package

cxml-rng.

Source

validate.lisp.

Macro: lambda* ((&rest args) &body body)
Package

cxml-rng.

Source

compact.lisp.

Macro: make-empty-set (n)

Create the empty set on the domain [0,n).

Package

cxml-clex.

Source

clex.lisp.

Macro: maybe-coerce-to-simple-string (string)
Package

cxml-types.

Source

nppcre.lisp.

Macro: nset-put (bag new)

Destructively calculate bag = bag U {new}.

Package

cxml-clex.

Source

clex.lisp.

Macro: precompile (pattern)
Package

cxml-types.

Source

types.lisp.

Macro: set-size (set)

Return the upper bound of the domain of ‘set’.

Package

cxml-clex.

Source

clex.lisp.

Macro: with-element (name-and-args &body body)
Package

cxml-rng.

Source

compact.lisp.

Macro: with-library-and-ns (attrs &body body)
Package

cxml-rng.

Source

parse.lisp.


5.2.4 Ordinary functions

Function: %combination-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: %leaf-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf %leaf-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: %leaf-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: %named-pattern-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: %parent-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: %typed-pattern-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: . (character)
Package

cxml-types.

Source

unicode.lisp.

Function: <-using-type (type u v)
Package

cxml-types.

Source

types.lisp.

Function: <=-using-type (type u v)
Package

cxml-types.

Source

types.lisp.

Function: >-using-type (type u v)
Package

cxml-types.

Source

types.lisp.

Function: >=-using-type (type u v)
Package

cxml-types.

Source

types.lisp.

Function: \c (character)
Package

cxml-types.

Source

unicode.lisp.

Function: \d (character)
Package

cxml-types.

Source

unicode.lisp.

Function: \i (character)
Package

cxml-types.

Source

unicode.lisp.

Function: \s (character)
Package

cxml-types.

Source

unicode.lisp.

Function: \w (character)
Package

cxml-types.

Source

unicode.lisp.

Function: ^c (character)
Package

cxml-types.

Source

unicode.lisp.

Function: ^d (character)
Package

cxml-types.

Source

unicode.lisp.

Function: ^i (character)
Package

cxml-types.

Source

unicode.lisp.

Function: ^s (character)
Package

cxml-types.

Source

unicode.lisp.

Function: ^w (character)
Package

cxml-types.

Source

unicode.lisp.

Function: advance (hsx pattern message &rest args)
Package

cxml-rng.

Source

validate.lisp.

Function: after-a (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf after-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: after-b (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf after-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: after-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf after-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: after-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: any-name-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: assert-name-class-finite (nc)
Package

cxml-rng.

Source

parse.lisp.

Function: attribute-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: attributes' (handler pattern attributes)
Package

cxml-rng.

Source

validate.lisp.

Function: check-attribute-compatibility/default (pattern default-value)
Package

cxml-rng.

Source

parse.lisp.

Function: check-attribute-compatibility/id (pattern default-value)
Package

cxml-rng.

Source

parse.lisp.

Function: check-element-overlap-compatibility (elt1 elt2)
Package

cxml-rng.

Source

parse.lisp.

Function: check-pattern-definitions (source grammar)
Package

cxml-rng.

Source

parse.lisp.

Function: check-schema-compatibility (schema defns)
Package

cxml-rng.

Source

parse.lisp.

Function: check-start-restrictions (pattern)
Package

cxml-rng.

Source

parse.lisp.

Function: choice-a (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf choice-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: choice-b (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf choice-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: choice-ify (children)
Package

cxml-rng.

Source

parse.lisp.

Function: choice-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf choice-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: choice-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: classes-overlap-p (nc1 nc2)
Package

cxml-rng.

Source

parse.lisp.

Function: code (x)
Package

cxml-clex.

Source

clex.lisp.

Function: collect-char-class (lexer)

Reads and consumes characters from regex string until a right bracket is seen. Assembles them into a list (which is returned) of characters, character ranges, like (:RANGE #\A #\E) for a-e, and tokens representing special character classes.

Package

cxml-types.

Source

nppcre.lisp.

Function: compatibility-table-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: consume-and-parse-characters (source)
Package

cxml-rng.

Source

parse.lisp.

Function: consume-and-skip-to-native (source)
Package

cxml-rng.

Source

parse.lisp.

Function: content-type-max (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: convert-substraction (r s)
Package

cxml-types.

Source

nppcre.lisp.

Function: copy-%combination (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-%leaf (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-%named-pattern (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-%parent (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-%typed-pattern (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-after (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-any-name (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-attribute (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-choice (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-compatibility-table (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-data (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-definition (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-dtd-attribute (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-dtd-element (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-dtd-member (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-element (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-empty (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-fsa (instance)
Package

cxml-clex.

Source

clex.lisp.

Function: copy-grammar (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-group (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-interleave (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-lexer (instance)
Package

cxml-types.

Source

nppcre.lisp.

Function: copy-list-pattern (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-name (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-name-class (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-name-class-choice (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-not-allowed (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-ns-name (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-one-or-more (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-param (instance)
Package

cxml-types.

Source

types.lisp.

Function: copy-pattern (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-pattern-tree (pattern)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-qname (instance)
Package

cxml-types.

Source

types.lisp.

Function: copy-ref (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-schema (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-state (sequence)

Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.

Package

cxml-clex.

Alias for

copy-seq.

Function: copy-text (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: copy-value (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: data-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: datetime+duration (s d)
Package

cxml-types.

Source

types.lisp.

Function: datetime+timezone (d h m)
Package

cxml-types.

Source

types.lisp.

Function: day-limit (m y)
Package

cxml-types.

Source

types.lisp.

Function: definition-p (object)
Package

cxml-rng.

Source

parse.lisp.

Reader: defn-child (instance)
Writer: (setf defn-child) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

child.

Reader: defn-combine-method (instance)
Writer: (setf defn-combine-method) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

combine-method.

Reader: defn-head-p (instance)
Writer: (setf defn-head-p) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

head-p.

Reader: defn-name (instance)
Writer: (setf defn-name) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

name.

Reader: defn-redefinition (instance)
Writer: (setf defn-redefinition) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

redefinition.

Function: destructure-cname-like (x)
Package

cxml-rng.

Source

compact.lisp.

Function: destructure-name (source qname)
Package

cxml-rng.

Source

parse.lisp.

Function: destructure-range (x)
Package

cxml-clex.

Source

clex.lisp.

Function: do-not-constant-fold-me (x)
Package

cxml-types.

Source

floats.lisp.

Function: dtd-attribute-p (object)
Package

cxml-rng.

Source

parse.lisp.

Reader: dtd-attributes (instance)
Writer: (setf dtd-attributes) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

attributes.

Reader: dtd-default-value (instance)
Writer: (setf dtd-default-value) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

default-value.

Function: dtd-element-p (object)
Package

cxml-rng.

Source

parse.lisp.

Reader: dtd-elements (instance)
Writer: (setf dtd-elements) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

elements.

Reader: dtd-id-type (instance)
Writer: (setf dtd-id-type) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

id-type.

Reader: dtd-id-type-declared-by (instance)
Writer: (setf dtd-id-type-declared-by) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

id-type-declared-by.

Function: dtd-member-p (object)
Package

cxml-rng.

Source

parse.lisp.

Reader: dtd-name (instance)
Writer: (setf dtd-name) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

name.

Reader: dtd-value-declared-by (instance)
Writer: (setf dtd-value-declared-by) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

value-declared-by.

Function: eat (ok)
Package

cxml-rng.

Source

validate.lisp.

Function: element-child (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf element-child) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: element-name (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf element-name) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: element-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf element-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: element-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: empty-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf empty-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: empty-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: end-of-string-p (lexer)

Tests whether we’re at the end of the regex string.

Package

cxml-types.

Source

nppcre.lisp.

Function: ensure-dtd-attribute (attribute-name element table)
Package

cxml-rng.

Source

parse.lisp.

Function: ensure-dtd-element (element compatibility-table)
Package

cxml-rng.

Source

parse.lisp.

Function: ensure-hash (key table fn)
Package

cxml-rng.

Source

validate.lisp.

Function: ensure-registratur (grammar)
Package

cxml-rng.

Source

validate.lisp.

Function: escape-uri (string)
Package

cxml-rng.

Source

parse.lisp.

Function: fail (lexer)

Moves (LEXER-POS LEXER) back to the last position stored in (LEXER-LAST-POS LEXER) and pops the LAST-POS stack.

Package

cxml-types.

Source

nppcre.lisp.

Function: finalize-definitions (pattern)
Package

cxml-rng.

Source

parse.lisp.

Function: finalize-pattern (p)
Package

cxml-rng.

Source

validate.lisp.

Function: find-definition (name &optional grammar)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf find-definition) (name &optional grammar)
Package

cxml-rng.

Source

parse.lisp.

Function: flush ()
Package

cxml-rng.

Source

parse.lisp.

Function: flush-pending (handler)
Package

cxml-rng.

Source

validate.lisp.

Function: follow-rnc-uri (uri)
Package

cxml-rng.

Source

compact.lisp.

Function: frob2 (res)
Package

cxml-clex.

Source

clex.lisp.

Function: fsa-branch (&rest as)

Alternation of a0..an; Hence ‘a0 | a1 | ... | an’.

Package

cxml-clex.

Source

clex.lisp.

Function: fsa-concat (a1 a2)

Concatenation of ‘a1’ and ‘a2’. Hence ‘a1 a2’.

Package

cxml-clex.

Source

clex.lisp.

Function: fsa-empty ()

Accepts the empty word.

Package

cxml-clex.

Source

clex.lisp.

Reader: fsa-end (instance)
Writer: (setf fsa-end) (instance)
Package

cxml-clex.

Source

clex.lisp.

Target Slot

end.

Function: fsa-epsilon-closure/set (x state-set)

Augment the epsilon closure of the state ‘state’ into ‘state-set’.

Package

cxml-clex.

Source

clex.lisp.

Function: fsa-iterate (a)

Iteration of ‘a’. Hence ‘a*’

Package

cxml-clex.

Source

clex.lisp.

Function: fsa-p (object)
Package

cxml-clex.

Source

clex.lisp.

Reader: fsa-start (instance)
Writer: (setf fsa-start) (instance)
Package

cxml-clex.

Source

clex.lisp.

Target Slot

start.

Function: fsa-trivial (char)

Accepts the trivial word consisting out of exactly one ‘char’.

Package

cxml-clex.

Source

clex.lisp.

Function: get-number (lexer &key radix max-length no-whitespace-p)

Read and consume the number the lexer is currently looking at and return it. Returns NIL if no number could be identified.
RADIX is used as in PARSE-INTEGER. If MAX-LENGTH is not NIL we’ll read at most the next MAX-LENGTH characters. If NO-WHITESPACE-P is not NIL we don’t tolerate whitespace in front of the number.

Package

cxml-types.

Source

nppcre.lisp.

Function: get-quantifier (lexer)

Returns a list of two values (min max) if what the lexer is looking at can be interpreted as a quantifier. Otherwise returns NIL and resets the lexer to its old position.

Package

cxml-types.

Source

nppcre.lisp.

Function: get-token (lexer)

Returns and consumes the next token from the regex string (or NIL).

Package

cxml-types.

Source

nppcre.lisp.

Function: getname (name table)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf getname) (name table)
Package

cxml-rng.

Source

parse.lisp.

Reader: grammar-definitions (instance)
Writer: (setf grammar-definitions) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

definitions.

Function: grammar-p (object)
Package

cxml-rng.

Source

parse.lisp.

Reader: grammar-parent (instance)
Writer: (setf grammar-parent) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

parent.

Reader: grammar-start (instance)
Writer: (setf grammar-start) (instance)
Package

cxml-rng.

Source

parse.lisp.

Target Slot

start.

Function: greedy-quant (lexer)

Parses and consumes a <greedy-quant>.
The productions are: <greedy-quant> -> <group> | <group><quantifier> where <quantifier> is parsed by the lexer function GET-QUANTIFIER. Will return <parse-tree> or (:GREEDY-REPETITION <min> <max> <parse-tree>).

Package

cxml-types.

Source

nppcre.lisp.

Function: group (lexer)

Parses and consumes a <group>.
The productions are: <group> -> "("<regex>")" <legal-token>
Will return <parse-tree> or (<grouping-type> <parse-tree>) where <grouping-type> is one of six keywords - see source for details.

Package

cxml-types.

Source

nppcre.lisp.

Function: group-a (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf group-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: group-b (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf group-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: group-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf group-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: group-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: groupable-max (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: groupify (children)
Package

cxml-rng.

Source

parse.lisp.

Function: interleave-a (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf interleave-a) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: interleave-b (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf interleave-b) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: interleave-ify (children)
Package

cxml-rng.

Source

parse.lisp.

Function: interleave-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf interleave-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: interleave-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: intern-zero-or-more (hsx c)
Package

cxml-rng.

Source

validate.lisp.

Function: invoke-with-element (prefix lname args body)
Package

cxml-rng.

Source

compact.lisp.

Function: invoke-with-klacks-handler (fn source)
Package

cxml-rng.

Source

parse.lisp.

Function: invoke-with-library-and-ns (fn attrs)
Package

cxml-rng.

Source

parse.lisp.

Reader: lexer-last-pos (instance)
Writer: (setf lexer-last-pos) (instance)
Package

cxml-types.

Source

nppcre.lisp.

Target Slot

last-pos.

Reader: lexer-len (instance)
Package

cxml-types.

Source

nppcre.lisp.

Target Slot

len.

Function: lexer-p (object)
Package

cxml-types.

Source

nppcre.lisp.

Reader: lexer-pos (instance)
Writer: (setf lexer-pos) (instance)
Package

cxml-types.

Source

nppcre.lisp.

Target Slot

pos.

Reader: lexer-str (instance)
Package

cxml-types.

Source

nppcre.lisp.

Target Slot

str.

Function: list' (hsx pattern words)
Package

cxml-rng.

Source

validate.lisp.

Function: list-pattern-child (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf list-pattern-child) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: list-pattern-nullable (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: (setf list-pattern-nullable) (instance)
Package

cxml-rng.

Source

parse.lisp.

Function: list-pattern-p (object)
Package

cxml-rng.

Source

parse.lisp.

Function: loadable-states-form (starts)
Package

cxml-clex.

Source

clex.lisp.

Function: looking-at-p (lexer chr)

Tests whether the next character the lexer would see is CHR. Does not respect extended mode.

Package

cxml-types.

Source

nppcre.lisp.

Function: lookup-data-type (name)
Package

cxml-rng.

Source

compact.lisp.

Function: lookup-default ()
Package

cxml-rng.

Source

compact.lisp.

Function: lookup-prefix (prefix)
Package

cxml-rng.

Source

compact.lisp.

Function: loose-eq (x y)
Package

cxml-clex.

Source

clex.lisp.

Function: make-%combination (&key nullable a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-%leaf (&key nullable)
Package

cxml-rng.

Source

parse.lisp.

Function: make-%named-pattern (&key nullable child name)
Package

cxml-rng.

Source

parse.lisp.

Function: make-%parent (&key nullable child)
Package

cxml-rng.

Source

parse.lisp.

Function: make-%typed-pattern (&key nullable type)
Package

cxml-rng.

Source

parse.lisp.

Function: make-after (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-any-name (except)
Package

cxml-rng.

Source

parse.lisp.

Function: make-attribute (default-value)
Package

cxml-rng.

Source

parse.lisp.

Function: make-char-from-code (number error-pos)

Create character from char-code NUMBER. NUMBER can be NIL which is interpreted as 0. ERROR-POS is the position where the corresponding number started within the regex string.

Package

cxml-types.

Source

nppcre.lisp.

Function: make-choice (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-compatibility-table (&key elements)
Package

cxml-rng.

Source

parse.lisp.

Function: make-data (&key nullable type params except)
Package

cxml-rng.

Source

parse.lisp.

Function: make-definition (&key name combine-method head-p redefinition child)
Package

cxml-rng.

Source

parse.lisp.

Function: make-dtd-attribute (name)
Package

cxml-rng.

Source

parse.lisp.

Function: make-dtd-element (name)
Package

cxml-rng.

Source

parse.lisp.

Function: make-dtd-member (&key name)
Package

cxml-rng.

Source

parse.lisp.

Function: make-element (&key nullable child name)
Package

cxml-rng.

Source

parse.lisp.

Function: make-empty (&key nullable)
Package

cxml-rng.

Source

parse.lisp.

Function: make-fsa (&key start end)
Package

cxml-clex.

Source

clex.lisp.

Function: make-grammar (parent)
Package

cxml-rng.

Source

parse.lisp.

Function: make-group (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-interleave (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-lexer (string)
Package

cxml-types.

Source

nppcre.lisp.

Function: make-lexer-internal (&key str len pos last-pos)
Package

cxml-types.

Source

nppcre.lisp.

Function: make-list-pattern (child)
Package

cxml-rng.

Source

parse.lisp.

Function: make-name (uri lname)
Package

cxml-rng.

Source

parse.lisp.

Function: make-name-class (&key)
Package

cxml-rng.

Source

parse.lisp.

Function: make-name-class-choice (a b)
Package

cxml-rng.

Source

parse.lisp.

Function: make-not-allowed (&key nullable)
Package

cxml-rng.

Source

parse.lisp.

Function: make-ns-name (uri except)
Package

cxml-rng.

Source

parse.lisp.

Function: make-one-or-more (child)
Package

cxml-rng.

Source

parse.lisp.

Function: make-pattern (&key nullable)