XML Mask (XmlMaskGenerator)

The XML Mask generator runs a selected generator on values that match a user specified path expression.

For the XML Mask generator, there is a link object for each path expression value to assign a sub-generator to.

The generator does not itself support consistency or differential privacy.

The metadata object is populated from the XmlMaskMetadata object. It includes:

  • pathExpression, which is the expression that identifies the value to apply the sub-generator to.

  • The subGeneratorMetadata object, which identifies and configures the sub-generator.

{
  "schema": "string",
  "table": "string",
  "column": "string",
  "dataType": "string",  //MongoDB only
  "metadata": {
    "generatorId": "XmlMaskGenerator",
    "customValueProcessor": "string",  //If custom value processor applied
    "pathExpression": "string",
    "subGeneratorMetadata": {
      "presetId": "string",
      "generatorId": "string",
      //Metadata for the selected sub-generator
      "customValueProcessor": "string"  //If custom value processor applied to the sub-generator
    }
  }
}

Example replacement

In the following example replacement for the XML Mask generator:

  • The Name generator is assigned to the path expression //view/item-descriptor//@display-name. The value is in the format First Name Last Name (John Smith), and capitalization is not preserved. Consistency is disabled.

  • The Constant generator is assigned to the path expression //view//object-class. The constant value is object-class.

{
  "name": "xml_data",
  "schema": "public",
  "table": "xml_me",
  "links": [
    {
      "schema": "public",
      "table": "xml_me",
      "column": "xml_data",
      "metadata": {
        "generatorId": "XmlMaskGenerator",
        "presetId": "XmlMaskGenerator",
        "pathExpression": "//view/item-descriptor//@display-name",
        "subGeneratorMetadata": {
          "presetId": "NameGenerator",
          "generatorId": "NameGenerator",
          "nameType": "FirstThenLastName",
          "preserveCapitalization": false,
          "isConsistent": false
        }
      }
    },
    {
      "schema": "public",
      "table": "xml_me",
      "column": "xml_data",
      "metadata": {
        "generatorId": "XmlMaskGenerator",
        "presetId": "XmlMaskGenerator",
        "pathExpression": "//view//object-class",
        "subGeneratorMetadata": {
          "presetId": "ConstantGenerator",
          "generatorId": "ConstantGenerator",
          "constant": "object-class"
        }
      }
    }
  ]
}

Last updated