DatatypeBuilder (RELAX NG Datatype API)
Description: declaration: package: org.relaxng.datatype, interface: DatatypeBuilder

# Interface DatatypeBuilder

All Known Implementing Classes:
  `ParameterlessDatatypeBuilder`

public interface DatatypeBuilder
Creates a user-defined type by adding parameters to the pre-defined type.

Author:
  James Clark, Kohsuke KAWAGUCHI

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addParameter(String name, String strValue, ValidationContext context)`
  Adds a new parameter.
  `Datatype`
  `createDatatype()`
  Derives a new Datatype from a Datatype by parameters that were already set through the addParameter method.

- ## Method Details

  - ### addParameter

    void addParameter(String name, String strValue, ValidationContext context) throws DatatypeException
    Adds a new parameter.
    Parameters:
      `name` - The name of the parameter to be added.
      `strValue` - The raw value of the parameter. Caller may not normalize this value because any white space is potentially significant.
      `context` - The context information which can be used by the callee to acquire additional information. This context object is valid only during this method call. The callee may not keep a reference to this object.
    Throws:
      `DatatypeException` - When the given parameter is inappropriate for some reason. The callee is responsible to recover from this error. That is, the object should behave as if no such error was occurred.

  - ### createDatatype

    Datatype createDatatype() throws DatatypeException
    Derives a new Datatype from a Datatype by parameters that were already set through the addParameter method.
    Throws:
      `DatatypeException` - DatatypeException must be thrown if the derivation is somehow invalid. For example, a required parameter is missing, etc. The exception should contain a diagnosis message if possible.