*** previous/formula.xml	2008-03-12 11:01:17.000000000 +0100
--- current/formula.xml	2008-03-13 13:11:45.000000000 +0100
***************
*** 53,69 ****
  
        <p>
          This specification defines a syntax that can be used to document
!         the rules for transforming information obtained from XBRL
!         reports and their supporting 
!         <xtermref bibref="XBRL" idref="_Toc156209104">discoverable taxonomy sets</xtermref>
!         into XBRL facts.
        </p>
        
        <p>
          The transformation rules expressed in a 
          <termref ref="term-formula">formula</termref> serve two purposes.
          First, they constitute additional documentation about the facts being
!         reported in XBRL reports.
        </p>
        
        <example role="nonNormativeExample" id="example-stock-flow">
--- 53,67 ----
  
        <p>
          This specification defines a syntax that can be used to document
!         the rules for deriving new XBRL facts from  information obtained from XBRL
!         instances.
        </p>
        
        <p>
          The transformation rules expressed in a 
          <termref ref="term-formula">formula</termref> serve two purposes.
          First, they constitute additional documentation about the facts being
!         reported in XBRL instances.
        </p>
        
        <example role="nonNormativeExample" id="example-stock-flow">
***************
*** 106,113 ****
          The general processing model for a formula is to apply the
          formula against a single XBRL instance, referred to as the 
          <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">
!         target XBRL instance
!         </xtermref>.
        </p>
        
        <p>  
--- 104,110 ----
          The general processing model for a formula is to apply the
          formula against a single XBRL instance, referred to as the 
          <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">
!         target XBRL instance</xtermref>.
        </p>
        
        <p>  
***************
*** 115,123 ****
          of facts that span several XBRL instances, those instances will
          need to be merged prior to processing. Such merge operations
          can, in some circumstances, lead to problems in the
!         <xtermref bibref="XBRL" idref="_Toc156209104">
!         discoverable taxonomy set 
!         </xtermref>
          supporting the combined XBRL instance. The resolution of these
          problems is outside the scope of this specification.
        </p>
--- 112,118 ----
          of facts that span several XBRL instances, those instances will
          need to be merged prior to processing. Such merge operations
          can, in some circumstances, lead to problems in the
!         <xtermref bibref="XBRL" idref="_Toc156209104">discoverable taxonomy set</xtermref>
          supporting the combined XBRL instance. The resolution of these
          problems is outside the scope of this specification.
        </p>
***************
*** 357,370 ****
              as the <xtermref bibref="XPATH2" idref="dt-context-item">context item</xtermref>.
            </p>
  
-           <p>
-             Numeric values are required to be reported along with information about their 
-             accuracy in the form of either a <att>precision</att> attribute or a 
-             <att>decimals</att> attribute.  Formulae <rfc2119>MAY</rfc2119>
-             contain rules governing the determination of the accuracy to be 
-             asserted for an output fact.
-           </p>
- 
            <example role="nonNormativeExample" id="example-value-expressions">
              <caption>Value expressions</caption>
              <table>
--- 352,357 ----
***************
*** 457,462 ****
--- 444,456 ----
              <head>Accuracy rules</head>
  
              <p>
+               In XBRL non-fraction numeric facts are reported with information about their 
+               accuracy in the form of a <att>precision</att> or <att>decimals</att> attribute.
+               Formulae <rfc2119>MAY</rfc2119> contain rules governing the determination 
+               of the accuracy to be asserted for an output fact.
+             </p>
+ 
+             <p>
                <definition id="term-accuracy-rule" term="accuracy rule">
                  An <term>accuracy rule</term> is a rule for determining the
                  accuracy (expressed as a precision or number of decimal places) 
***************
*** 466,504 ****
              </p>
  
              <p>
!               All formulae have a default accuracy rule.  Formulae <rfc2119>MAY</rfc2119> also
!               have accuracy rules specified by either a <elt>formula:precision</elt> child element or 
!               a <elt>formula:decimals</elt> child element on a formula.
!             </p>              
! 
!             <p>
!               The default accuracy rule specifies that if a formula does not include 
!               a <elt>formula:precision</elt> element or a <elt>formula:decimals</elt> element 
!               then numeric output items <rfc2119>MUST</rfc2119> be reported with an 
!               implied precision of zero.  This implied precision <rfc2119>MUST</rfc2119> 
!               be expressed using the <att>precision</att> attribute
!               on the output fact.
!             </p>            
!             
!             <p>
!               If a formula contains a <elt>formula:precision</elt> child element,
!               a value for the implied precision of numeric output items 
!               <rfc2119>MAY</rfc2119> be obtained by evaluating the XPath expression 
!               in the <elt>formula:precision</elt> child element.
              </p>
!             
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element,
!               a value for the number of decimals to report for numeric output items 
!               <rfc2119>MAY</rfc2119> be obtained by evaluating the XPath expression 
!               in the <elt>formula:decimals</elt> child element.
              </p>
!             
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element, then numeric output items
!               <rfc2119>MUST</rfc2119> report their accuracy with a <att>decimals</att> attribute.  
!               Otherwise, numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a
!               <att>precision</att> attribute.
              </p>
    
              <example role="nonNormativeExample" id="example-accuracy-rules">
--- 460,487 ----
              </p>
  
              <p>
!               All formulae have a default accuracy rule.  A formula <rfc2119>MAY</rfc2119> also
!               have an accuracy rule specified by either a <elt>formula:precision</elt> child 
!               element or a <elt>formula:decimals</elt> child element on the formula.
              </p>
! 
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element, then 
!               non-fraction numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a 
!               <att>decimals</att> attribute. The value of this attribute <rfc2119>MUST</rfc2119> be 
!               obtained by evaluating the XPath expression in the <elt>formula:decimals</elt> child 
!               element using the <elt>xbrli:xbrl</elt> element of the target XBRL instance as the 
!               context item.
              </p>
! 
              <p>
!               Otherwise, non-fraction numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a 
!               <att>precision</att> attribute. If the formula contains a <elt>formula:precision</elt> child element, the 
!               value of the <att>@precision</att> attribute for numeric output items <rfc2119>MUST</rfc2119> be obtained 
!               by evaluating the XPath expression in the <elt>formula:precision</elt> child element 
!               using the <elt>xbrli:xbrl</elt> element of the target XBRL instance as the context item. 
!               Otherwise, the value of the <att>precision</att> attribute <rfc2119>MUST</rfc2119> default to 
!               zero.  
              </p>
    
              <example role="nonNormativeExample" id="example-accuracy-rules">
***************
*** 576,582 ****
  
            <p>
              <definition id="term-address" term="address an aspect">
!               An aspect rule <term>addresses an aspect</term>  if it assists applications
                to determine a value for that aspect for the output facts produced by formulae 
                that include instances of the aspect rule.
              </definition>
--- 559,565 ----
  
            <p>
              <definition id="term-address" term="address an aspect">
!               An aspect rule <term>addresses an aspect</term>  if can be used
                to determine a value for that aspect for the output facts produced by formulae 
                that include instances of the aspect rule.
              </definition>
***************
*** 658,663 ****
--- 641,662 ----
                that impose conflicting requirements on the values of output aspects.
              </error>
            </p>
+           
+           <p>
+             Conflicting aspect rules are possible in an XML Schema valid formula
+             resource because a formula resource permits any number and combination 
+             aspect rules so long as they are all in the substitution group
+             for the <xmlref ref="xml-abstract-aspect"><elt>formula:abstract.aspect</elt></xmlref> 
+             element.
+           </p>
+           
+           <p>
+             As an example of conflicting aspect rules, an XML Schema valid formula 
+             can include more than one <xtermref bibref="VARIABLES" idref="term-concept-rule">concept rule</xtermref>.
+             Even if all of the concept rules in the formula always specify the 
+             same value for the output concept, they still constitute conflicting 
+             aspect rules.
+           </p>
  
            <section id="sec-required-aspect-values-and-sources">
              <head>Required aspect values and sources</head>
***************
*** 729,760 ****
                  <elt>formula:formula</elt> element.
                </definition>
              </p>
!             
!             <p>
!               Sources contain a QName that <rfc2119>MUST</rfc2119> be either 
!               the specific QName, <val>formula:uncovered</val>, or the QName 
!               of one of the formula's fact variables.
!             </p>
!             
              <p>
                <definition id="term-uncovered-qname" term="uncovered QName">
                  The QName value, <val>formula:uncovered</val>, is referred to as
                  the <term>uncovered QName</term>.
                </definition>
              </p>
!   
              <p>
!               <error id="error-illegal-use-of-uncovered-qname">
!                 Error code <errorcode code="illegalUseOfUncoveredQName"/>
!                 <rfc2119>MUST</rfc2119> be thrown if a source 
!                 contains the uncovered QName but its formula does not
!                 <xtermref bibref="VARIABLES" idref="term-uses-implicit-filtering">use 
!                 implicit filtering</xtermref>.
!               </error>
              </p>
  
              <p>
!               Given an aspect rule, the SAV implied by a source that
                equals the uncovered QName can be determined as follows:
              </p>
  
--- 728,755 ----
                  <elt>formula:formula</elt> element.
                </definition>
              </p>
! 
              <p>
                <definition id="term-uncovered-qname" term="uncovered QName">
                  The QName value, <val>formula:uncovered</val>, is referred to as
                  the <term>uncovered QName</term>.
                </definition>
              </p>
! 
              <p>
!               Sources contain a QName that <rfc2119>MUST</rfc2119> be either 
!               the uncovered QName or the QName of one of the formula's fact variables.
              </p>
  
              <p>
!               <definition id="term-implied-sav" term="implied SAV">
!                 An <term>implied SAV</term> is the SAV implied for an aspect
!                 by a source that equals the uncovered QName.
!               </definition>
!             </p>
! 
!             <p>
!               Given an aspect rule, the implied SAV for a source that
                equals the uncovered QName can be determined as follows:
              </p>
  
***************
*** 786,797 ****
              </p>            
  
              <p>
!               Matching of uncovered aspects by implicit filtering will
!               ensure that the SAV implied is independent of the actual
                fact chosen.
              </p>
              
              <p>
                Given an aspect rule, the SAV implied by a source that
                equals the QName of one of the formula's fact variables
                can be determined as follows:
--- 781,806 ----
              </p>            
  
              <p>
!               Matching of uncovered aspects by implicit filtering,
!               as defined in the Implicit filtering specification <bibref ref="IMPLICITFILTERS"/>,
!               will ensure that the SAV implied is independent of the actual
                fact chosen.
              </p>
              
              <p>
+               <error id="error-illegal-use-of-uncovered-qname">
+                 Error code <errorcode code="illegalUseOfUncoveredQName"/>
+                 <rfc2119>MUST</rfc2119> be thrown if a source 
+                 contains the uncovered QName but its formula does not
+                 <xtermref bibref="VARIABLES" idref="term-uses-implicit-filtering">use 
+                 implicit filtering</xtermref>.
+               </error>
+               This error prevents the uncovered QName from being used in formulae where
+               there is no guarantee of matching aspect values across the variables that 
+               could be used to determine the implied SAV.
+             </p>            
+             
+             <p>
                Given an aspect rule, the SAV implied by a source that
                equals the QName of one of the formula's fact variables
                can be determined as follows:
***************
*** 933,939 ****
              <head>Default aspect rules</head>
  
              <p>
!               Formulae <rfc2119>MAY</rfc2119> have default aspect rules.  Like other 
                aspect rules, a default aspect rule specifies a value for an aspect.  
                However, a default aspect rule applies only if a formula does not have 
                an alternative aspect rule that addresses the same aspect.
--- 942,948 ----
              <head>Default aspect rules</head>
  
              <p>
!               Formulae have default aspect rules.  Like other 
                aspect rules, a default aspect rule specifies a value for an aspect.  
                However, a default aspect rule applies only if a formula does not have 
                an alternative aspect rule that addresses the same aspect.
***************
*** 1186,1196 ****
              </p>
  
              <p>
-               A period rule specifies its RAV in terms of variations
-               on its SAV.
-             </p>
-             
-             <p>
                A period rule provides specific rules for
                constructing the period in the output context.
              </p>
--- 1195,1200 ----
***************
*** 1449,1454 ****
--- 1453,1459 ----
                The aspect rules in a segment or scenario aspect rule set
                <rfc2119>MUST</rfc2119> be processed in document order.
              </p>
+ 
              <p>
                <definition id="term-original-occ" term="original OCC">
                  An <term>original OCC</term> is the OCC that is modified by
***************
*** 1494,1509 ****
  
              <p>
                If the <att>augment</att> attribute equals <val>true</val> or 
!               omits the <att>augment</att> attribute on the 
!               first OCC aspect rule in a segment OCC aspect rule set to be 
                processed, then the original OCC contains the set of segment SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
              
              <p>
                If the <att>augment</att> attribute equals <val>true</val>  or 
!               omits the <att>augment</att> attribute on the 
!               first OCC aspect rule in a scenario OCC aspect rule set to be 
                processed, then the original OCC contains the set of scenario SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
--- 1499,1512 ----
  
              <p>
                If the <att>augment</att> attribute equals <val>true</val> or 
!               is omitted on the first OCC aspect rule in a segment OCC aspect rule set to be 
                processed, then the original OCC contains the set of segment SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
              
              <p>
                If the <att>augment</att> attribute equals <val>true</val>  or 
!               is omitted on the first OCC aspect rule in a scenario OCC aspect rule set to be 
                processed, then the original OCC contains the set of scenario SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
***************
*** 1530,1536 ****
                  descendants, if any) to obtain a subsequent OCC.
                </p>
  
- 
                <example role="nonNormativeExample" id="example-occ-fragment-and-xpath-rules">
                  <caption>OCC fragment rules</caption>
                  <table>
--- 1533,1538 ----
***************
*** 1538,1550 ****
                      <tr>
                        <th>Original OCC</th>
                        <th>Child elements of the OCC fragment rule</th>
!                       <th>Subsequent OCC</th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
  
                      <tr>
                        <td>
                          <verbatim>
                            <xbrldi:typedMember dimension="eg:dCustomer">
                              <eg:cust>12345</eg:cust>
--- 1540,1591 ----
                      <tr>
                        <th>Original OCC</th>
                        <th>Child elements of the OCC fragment rule</th>
!                       <th>
!                         Subsequent OCC<footnote>The subsequent OCCs presume that
!                         the first OCC rule in each OCC rule set has the <att>augment</att>
!                         attribute equal to <val>true</val>.</footnote>
!                       </th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
  
                      <tr>
                        <td>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:budget/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:budget/>
+                         </verbatim>
+                       </td>
+                     </tr>
+ 
+                     <tr>
+                       <td>
+                         <verbatim>
+                           <eg:confidential/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:audited/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:confidential/>
+                           <eg:audited/>
+                         </verbatim>
+                       </td>
+                     </tr>
+ 
+ 
+                     <tr>
+                       <td>
                          <verbatim>
                            <xbrldi:typedMember dimension="eg:dCustomer">
                              <eg:cust>12345</eg:cust>
***************
*** 1619,1630 ****
                </p>
  
                <p>
!                 An OCC XPath rule contains an XPath expression 
!                 that, when evaluated, <rfc2119>MUST</rfc2119> yield 
!                 a sequence of element nodes.  These element nodes (and their 
                  descendants, if any) are appended to an 
                  original OCC to obtain a subsequent OCC.
                </p>
  
              </section>
  
--- 1660,1678 ----
                </p>
  
                <p>
!                 An OCC XPath rule contains an XPath expression in its 
!                 <att>select</att> attribute that, when evaluated, 
!                 <rfc2119>MUST</rfc2119> yield  a sequence of element 
!                 nodes.  These element nodes (and their 
                  descendants, if any) are appended to an 
                  original OCC to obtain a subsequent OCC.
                </p>
+               
+               <p>
+                 The context item for evaluation of the XPath expression contained
+                 by an OCC XPath rule is the <elt>xbrli:xbrl</elt> element of
+                 the target XBRL instance.
+               </p>
  
              </section>
  
***************
*** 1703,1709 ****
                <p>
                  If the original OCC has a value for a dimension 
                  named by an OCC dimension rule, then that value <rfc2119>MUST</rfc2119>
!                 be altered, as necessary, to satisfy the requirements imposed by the 
                  OCC dimension rule.
                </p>
  
--- 1751,1757 ----
                <p>
                  If the original OCC has a value for a dimension 
                  named by an OCC dimension rule, then that value <rfc2119>MUST</rfc2119>
!                 be overwritten, as necessary, to satisfy the requirements imposed by the 
                  OCC dimension rule.
                </p>
  
***************
*** 1728,1734 ****
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:ProductDim</val> with value <val>eg:Cars</val>
                        </td>
                        <td>
                          <verbatim>
--- 1776,1788 ----
                          </verbatim>
                        </td>
                        <td>
!                         Add explicit dimension <val>eg:ProductDim</val> 
!                         with value <val>eg:Cars</val>:
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:occDimension dimension="eg:ProductDim">
!                             <formula:member>eg:Cars</formula:member>
!                           </formula:occDimension>
!                         </verbatim>
                        </td>
                        <td>
                          <verbatim>
***************
*** 1749,1756 ****
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:ProductDim</val> with value of that aspect
!                         for the fact that variable <var>eg:factVariableA</var> has evaluated to.
                        </td>
                        <td>
                          <verbatim>
--- 1803,1813 ----
                          </verbatim>
                        </td>
                        <td>
!                         Add segment dimension <val>eg:ProductDim</val> with value of that segment aspect
!                         for the fact that variable <var>eg:factVariableA</var> has evaluated to:
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:occXpath dimension="eg:ProductDim" select="xfi:fact-explicit-segment-dimension-value($eg:factVariableA)"/>
!                         </verbatim>
                        </td>
                        <td>
                          <verbatim>
***************
*** 1774,1779 ****
--- 1831,1841 ----
                        </td>
                        <td>
                          Omit dimension <val>eg:dCustomer</val>
+                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
+                           <formula:occDimension dimension="eg:dCustomer">
+                             <formula:omit/>
+                           </formula:occDimension>
+                         </verbatim>
                        </td>
                        <td>
                        </td>
***************
*** 1882,1890 ****
                <table>
                  <thead>
                    <tr>
!                     <th colspan="2">Implicit measures</th>
!                     <th colspan="2">Reference measures</th>
!                     <th>Unit rule</th>
                      <th colspan="2">Output measures</th>
                    </tr>
                    <tr>
--- 1944,1958 ----
                <table>
                  <thead>
                    <tr>
!                     <th colspan="2">
!                       Implicit measures<footnote>The implicit measures are
!                       the measures in the implicit unit aspect value.</footnote>
!                     </th>
!                     <th colspan="2">
!                     Reference measures<footnote>The reference measures are
!                       the measures in the reference unit aspect value.</footnote>
!                     </th>
!                     <th colspan="2">Unit rule</th>
                      <th colspan="2">Output measures</th>
                    </tr>
                    <tr>
***************
*** 1892,1898 ****
                      <th>denominator</th>
                      <th>numerator</th>
                      <th>denominator</th>
!                     <th>Unit rule</th>
                      <th>numerator</th>
                      <th>denominator</th>
                    </tr>
--- 1960,1967 ----
                      <th>denominator</th>
                      <th>numerator</th>
                      <th>denominator</th>
!                     <th>augment</th>
!                     <th>measures</th>
                      <th>numerator</th>
                      <th>denominator</th>
                    </tr>
***************
*** 1900,1937 ****
                  <tbody>
                    
                    <tr>
!                     <td>eg:kilometers</td>
!                     <td>eg:hours</td>
                      <td></td>
                      <td></td>
                      <td></td>
!                     <td>eg:kilometers</td>
!                     <td>eg:hours</td>
                    </tr>
  
                    <tr>
!                     <td>iso4217:EUR</td>
                      <td></td>
!                     <td>iso4217:USD</td>
                      <td></td>
                      <td></td>
!                     <td>iso4217:USD</td>
                      <td></td>
                    </tr>
  
                    <tr>
!                     <td>iso4217:EUR</td>
                      <td></td>
!                     <td>iso4217:USD</td>
                      <td></td>
                      <td>
                        multiply by <val>xbrli:shares</val> and 
                        divide by <val>iso4217:USD</val>
                      </td>
!                     <td>xbrli:shares</td>
                      <td></td>
                    </tr>
  
                  </tbody>
                </table>
              </example>
--- 1969,2045 ----
                  <tbody>
                    
                    <tr>
!                     <td><val>eg:kilometers</val></td>
!                     <td><val>eg:hours</val></td>
!                     <td></td>
!                     <td></td>
!                     <td><val>true</val></td>
                      <td></td>
+                     <td><val>eg:kilometers</val></td>
+                     <td><val>eg:hours</val></td>
+                   </tr>
+ 
+                   <tr>
+                     <td><val>eg:kilometers</val></td>
+                     <td><val>eg:hours</val></td>
                      <td></td>
                      <td></td>
!                     <td><val>true</val></td>
!                     <td>divide by <val>eg:hours</val></td>
!                     <td><val>eg:kilometers</val></td>
!                     <td><val>eg:hours</val> <val>eg:hours</val></td>
                    </tr>
  
                    <tr>
!                     <td><val>iso4217:EUR</val></td>
                      <td></td>
!                     <td><val>iso4217:USD</val></td>
                      <td></td>
+                     <td><val>true</val></td>
                      <td></td>
!                     <td><val>iso4217:USD</val></td>
                      <td></td>
                    </tr>
  
                    <tr>
!                     <td><val>iso4217:EUR</val></td>
!                     <td></td>
!                     <td><val>iso4217:USD</val></td>
                      <td></td>
!                     <td><val>false</val></td>
!                     <td>multiply by <val>xbrli:shares</val></td>
!                     <td><val>xbrli:shares</val></td>
                      <td></td>
+                   </tr>
+ 
+                   <tr>
+                     <td><val>iso4217:EUR</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
+                     <td></td>
+                     <td><val>true</val></td>
                      <td>
                        multiply by <val>xbrli:shares</val> and 
                        divide by <val>iso4217:USD</val>
                      </td>
!                     <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
  
+                   <tr>
+                     <td><val>iso4217:EUR</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
+                     <td></td>
+                     <td><val>false</val></td>
+                     <td>
+                       multiply by <val>xbrli:shares</val> and 
+                       divide by <val>iso4217:USD</val>
+                     </td>
+                     <td><val>xbrli:shares</val></td>
+                     <td><val>iso4217:USD</val></td>
+                   </tr>
+ 
                  </tbody>
                </table>
              </example>
***************
*** 2111,2116 ****
--- 2219,2225 ----
            <includeChunk ref="boilerplate/references/XPATH2.xml"/>
            <includeChunk ref="boilerplate/references/XBRLFUNCTIONS.xml"/>
            <includeChunk ref="boilerplate/references/DIMENSIONS.xml"/>
+           <includeChunk ref="boilerplate/references/IMPLICITFILTERS.xml"/>
            <includeChunk ref="boilerplate/references/VARIABLES.xml"/>
        </bibliography>
  
***************
*** 2613,2619 ****
--- 2722,2792 ----
            </p>
          </revision>
  
+         <revision ref="person-geoff" 
+         day="05" month="03" year="2008">
+           <p>
+             Added an example to motivate the conflictingAspectRules error.
+           </p>
+         </revision>
+ 
+         <revision ref="person-geoff" 
+         day="08" month="03" year="2008">
+           <p>
+             Clarified the definition of the aspect addressed by an aspect rule
+             by removing the wording relating to assistance of applications.
+           </p>
+           <p>
+             Explicitly specified that the <att>select</att> attribute on OCC XPath rules
+             contains the XPath expression to be evaluated.  Also clarified the context node
+             for evaluation of such XPath expressions.
+           </p>
+           <p>
+             Added explicit markup for the OCC aspect rules in the
+             example showing how they work.
+           </p>
+           <p>
+             Added examples to make the unit aspect rules more accessible.  Added footnotes to
+             the headings in the unit rule example table to make them more informative.
+           </p>
+           <p>
+             Added new cases to the OCC fragment rule example to illustrate that OCC fragment rules
+             are not only applicable to XDT dimension content.
+           </p>
+           <p>
+             These changes were suggested by <personref ref="person-paul"/>.
+           </p>
+         </revision>
  
+         <revision ref="person-geoff" 
+         day="13" month="03" year="2008">
+           <p>
+             Removed the potentially ambiguous or misleading terms "transformed" and 
+             "XBRL report" from the introduction.
+           </p>
+           <p>
+             Reworded the introduction to output fact accuracy to clarify that it is not
+             imposing any new constraints.
+           </p>
+           <p>
+             Clarified the explanation of the xbrlfe:illegalUseOfUncoveredQName error and defined
+             the term <termref ref="term-implied-sav">implied SAV</termref> to improve the explanation
+             of the usage of the uncovered QName.
+           </p>
+           <p>
+             Removed a misleading MAY from the introduction to the section on default aspect values.
+           </p>
+           <p>
+             Removed a misleading sentence from the section on period aspect rules stating that 
+             period RAVs are variations on period SAVs.
+           </p>
+           <p>
+             Added an explicit reference to the Implicit filter specification.
+           </p>
+           <p>
+             These changes were suggested by CompSci Resources.
+           </p>
+         </revision>
+         
        </revisions>
  
      </section>
*** previous/formula.xml	2008-03-12 11:01:17.000000000 +0100
--- current/formula.xml	2008-03-20 20:26:41.000000000 +0100
***************
*** 53,69 ****
  
        <p>
          This specification defines a syntax that can be used to document
!         the rules for transforming information obtained from XBRL
!         reports and their supporting 
!         <xtermref bibref="XBRL" idref="_Toc156209104">discoverable taxonomy sets</xtermref>
!         into XBRL facts.
        </p>
        
        <p>
          The transformation rules expressed in a 
          <termref ref="term-formula">formula</termref> serve two purposes.
          First, they constitute additional documentation about the facts being
!         reported in XBRL reports.
        </p>
        
        <example role="nonNormativeExample" id="example-stock-flow">
--- 53,67 ----
  
        <p>
          This specification defines a syntax that can be used to document
!         the rules for deriving new XBRL facts from  information obtained from XBRL
!         instances.
        </p>
        
        <p>
          The transformation rules expressed in a 
          <termref ref="term-formula">formula</termref> serve two purposes.
          First, they constitute additional documentation about the facts being
!         reported in XBRL instances.
        </p>
        
        <example role="nonNormativeExample" id="example-stock-flow">
***************
*** 106,113 ****
          The general processing model for a formula is to apply the
          formula against a single XBRL instance, referred to as the 
          <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">
!         target XBRL instance
!         </xtermref>.
        </p>
        
        <p>  
--- 104,110 ----
          The general processing model for a formula is to apply the
          formula against a single XBRL instance, referred to as the 
          <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">
!         target XBRL instance</xtermref>.
        </p>
        
        <p>  
***************
*** 115,123 ****
          of facts that span several XBRL instances, those instances will
          need to be merged prior to processing. Such merge operations
          can, in some circumstances, lead to problems in the
!         <xtermref bibref="XBRL" idref="_Toc156209104">
!         discoverable taxonomy set 
!         </xtermref>
          supporting the combined XBRL instance. The resolution of these
          problems is outside the scope of this specification.
        </p>
--- 112,118 ----
          of facts that span several XBRL instances, those instances will
          need to be merged prior to processing. Such merge operations
          can, in some circumstances, lead to problems in the
!         <xtermref bibref="XBRL" idref="_Toc156209104">discoverable taxonomy set</xtermref>
          supporting the combined XBRL instance. The resolution of these
          problems is outside the scope of this specification.
        </p>
***************
*** 357,370 ****
              as the <xtermref bibref="XPATH2" idref="dt-context-item">context item</xtermref>.
            </p>
  
-           <p>
-             Numeric values are required to be reported along with information about their 
-             accuracy in the form of either a <att>precision</att> attribute or a 
-             <att>decimals</att> attribute.  Formulae <rfc2119>MAY</rfc2119>
-             contain rules governing the determination of the accuracy to be 
-             asserted for an output fact.
-           </p>
- 
            <example role="nonNormativeExample" id="example-value-expressions">
              <caption>Value expressions</caption>
              <table>
--- 352,357 ----
***************
*** 457,462 ****
--- 444,456 ----
              <head>Accuracy rules</head>
  
              <p>
+               In XBRL non-fraction numeric facts are reported with information about their 
+               accuracy in the form of a <att>precision</att> or <att>decimals</att> attribute.
+               Formulae <rfc2119>MAY</rfc2119> contain rules governing the determination 
+               of the accuracy to be asserted for an output fact.
+             </p>
+ 
+             <p>
                <definition id="term-accuracy-rule" term="accuracy rule">
                  An <term>accuracy rule</term> is a rule for determining the
                  accuracy (expressed as a precision or number of decimal places) 
***************
*** 466,504 ****
              </p>
  
              <p>
!               All formulae have a default accuracy rule.  Formulae <rfc2119>MAY</rfc2119> also
!               have accuracy rules specified by either a <elt>formula:precision</elt> child element or 
!               a <elt>formula:decimals</elt> child element on a formula.
!             </p>              
! 
!             <p>
!               The default accuracy rule specifies that if a formula does not include 
!               a <elt>formula:precision</elt> element or a <elt>formula:decimals</elt> element 
!               then numeric output items <rfc2119>MUST</rfc2119> be reported with an 
!               implied precision of zero.  This implied precision <rfc2119>MUST</rfc2119> 
!               be expressed using the <att>precision</att> attribute
!               on the output fact.
!             </p>            
!             
!             <p>
!               If a formula contains a <elt>formula:precision</elt> child element,
!               a value for the implied precision of numeric output items 
!               <rfc2119>MAY</rfc2119> be obtained by evaluating the XPath expression 
!               in the <elt>formula:precision</elt> child element.
              </p>
!             
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element,
!               a value for the number of decimals to report for numeric output items 
!               <rfc2119>MAY</rfc2119> be obtained by evaluating the XPath expression 
!               in the <elt>formula:decimals</elt> child element.
              </p>
!             
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element, then numeric output items
!               <rfc2119>MUST</rfc2119> report their accuracy with a <att>decimals</att> attribute.  
!               Otherwise, numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a
!               <att>precision</att> attribute.
              </p>
    
              <example role="nonNormativeExample" id="example-accuracy-rules">
--- 460,487 ----
              </p>
  
              <p>
!               All formulae have a default accuracy rule.  A formula <rfc2119>MAY</rfc2119> also
!               have an accuracy rule specified by either a <elt>formula:precision</elt> child 
!               element or a <elt>formula:decimals</elt> child element on the formula.
              </p>
! 
              <p>
!               If a formula contains a <elt>formula:decimals</elt> child element, then 
!               non-fraction numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a 
!               <att>decimals</att> attribute. The value of this attribute <rfc2119>MUST</rfc2119> be 
!               obtained by evaluating the XPath expression in the <elt>formula:decimals</elt> child 
!               element using the <elt>xbrli:xbrl</elt> element of the target XBRL instance as the 
!               context item.
              </p>
! 
              <p>
!               Otherwise, non-fraction numeric output items <rfc2119>MUST</rfc2119> report their accuracy with a 
!               <att>precision</att> attribute. If the formula contains a <elt>formula:precision</elt> child element, the 
!               value of the <att>@precision</att> attribute for numeric output items <rfc2119>MUST</rfc2119> be obtained 
!               by evaluating the XPath expression in the <elt>formula:precision</elt> child element 
!               using the <elt>xbrli:xbrl</elt> element of the target XBRL instance as the context item. 
!               Otherwise, the value of the <att>precision</att> attribute <rfc2119>MUST</rfc2119> default to 
!               zero.  
              </p>
    
              <example role="nonNormativeExample" id="example-accuracy-rules">
***************
*** 576,582 ****
  
            <p>
              <definition id="term-address" term="address an aspect">
!               An aspect rule <term>addresses an aspect</term>  if it assists applications
                to determine a value for that aspect for the output facts produced by formulae 
                that include instances of the aspect rule.
              </definition>
--- 559,565 ----
  
            <p>
              <definition id="term-address" term="address an aspect">
!               An aspect rule <term>addresses an aspect</term>  if can be used
                to determine a value for that aspect for the output facts produced by formulae 
                that include instances of the aspect rule.
              </definition>
***************
*** 658,663 ****
--- 641,662 ----
                that impose conflicting requirements on the values of output aspects.
              </error>
            </p>
+           
+           <p>
+             Conflicting aspect rules are possible in an XML Schema valid formula
+             resource because a formula resource permits any number and combination 
+             aspect rules so long as they are all in the substitution group
+             for the <xmlref ref="xml-abstract-aspect"><elt>formula:abstract.aspect</elt></xmlref> 
+             element.
+           </p>
+           
+           <p>
+             As an example of conflicting aspect rules, an XML Schema valid formula 
+             can include more than one <termref ref="term-concept-rule">concept rule</termref>.
+             Even if all of the concept rules in the formula always specify the 
+             same value for the output concept, they still constitute conflicting 
+             aspect rules.
+           </p>
  
            <section id="sec-required-aspect-values-and-sources">
              <head>Required aspect values and sources</head>
***************
*** 729,760 ****
                  <elt>formula:formula</elt> element.
                </definition>
              </p>
!             
!             <p>
!               Sources contain a QName that <rfc2119>MUST</rfc2119> be either 
!               the specific QName, <val>formula:uncovered</val>, or the QName 
!               of one of the formula's fact variables.
!             </p>
!             
              <p>
                <definition id="term-uncovered-qname" term="uncovered QName">
                  The QName value, <val>formula:uncovered</val>, is referred to as
                  the <term>uncovered QName</term>.
                </definition>
              </p>
!   
              <p>
!               <error id="error-illegal-use-of-uncovered-qname">
!                 Error code <errorcode code="illegalUseOfUncoveredQName"/>
!                 <rfc2119>MUST</rfc2119> be thrown if a source 
!                 contains the uncovered QName but its formula does not
!                 <xtermref bibref="VARIABLES" idref="term-uses-implicit-filtering">use 
!                 implicit filtering</xtermref>.
!               </error>
              </p>
  
              <p>
!               Given an aspect rule, the SAV implied by a source that
                equals the uncovered QName can be determined as follows:
              </p>
  
--- 728,755 ----
                  <elt>formula:formula</elt> element.
                </definition>
              </p>
! 
              <p>
                <definition id="term-uncovered-qname" term="uncovered QName">
                  The QName value, <val>formula:uncovered</val>, is referred to as
                  the <term>uncovered QName</term>.
                </definition>
              </p>
! 
              <p>
!               Sources contain a QName that <rfc2119>MUST</rfc2119> be either 
!               the uncovered QName or the QName of one of the formula's fact variables.
              </p>
  
              <p>
!               <definition id="term-implied-sav" term="implied SAV">
!                 An <term>implied SAV</term> is the SAV implied for an aspect
!                 by a source that equals the uncovered QName.
!               </definition>
!             </p>
! 
!             <p>
!               Given an aspect rule, the implied SAV for a source that
                equals the uncovered QName can be determined as follows:
              </p>
  
***************
*** 786,797 ****
              </p>            
  
              <p>
!               Matching of uncovered aspects by implicit filtering will
!               ensure that the SAV implied is independent of the actual
                fact chosen.
              </p>
              
              <p>
                Given an aspect rule, the SAV implied by a source that
                equals the QName of one of the formula's fact variables
                can be determined as follows:
--- 781,806 ----
              </p>            
  
              <p>
!               Matching of uncovered aspects by implicit filtering,
!               as defined in the Implicit filtering specification <bibref ref="IMPLICITFILTERS"/>,
!               will ensure that the SAV implied is independent of the actual
                fact chosen.
              </p>
              
              <p>
+               <error id="error-illegal-use-of-uncovered-qname">
+                 Error code <errorcode code="illegalUseOfUncoveredQName"/>
+                 <rfc2119>MUST</rfc2119> be thrown if a source 
+                 contains the uncovered QName but its formula does not
+                 <xtermref bibref="VARIABLES" idref="term-uses-implicit-filtering">use 
+                 implicit filtering</xtermref>.
+               </error>
+               This error prevents the uncovered QName from being used in formulae where
+               there is no guarantee of matching aspect values across the variables that 
+               could be used to determine the implied SAV.
+             </p>            
+             
+             <p>
                Given an aspect rule, the SAV implied by a source that
                equals the QName of one of the formula's fact variables
                can be determined as follows:
***************
*** 818,825 ****
                  Error code <errorcode code="sequenceSAVConflicts"/>
                  <rfc2119>MUST</rfc2119> be thrown if a source contains the 
                  QName of a fact variable that 
!                 <xtermref bibref="VARIABLES" idref="term-bind-to-sequence">binds 
!                 to a sequence</xtermref> unless the formula uses implicit 
                  filtering and the aspect rule addresses an aspect that is 
                  not covered by a filter for the fact variable.
                </error>
--- 827,834 ----
                  Error code <errorcode code="sequenceSAVConflicts"/>
                  <rfc2119>MUST</rfc2119> be thrown if a source contains the 
                  QName of a fact variable that 
!                 <xtermref bibref="VARIABLES" idref="term-bind-as-sequence">binds 
!                 as a sequence</xtermref> unless the formula uses implicit 
                  filtering and the aspect rule addresses an aspect that is 
                  not covered by a filter for the fact variable.
                </error>
***************
*** 839,845 ****
                  Error code <errorcode code="bindEmptySourceVariable"/>
                  <rfc2119>MUST</rfc2119> be thrown if a formula's source 
                  contains the QName of a fact variable that 
!                 <xtermref bibref="VARIABLES" idref="term-can-bind-to-an-empty-seqence">can 
                  bind to an empty sequence</xtermref>.
                </error>
              </p>
--- 848,854 ----
                  Error code <errorcode code="bindEmptySourceVariable"/>
                  <rfc2119>MUST</rfc2119> be thrown if a formula's source 
                  contains the QName of a fact variable that 
!                 <xtermref bibref="VARIABLES" idref="term-can-bind-to-an-empty-sequence">can 
                  bind to an empty sequence</xtermref>.
                </error>
              </p>
***************
*** 933,939 ****
              <head>Default aspect rules</head>
  
              <p>
!               Formulae <rfc2119>MAY</rfc2119> have default aspect rules.  Like other 
                aspect rules, a default aspect rule specifies a value for an aspect.  
                However, a default aspect rule applies only if a formula does not have 
                an alternative aspect rule that addresses the same aspect.
--- 942,948 ----
              <head>Default aspect rules</head>
  
              <p>
!               Formulae have default aspect rules.  Like other 
                aspect rules, a default aspect rule specifies a value for an aspect.  
                However, a default aspect rule applies only if a formula does not have 
                an alternative aspect rule that addresses the same aspect.
***************
*** 973,980 ****
                  Error code <errorcode code="defaultAspectValueConflicts"/>
                  <rfc2119>MUST</rfc2119> be thrown if a formula source 
                  equals the QName of a formula fact variable 
!                 that <xtermref bibref="VARIABLES" idref="bind-to-seqence">binds 
!                 to a sequence</xtermref>.
                </error>
              </p>
  
--- 982,989 ----
                  Error code <errorcode code="defaultAspectValueConflicts"/>
                  <rfc2119>MUST</rfc2119> be thrown if a formula source 
                  equals the QName of a formula fact variable 
!                 that <xtermref bibref="VARIABLES" idref="term-bind-as-sequence">binds 
!                 as a sequence</xtermref>.
                </error>
              </p>
  
***************
*** 1186,1196 ****
              </p>
  
              <p>
-               A period rule specifies its RAV in terms of variations
-               on its SAV.
-             </p>
-             
-             <p>
                A period rule provides specific rules for
                constructing the period in the output context.
              </p>
--- 1195,1200 ----
***************
*** 1449,1454 ****
--- 1453,1459 ----
                The aspect rules in a segment or scenario aspect rule set
                <rfc2119>MUST</rfc2119> be processed in document order.
              </p>
+ 
              <p>
                <definition id="term-original-occ" term="original OCC">
                  An <term>original OCC</term> is the OCC that is modified by
***************
*** 1494,1509 ****
  
              <p>
                If the <att>augment</att> attribute equals <val>true</val> or 
!               omits the <att>augment</att> attribute on the 
!               first OCC aspect rule in a segment OCC aspect rule set to be 
                processed, then the original OCC contains the set of segment SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
              
              <p>
                If the <att>augment</att> attribute equals <val>true</val>  or 
!               omits the <att>augment</att> attribute on the 
!               first OCC aspect rule in a scenario OCC aspect rule set to be 
                processed, then the original OCC contains the set of scenario SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
--- 1499,1512 ----
  
              <p>
                If the <att>augment</att> attribute equals <val>true</val> or 
!               is omitted on the first OCC aspect rule in a segment OCC aspect rule set to be 
                processed, then the original OCC contains the set of segment SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
              
              <p>
                If the <att>augment</att> attribute equals <val>true</val>  or 
!               is omitted on the first OCC aspect rule in a scenario OCC aspect rule set to be 
                processed, then the original OCC contains the set of scenario SAVs.  
                If a source is not defined, then the original OCC is the empty set.
              </p>
***************
*** 1530,1536 ****
                  descendants, if any) to obtain a subsequent OCC.
                </p>
  
- 
                <example role="nonNormativeExample" id="example-occ-fragment-and-xpath-rules">
                  <caption>OCC fragment rules</caption>
                  <table>
--- 1533,1538 ----
***************
*** 1538,1550 ****
                      <tr>
                        <th>Original OCC</th>
                        <th>Child elements of the OCC fragment rule</th>
!                       <th>Subsequent OCC</th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
  
                      <tr>
                        <td>
                          <verbatim>
                            <xbrldi:typedMember dimension="eg:dCustomer">
                              <eg:cust>12345</eg:cust>
--- 1540,1591 ----
                      <tr>
                        <th>Original OCC</th>
                        <th>Child elements of the OCC fragment rule</th>
!                       <th>
!                         Subsequent OCC<footnote>The subsequent OCCs presume that
!                         the first OCC rule in each OCC rule set has the <att>augment</att>
!                         attribute equal to <val>true</val>.</footnote>
!                       </th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
  
                      <tr>
                        <td>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:budget/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:budget/>
+                         </verbatim>
+                       </td>
+                     </tr>
+ 
+                     <tr>
+                       <td>
+                         <verbatim>
+                           <eg:confidential/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:audited/>
+                         </verbatim>
+                       </td>
+                       <td>
+                         <verbatim>
+                           <eg:confidential/>
+                           <eg:audited/>
+                         </verbatim>
+                       </td>
+                     </tr>
+ 
+ 
+                     <tr>
+                       <td>
                          <verbatim>
                            <xbrldi:typedMember dimension="eg:dCustomer">
                              <eg:cust>12345</eg:cust>
***************
*** 1619,1630 ****
                </p>
  
                <p>
!                 An OCC XPath rule contains an XPath expression 
!                 that, when evaluated, <rfc2119>MUST</rfc2119> yield 
!                 a sequence of element nodes.  These element nodes (and their 
                  descendants, if any) are appended to an 
                  original OCC to obtain a subsequent OCC.
                </p>
  
              </section>
  
--- 1660,1678 ----
                </p>
  
                <p>
!                 An OCC XPath rule contains an XPath expression in its 
!                 <att>select</att> attribute that, when evaluated, 
!                 <rfc2119>MUST</rfc2119> yield  a sequence of element 
!                 nodes.  These element nodes (and their 
                  descendants, if any) are appended to an 
                  original OCC to obtain a subsequent OCC.
                </p>
+               
+               <p>
+                 The context item for evaluation of the XPath expression contained
+                 by an OCC XPath rule is the <elt>xbrli:xbrl</elt> element of
+                 the target XBRL instance.
+               </p>
  
              </section>
  
***************
*** 1641,1649 ****
  
                <p>
                  OCC dimension rules specify RAVs for 
!                 <xtermref bibref="VARIABLES" idref="term-segment-dimension">segment dimensions</xtermref>
                  or
!                 <xtermref bibref="VARIABLES" idref="term-scenario-dimension">scenario dimensions</xtermref>.
                </p>
  
                <p>
--- 1689,1697 ----
  
                <p>
                  OCC dimension rules specify RAVs for 
!                 <xtermref bibref="VARIABLES" idref="term-segment-dimension-aspect">segment dimension aspects</xtermref>
                  or
!                 <xtermref bibref="VARIABLES" idref="term-scenario-dimension-aspect">scenario dimension aspects</xtermref>.
                </p>
  
                <p>
***************
*** 1703,1709 ****
                <p>
                  If the original OCC has a value for a dimension 
                  named by an OCC dimension rule, then that value <rfc2119>MUST</rfc2119>
!                 be altered, as necessary, to satisfy the requirements imposed by the 
                  OCC dimension rule.
                </p>
  
--- 1751,1757 ----
                <p>
                  If the original OCC has a value for a dimension 
                  named by an OCC dimension rule, then that value <rfc2119>MUST</rfc2119>
!                 be overwritten, as necessary, to satisfy the requirements imposed by the 
                  OCC dimension rule.
                </p>
  
***************
*** 1728,1734 ****
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:ProductDim</val> with value <val>eg:Cars</val>
                        </td>
                        <td>
                          <verbatim>
--- 1776,1788 ----
                          </verbatim>
                        </td>
                        <td>
!                         Add explicit dimension <val>eg:ProductDim</val> 
!                         with value <val>eg:Cars</val>:
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:occDimension dimension="eg:ProductDim">
!                             <formula:member>eg:Cars</formula:member>
!                           </formula:occDimension>
!                         </verbatim>
                        </td>
                        <td>
                          <verbatim>
***************
*** 1749,1756 ****
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:ProductDim</val> with value of that aspect
!                         for the fact that variable <var>eg:factVariableA</var> has evaluated to.
                        </td>
                        <td>
                          <verbatim>
--- 1803,1813 ----
                          </verbatim>
                        </td>
                        <td>
!                         Add segment dimension <val>eg:ProductDim</val> with value of that segment aspect
!                         for the fact that variable <var>eg:factVariableA</var> has evaluated to:
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:occXpath dimension="eg:ProductDim" select="xfi:fact-explicit-segment-dimension-value($eg:factVariableA)"/>
!                         </verbatim>
                        </td>
                        <td>
                          <verbatim>
***************
*** 1774,1779 ****
--- 1831,1841 ----
                        </td>
                        <td>
                          Omit dimension <val>eg:dCustomer</val>
+                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
+                           <formula:occDimension dimension="eg:dCustomer">
+                             <formula:omit/>
+                           </formula:occDimension>
+                         </verbatim>
                        </td>
                        <td>
                        </td>
***************
*** 1882,1890 ****
                <table>
                  <thead>
                    <tr>
!                     <th colspan="2">Implicit measures</th>
!                     <th colspan="2">Reference measures</th>
!                     <th>Unit rule</th>
                      <th colspan="2">Output measures</th>
                    </tr>
                    <tr>
--- 1944,1958 ----
                <table>
                  <thead>
                    <tr>
!                     <th colspan="2">
!                       Implicit measures<footnote>The implicit measures are
!                       the measures in the implicit unit aspect value.</footnote>
!                     </th>
!                     <th colspan="2">
!                     Reference measures<footnote>The reference measures are
!                       the measures in the reference unit aspect value.</footnote>
!                     </th>
!                     <th colspan="2">Unit rule</th>
                      <th colspan="2">Output measures</th>
                    </tr>
                    <tr>
***************
*** 1892,1898 ****
                      <th>denominator</th>
                      <th>numerator</th>
                      <th>denominator</th>
!                     <th>Unit rule</th>
                      <th>numerator</th>
                      <th>denominator</th>
                    </tr>
--- 1960,1967 ----
                      <th>denominator</th>
                      <th>numerator</th>
                      <th>denominator</th>
!                     <th>augment</th>
!                     <th>measures</th>
                      <th>numerator</th>
                      <th>denominator</th>
                    </tr>
***************
*** 1900,1937 ****
                  <tbody>
                    
                    <tr>
!                     <td>eg:kilometers</td>
!                     <td>eg:hours</td>
                      <td></td>
                      <td></td>
                      <td></td>
!                     <td>eg:kilometers</td>
!                     <td>eg:hours</td>
                    </tr>
  
                    <tr>
!                     <td>iso4217:EUR</td>
                      <td></td>
-                     <td>iso4217:USD</td>
                      <td></td>
                      <td></td>
!                     <td>iso4217:USD</td>
                      <td></td>
                    </tr>
  
                    <tr>
!                     <td>iso4217:EUR</td>
                      <td></td>
!                     <td>iso4217:USD</td>
                      <td></td>
                      <td>
                        multiply by <val>xbrli:shares</val> and 
                        divide by <val>iso4217:USD</val>
                      </td>
!                     <td>xbrli:shares</td>
                      <td></td>
                    </tr>
  
                  </tbody>
                </table>
              </example>
--- 1969,2045 ----
                  <tbody>
                    
                    <tr>
!                     <td><val>eg:kilometers</val></td>
!                     <td><val>eg:hours</val></td>
                      <td></td>
                      <td></td>
+                     <td><val>true</val></td>
                      <td></td>
!                     <td><val>eg:kilometers</val></td>
!                     <td><val>eg:hours</val></td>
                    </tr>
  
                    <tr>
!                     <td><val>eg:kilometers</val></td>
!                     <td><val>eg:hours</val></td>
                      <td></td>
                      <td></td>
+                     <td><val>true</val></td>
+                     <td>divide by <val>eg:hours</val></td>
+                     <td><val>eg:kilometers</val></td>
+                     <td><val>eg:hours</val> <val>eg:hours</val></td>
+                   </tr>
+ 
+                   <tr>
+                     <td><val>iso4217:EUR</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
+                     <td></td>
+                     <td><val>true</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
+                     <td></td>
+                   </tr>
+ 
+                   <tr>
+                     <td><val>iso4217:EUR</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
                      <td></td>
!                     <td><val>false</val></td>
!                     <td>multiply by <val>xbrli:shares</val></td>
!                     <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
  
                    <tr>
!                     <td><val>iso4217:EUR</val></td>
                      <td></td>
!                     <td><val>iso4217:USD</val></td>
                      <td></td>
+                     <td><val>true</val></td>
                      <td>
                        multiply by <val>xbrli:shares</val> and 
                        divide by <val>iso4217:USD</val>
                      </td>
!                     <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
  
+                   <tr>
+                     <td><val>iso4217:EUR</val></td>
+                     <td></td>
+                     <td><val>iso4217:USD</val></td>
+                     <td></td>
+                     <td><val>false</val></td>
+                     <td>
+                       multiply by <val>xbrli:shares</val> and 
+                       divide by <val>iso4217:USD</val>
+                     </td>
+                     <td><val>xbrli:shares</val></td>
+                     <td><val>iso4217:USD</val></td>
+                   </tr>
+ 
                  </tbody>
                </table>
              </example>
***************
*** 2109,2116 ****
            <includeChunk ref="boilerplate/references/XMLSCHEMA-DATATYPES.xml"/>
            <includeChunk ref="boilerplate/references/XBRL.xml"/>
            <includeChunk ref="boilerplate/references/XPATH2.xml"/>
-           <includeChunk ref="boilerplate/references/XBRLFUNCTIONS.xml"/>
            <includeChunk ref="boilerplate/references/DIMENSIONS.xml"/>
            <includeChunk ref="boilerplate/references/VARIABLES.xml"/>
        </bibliography>
  
--- 2217,2224 ----
            <includeChunk ref="boilerplate/references/XMLSCHEMA-DATATYPES.xml"/>
            <includeChunk ref="boilerplate/references/XBRL.xml"/>
            <includeChunk ref="boilerplate/references/XPATH2.xml"/>
            <includeChunk ref="boilerplate/references/DIMENSIONS.xml"/>
+           <includeChunk ref="boilerplate/references/IMPLICITFILTERS.xml"/>
            <includeChunk ref="boilerplate/references/VARIABLES.xml"/>
        </bibliography>
  
***************
*** 2613,2619 ****
--- 2721,2797 ----
            </p>
          </revision>
  
+         <revision ref="person-geoff" 
+         day="05" month="03" year="2008">
+           <p>
+             Added an example to motivate the conflictingAspectRules error.
+           </p>
+         </revision>
+ 
+         <revision ref="person-geoff" 
+         day="08" month="03" year="2008">
+           <p>
+             Clarified the definition of the aspect addressed by an aspect rule
+             by removing the wording relating to assistance of applications.
+           </p>
+           <p>
+             Explicitly specified that the <att>select</att> attribute on OCC XPath rules
+             contains the XPath expression to be evaluated.  Also clarified the context node
+             for evaluation of such XPath expressions.
+           </p>
+           <p>
+             Added explicit markup for the OCC aspect rules in the
+             example showing how they work.
+           </p>
+           <p>
+             Added examples to make the unit aspect rules more accessible.  Added footnotes to
+             the headings in the unit rule example table to make them more informative.
+           </p>
+           <p>
+             Added new cases to the OCC fragment rule example to illustrate that OCC fragment rules
+             are not only applicable to XDT dimension content.
+           </p>
+           <p>
+             These changes were suggested by <personref ref="person-paul"/>.
+           </p>
+         </revision>
  
+         <revision ref="person-geoff" 
+         day="13" month="03" year="2008">
+           <p>
+             Removed the potentially ambiguous or misleading terms "transformed" and 
+             "XBRL report" from the introduction.
+           </p>
+           <p>
+             Reworded the introduction to output fact accuracy to clarify that it is not
+             imposing any new constraints.
+           </p>
+           <p>
+             Clarified the explanation of the xbrlfe:illegalUseOfUncoveredQName error and defined
+             the term <termref ref="term-implied-sav">implied SAV</termref> to improve the explanation
+             of the usage of the uncovered QName.
+           </p>
+           <p>
+             Removed a misleading MAY from the introduction to the section on default aspect values.
+           </p>
+           <p>
+             Removed a misleading sentence from the section on period aspect rules stating that 
+             period RAVs are variations on period SAVs.
+           </p>
+           <p>
+             Added an explicit reference to the Implicit filter specification.
+           </p>
+           <p>
+             These changes were suggested by CompSci Resources.
+           </p>
+         </revision>
+         
+         <revision ref="person-geoff" day="20" month="03" year="2008">
+           <p>
+             Fixed broken hyperlinks.
+           </p>
+         </revision>        
+         
        </revisions>
  
      </section>
