XML File Structure

File Naming

The core system policy rules have a naming convention for the XML files, for example: supplier-tasks-policy.xml.

The custom override XML files do not need to follow a naming convention, however the client may choose to utilize their own naming convention.

File Structure

The XSD schema provides the full description of what can be placed into the Policy Override XMLs and may be leveraged by some XML editors for auto-completion and validation. The latest XSD can be found within the core System Policies ZIP file (System_Policy.zip), which can be downloaded from the list view.

The following is an example of a portion of the XSD:

     <xs:element name="ActiveAuthorityProfile" type="activeAuthorityProfileType">
        <xs:annotation>
            <xs:documentation>
            Matches on request users active authority profiles
            </xs:documentation>
        </xs:annotation>
     </xs:element>

     <xs:element name="UserMode" type="userModeType">
        <xs:annotation>
            <xs:documentation>
            Matches on request users mode - NORMAL or RESTRICTED
            </xs:documentation>
        </xs:annotation>
     </xs:element>

     <xs:element name="ArtworkEnabled" type="markerElementType">
        <xs:annotation>
                <xs:documentation>
                Matches on whether artwork is enabled in the system
          </xs:documentation>
        </xs:annotation>
     </xs:element>

     <xs:element name="UserTypes" type="userTypesType">
        <xs:annotation>
            <xs:documentation>
            Matches on request users type - RETAILER, SUPPLIER, SITE or ALLSITE
            </xs:documentation>
        </xs:annotation>
     </xs:element>

     <xs:complexType name="activeAuthorityProfileType">
        <xs:annotation>
            <xs:documentation>
            The authority profile codes to match on
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Profile" type="xs:string" maxOccurs="unbounded"/>
        </xs:sequence>
     </xs:complexType>

     <xs:simpleType name="markerElementType">
        <xs:annotation>
            <xs:documentation>
            Matchers that do not take options or settings use this type
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:maxLength value="0"/>
        </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="userTypesType">
        <xs:annotation>
            <xs:documentation>
            The user types to match on
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="UserType" maxOccurs="unbounded">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="RETAILER" />
                        <xs:enumeration value="SUPPLIER" />
                        <xs:enumeration value="SITE" />
                        <xs:enumeration value="ALLSITE" />
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
     </xs:complexType>