Class SaxParser

java.lang.Object
com.tangosol.util.Base
com.tangosol.run.xml.SaxParser

public class SaxParser extends Base
A simple XML parser. The public interface consists of nearly identical methods: parseXml(...) which produce a tree of SimpleElement objects
Author:
gg 2000.10.23
  • Constructor Details

    • SaxParser

      public SaxParser()
      Construct a SaxParser.
    • SaxParser

      public SaxParser(boolean fAllowComments)
      Construct a SaxParser.
      Parameters:
      fAllowComments - if true, the resulting tree may contain the XMLValue nodes that contain comments; otherwize all comments are ignored
  • Method Details

    • main

      public static void main(String[] asParam)
      Unit test: create a simple parser, parse and output the result.
      Parameters:
      asParam - an array of parameters
    • parseXml

      public XmlElement parseXml(String sXml) throws SAXException
      Parse the specified String into a tree of XmlElement objects ignoring any XML nodes other than elements, text or comments (in a case of SaxParser that allows comments). In addition, the text value is trimmed for all nodes except leafs.
      Parameters:
      sXml - the XML as string
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • parseXml

      public XmlElement parseXml(String sXml, XmlElement elRoot) throws SAXException
      Parse the specified String into a tree of XmlElement objects (same as above) having the specified [empty] XmlElement a root. Note: this method is used by de-serialization (see SimpleElement#readExternal)
      Parameters:
      sXml - the XML as string
      elRoot - the XML root
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • parseXml

      public XmlElement parseXml(InputStream input) throws SAXException
      Parse the specified InputStream into a tree of XmlElement objects ignoring any XML nodes other than elements, text or comments (in a case of SaxParser that allows comments). In addition, the text value is trimmed for all nodes except leafs.
      Parameters:
      input - the InputStream
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • parseXml

      public XmlElement parseXml(Reader input) throws SAXException
      Parse the specified Reader into a tree of XmlElement objects ignoring any XML nodes other than elements, text or comments (in a case of SaxParser that allows comments). In addition, the text value is trimmed for all nodes except leafs.
      Parameters:
      input - the input Reader
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • parseXml

      public XmlElement parseXml(InputSource input) throws SAXException
      Parse the specified InputSource into a tree of XmlElement objects ignoring any XML nodes other than elements, text or comments (in a case of SaxParser that allows comments). In addition, the text value is trimmed for all nodes except leafs.
      Parameters:
      input - the InputSource
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • parseXml

      protected XmlElement parseXml(InputSource input, XmlElement xmlRoot) throws SAXException
      Actual implementation...
      Parameters:
      input - the InputSource
      xmlRoot - the XML root
      Returns:
      the generated XmlElement
      Throws:
      SAXException - if SAX error occurs
    • validateXsd

      public void validateXsd(String sXml, XmlDocument xml) throws SAXException, IOException, ParserConfigurationException
      XSD aware parsing routine; if XML contains an XSD reference to a schemeLocation/noNamespaceSchemaLocation then parse XML using provided XSD for validation.
      Parameters:
      sXml - the XML to parse (as a string)
      xml - the XML document object used to obtain schema locations
      Throws:
      SAXException - if XML contains an XSD reference and does not pass validation
      IOException - if XML contains a schema that cannot be loaded
      ParserConfigurationException - if a parser cannot be created
    • resolveSchemaSources

      protected Source[] resolveSchemaSources(List<String> listUri) throws IOException
      For a given set of XSD URIs, return the Sources to be used by the XML parser to validate an XML document.
      Parameters:
      listUri - list of XSD URIs to convert
      Returns:
      an array of Sources to be used by the XML parser
      Throws:
      IOException - if the resource cannot be located or loaded
    • instantiateRoot

      protected XmlElement instantiateRoot(String sRoot)
      Instantiate an XmlElement implementation for a root element.
      Parameters:
      sRoot - root name
      Returns:
      a new XmlElement to be used as the root element
    • getParser

      protected static Parser getParser() throws Exception
      Get an instance of non-validating SAX parser.
      Returns:
      a SAX parser
      Throws:
      Exception - if an error occurs