The sexml Reference Manual

This is the sexml Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed May 15 06:52:11 2024 GMT+0.

Table of Contents


1 Systems

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


1.1 sexml

s-expressions for xml is a library which provides a sugar-sweet s-expression syntax for spitting out xml documents based on a DTD

Maintainer

Aad Versteden <>

Author

Aad Versteden <>

License

MIT

Version

0.0.1

Dependencies
  • cl-ppcre (system).
  • alexandria (system).
  • cxml (system).
  • contextl (system).
  • macroexpand-dammit (system).
Source

sexml.asd.

Child Components

2 Files

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


2.1 Lisp


2.1.1 sexml/sexml.asd

Source

sexml.asd.

Parent Component

sexml (system).

ASDF Systems

sexml.


2.1.2 sexml/packages.lisp

Source

sexml.asd.

Parent Component

sexml (system).

Packages

sexml.


2.1.3 sexml/sexml.lisp

Dependency

packages.lisp (file).

Source

sexml.asd.

Parent Component

sexml (system).

Public Interface
Internals

3 Packages

Packages are listed by definition order.


3.1 sexml

Source

packages.lisp.

Use List
  • alexandria.
  • cl-ppcre.
  • contextl-common-lisp.
  • macroexpand-dammit.
Public Interface
Internals

4 Definitions

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


4.1 Public Interface


4.1.1 Macros

Macro: support-dtd (file packagename)

adds support for the dtd specified in <file> in package <packagename>, the package needn’t exist before.

Package

sexml.

Source

sexml.lisp.

Macro: with-compiletime-active-layers ((&rest layers) &body body)
Package

sexml.

Source

sexml.lisp.


4.1.2 Standalone methods

Method: attribute-declaration ((handler dtd-sax-handler) element-name attribute-name type default)
Package

sax.

Source

sexml.lisp.

Method: element-declaration ((handler dtd-sax-handler) name model)
Package

sax.

Source

sexml.lisp.

Method: initialize-instance :after ((dtd dtd) &key path &allow-other-keys)
Source

sexml.lisp.

Method: print-object ((elt element) stream)
Source

sexml.lisp.

Method: print-object ((attr attribute) stream)
Source

sexml.lisp.


4.2 Internals


4.2.1 Ordinary functions

Function: dtd-support-forms (dtd package)

returns a list of forms which need to be compiled to support the dtd

Package

sexml.

Source

sexml.lisp.

Function: entity-definition-forms (entity package)

entity-definition-forms is called with an entity and package object (both defined in sexml). it should return all forms needed to generate the functions.

Package

sexml.

Source

sexml.lisp.

Function: entity-printer-forms (entity attr-var body)

produces the forms which will handle the printing of the tags. <entity> contains the entity which needs to be printed. <attr-var> contains a symbol which will contain a plist of attribute-value pairs, the keyword must constist of a string at runtime, the value is not specified. <body> contains a symbol which will contain a list of content which must be printed within the tag.

Package

sexml.

Source

sexml.lisp.

Function: format-tag-attr-content (stream arg colonp atp &rest options)
Package

sexml.

Source

sexml.lisp.

Function: format-tag-body-content (stream arg colonp atp &rest options)
Package

sexml.

Source

sexml.lisp.

Function: mk-dtd-object (file)
Package

sexml.

Source

sexml.lisp.

Function: mk-lisp-symbol (entity package)
Package

sexml.

Source

sexml.lisp.

Function: mk-package-object (name)

creates a new package object

Package

sexml.

Source

sexml.lisp.

Function: package-declaration (package)

creates a definition for the package

Package

sexml.

Source

sexml.lisp.

Function: package-exports-symbol (package symbol)

makes sure package knows it needs to export symbol, and exports it

Package

sexml.

Source

sexml.lisp.

Function: recursively-flatten (&rest args)

recursively flattens a list

Package

sexml.

Source

sexml.lisp.

Function: sequence-starts-with-p (total-sequence start-sequence)

returns non-nil iff <total-sequence> starts with <start-sequence>

Package

sexml.

Source

sexml.lisp.

Function: tag-attribute-content (content)

prints <content> in a way that it’s a valid value for an attribute

Package

sexml.

Source

sexml.lisp.

Function: tag-body-content (content)

prints <content> in a way appropriate for xml output. output functions should use this in order to create correct output.

Package

sexml.

Source

sexml.lisp.


4.2.2 Generic functions

Generic Function: =layered-function-definer-for-dtd-support-forms= (layer-arg0 dtd package)
Package

sexml.

Source

sexml.lisp.

Methods
Method: =layered-function-definer-for-dtd-support-forms= :around ((layer-arg-0 =layer-class-definer-for-xml-doctype=) dtd package)
Method: =layered-function-definer-for-dtd-support-forms= :around ((layer-arg-0 =layer-class-definer-for-ie-conditionals=) dtd package)
Method: =layered-function-definer-for-dtd-support-forms= :around ((layer-arg-0 =layer-class-definer-for-xml-comments=) dtd package)
Method: =layered-function-definer-for-dtd-support-forms= (layer-arg-2 dtd package)
Generic Function: =layered-function-definer-for-entity-definition-forms= (layer-arg0 entity package)
Package

sexml.

Source

sexml.lisp.

Methods
Method: =layered-function-definer-for-entity-definition-forms= :around ((layer-arg-0 =layer-class-definer-for-export-function-symbol=) entity package)
Method: =layered-function-definer-for-entity-definition-forms= :around ((layer-arg-0 =layer-class-definer-for-sexml-functions=) entity package)
Method: =layered-function-definer-for-entity-definition-forms= (layer-arg-2 entity package)
Generic Function: =layered-function-definer-for-entity-printer-forms= (layer-arg0 entity attr-var body)
Package

sexml.

Source

sexml.lisp.

Methods
Method: =layered-function-definer-for-entity-printer-forms= ((layer-arg-0 =layer-class-definer-for-sexml-xml-producer=) entity attr-var body)
Generic Function: =layered-function-definer-for-tag-attribute-content= (layer-arg0 content)
Package

sexml.

Source

sexml.lisp.

Methods
Method: =layered-function-definer-for-tag-attribute-content= (layer-arg-2 content)
Generic Function: =layered-function-definer-for-tag-body-content= (layer-arg0 content)
Package

sexml.

Source

sexml.lisp.

Methods
Method: =layered-function-definer-for-tag-body-content= (layer-arg-2 content)
Generic Function: add-attribute (element attribute)

registers the existence of <attribute> for <element>.

Package

sexml.

Source

sexml.lisp.

Methods
Method: add-attribute ((element element) (attribute attribute))
Generic Function: add-element (dtd element)

adds <element> to the dtd>

Package

sexml.

Source

sexml.lisp.

Methods
Method: add-element ((dtd dtd) (element element))
Generic Function: argument-symbol (attribute package)

returns a symbol for the argument which can be given to the attribute, imported in package

Package

sexml.

Source

sexml.lisp.

Methods
Method: argument-symbol ((attribute attribute) package)
Generic Reader: attributes (object)
Package

sexml.

Methods
Reader Method: attributes ((element element))

automatically generated reader method

Source

sexml.lisp.

Target Slot

attributes.

Generic Writer: (setf attributes) (object)
Package

sexml.

Methods
Writer Method: (setf attributes) ((element element))

automatically generated writer method

Source

sexml.lisp.

Target Slot

attributes.

Generic Reader: dtd (object)
Package

sexml.

Methods
Reader Method: dtd ((dtd-sax-handler dtd-sax-handler))

automatically generated reader method

Source

sexml.lisp.

Target Slot

dtd.

Generic Function: dtd-elements (dtd)

returns the elements of the document

Package

sexml.

Source

sexml.lisp.

Methods
Method: dtd-elements (dtd)
Generic Reader: dtd-elements-hash (object)
Package

sexml.

Methods
Reader Method: dtd-elements-hash ((dtd dtd))

automatically generated reader method

Source

sexml.lisp.

Target Slot

elements-hash.

Generic Writer: (setf dtd-elements-hash) (object)
Package

sexml.

Methods
Writer Method: (setf dtd-elements-hash) ((dtd dtd))

automatically generated writer method

Source

sexml.lisp.

Target Slot

elements-hash.

Generic Reader: dtd-path (object)
Package

sexml.

Methods
Reader Method: dtd-path ((dtd dtd))

automatically generated reader method

Source

sexml.lisp.

Target Slot

path.

Generic Function: find-element (dtd name-string)

searches for the element representing <name-string> in the dtd

Package

sexml.

Source

sexml.lisp.

Methods
Method: find-element ((dtd dtd) name-string)
Generic Function: function-symbol (element package)

returns a symbol for the function of element in package

Package

sexml.

Source

sexml.lisp.

Methods
Method: function-symbol ((element element) package)
Generic Reader: name (object)
Package

sexml.

Methods
Reader Method: name ((attribute attribute))

automatically generated reader method

Source

sexml.lisp.

Target Slot

name.

Reader Method: name ((element element))

automatically generated reader method

Source

sexml.lisp.

Target Slot

name.

Generic Reader: subelements-p (object)
Package

sexml.

Methods
Reader Method: subelements-p ((element element))

automatically generated reader method

Source

sexml.lisp.

Target Slot

subelements-p.

Generic Writer: (setf subelements-p) (object)
Package

sexml.

Methods
Writer Method: (setf subelements-p) ((element element))

automatically generated writer method

Source

sexml.lisp.

Target Slot

subelements-p.


4.2.3 Conditions

Condition: unknown-key
Package

sexml.

Source

sexml.lisp.

Direct superclasses

warning.

Direct slots
Slot: key
Initargs

:key


4.2.4 Classes

Class: =layer-class-definer-for-export-function-symbol=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct subclasses

=layer-class-definer-for-standard-sexml=.

Direct methods

=layered-function-definer-for-entity-definition-forms=.

Class: =layer-class-definer-for-ie-conditionals=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct methods

=layered-function-definer-for-dtd-support-forms=.

Class: =layer-class-definer-for-sexml-functions=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct subclasses

=layer-class-definer-for-standard-sexml=.

Direct methods

=layered-function-definer-for-entity-definition-forms=.

Class: =layer-class-definer-for-sexml-xml-producer=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct subclasses

=layer-class-definer-for-standard-sexml=.

Direct methods

=layered-function-definer-for-entity-printer-forms=.

Class: =layer-class-definer-for-standard-sexml=
Package

sexml.

Source

sexml.lisp.

Direct superclasses
Class: =layer-class-definer-for-xml-comments=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct subclasses

=layer-class-definer-for-standard-sexml=.

Direct methods

=layered-function-definer-for-dtd-support-forms=.

Class: =layer-class-definer-for-xml-doctype=
Package

sexml.

Source

sexml.lisp.

Direct superclasses

standard-layer-object.

Direct methods

=layered-function-definer-for-dtd-support-forms=.

Class: attribute

represents a possible attribute for an element

Package

sexml.

Source

sexml.lisp.

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Class: dtd

Datastructure which contains all information of a DTD.

Package

sexml.

Source

sexml.lisp.

Direct methods
Direct slots
Slot: path
Initargs

:path

Readers

dtd-path.

Writers

This slot is read-only.

Slot: elements-hash
Initform

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

Readers

dtd-elements-hash.

Writers

(setf dtd-elements-hash).

Class: dtd-sax-handler

sax handler which calls the correct methods on its DTD

Package

sexml.

Source

sexml.lisp.

Direct superclasses

default-handler.

Direct methods
Direct slots
Slot: dtd
Initargs

:dtd

Readers

dtd.

Writers

This slot is read-only.

Class: element
Package

sexml.

Source

sexml.lisp.

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: attributes
Readers

attributes.

Writers

(setf attributes).

Slot: subelements-p
Initargs

:subelements-p

Readers

subelements-p.

Writers

(setf subelements-p).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (   =  
A   D   E   F   G   I   M   N   P   R   S   T   W  
Index Entry  Section

(
(setf attributes): Private generic functions
(setf attributes): Private generic functions
(setf dtd-elements-hash): Private generic functions
(setf dtd-elements-hash): Private generic functions
(setf subelements-p): Private generic functions
(setf subelements-p): Private generic functions

=
=layered-function-definer-for-dtd-support-forms=: Private generic functions
=layered-function-definer-for-dtd-support-forms=: Private generic functions
=layered-function-definer-for-dtd-support-forms=: Private generic functions
=layered-function-definer-for-dtd-support-forms=: Private generic functions
=layered-function-definer-for-dtd-support-forms=: Private generic functions
=layered-function-definer-for-entity-definition-forms=: Private generic functions
=layered-function-definer-for-entity-definition-forms=: Private generic functions
=layered-function-definer-for-entity-definition-forms=: Private generic functions
=layered-function-definer-for-entity-definition-forms=: Private generic functions
=layered-function-definer-for-entity-printer-forms=: Private generic functions
=layered-function-definer-for-entity-printer-forms=: Private generic functions
=layered-function-definer-for-tag-attribute-content=: Private generic functions
=layered-function-definer-for-tag-attribute-content=: Private generic functions
=layered-function-definer-for-tag-body-content=: Private generic functions
=layered-function-definer-for-tag-body-content=: Private generic functions

A
add-attribute: Private generic functions
add-attribute: Private generic functions
add-element: Private generic functions
add-element: Private generic functions
argument-symbol: Private generic functions
argument-symbol: Private generic functions
attribute-declaration: Public standalone methods
attributes: Private generic functions
attributes: Private generic functions

D
dtd: Private generic functions
dtd: Private generic functions
dtd-elements: Private generic functions
dtd-elements: Private generic functions
dtd-elements-hash: Private generic functions
dtd-elements-hash: Private generic functions
dtd-path: Private generic functions
dtd-path: Private generic functions
dtd-support-forms: Private ordinary functions

E
element-declaration: Public standalone methods
entity-definition-forms: Private ordinary functions
entity-printer-forms: Private ordinary functions

F
find-element: Private generic functions
find-element: Private generic functions
format-tag-attr-content: Private ordinary functions
format-tag-body-content: Private ordinary functions
Function, dtd-support-forms: Private ordinary functions
Function, entity-definition-forms: Private ordinary functions
Function, entity-printer-forms: Private ordinary functions
Function, format-tag-attr-content: Private ordinary functions
Function, format-tag-body-content: Private ordinary functions
Function, mk-dtd-object: Private ordinary functions
Function, mk-lisp-symbol: Private ordinary functions
Function, mk-package-object: Private ordinary functions
Function, package-declaration: Private ordinary functions
Function, package-exports-symbol: Private ordinary functions
Function, recursively-flatten: Private ordinary functions
Function, sequence-starts-with-p: Private ordinary functions
Function, tag-attribute-content: Private ordinary functions
Function, tag-body-content: Private ordinary functions
function-symbol: Private generic functions
function-symbol: Private generic functions

G
Generic Function, (setf attributes): Private generic functions
Generic Function, (setf dtd-elements-hash): Private generic functions
Generic Function, (setf subelements-p): Private generic functions
Generic Function, =layered-function-definer-for-dtd-support-forms=: Private generic functions
Generic Function, =layered-function-definer-for-entity-definition-forms=: Private generic functions
Generic Function, =layered-function-definer-for-entity-printer-forms=: Private generic functions
Generic Function, =layered-function-definer-for-tag-attribute-content=: Private generic functions
Generic Function, =layered-function-definer-for-tag-body-content=: Private generic functions
Generic Function, add-attribute: Private generic functions
Generic Function, add-element: Private generic functions
Generic Function, argument-symbol: Private generic functions
Generic Function, attributes: Private generic functions
Generic Function, dtd: Private generic functions
Generic Function, dtd-elements: Private generic functions
Generic Function, dtd-elements-hash: Private generic functions
Generic Function, dtd-path: Private generic functions
Generic Function, find-element: Private generic functions
Generic Function, function-symbol: Private generic functions
Generic Function, name: Private generic functions
Generic Function, subelements-p: Private generic functions

I
initialize-instance: Public standalone methods

M
Macro, support-dtd: Public macros
Macro, with-compiletime-active-layers: Public macros
Method, (setf attributes): Private generic functions
Method, (setf dtd-elements-hash): Private generic functions
Method, (setf subelements-p): Private generic functions
Method, =layered-function-definer-for-dtd-support-forms=: Private generic functions
Method, =layered-function-definer-for-dtd-support-forms=: Private generic functions
Method, =layered-function-definer-for-dtd-support-forms=: Private generic functions
Method, =layered-function-definer-for-dtd-support-forms=: Private generic functions
Method, =layered-function-definer-for-entity-definition-forms=: Private generic functions
Method, =layered-function-definer-for-entity-definition-forms=: Private generic functions
Method, =layered-function-definer-for-entity-definition-forms=: Private generic functions
Method, =layered-function-definer-for-entity-printer-forms=: Private generic functions
Method, =layered-function-definer-for-tag-attribute-content=: Private generic functions
Method, =layered-function-definer-for-tag-body-content=: Private generic functions
Method, add-attribute: Private generic functions
Method, add-element: Private generic functions
Method, argument-symbol: Private generic functions
Method, attribute-declaration: Public standalone methods
Method, attributes: Private generic functions
Method, dtd: Private generic functions
Method, dtd-elements: Private generic functions
Method, dtd-elements-hash: Private generic functions
Method, dtd-path: Private generic functions
Method, element-declaration: Public standalone methods
Method, find-element: Private generic functions
Method, function-symbol: Private generic functions
Method, initialize-instance: Public standalone methods
Method, name: Private generic functions
Method, name: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, subelements-p: Private generic functions
mk-dtd-object: Private ordinary functions
mk-lisp-symbol: Private ordinary functions
mk-package-object: Private ordinary functions

N
name: Private generic functions
name: Private generic functions
name: Private generic functions

P
package-declaration: Private ordinary functions
package-exports-symbol: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods

R
recursively-flatten: Private ordinary functions

S
sequence-starts-with-p: Private ordinary functions
subelements-p: Private generic functions
subelements-p: Private generic functions
support-dtd: Public macros

T
tag-attribute-content: Private ordinary functions
tag-body-content: Private ordinary functions

W
with-compiletime-active-layers: Public macros


A.4 Data types

Jump to:   =  
A   C   D   E   F   P   S   U  
Index Entry  Section

=
=layer-class-definer-for-export-function-symbol=: Private classes
=layer-class-definer-for-ie-conditionals=: Private classes
=layer-class-definer-for-sexml-functions=: Private classes
=layer-class-definer-for-sexml-xml-producer=: Private classes
=layer-class-definer-for-standard-sexml=: Private classes
=layer-class-definer-for-xml-comments=: Private classes
=layer-class-definer-for-xml-doctype=: Private classes

A
attribute: Private classes

C
Class, =layer-class-definer-for-export-function-symbol=: Private classes
Class, =layer-class-definer-for-ie-conditionals=: Private classes
Class, =layer-class-definer-for-sexml-functions=: Private classes
Class, =layer-class-definer-for-sexml-xml-producer=: Private classes
Class, =layer-class-definer-for-standard-sexml=: Private classes
Class, =layer-class-definer-for-xml-comments=: Private classes
Class, =layer-class-definer-for-xml-doctype=: Private classes
Class, attribute: Private classes
Class, dtd: Private classes
Class, dtd-sax-handler: Private classes
Class, element: Private classes
Condition, unknown-key: Private conditions

D
dtd: Private classes
dtd-sax-handler: Private classes

E
element: Private classes

F
File, packages.lisp: The sexml/packages․lisp file
File, sexml.asd: The sexml/sexml․asd file
File, sexml.lisp: The sexml/sexml․lisp file

P
Package, sexml: The sexml package
packages.lisp: The sexml/packages․lisp file

S
sexml: The sexml system
sexml: The sexml package
sexml.asd: The sexml/sexml․asd file
sexml.lisp: The sexml/sexml․lisp file
System, sexml: The sexml system

U
unknown-key: Private conditions