Understanding the Example Rules
The XML rule installed in Installing the Redaction Rules has the following form:
<rule xml:lang="zxx" xmlns="http://marklogic.com/xdmp/redaction"> <description>Obscure phone numbers.</description> <path>//summary</path> <method> <function>redact-us-phone</function> </method> <options> <level>partial</level> </options> </rule>
The rule elements have the following effect:
description
- Optional metadata for informational purposes.path
- Apply the redaction function specified by the rule to nodes selected by the path expression “//summary”.method
- Use the built-in redaction functionredact-us-phone
to redact the value in asummary
XML element or JSON property. By default, this function replaces all digits in a phone number by the character “#”. You can tell this is a built-in function becausemethod
has nomodule
child.options
- Pass alevel
parameter value of “partial” to redact-us-phone, causing the function to leave the last 4 digits of the value unchanged.
The expected result of applying this rule is that any text in the value of a node named “summary” that matches the pattern of a US phone number will be replaced. The replacement value uses the “#” number to replace all but the last 4 digits. For example, a value such as 123-456-7890 is redacted to ###-###-7890. For more details, see redact-us-phone in the Application Developer’s Guide.
The JSON rule installed in Installing the Redaction Rules has the following form:
{ "rule": { "description": "Remove customer ids.", "path": "//id", "method": { "function": "conceal" } }}
The rule properties have the following effect:
description
- Optional metadata for informational purposes.path
- Apply the redaction function specified by the rule to nodes selected by the path expression//id
.method
- Use the built-in redaction functionconceal
to redact theid
XML element or JSON property. This function will hide the nodes selected bypath
. You can tell this is a built-in function becausemethod
has nomodule
child.
The expected result of applying this rule is to remove nodes named id
. For example, if //id
selects and XML element or JSON property, the element or property does not appear in the redacted output. Note that, if //id
selects array items in JSON, the items are eliminated, but the id
property might remain, depending on the structure of the document. For more details, see conceal in the Application Developer’s Guide.