Skip to main content
Version: 1.1

XML Parser Schema

The schema definition for the attribute connector configuration is available below in XML, and JSON/YAML format.

xml-parser.config.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.axiomatics.com/attributeconnector/parser/xml/configuration"
xmlns:tns="http://www.axiomatics.com/attributeconnector/parser/xml/configuration"
elementFormDefault="qualified">

<xs:element name="configuration" type="tns:configurationType"/>

<xs:complexType name="configurationType">
<xs:sequence>
<xs:element name="source" type="tns:sourceType"/>
<xs:element name="mapping" type="tns:mapping" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="identifier" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The globally unique identifier for this configuration.
The identifier is used to generate unique identifiers for the mappings.
Each mapping must have a globally unique deterministic identifier for
attribute caching to work correctly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>

<xs:complexType name="mapping">
<xs:sequence>
<xs:element name="xacmlAttribute" type="tns:xacmlAttributeType">
<xs:annotation>
<xs:documentation>This is the XACML attribute e.g. user.department the PDP is looking for.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xPath" type="xs:string">
<xs:annotation>
<xs:documentation>This is the XPath expression that will be used to select values from the source XML document.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="key" type="tns:keyType" maxOccurs="25" minOccurs="0">
<xs:annotation>
<xs:documentation>The keys represent the variable parts inside the XPath expression.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="collate" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>This flag determines whether to return all the values found as a single value in a XACML bag
or as separate values in a XACML bag.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="delimiter" type="xs:string" default=",">
<xs:annotation>
<xs:documentation>If collate is true, then the delimiter is used between attribute values.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>

<xs:complexType name="keyType">
<xs:sequence>
<xs:element name="xacmlAttribute" type="tns:xacmlAttributeType"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="xacmlAttributeType">
<xs:attribute name="Category" type="xs:string" use="required"/>
<xs:attribute name="AttributeId" type="xs:string" use="required"/>
<xs:attribute name="DataType" type="xs:string" use="required"/>
<xs:attribute name="Issuer" type="xs:string"/>
</xs:complexType>

<xs:complexType name="sourceType">
<xs:choice>
<xs:element name="xacmlAttribute" type="tns:xacmlAttributeType"/>
<xs:element name="xml" type="tns:xmlType"/>
</xs:choice>
<xs:attribute name="encoded" type="xs:boolean" default="false">
<xs:annotation>
<xs:documentation>
Indicates whether the contents of the payload are to be base64-decoded.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>

<xs:complexType name="xmlType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="src" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>