Subject: [dmarc-ietf] XSD concern, policy_evaluated should be required

From: Greg Colburn <[email-masked]>
Date: Wed, 16 Oct 2013 06:31:29 -0600

We noticed some stray aggregate reports without policy_evaluated blocks.  According to page 70 in the current draft, policy_evaluated is minOccurs="0".  Here is the relevant XSD.

   <xs:complexType name="RowType">

     <xs:all>
       <!-- The connecting IP. -->
       <xs:element name="source_ip" type="IPAddress"/>
       <!-- The number of matching messages -->
       <xs:element name="count" type="xs:integer"/>
       <!-- The DMARC disposition applying to matching
            messages. -->
       <xs:element name="policy_evaluated"
                   type="PolicyEvaluatedType"
                   minOccurs="0"/>
     </xs:all>
   </xs:complexType>

In my mind the policy_evaluated block is very important, in many ways its the entire point of the report.  It generally answers the question of "what happened".  Without policy_evaluated a significant amount of the value of the data is lost.  I propose that we update the XSD to  set the minOccurs to 1.

   <xs:complexType name="RowType">

     <xs:all>
       <!-- The connecting IP. -->
       <xs:element name="source_ip" type="IPAddress"/>
       <!-- The number of matching messages -->
       <xs:element name="count" type="xs:integer"/>
       <!-- The DMARC disposition applying to matching
            messages. -->
       <xs:element name="policy_evaluated"
                   type="PolicyEvaluatedType"
                   minOccurs="1"/>
     </xs:all>
   </xs:complexType>

Sincerely,

Greg Colburn