Package com.googlecode.htmlcompressor.compressor

# Class XmlCompressor

java.lang.Object
com.googlecode.htmlcompressor.compressor.XmlCompressor

All Implemented Interfaces:
  `Compressor`

public class XmlCompressor extends Object implements Compressor
Class that compresses given XML source by removing comments, extra spaces and line breaks while preserving content within CDATA blocks.

Author:
  Sergiy Kovalchuk

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final Pattern`
  `cdataPattern`
  The Constant cdataPattern.
  `protected static final Pattern`
  `commentPattern`
  The Constant commentPattern.
  `protected static final Pattern`
  `intertagPattern`
  The Constant intertagPattern.
  `protected static final Pattern`
  `multispacePattern`
  The Constant multispacePattern.
  `protected static final Pattern`
  `tagEndSpacePattern`
  The Constant tagEndSpacePattern.
  `protected static final Pattern`
  `tagPropertyPattern`
  The Constant tagPropertyPattern.
  `protected static final String`
  `TEMP_CD_DATA_BLOCK`
  The Constant tempCdataBlock.
  `protected static final Pattern`
  `tempCdataPattern`
  The Constant tempCdataPattern.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XmlCompressor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `compress(String xml)`
  The main method that compresses given XML source and returns compressed result.
  `boolean`
  `isEnabled()`
  Returns `true` if compression is enabled.
  `boolean`
  `isRemoveComments()`
  Returns `true` if all XML comments will be removed.
  `boolean`
  `isRemoveIntertagSpaces()`
  Returns `true` if all inter-tag whitespace characters will be removed.
  `protected String`
  `preserveBlocks(String xml, List<String> cdataBlocks)`
  Preserve blocks.
  `protected String`
  `processXml(String xml)`
  Process xml.
  `protected String`
  `removeComments(String xml)`
  Removes the comments.
  `protected String`
  `removeIntertagSpaces(String xml)`
  Removes the intertag spaces.
  `protected String`
  `removeSpacesInsideTags(String xml)`
  Removes the spaces inside tags.
  `protected String`
  `returnBlocks(String xml, List<String> cdataBlocks)`
  Return blocks.
  `void`
  `setEnabled(boolean enabled)`
  If set to `false` all compression will be bypassed.
  `void`
  `setRemoveComments(boolean removeComments)`
  If set to `true` all XML comments will be removed.
  `void`
  `setRemoveIntertagSpaces(boolean removeIntertagSpaces)`
  If set to `true` all inter-tag whitespace characters will be removed.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### TEMP_CD_DATA_BLOCK

    protected static final String TEMP_CD_DATA_BLOCK
    The Constant tempCdataBlock.
    See Also:
      - Constant Field Values

  - ### cdataPattern

    protected static final Pattern cdataPattern
    The Constant cdataPattern.

  - ### commentPattern

    protected static final Pattern commentPattern
    The Constant commentPattern.

  - ### intertagPattern

    protected static final Pattern intertagPattern
    The Constant intertagPattern.

  - ### tagEndSpacePattern

    protected static final Pattern tagEndSpacePattern
    The Constant tagEndSpacePattern.

  - ### multispacePattern

    protected static final Pattern multispacePattern
    The Constant multispacePattern.

  - ### tagPropertyPattern

    protected static final Pattern tagPropertyPattern
    The Constant tagPropertyPattern.

  - ### tempCdataPattern

    protected static final Pattern tempCdataPattern
    The Constant tempCdataPattern.

- ## Constructor Details

  - ### XmlCompressor

    public XmlCompressor()

- ## Method Details

  - ### compress

    public String compress(String xml)
    The main method that compresses given XML source and returns compressed result.
    Specified by:
      `compress` in interface `Compressor`
    Parameters:
      `xml` - XML content to compress
    Returns:
      compressed content.

  - ### preserveBlocks

    protected String preserveBlocks(String xml, List<String> cdataBlocks)
    Preserve blocks.
    Parameters:
      `xml` - the xml
      `cdataBlocks` - the cdata blocks
    Returns:
      the string

  - ### returnBlocks

    protected String returnBlocks(String xml, List<String> cdataBlocks)
    Return blocks.
    Parameters:
      `xml` - the xml
      `cdataBlocks` - the cdata blocks
    Returns:
      the string

  - ### processXml

    protected String processXml(String xml)
    Process xml.
    Parameters:
      `xml` - the xml
    Returns:
      the string

  - ### removeSpacesInsideTags

    protected String removeSpacesInsideTags(String xml)
    Removes the spaces inside tags.
    Parameters:
      `xml` - the xml
    Returns:
      the string

  - ### removeIntertagSpaces

    protected String removeIntertagSpaces(String xml)
    Removes the intertag spaces.
    Parameters:
      `xml` - the xml
    Returns:
      the string

  - ### removeComments

    protected String removeComments(String xml)
    Removes the comments.
    Parameters:
      `xml` - the xml
    Returns:
      the string

  - ### isEnabled

    public boolean isEnabled()
    Returns `true` if compression is enabled.
    Returns:
      `true` if compression is enabled.

  - ### setEnabled

    public void setEnabled(boolean enabled)
    If set to `false` all compression will be bypassed. Might be useful for testing purposes. Default is `true`.
    Parameters:
      `enabled` - set `false` to bypass all compression

  - ### isRemoveComments

    public boolean isRemoveComments()
    Returns `true` if all XML comments will be removed.
    Returns:
      `true` if all XML comments will be removed

  - ### setRemoveComments

    public void setRemoveComments(boolean removeComments)
    If set to `true` all XML comments will be removed. Default is `true`.
    Parameters:
      `removeComments` - set `true` to remove all XML comments

  - ### isRemoveIntertagSpaces

    public boolean isRemoveIntertagSpaces()
    Returns `true` if all inter-tag whitespace characters will be removed.
    Returns:
      `true` if all inter-tag whitespace characters will be removed.

  - ### setRemoveIntertagSpaces

    public void setRemoveIntertagSpaces(boolean removeIntertagSpaces)
    If set to `true` all inter-tag whitespace characters will be removed. Default is `true`.
    Parameters:
      `removeIntertagSpaces` - set `true` to remove all inter-tag whitespace characters