Class DomTripConfig

java.lang.Object
eu.maveniverse.domtrip.DomTripConfig

public class DomTripConfig extends Object
Configuration options for controlling DomTrip XML processing behavior.

DomTripConfig provides comprehensive control over how XML documents are parsed, processed, and serialized. It supports various formatting styles from strict preservation to pretty printing, allowing users to choose the appropriate balance between formatting preservation and readability.

Configuration Categories:

  • Preservation Settings - Control what formatting elements to preserve
  • Output Formatting - Configure pretty printing and indentation
  • Parsing Behavior - Control validation and error handling
  • Default Values - Set defaults for encoding, quotes, etc.

Common Usage Patterns:

// Default preservation
DomTripConfig defaults = DomTripConfig.defaults();

// Pretty printing for readable output
DomTripConfig pretty = DomTripConfig.prettyPrint()
    .withIndentString("  ")
    .withDefaultQuoteStyle(QuoteStyle.DOUBLE);

// Minimal output for size optimization
DomTripConfig minimal = DomTripConfig.minimal()
    .withCommentPreservation(false);

// Custom configuration
DomTripConfig custom = DomTripConfig.defaults()
    .withDefaultQuoteStyle(QuoteStyle.SINGLE)
    .withEmptyElementStyle(EmptyElementStyle.SELF_CLOSING_SPACED);

Builder Pattern:

DomTripConfig uses a fluent builder pattern for easy configuration:

DomTripConfig config = DomTripConfig.defaults()
    .withCommentPreservation(true)
    .withPrettyPrint(false)
    .withIndentString("    ")
    .withDefaultQuoteStyle(QuoteStyle.SINGLE)
    .withEmptyElementStyle(EmptyElementStyle.EXPANDED);
See Also:
  • Method Details

    • defaults

      public static DomTripConfig defaults()
      Creates a default configuration with all preservation features enabled.
    • prettyPrint

      public static DomTripConfig prettyPrint()
      Creates a configuration optimized for pretty printing.
    • minimal

      public static DomTripConfig minimal()
      Creates a minimal configuration for compact output.
    • raw

      public static DomTripConfig raw()
      Creates a raw configuration for completely unformatted output.

      Raw mode produces XML with no line breaks or indentation whatsoever, resulting in a single continuous line of XML. This is useful for minimizing file size or when formatting is not desired.

    • withCommentPreservation

      public DomTripConfig withCommentPreservation(boolean preserve)
    • withProcessingInstructionPreservation

      public DomTripConfig withProcessingInstructionPreservation(boolean preserve)
    • withDefaultQuoteStyle

      public DomTripConfig withDefaultQuoteStyle(QuoteStyle quoteStyle)
    • withPrettyPrint

      public DomTripConfig withPrettyPrint(boolean prettyPrint)
    • withIndentString

      public DomTripConfig withIndentString(String indentString)
    • withLineEnding

      public DomTripConfig withLineEnding(String lineEnding)
    • withXmlDeclaration

      public DomTripConfig withXmlDeclaration(boolean include)
    • withEmptyElementStyle

      public DomTripConfig withEmptyElementStyle(EmptyElementStyle emptyElementStyle)
    • withIgnoreInvalidEncoding

      public DomTripConfig withIgnoreInvalidEncoding(boolean ignoreInvalidEncoding)
    • withAutoDetectedEmptyElementStyle

      public DomTripConfig withAutoDetectedEmptyElementStyle(Document document)
      Automatically detects and configures the empty element style based on existing empty elements in the provided document.

      This method analyzes all empty elements in the document to determine the predominant style and configures this DomTripConfig to use that style. If no empty elements are found, the current style is preserved.

      Parameters:
      document - the document to analyze for empty element styles
      Returns:
      this DomTripConfig for method chaining
    • isPreserveComments

      public boolean isPreserveComments()
    • isPreserveProcessingInstructions

      public boolean isPreserveProcessingInstructions()
    • defaultQuoteStyle

      public QuoteStyle defaultQuoteStyle()
    • emptyElementStyle

      public EmptyElementStyle emptyElementStyle()
    • isPrettyPrint

      public boolean isPrettyPrint()
    • indentString

      public String indentString()
    • lineEnding

      public String lineEnding()
    • isOmitXmlDeclaration

      public boolean isOmitXmlDeclaration()
    • isIgnoreInvalidEncoding

      public boolean isIgnoreInvalidEncoding()