makeClassTemplate: Create S4 class definition based on XML node(s)
Description
This function is used to create an S4 class definition
by examining an XML node and mapping the sub-elements
to S4 classes. This works very simply with child nodes
being mapped to other S4 classes that are defined recursively in the
same manner. Simple text elements are mapped to a generic character string.
Types can be mapped to more specific types (e.g. boolean, Date, integer)
by the caller (via the types
) parameter.
The function also generates a coercion method from an
XMLAbstractNode
to an instance of this new class.
This function can either return the code that defines the class
or it can define the new class in the R session.
Usage
makeClassTemplate(xnode, types = character(), default = "ANY",
className = xmlName(xnode), where = globalenv())
Value
- A list with 4 elements:
- namethe name of the new class
- slotsa character vector giving the slot name and type name pairs
- defcode for defining the class
- coercecode for defining the coercion method from an
XMLAbstractNode to an instance of the new class
- If
where
is not NULL
, the class and coercion code
is actually evaluated and the class and method will be defined
in the R session as a side effect.
concept
- reflection
- meta-programming