## org.apache.catalina.util.xml
Class XmlMapper

    java.lang.Object
      |
      +--org.xml.sax.HandlerBase
            |
            +--org.apache.catalina.util.xml.XmlMapper

All Implemented Interfaces:
  org.xml.sax.DocumentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, SaxContext

public class XmlMapper
extends org.xml.sax.HandlerBase
implements SaxContext

SAX Handler - it will read the XML and construct java objects

Author:
  costin@dnt.ro

Constructor Summary
`XmlMapper()`

Method Summary
`XmlAction` `addChild(java.lang.String parentM, java.lang.String argType)` For the last 2 objects in stack, create a parent-child relation by invokeing parent.parentM with the child as parameter ArgType is the parameter expected by addParent ( null use the current object type)
`void` `addRule(java.lang.String path, XmlAction action)`
`void` `characters(char[] buf, int offset, int len)`
`void` `endDocument()`
`void` `endElement(java.lang.String tag)`
`void` `error(org.xml.sax.SAXParseException e)`
`org.xml.sax.AttributeList` `getAttributeList(int pos)` Access attributes of a particular tag
`java.lang.String` `getBody()` Body of the last tag
`int` `getDebug()`
`java.util.Stack` `getObjectStack()` We maintain a stack to keep java objects that are generated as result of parsing.
`java.lang.String` `getPublicId()`
`java.lang.Object` `getRoot()` The root object is either set by caller before starting the parse or can be created using the first tag.
`java.lang.String` `getTag(int pos)` Access a particular tag
`int` `getTagCount()` Depth of the tag stack.
`boolean` `getValidating()`
`void` `ignorableWhitespace(char[] buf, int offset, int len)`
`void` `log(java.lang.String msg)`
`XmlAction` `methodParam(int ord)` Extract the method param from the body of the tag
`XmlAction` `methodParam(int ord, java.lang.String attrib)` Extract the method param from a tag attribute
`XmlAction` `methodSetter(java.lang.String method, int paramC)` If a tag matches, invoke a method on the current object.
`XmlAction` `methodSetter(java.lang.String method, int paramC, java.lang.String[] paramTypes)` If a tag matches, invoke a method on the current object.
`void` `notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)`
`XmlAction` `objectCreate(java.lang.String classN)` Create an object using for a matching tag with the given class name
`XmlAction` `objectCreate(java.lang.String classN, java.lang.String attrib)` Create an object using an attribute value as the class name If no attribute use classN as a default.
`XmlAction` `popStack()` Pop the object stack
`void` `processingInstruction(java.lang.String name, java.lang.String instruction)`
`java.lang.Object` `readXml(java.io.File xmlFile, java.lang.Object root)` read an XML file, construct and return the object hierarchy
`java.lang.Object` `readXml(java.io.InputStream xmlFile, java.lang.Object root)` read an XML input stream, construct and return the object hierarchy
`void` `registerDTDFile(java.lang.String publicId, java.lang.String dtdFile)` Register the specified DTD with a local file.
`void` `registerDTDRes(java.lang.String publicId, java.lang.String dtdRes)` Register the specified DTD to map to a resource in the classpath This must be called prior to the first call to `readXml()`.
`org.xml.sax.InputSource` `resolveEntity(java.lang.String publicId, java.lang.String systemId)` Resolve the requested external entity, replacing it by an internal DTD if one has been registered.
`void` `setDebug(int level)`
`void` `setDocumentLocator(org.xml.sax.Locator locator)`
`XmlAction` `setParent(java.lang.String childM)` For the last 2 objects in stack, create a parent-child and child.childM with parente as parameter
`XmlAction` `setParent(java.lang.String childM, java.lang.String argType)` For the last 2 objects in stack, create a parent-child and child.childM with parent as parameter
`XmlAction` `setProperties()` Set object properties using XML attributes
`void` `setRoot(java.lang.Object o)`
`void` `setValidating(boolean validating)`
`void` `startDocument()`
`void` `startElement(java.lang.String tag, org.xml.sax.AttributeList attributes)`
`void` `unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)`

Methods inherited from class org.xml.sax.HandlerBase
`fatalError, warning`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### XmlMapper

    public XmlMapper()

Method Detail

### setDocumentLocator

    public void setDocumentLocator(org.xml.sax.Locator locator)

  Specified by:
    `setDocumentLocator` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `setDocumentLocator` in class `org.xml.sax.HandlerBase`

### startDocument

    public void startDocument()
                       throws org.xml.sax.SAXException

  Specified by:
    `startDocument` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `startDocument` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### endDocument

    public void endDocument()
                     throws org.xml.sax.SAXException

  Specified by:
    `endDocument` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `endDocument` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### error

    public void error(org.xml.sax.SAXParseException e)
               throws org.xml.sax.SAXException

  Specified by:
    `error` in interface `org.xml.sax.ErrorHandler`
  Overrides:
    `error` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### startElement

    public void startElement(java.lang.String tag,
                             org.xml.sax.AttributeList attributes)
                      throws org.xml.sax.SAXException

  Specified by:
    `startElement` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `startElement` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### endElement

    public void endElement(java.lang.String tag)
                    throws org.xml.sax.SAXException

  Specified by:
    `endElement` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `endElement` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### characters

    public void characters(char[] buf,
                           int offset,
                           int len)
                    throws org.xml.sax.SAXException

  Specified by:
    `characters` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `characters` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### ignorableWhitespace

    public void ignorableWhitespace(char[] buf,
                                    int offset,
                                    int len)
                             throws org.xml.sax.SAXException

  Specified by:
    `ignorableWhitespace` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `ignorableWhitespace` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### processingInstruction

    public void processingInstruction(java.lang.String name,
                                      java.lang.String instruction)
                               throws org.xml.sax.SAXException

  Specified by:
    `processingInstruction` in interface `org.xml.sax.DocumentHandler`
  Overrides:
    `processingInstruction` in class `org.xml.sax.HandlerBase`
    `org.xml.sax.SAXException`

### getAttributeList

    public org.xml.sax.AttributeList getAttributeList(int pos)

  Description copied from interface: `SaxContext`
  Access attributes of a particular tag

  Specified by:
    `getAttributeList` in interface `SaxContext`

### getTagCount

    public int getTagCount()

  Description copied from interface: `SaxContext`
  Depth of the tag stack.

  Specified by:
    `getTagCount` in interface `SaxContext`

### getTag

    public java.lang.String getTag(int pos)

  Description copied from interface: `SaxContext`
  Access a particular tag

  Specified by:
    `getTag` in interface `SaxContext`

### getBody

    public java.lang.String getBody()

  Description copied from interface: `SaxContext`
  Body of the last tag

  Specified by:
    `getBody` in interface `SaxContext`

### getObjectStack

    public java.util.Stack getObjectStack()

  Description copied from interface: `SaxContext`
  We maintain a stack to keep java objects that are generated as result of parsing. You can either use the stack ( which is very powerfull construct !), or use the root object and navigation in the result tree.

  Specified by:
    `getObjectStack` in interface `SaxContext`

### getPublicId

    public java.lang.String getPublicId()

  Specified by:
    `getPublicId` in interface `SaxContext`

### getRoot

    public java.lang.Object getRoot()

  Description copied from interface: `SaxContext`
  The root object is either set by caller before starting the parse or can be created using the first tag. It is used to set object in the result graph by navigation ( using root and a path). Please use the stack, it's much faster and better.

  Specified by:
    `getRoot` in interface `SaxContext`

### setRoot

    public void setRoot(java.lang.Object o)

### setDebug

    public void setDebug(int level)

### getDebug

    public int getDebug()

  Specified by:
    `getDebug` in interface `SaxContext`

### setValidating

    public void setValidating(boolean validating)

### getValidating

    public boolean getValidating()

### log

    public void log(java.lang.String msg)

  Specified by:
    `log` in interface `SaxContext`

### readXml

    public java.lang.Object readXml(java.io.File xmlFile,
                                    java.lang.Object root)
                             throws java.lang.Exception

  read an XML file, construct and return the object hierarchy

    `java.lang.Exception`

### readXml

    public java.lang.Object readXml(java.io.InputStream xmlFile,
                                    java.lang.Object root)
                             throws java.lang.Exception

  read an XML input stream, construct and return the object hierarchy

    `java.lang.Exception`

### registerDTDFile

    public void registerDTDFile(java.lang.String publicId,
                                java.lang.String dtdFile)

  Register the specified DTD with a local file. This must be called prior to the first call to `readXml()`.

  Parameters:
    `publicId` - Public identifier of the DTD to be resolved
    `dtdFile` - The local file name to use for reading this DTD

### registerDTDRes

    public void registerDTDRes(java.lang.String publicId,
                               java.lang.String dtdRes)

  Register the specified DTD to map to a resource in the classpath This must be called prior to the first call to `readXml()`.

  Parameters:
    `publicId` - Public identifier of the DTD to be resolved
    `dtdRes` - local resource name, to be used with getResource()

### addRule

    public void addRule(java.lang.String path,
                        XmlAction action)

### resolveEntity

    public org.xml.sax.InputSource resolveEntity(java.lang.String publicId,
                                                 java.lang.String systemId)
                                          throws org.xml.sax.SAXException

  Resolve the requested external entity, replacing it by an internal DTD if one has been registered.

  Specified by:
    `resolveEntity` in interface `org.xml.sax.EntityResolver`
  Overrides:
    `resolveEntity` in class `org.xml.sax.HandlerBase`
  Parameters:
    `publicId` - Public identifier of the entity being referenced
    `systemId` - System identifier of the entity being referenced
  Throws:
    `org.xml.sax.SAXException` - if a parsing error occurs

### notationDecl

    public void notationDecl(java.lang.String name,
                             java.lang.String publicId,
                             java.lang.String systemId)

  Specified by:
    `notationDecl` in interface `org.xml.sax.DTDHandler`
  Overrides:
    `notationDecl` in class `org.xml.sax.HandlerBase`

### unparsedEntityDecl

    public void unparsedEntityDecl(java.lang.String name,
                                   java.lang.String publicId,
                                   java.lang.String systemId,
                                   java.lang.String notationName)

  Specified by:
    `unparsedEntityDecl` in interface `org.xml.sax.DTDHandler`
  Overrides:
    `unparsedEntityDecl` in class `org.xml.sax.HandlerBase`

### objectCreate

    public XmlAction objectCreate(java.lang.String classN)

  Create an object using for a matching tag with the given class name

### objectCreate

    public XmlAction objectCreate(java.lang.String classN,
                                  java.lang.String attrib)

  Create an object using an attribute value as the class name If no attribute use classN as a default.

### setProperties

    public XmlAction setProperties()

  Set object properties using XML attributes

### setParent

    public XmlAction setParent(java.lang.String childM)

  For the last 2 objects in stack, create a parent-child and child.childM with parente as parameter

### setParent

    public XmlAction setParent(java.lang.String childM,
                               java.lang.String argType)

  For the last 2 objects in stack, create a parent-child and child.childM with parent as parameter

### addChild

    public XmlAction addChild(java.lang.String parentM,
                              java.lang.String argType)

  For the last 2 objects in stack, create a parent-child relation by invokeing parent.parentM with the child as parameter ArgType is the parameter expected by addParent ( null use the current object type)

### methodSetter

    public XmlAction methodSetter(java.lang.String method,
                                  int paramC)

  If a tag matches, invoke a method on the current object. Parameters can be extracted from sub-elements of the current tag.

### methodSetter

    public XmlAction methodSetter(java.lang.String method,
                                  int paramC,
                                  java.lang.String[] paramTypes)

  If a tag matches, invoke a method on the current object. Parameters can be extracted from sub-elements of the current tag.

### methodParam

    public XmlAction methodParam(int ord)

  Extract the method param from the body of the tag

### methodParam

    public XmlAction methodParam(int ord,
                                 java.lang.String attrib)

  Extract the method param from a tag attribute

### popStack

    public XmlAction popStack()

  Pop the object stack

Copyright © 2000-2001 Apache Software Foundation. All Rights Reserved.