*** previous/formula.xml	2009-04-11 14:35:46.000000000 -0700
--- current/formula.xml	2009-04-11 14:34:53.000000000 -0700
***************
*** 38,44 ****
          XBRL Specification <bibref ref="XBRL"/> that builds
          upon the XBRL Variables Specification <bibref ref="VARIABLES"/>.
          It defines a syntax for formulae that can be processed 
!         to produce XBRL facts from information obtained from 
          XBRL reports and their supporting metadata.
        </p>
  
--- 38,45 ----
          XBRL Specification <bibref ref="XBRL"/> that builds
          upon the XBRL Variables Specification <bibref ref="VARIABLES"/>.
          It defines a syntax for formulae that can be processed 
!         to produce XBRL facts in an output XBRL instance 
!         from information obtained from 
          XBRL reports and their supporting metadata.
        </p>
  
***************
*** 56,69 ****
          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">
          <caption>Formula as documentation of a stock-flow relationship</caption> 
          <p>
--- 57,70 ----
          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">
          <caption>Formula as documentation of a stock-flow relationship</caption> 
          <p>
***************
*** 79,85 ****
        
        <p>
          Second, formulae can be processed to produce XBRL facts. When
!         evaluated successfully against an XBRL instance, formulae
          produce new XBRL facts. 
        </p>
        
--- 80,86 ----
        
        <p>
          Second, formulae can be processed to produce XBRL facts. When
!         evaluated successfully against an <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>, formulae
          produce new XBRL facts. 
        </p>
        
***************
*** 102,110 ****
  
        <p>
          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>  
--- 103,119 ----
  
        <p>
          The general processing model for a formula is to apply the
!         formula against a single <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>
!         to produce a single XBRL fact in an output XBRL instance.
!       </p>
! 
!       <p>
!           <definition id="term-output-xbrl-instance" term="output XBRL instance">
!             An <term>output XBRL instance</term> is an XBRL instance that is generated by 
!             an XBRL formula processor, and containing, possibly along with other information, 
!             facts produced by evaluation of <termref ref="term-formula">formulae</termref> against an 
!             <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
!           </definition>
        </p>
        
        <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>
--- 121,127 ----
          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="_3.2">discoverable taxonomy set</xtermref>
          supporting the combined XBRL instance. The resolution of these
          problems is outside the scope of this specification.
        </p>
***************
*** 128,134 ****
          <p>
            A formula could produce a non-numeric value for a fact that is
            to report values for a numeric concept. This would lead to an
!           XML Schema validation problem in the output XBRL instance.
          </p>
          <p>
            A formula could also produce entity identification scheme
--- 137,143 ----
          <p>
            A formula could produce a non-numeric value for a fact that is
            to report values for a numeric concept. This would lead to an
!           XML Schema validation problem in the <termref ref="term-output-xbrl-instance">output XBRL instance</termref>.
          </p>
          <p>
            A formula could also produce entity identification scheme
***************
*** 139,145 ****
  
        <p>
          In many cases, these problems will only be detectable through
!         XBRL validation of the XBRL instances produced by formulae.
        </p>
  
        <p>
--- 148,154 ----
  
        <p>
          In many cases, these problems will only be detectable through
!         XBRL validation of the <termref ref="term-output-xbrl-instance">output XBRL instances</termref> produced by formulae.
        </p>
  
        <p>
***************
*** 157,163 ****
            capabilities of the XBRL Variables Specification
            <bibref ref="VARIABLES"/>. It extends the range of
            information that can be captured in 
!           <xtermref bibref="XBRL" idref="_Toc156209104">discoverable taxonomy sets</xtermref> 
            and provides a syntax for expressing 
            complex formulaic relationships in terms that relate
            to XBRL data structures. 
--- 166,172 ----
            capabilities of the XBRL Variables Specification
            <bibref ref="VARIABLES"/>. It extends the range of
            information that can be captured in 
!           <xtermref bibref="XBRL" idref="_3.2">discoverable taxonomy sets</xtermref> 
            and provides a syntax for expressing 
            complex formulaic relationships in terms that relate
            to XBRL data structures. 
***************
*** 228,234 ****
            A formula expresses a set of rules for constructing an output XBRL fact
            by transforming the values that the variables in the formula's variable
            set have evaluated to.
!           The values of the variables are obtained from an XBRL instance and
            its supporting DTS or from the application processing the formula.
          </p>
  
--- 237,243 ----
            A formula expresses a set of rules for constructing an output XBRL fact
            by transforming the values that the variables in the formula's variable
            set have evaluated to.
!           The values of the variables are obtained from an <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> and
            its supporting DTS or from the application processing the formula.
          </p>
  
***************
*** 327,333 ****
            <p>
              A formula expression is an XPath expression. When evaluated successfully, it 
              produces the value of a single 
!             <xtermref bibref="XBRL" idref="_Toc156209149">XBRL item</xtermref>.
            </p>
            
            <p>
--- 336,342 ----
            <p>
              A formula expression is an XPath expression. When evaluated successfully, it 
              produces the value of a single 
!             <xtermref bibref="XBRL" idref="_4.6">XBRL item</xtermref>.
            </p>
            
            <p>
***************
*** 348,354 ****
  
            <p>
              Formula expressions are evaluated using the <elt>xbrli:xbrl</elt> element of the 
!             <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">target XBRL instance</xtermref>
              as the <xtermref bibref="XPATH2" idref="dt-context-item">context item</xtermref>.
            </p>
  
--- 357,363 ----
  
            <p>
              Formula expressions are evaluated using the <elt>xbrli:xbrl</elt> element of the 
!             <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>
              as the <xtermref bibref="XPATH2" idref="dt-context-item">context item</xtermref>.
            </p>
  
***************
*** 470,476 ****
                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>
  
--- 479,485 ----
                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 <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> as the 
                context item.
              </p>
  
***************
*** 479,485 ****
                <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>
--- 488,494 ----
                <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 <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> as the context item. 
                Otherwise, the value of the <att>precision</att> attribute <rfc2119>MUST</rfc2119> default to 
                zero.  
              </p>
***************
*** 526,532 ****
  
            </section><!-- Accuracy rules -->
  
!         </section>
  
          <section id="sec-aspect-rules">
            <head>Aspect rules</head>
--- 535,541 ----
  
            </section><!-- Accuracy rules -->
  
!         </section><!-- Value rules -->
  
          <section id="sec-aspect-rules">
            <head>Aspect rules</head>
***************
*** 548,554 ****
              context and the output units of measurement (for numeric 
              facts), are all different types of aspect rules.
            </p>
!           
            <p>
              The XBRL Variables Specification <bibref ref="VARIABLES"/> supports the definition of
              new aspects.  In line with the ability to extend the variable specification by 
--- 557,563 ----
              context and the output units of measurement (for numeric 
              facts), are all different types of aspect rules.
            </p>
! 
            <p>
              The XBRL Variables Specification <bibref ref="VARIABLES"/> supports the definition of
              new aspects.  In line with the ability to extend the variable specification by 
***************
*** 677,709 ****
              
              <p>
                Aspect rules can specify their RAV directly or in terms of
!               one or more aspect values in the target XBRL instance.
              </p>
    
              <p>
                <definition id="term-sav" term="source aspect value (SAV)">
                  A <term>source aspect value (SAV)</term> is an aspect value
!                 in the target XBRL instance.
                </definition>
              </p>
              
              <p>
-               <definition id="term-segment-sav" term="segment SAV">
-                 A <term>segment SAV</term> is a SAV that is reported by a 
-                 <xtermref bibref="XBRL" idref="_Toc156209164">segment</xtermref> 
-                 or by the absence of a segment.
-               </definition>
-             </p>
- 
-             <p>
-               <definition id="term-scenario-sav" term="scenario SAV">
-                 A <term>scenario SAV</term> is a SAV that is reported by a 
-                 <xtermref bibref="XBRL" idref="_Toc156209165">scenario</xtermref>
-                 or by the absence of a scenario.
-               </definition>
-             </p>
- 
-             <p>
                If an aspect rule specifies its RAV in terms of one or more SAVs, 
                then it <rfc2119>MUST</rfc2119> provide a means of identifying which
                SAVs to use.
--- 686,702 ----
              
              <p>
                Aspect rules can specify their RAV directly or in terms of
!               one or more aspect values in the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
              </p>
    
              <p>
                <definition id="term-sav" term="source aspect value (SAV)">
                  A <term>source aspect value (SAV)</term> is an aspect value
!                 in the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
                </definition>
              </p>
              
              <p>
                If an aspect rule specifies its RAV in terms of one or more SAVs, 
                then it <rfc2119>MUST</rfc2119> provide a means of identifying which
                SAVs to use.
***************
*** 795,800 ****
--- 788,796 ----
                  <xtermref bibref="VARIABLES" idref="term-uses-implicit-filtering">use 
                  implicit filtering</xtermref>.
                </error>
+             </p>
+ 
+             <p>
                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.
***************
*** 828,836 ****
                  <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>
              </p>
  
--- 824,831 ----
                  <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 aspect rule addresses an aspect 
!                 that is not covered by a filter for the fact variable.
                </error>
              </p>
  
***************
*** 853,858 ****
--- 848,860 ----
                </error>
              </p>
  
+             <p diff="add">
+                 Note that the source in a formula, referred to in the above errors, 
+                 can be defined by the <att>source</att>
+                 attribute on the <elt>formula:formula</elt> element itself or on any of
+                 its descendant elements.
+             </p>
+ 
              <p>
                A formula can contain more than one source.  However, an aspect rule
                or a component thereof, can only refer to its nearest source.
***************
*** 952,958 ****
                All formulae have a default 
                <xtermref bibref="VARIABLES" idref="term-location-aspect">location aspect</xtermref> 
                rule, which requires output facts to be child elements of the 
!               target XBRL instance's <elt>xbrli:xbrl</elt> element.
              </p>
  
              <p>
--- 954,960 ----
                All formulae have a default 
                <xtermref bibref="VARIABLES" idref="term-location-aspect">location aspect</xtermref> 
                rule, which requires output facts to be child elements of the 
!               <termref ref="term-output-xbrl-instance">output XBRL instance's</termref> <elt>xbrli:xbrl</elt> element.
              </p>
  
              <p>
***************
*** 994,999 ****
--- 996,1002 ----
                  as the <term>default fact variable</term>.
                </definition> 
              </p>
+ 
              <p>
                <definition id="term-default-fact" term="default fact variable">
                  The single fact in the sequence that the default fact
***************
*** 1043,1049 ****
              <p>
                If a concept rule has a child <elt>formula:qnameExpression</elt> element then its RAV is
                the concept with the QName obtained by evaluating the XPath expression the 
!               <elt>formula:qnameExpression</elt> element using the target XBRL instance's 
                <elt>xbrli:xbrl</elt> element as the context item.
              </p>
  
--- 1046,1052 ----
              <p>
                If a concept rule has a child <elt>formula:qnameExpression</elt> element then its RAV is
                the concept with the QName obtained by evaluating the XPath expression the 
!               <elt>formula:qnameExpression</elt> element using the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance's</xtermref> 
                <elt>xbrli:xbrl</elt> element as the context item.
              </p>
  
***************
*** 1232,1238 ****
              
              <p>
                The context item for evaluation of all XPath expressions in period rules is the
!               <elt>xbrli:xbrl</elt> element in the target XBRL instance.
              </p>
              
              <p>
--- 1235,1241 ----
              
              <p>
                The context item for evaluation of all XPath expressions in period rules is the
!               <elt>xbrli:xbrl</elt> element in the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
              </p>
              
              <p>
***************
*** 1263,1269 ****
                      <td>RAV is the SAV</td>
                      <td>
                        Output period is an instant with a date of <val>2006-12-31</val> and
!                       a time that is omitted or <val>00:00:00</val>.
                      </td>
                    </tr>
  
--- 1266,1273 ----
                      <td>RAV is the SAV</td>
                      <td>
                        Output period is an instant with a date of <val>2006-12-31</val> and
!                       a time that is omitted or an instant with a date of <val>2007-01-01</val> 
!                       and a time of <val>00:00:00</val>.
                      </td>
                    </tr>
  
***************
*** 1284,1854 ****
  
            </section> <!-- Period rules -->
  
!           <section id="sec-open-context-component-rules">
!             <head>Open context component rules</head>
!             
!             <p>
!               <definition id="term-open-context-component" term="open context component (OCC)">
!                 An <term>open context component (OCC)</term>, is a set of aspect values expressed
!                 by a <xtermref bibref="XBRL" idref="_Toc156209164">segment</xtermref> 
!                 or <xtermref bibref="XBRL" idref="_Toc156209165">scenario</xtermref>
!                 or by the absence of a segment or scenario.
!               </definition>
!             </p>
!             
!             <p>
!               <definition id="term-occ-aspect" term="OCC aspect">
!                 An <term>OCC aspect</term>, is an aspect with a value that is reported
!                 as part of an OCC.
!               </definition>
!             </p>
! 
!             <p>
!               All contexts have two OCCs: one corresponding to the
!               segment and one corresponding to the scenario. This is the
!               case, even if a context omits its segment or scenario.
!             </p>
!             
!             <p>
!               <definition id="term-segment-occ" term="segment OCC">
!                 A <term>segment OCC</term> is the OCC for a segment.
!               </definition>
!             </p>
! 
!             <p>
!               <definition id="term-scenario-occ" term="scenario OCC">
!                 A <term>scenario OCC</term> is the OCC for a scenario.
!               </definition>
!             </p>
! 
!             <p>
!               If the segment is omitted from a context then the context's
!               segment OCC is an empty sequence.  If a segment OCC is an 
!               empty sequence, then it <rfc2119>MUST</rfc2119> be represented
!               in a context by omitting the segment.
!             </p>
!             
!             <p>
!               If the scenario is omitted from a context then the context's
!               scenario OCC is an empty sequence.  If a scenario OCC is an 
!               empty sequence, then it <rfc2119>MUST</rfc2119> be represented
!               in a context by omitting the scenario.
!             </p>
! 
!             <p>
!               The aspects that can be given values in an OCC depend upon the 
!               <xtermref bibref="VARIABLES" idref="term-aspect-model">aspect model</xtermref>
!               that is being used to interpret the content of segments and scenarios.
!             </p>
!             
!             <p>
!               If a variable set uses the 
!               <xtermref bibref="VARIABLES" idref="term-dimensional-aspect-model">dimensional aspect model</xtermref>
!               then its segment OCC can only include values for 
!               <xtermref bibref="VARIABLES" idref="term-segment-dimension-aspect">segment dimension aspects</xtermref> and 
!               <xtermref bibref="VARIABLES" idref="term-nonxdt-segment-aspect">non-XDT segment aspects</xtermref>.
!             </p>
!             
!             <p>
!               Likewise, its scenario OCC can only include values for 
!               <xtermref bibref="VARIABLES" idref="term-scenario-dimension-aspect">scenario dimension aspects</xtermref> and 
!               <xtermref bibref="VARIABLES" idref="term-nonxdt-scenario-aspect">non-XDT scenario aspects</xtermref>.
!             </p>
! 
!             <p>
!               If a variable set uses the 
!               <xtermref bibref="VARIABLES" idref="term-dimensional-aspect-model">non-dimensional aspect model</xtermref>
!               then its segment OCC can only include values for 
!               <xtermref bibref="VARIABLES" idref="term-complete-segment-aspect">complete segment aspects</xtermref>.
!             </p>
!             
!             <p>
!               Likewise, its scenario OCC can only include values for 
!               <xtermref bibref="VARIABLES" idref="term-complete-scenario-aspect">complete scenario aspects</xtermref>.
!             </p>
! 
!             <p>
!               If a variable set uses some other aspect model, that other aspect model 
!               will specify the aspects that can be in segment OCCs and scenario OCCs.
!             </p>
! 
!             <p>
!               <definition id="term-output-occ" term="output OCC">
!                 An <term>output OCC</term>, is an OCC of the 
!                 <termref ref="term-output-fact">output fact</termref>.
!               </definition>
!             </p>
  
              <p>
!               <definition id="term-occ-rule" term="OCC rule">
!                 An <term>OCC rule</term>, is an aspect rule that 
!                 addresses an aspect with a value in an OCC and that
!                 is in the 
!                 <xtermref bibref="XMLSCHEMA-STRUCTURES" idref="key-equivalenceClass">substitution group</xtermref> 
!                 for the 
!                 <xmlref ref="xml-abstract-occ-aspect"><elt>formula:abstract.occ.aspect</elt></xmlref> element.
                </definition>
              </p>
  
              <p>
!               If the <att>occ</att> attribute on an OCC rule equals
!               <val>segment</val> then that OCC rule determines the output
!               value of an aspect that is reported in a segment.
              </p>
  
!             <p>
!               <definition id="term-segment-rule" term="segment rule">
!                 A <term>segment rule</term> is an OCC rule 
!                 with an <att>occ</att> attribute equal to <val>segment</val>.
!               </definition>
!             </p>
  
!             <p>
!               If the <att>occ</att> attribute on an OCC rule equals
!               <val>scenario</val> then that OCC rule determines the output
!               value of an aspect that is reported in a scenario.
!             </p>
!             
!             <p>
!               <definition id="term-scenario-rule" term="scenario rule">
!                 A <term>scenario rule</term> is an OCC rule 
!                 with an <att>occ</att> attribute equal to <val>scenario</val>.
!               </definition>
!             </p>
!  
!             <p>
!               A formula <rfc2119>MAY</rfc2119> contain more than one segment rule and more than
!               one scenario rule.  
!             </p>
!               
!             <p>
!               <definition id="term-segment-occ-aspect-rule-set" term="scenario OCC aspect rule set">
!                 The OCC aspect rules that are segment rules form a set of OCC aspect rules 
!                 that are evaluated together to determine output segment OCCs.  Such a set is a 
!                 <term>segment OCC aspect rule set</term>.               
!               </definition>
!             </p>
  
!             <p>
!               Aspect rules in a segment OCC aspect rule set address the
!               set of aspects that are given values in the output segment OCC
!               that is constructed by applying them.
!             </p>
                
!             <p>
!               <definition id="term-scenario-occ-aspect-rule-set" term="scenario OCC aspect rule set">
!                 The OCC aspect rules that are scenario rules form a set of OCC aspect rules 
!                 that are evaluated together to determine output scenario OCCs.  Such a set is a 
!                 <term>scenario OCC aspect rule set</term>.
!               </definition>
!             </p>
                
-             <p>
-               Aspect rules in a scenario OCC aspect rule set address the
-               set of aspects that are given values in the output scenario OCC
-               that is constructed by applying them.
-             </p>              
-             
-             <p>
-               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
-                 application of an OCC aspect rule.
-               </definition>
-             </p>
-             
-             <p>              
-               <definition id="term-subsequent-occ" term="subsequent OCC">
-                 The <term>subsequent OCC</term> is the OCC resulting from
-                 applying an OCC aspect rule to an original OCC.
-               </definition>
-             </p>
- 
-             <p>
-               The subsequent OCC for an OCC aspect rule is the
-               original OCC for the OCC aspect rule that is processed
-               next.
-             </p>
-             
-             <p>
-               The RAVs specified by a segment or scenario aspect rule
-               set are those aspect values in the subsequent OCC for the
-               last OCC aspect rule processed in a segment or scenario
-               OCC aspect rule set.
-             </p>
- 
-             <p>
-               If the first OCC fragment or XPath rule to be processed 
-               contains an <att>augment</att> 
-               attribute with a value of <val>false</val>,
-               then the original OCC is the empty set of aspect values.
-             </p>
-             
-             <p>
-               <error id="error-innappropriate-augment-attribute">
-                 Error code <errorcode code="innappropriateAugmentAttribute"/><nbsp/>
-                 <rfc2119>MUST</rfc2119> be thrown if an OCC fragment or XPath rule
-                 is not the first OCC fragment or XPath rule to be processed and has
-                 an <att>augment</att> attribute.
-               </error>
-             </p>
- 
-             <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>
- 		
-             <p>
-               The following sub-sections define the syntax and semantics
-               for three OCC aspect rules.  Extension specifications 
-               <rfc2119>MAY</rfc2119> define other OCC aspect rules.
-             </p>
-                         
-             <section id="sec-occ-fragment-rules">
-               <head>OCC fragment rules</head>
- 
                <p>
!                 <definition id="term-occ-fragment-rule" term="OCC fragments rule">
!                   An <term>OCC fragment rule</term> is an OCC aspect rule that is
!                   expressed by the 
!                   <xmlref ref="xml-occ-fragments"><elt>formula:occFragments</elt></xmlref> element.
!                 </definition>
                </p>
! 
                <p>
!                 An OCC fragment rule extends an original OCC by appending its child elements (and their 
!                 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>
                    <thead>
                      <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>
!                           </xbrldi:typedMember>
!                         </verbatim>
!                       </td>
!                       <td>
!                         <verbatim>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
                          </verbatim>
                        </td>
                        <td>
!                         <verbatim>
!                           <xbrldi:typedMember dimension="eg:dCustomer">
!                             <eg:cust>12345</eg:cust>
!                           </xbrldi:typedMember>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
!                         </verbatim>
                        </td>
                      </tr>
! 
                      <tr>
                        <td>
!                       </td>
!                       <td>
!                         <verbatim>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
                          </verbatim>
                        </td>
                        <td>
!                         <verbatim>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
!                         </verbatim>
                        </td>
                      </tr>
! 
                      <tr>
                        <td>
!                         <verbatim>
!                           <eg:audited/>
!                         </verbatim>
!                       </td>
!                       <td>
!                         <verbatim>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
                          </verbatim>
                        </td>
                        <td>
!                         <verbatim>
!                           <eg:audited/>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
!                         </verbatim>
                        </td>
                      </tr>
!                     
                    </tbody>
                  </table>
!               </example>  
! 
  
!             </section>
  
!             <section id="sec-occ-xpath-rules">
!               <head>OCC XPath rules</head>
  
                <p>
!                 <definition id="term-occ-xpath-rule" term="OCC XPath rule">
!                   An <term>OCC XPath rule</term> is an OCC aspect rule that is
!                   expressed by the 
!                   <xmlref ref="xml-occ-xpath"><elt>formula:occXPath</elt></xmlref> element.
                  </definition>
                </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>
! 
!             <section id="sec-occ-dimension-rules">
!               <head>OCC dimension rules</head>
! 
                <p>
!                 <definition id="term-occ-dimension-rule" term="OCC dimension rule">
!                   An <term>OCC dimension rule</term> is an OCC aspect rule that is 
!                   expressed by the
!                   <xmlref ref="xml-occ-dimension"><elt>formula:occDimension</elt></xmlref> element.
!                 </definition>
                </p>
  
                <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>
!                 OCC dimension rules specify a segment or scenario dimension aspect value 
!                 explicitly, or by reference to a <termref ref="term-sav">SAV</termref>.
                </p>
  
                <p>
!                 The <xtermref bibref="DIMENSIONS" idref="_2.5.3">dimension</xtermref>,
!                 affected by an OCC dimension rule is specified by the QName in the 
!                 <att>dimension</att> attribute on the OCC dimension rule.
                </p>
  
                <p>
!                 If an OCC dimension rule contains no child elements,
!                 then the OCC dimension rule specifies that the subsequent OCC 
!                 <rfc2119>MUST</rfc2119> include a dimension aspect value for
!                 the dimension identified by the OCC dimension rule.  It also
!                 specifies that the value for that dimension aspect <rfc2119>MUST</rfc2119>
!                 be the SAV for that dimension aspect.
                </p>
!               
                <p>
!                 <error id="error-missing-sav-for-dimension-rule">
!                   Error code <errorcode code="missingSAVForDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if an OCC dimension rule
!                   does not have any child elements and does not have a SAV for
!                   the dimension that it identifies with its <att>dimension</att> 
!                   attribute.
!                 </error>
                </p>
!               
                <p>
!                 If an OCC dimension rule contains a <elt>formula:member</elt> element, that 
!                 element identifies the QName of the domain member that is to be the RAV. 
!                 If the <elt>formula:member</elt> element contains a child <elt>formula:qname</elt> element,
!                 then the QName of the domain member is the value of the <elt>formula:qname</elt> element.
!                 If the <elt>formula:member</elt> element contains a child <elt>formula:qnameExpression</elt> element
!                 then the QName of the domain member is the QName obtained by evaluating its content as an XPath expression
!                 using the <elt>xbrli:xbrl</elt> element of the target XBRL instance as the context item.
                </p>
  
                <p>
!                 If an OCC dimension rule contains a <elt>formula:member</elt> element, then
!                 the subsequent OCC for the dimension OCC aspect rule <rfc2119>MUST</rfc2119> 
!                 include a dimension aspect value for the specified dimension with the 
!                 value specified by the <elt>formula:member</elt> element.
                </p>
!               
                <p>
!                 If an OCC dimension rule contains a <elt>formula:omit</elt> 
!                 element then the dimension identified 
!                 by the dimension OCC aspect rule <rfc2119>MUST NOT</rfc2119> 
!                 have a value in the subsequent OCC for the OCC dimension rule.
                </p>
  
                <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>
  
!               <example role="nonNormativeExample" id="example-occ-dimension-rules">
!                 <caption>OCC Dimension rules</caption>
                  <table>
                    <thead>
                      <tr>
!                       <th>Original OCC</th>
!                       <th>OCC Dimension 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>
!                           </xbrldi:typedMember>
                          </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>
!                           <xbrldi:typedMember dimension="eg:dCustomer">
!                             <eg:cust>12345</eg:cust>
!                           </xbrldi:typedMember>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
                          </verbatim>
                        </td>
                      </tr>
  
                      <tr>
                        <td>
-                         <verbatim>
-                           <xbrldi:typedMember dimension="eg:dCustomer">
-                             <eg:cust>12345</eg:cust>
-                           </xbrldi:typedMember>
-                         </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>
!                           <xbrldi:typedMember dimension="eg:dCustomer">
!                             <eg:cust>12345</eg:cust>
!                           </xbrldi:typedMember>
!                           <xbrldi:explicitMember dimension="eg:ProductDim">eg:Cars</xbrldi:explicitMember>
                          </verbatim>
-                         This presumes that fact variable <var>eg:factVariableA</var> evaluated to a fact with
-                         a value of <val>eg:Cars</val> for dimension <val>eg:ProductDim</val>.
                        </td>
                      </tr>
! 
                      <tr>
                        <td>
                          <verbatim>
!                           <xbrldi:typedMember dimension="eg:dCustomer">
!                             <eg:cust>12345</eg:cust>
!                           </xbrldi:typedMember>
                          </verbatim>
                        </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>
                      </tr>
- 
                    </tbody>
                  </table>
!               </example>
  
!             </section><!-- OCC dimension rules -->
!             
!           </section><!-- OCC rules -->
  
            <section id="sec-unit-rules">
              <head>Unit rules</head>
    
--- 1288,1864 ----
  
            </section> <!-- Period rules -->
  
!           <section id="sec-dimension-rules">
!             <head>Dimension rules</head>
  
              <p>
!               <definition id="term-dimension-rule" term="dimension rule">
!                 A <term>dimension rule</term> is an <termref ref="term-aspect-rule">aspect rule</termref> 
!                 that is either an <termref ref="term-explicit-dimension-rule">explicit dimension rule</termref>
!                 or a <termref ref="term-typed-dimension-rule">typed dimension rule</termref>.
                </definition>
              </p>
  
              <p>
!               Explicit dimension rules and typed dimension rules are defined in 
!               <sectionref ref="sec-explicit-dimension-rules"/> and 
!               <sectionref ref="sec-typed-dimension-rules"/> respectively.
              </p>
  
!             <section id="sec-explicit-dimension-rules">
!               <head>Explicit dimension rules</head>
  
!               <p>
!                 <definition id="term-explicit-dimension-rule" term="explicit dimension rule">
!                   An <term>explicit dimension rule</term> is an <termref ref="term-aspect-rule">aspect rule</termref> 
!                   for an explicit <xtermref bibref="VARIABLES" idref="term-dimension-aspect">dimension aspect</xtermref>
!                   that is expressed by the
!                   <xmlref ref="xml-explicit-dimension"><elt>formula:explicitDimension</elt></xmlref> element.
!                 </definition>
!               </p>
!   
!               <p>
!                 Explicit dimension rules specify RAVs for explicit  
!                 <xtermref bibref="VARIABLES" idref="term-dimension-aspect">dimension aspects</xtermref>.
!               </p>
!   
!               <p>
!                 Explicit dimension rules specify a RAV either explicitly, 
!                 or by reference to a <termref ref="term-sav">SAV</termref>.
!               </p>
!   
!               <p>
!                 The <xtermref bibref="DIMENSIONS" idref="_2.5.3">dimension</xtermref>,
!                 affected by an explicit dimension rule is specified by the QName in the 
!                 <att>dimension</att> attribute on the dimension rule.
!               </p>
  
!               <p>
!                 <error id="error-bad-usage-of-explicit-dimension-rule">
!                   Error code <errorcode code="badUsageOfExplicitDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if the
!                   <att>dimension</att> attribute on the dimension rule
!                   contains a QName that does not identify an explicit dimension.
!                 </error>
!               </p>
!   
!               <p>
!                 If an explicit dimension rule contains no child elements,
!                 then the explicit dimension rule specifies that the output fact 
!                 <rfc2119>MUST</rfc2119> include an dimension aspect value for
!                 the dimension identified by the explicit dimension rule.  It also
!                 specifies that the value for that dimension aspect <rfc2119>MUST</rfc2119>
!                 be the SAV for that dimension aspect.
!               </p>
                
!               <p>
!                 <error id="error-missing-sav-for-explicit-dimension-rule">
!                   Error code <errorcode code="missingSAVForExplicitDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if an explicit dimension rule
!                   does not have any child elements and does not have a SAV for
!                   the dimension that identified by its <att>dimension</att> 
!                   attribute.
!                 </error>
!               </p>
                
                <p>
!                 If an explicit dimension rule contains a <elt>formula:member</elt> element, then that 
!                 element identifies the QName of the domain member that is to be the RAV. 
!                 If the <elt>formula:member</elt> element contains a child <elt>formula:qname</elt> element,
!                 then the QName of the domain member is the value of the <elt>formula:qname</elt> element.
!                 If the <elt>formula:member</elt> element contains a child <elt>formula:qnameExpression</elt> element
!                 then the QName of the domain member is the QName obtained by evaluating its content as an XPath 
!                 expression using the <elt>xbrli:xbrl</elt> element of the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> as the context item.
                </p>
!   
                <p>
!                 If an explicit dimension rule contains a <elt>formula:member</elt> element, then
!                 the output fact <rfc2119>MUST</rfc2119> 
!                 include a dimension aspect value for the specified dimension with the 
!                 value specified by the <elt>formula:member</elt> element.
                </p>
!   
!               <p>
!                 If an explicit dimension rule contains a <elt>formula:omit</elt> 
!                 element then the dimension identified 
!                 by the explicit dimension rule <rfc2119>MUST NOT</rfc2119> 
!                 have a value for the output fact.
!               </p>
!   
!               <example role="nonNormativeExample" id="example-explicit-dimension-rules">
!                 <caption>Explicit dimension rules</caption>
                  <table>
                    <thead>
                      <tr>
!                       <th>Explicit dimension rule</th>
!                       <th>Explanation</th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
!   
                      <tr>
                        <td>
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:explicitDimension dimension="eg:ProductDim">
!                             <formula:member>
!                               <formula:qname>eg:Cars</formula:qname>
!                             </formula:member>
!                           </formula:explicitDimension>
                          </verbatim>
                        </td>
                        <td>
!                         Add explicit dimension <val>eg:ProductDim</val> 
!                         with value <val>eg:Cars</val>.
                        </td>
                      </tr>
!   
                      <tr>
                        <td>
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:explicitDimension dimension="eg:ProductDim"/>
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:ProductDim</val> with value of that dimension 
!                         given by the SAV.
                        </td>
                      </tr>
!   
                      <tr>
                        <td>
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:explicitDimension dimension="eg:dCustomer">
!                             <formula:omit/>
!                           </formula:explicitDimension>
                          </verbatim>
                        </td>
                        <td>
!                         Do not report a value for the <val>eg:dCustomer</val> 
!                         dimension for the output fact.
                        </td>
                      </tr>
!   
                    </tbody>
                  </table>
!               </example>
  
!             </section><!-- Explicit dimension rules -->
  
!             <section id="sec-typed-dimension-rules">
!               <head>Typed dimension rules</head>
  
                <p>
!                 <definition id="term-typed-dimension-rule" term="typed dimension rule">
!                   A <term>typed dimension rule</term> is an <termref ref="term-aspect-rule">aspect rule</termref> 
!                   for a typed <xtermref bibref="VARIABLES" idref="term-dimension-aspect">dimension aspect</xtermref>
!                   that is expressed by the
!                   <xmlref ref="xml-typed-dimension"><elt>formula:typedDimension</elt></xmlref> element.
                  </definition>
                </p>
!   
                <p>
!                 Typed dimension rules specify RAVs for typed  
!                 <xtermref bibref="VARIABLES" idref="term-dimension-aspect">dimension aspects</xtermref>.
                </p>
!   
                <p>
!                 Typed dimension rules specify a RAV either explicitly, 
!                 or by reference to a <termref ref="term-sav">SAV</termref>.
                </p>
!   
                <p>
!                 The <xtermref bibref="DIMENSIONS" idref="_2.5.3">dimension</xtermref>,
!                 affected by a typed dimension rule is specified by the QName in the 
!                 <att>dimension</att> attribute on the dimension rule.
                </p>
  
                <p>
!                 <error id="error-bad-usage-of-typed-dimension-rule">
!                   Error code <errorcode code="badUsageOfTypedDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if the
!                   <att>dimension</att> attribute on the dimension rule
!                   contains a QName that does not identify a typed dimension.
!                 </error>
                </p>
!   
                <p>
!                 If a typed dimension rule contains no child elements,
!                 then the typed dimension rule specifies that the output fact 
!                 <rfc2119>MUST</rfc2119> include an dimension aspect value for
!                 the dimension identified by the typed dimension rule.  It also
!                 specifies that the value for that dimension aspect <rfc2119>MUST</rfc2119>
!                 be the SAV for that dimension aspect.
                </p>
  
                <p>
!                 <error id="error-missing-sav-for-typed-dimension-rule">
!                   Error code <errorcode code="missingSAVForTypedDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if a typed dimension rule
!                   does not have any child elements and does not have a SAV for
!                   the dimension that identified by its <att>dimension</att> 
!                   attribute.
!                 </error>
                </p>
  
                <p>
!                 If a typed dimension rule has a child element, it will be one of three different children:
!                 a <elt>formula:xpath</elt> element, a <elt>formula:value</elt> element or a 
!                 <elt>formula:omit</elt> element. 
                </p>
! 
                <p>
!                 If an typed dimension rule contains a <elt>formula:xpath</elt> 
!                 element then that element contains an XPath expression that, when evaluated, 
!                 <rfc2119>MUST</rfc2119> yield  a sequence containing a single element 
!                 node.  This element node (and its descendants, if any) are the content
!                 of the root element of the typed dimension value for the output fact.
                </p>
! 
                <p>
!                 The context item for evaluation of the XPath expression contained
!                 by the typed dimension rule is the <elt>xbrli:xbrl</elt> element of
!                 the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
                </p>
  
                <p>
!                 <error id="error-wrong-xpath-result-for-typed-dimension-rule">
!                   Error code <errorcode code="wrongXpathResultForTypedDimensionRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if the result of evaluating the
!                   XPath expression in a typed dimension rule is not a sequence 
!                   containing a single element node.
!                 </error>
                </p>
! 
                <p>
!                 If an typed dimension rule contains a <elt>formula:value</elt> 
!                 element then that element has a single child element.
!                 That single child element of the <elt>formula:value</elt> element and
!                 the child element of the typed dimension value of the output fact 
!                 <rfc2119>MUST</rfc2119> be 
!                 <xtermref bibref="VARIABLES" idref="term-corresponding-elements">corresponding elements</xtermref>.
                </p>
  
                <p>
!                 If an typed dimension rule contains a <elt>formula:omit</elt>
!                 element then the dimension identified 
!                 by the typed dimension rule <rfc2119>MUST NOT</rfc2119> 
!                 have a value for the output fact.
                </p>
  
!               <example role="nonNormativeExample" id="example-typed-dimension-rules">
!                 <caption>Typed dimension rules</caption>
                  <table>
                    <thead>
                      <tr>
!                       <th>Typed dimension rule</th>
!                       <th>Explanation</th>
                      </tr>
                    </thead>
                    <tbody xmlns:eg="http://example.com/" xmlns:xbrldi="http://xbrl.org/2006/xbrldi">
!   
                      <tr>
                        <td>
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:typedDimension dimension="eg:statusDim">
!                             <formula:value>
!                               <audited/>
!                             </formula:value>
!                           </formula:typedDimension>
                          </verbatim>
                        </td>
                        <td>
!                         Add typed dimension value for dimension <val>eg:statusDim</val> 
!                         with content <val><verbatim><audited/></verbatim></val>.
!                       </td>
!                     </tr>
!   
!                     <tr>
!                       <td>
                          <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:typedDimension dimension="eg:statusDim"/>
                          </verbatim>
                        </td>
                        <td>
!                         Add dimension <val>eg:statusDim</val> with a value  
!                         given by the SAV.
!                       </td>
!                     </tr>
!   
!                     <tr>
!                       <td>
!                         <verbatim xmlns:formula="http://xbrl.org/2008/formula">
!                           <formula:typedDimension dimension="eg:statusDim">
!                             <formula:omit/>
!                           </formula:typedDimension>
                          </verbatim>
                        </td>
+                       <td>
+                         Do not report a value for the <val>eg:statusDim</val> 
+                         dimension for the output fact.
+                       </td>
                      </tr>
+   
+                   </tbody>
+                 </table>
+               </example>
+ 
+             </section><!-- Typed dimension rules -->
  
+           </section><!-- Dimension rules -->
+ 
+           <section id="sec-occ-rules">
+             <head>Open context component rules</head>
+   
+             <p>
+               <definition id="term-occ-rule" term="OCC rule">
+                 An <term>OCC rule</term>, is an aspect rule that addresses an 
+                 <xtermref bibref="VARIABLES" idref="term-occ-aspect">OCC aspect</xtermref> 
+                 and that is in the 
+                 <xtermref bibref="XMLSCHEMA-STRUCTURES" idref="key-equivalenceClass">substitution group</xtermref> 
+                 for the 
+                 <xmlref ref="xml-abstract-occ-aspect"><elt>formula:abstract.occ.aspect</elt></xmlref> element.
+               </definition>
+             </p>
+   
+             <p>
+               <definition id="term-output-occ" term="output OCC">
+                 An <term>output OCC</term>, is the value of an OCC for the 
+                 <termref ref="term-output-fact">output fact</termref>.
+               </definition>
+             </p>
+   
+             <p>
+               <definition id="term-segment-occ-rule" term="segment OCC rule">
+                 A <term>segment OCC rule</term> is an OCC rule 
+                 with an <att>occ</att> attribute equal to <val>segment</val>.
+               </definition>
+             </p>
+   
+             
+             <p>
+               <definition id="term-scenario-occ-rule" term="scenario OCC rule">
+                 A <term>scenario OCC rule</term> is an OCC rule 
+                 with an <att>occ</att> attribute equal to <val>scenario</val>.
+               </definition>
+             </p>
+   
+             <p>
+               A formula <rfc2119>MAY</rfc2119> contain multiple 
+               <termref ref="term-segment-occ-rule">segment OCC rules</termref> 
+               and multiple
+               <termref ref="term-scenario-occ-rule">scenario OCC rules</termref>.  
+             </p>
+   
+              <p>
+               <definition id="term-segment-occ-rule-set" term="segment OCC rule set">
+                 The <term>segment OCC rule set</term> for a formula is the set of               
+                 <termref ref="term-segment-occ-rule">segment OCC rules</termref>
+                 that the formula contains.  They are evaluated together to 
+                 determine output OCC for the segment.
+               </definition>
+             </p>
+   
+             <p>
+               <definition id="term-scenario-occ-rule-set" term="scenario OCC rule set">
+                 The <term>scenario OCC rule set</term> for a formula is the set of               
+                 <termref ref="term-scenario-occ-rule">scenario OCC rules</termref>
+                 that the formula contains.  They are evaluated together to 
+                 determine output scenario OCCs.               
+               </definition>
+             </p>
+   
+             <p>
+               <definition id="term-occ-rule-set" term="OCC rule set">
+                 An <term>OCC rule set</term> is general term for a segment OCC rule set or a
+                 scenario OCC rule set.
+               </definition>
+             </p>
+   
+             <p>
+               The OCC rules in a 
+               <termref ref="term-occ-rule-set">OCC rule set</termref><nbsp/><rfc2119>MUST</rfc2119> 
+               be processed in document order to obtain the output OCC value.
+             </p>
+   
+             <p>
+               <definition id="term-original-occ-value" term="original OCC value">
+                 The <term>original OCC value</term> for an OCC rule is the OCC value 
+                 that is modified by application of that 
+                 <termref ref="term-occ-rule">OCC rule</termref>.
+               </definition>
+             </p>
+             
+             <p>              
+               <definition id="term-subsequent-occ" term="subsequent OCC">
+                 The <term>subsequent OCC</term> for an OCC rule 
+                 is the OCC value resulting from application of that
+                 <termref ref="term-occ-rule">OCC rule</termref> 
+                 to its original OCC.
+               </definition>
+             </p>
+   
+             <p>
+               <error id="error-bad-subsequent-occ-value">
+                 Error code <errorcode code="badSubsequentOCCValue"/>
+                 <rfc2119>MUST</rfc2119> be thrown if a subsequent OCC value contains
+                 information that implies a value for any other aspect in the aspect model
+                 of the formula than the OCC aspect whose value is being determined by
+                 the OCC rule being processed.
+               </error>
+             </p>
+             
+             <p>
+               Thus, for example, <errorref ref="error-bad-subsequent-occ-value"/> would be thrown for
+               a formula with a dimensional aspect model if an OCC rule produced a subsequent OCC value 
+               that included content that implies a 
+               <xtermref bibref="VARIABLES" idref="term-dimension-aspect">dimension aspect</xtermref> value.
+             </p>
+   
+             <p>
+               The subsequent OCC value for one 
+               <termref ref="term-occ-rule">OCC rule</termref> 
+               is the original OCC value for the OCC rule that is processed next.
+             </p>
+   
+             <p>
+               The RAV specified by an 
+               <termref ref="term-occ-rule-set">OCC rule set</termref>
+               is the subsequent OCC value for the last OCC rule to be processed in that set.
+             </p>
+         
+             <p>
+               The following sub-sections define the syntax and semantics
+               for specific OCC rules.  Extension specifications 
+               <rfc2119>MAY</rfc2119> define additional OCC rules.
+             </p>
+   
+             <section id="sec-empty-occ-rules">
+               <head>Empty OCC rules</head>
+   
+               <p>
+                 <definition id="term-empty-occ-rule" term="empty OCC rule">
+                   An <term>empty OCC rule</term> is an OCC rule that is
+                   expressed by the 
+                   <xmlref ref="xml-occ-empty"><elt>formula:occEmpty</elt></xmlref> element.
+                 </definition>
+               </p>
+   
+               <p>
+                 An empty OCC rule produces a subsequent OCC value that
+                 is an empty sequence of aspect values regardless of the
+                 original OCC value. It is generally used as the first
+                 OCC rule in an OCC rule set.
+               </p>
+   
+             </section><!-- empty OCC rules -->
+   
+             <section id="sec-fragment-occ-rules">
+               <head>Fragment OCC rules</head>
+   
+               <p>
+                 <definition id="term-fragment-occ-rule" term="fragment OCC rule">
+                   A <term>fragment OCC rule</term> is an OCC rule that is
+                   expressed by the 
+                   <xmlref ref="xml-occ-fragments"><elt>formula:occFragments</elt></xmlref> element.
+                 </definition>
+               </p>
+   
+               <p>
+                 A fragment OCC rule extends an original OCC value by appending its child elements (and their 
+                 descendants, if any) to obtain a subsequent OCC value.
+               </p>
+   
+               <example role="nonNormativeExample" id="example-fragment-occ-rules">
+                 <caption>Fragment OCC rules</caption>
+                 <table>
+                   <thead>
+                     <tr>
+                       <th>Original OCC value</th>
+                       <th>Child elements of the fragment OCC rule</th>
+                       <th>
+                         Subsequent OCC value
+                       </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>
                    </tbody>
                  </table>
!               </example>  
!   
!             </section><!-- Fragment OCC rules -->
!   
!             <section id="sec-xpath-occ-rules">
!               <head>XPath OCC rules</head>
!   
!               <p>
!                 <definition id="term-xpath-occ-rule" term="XPath OCC rule">
!                   An <term>XPath OCC rule</term> is an OCC rule that is
!                   expressed by the 
!                   <xmlref ref="xml-occ-xpath"><elt>formula:occXPath</elt></xmlref> element.
!                 </definition>
!               </p>
!   
!               <p>
!                 An XPath OCC 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 value to obtain a subsequent OCC value.
!               </p>
  
!               <p>
!                 The context item for evaluation of the XPath expression contained
!                 by an XPath OCC rule is the <elt>xbrli:xbrl</elt> element of
!                 the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
!               </p>
!   
!               <p>
!                 <error id="error-wrong-xpath-result-for-xpath-rule">
!                   Error code <errorcode code="wrongXpathResultForXpathRule"/>
!                   <rfc2119>MUST</rfc2119> be thrown if the result of evaluating the
!                   XPath expression in an XPath rule is not a sequence of element nodes.
!                 </error>
!               </p>
  
+             </section><!-- XPath OCC rules -->
+   
+           </section><!-- OCC rules -->
+   
            <section id="sec-unit-rules">
              <head>Unit rules</head>
    
***************
*** 1860,1866 ****
                  <xmlref ref="xml-entity-identifier"><elt>formula:unit</elt></xmlref> element.
                </definition>
              </p>
! 
              <p>
                Unit rules specify the unit RAV for numeric output facts in terms of zero or
                more modifications to their SAV.  The modifications are expressed by sub-rules
--- 1870,1876 ----
                  <xmlref ref="xml-entity-identifier"><elt>formula:unit</elt></xmlref> element.
                </definition>
              </p>
!   
              <p>
                Unit rules specify the unit RAV for numeric output facts in terms of zero or
                more modifications to their SAV.  The modifications are expressed by sub-rules
***************
*** 1873,1879 ****
                as usual. If a unit rule contains an <att>augment</att> attribute with a 
                value of <val>false</val> then the SAV is not defined.
              </p>
! 
              <p>
                <error id="error-missing-sav-for-unit-rule">
                  Error code <errorcode code="missingSAVForUnitRule"/><nbsp/>
--- 1883,1889 ----
                as usual. If a unit rule contains an <att>augment</att> attribute with a 
                value of <val>false</val> then the SAV is not defined.
              </p>
!   
              <p>
                <error id="error-missing-sav-for-unit-rule">
                  Error code <errorcode code="missingSAVForUnitRule"/><nbsp/>
***************
*** 1881,1891 ****
                  does not have any child elements and does not have a SAV.
                </error>
              </p>
! 
              <p>
                For formulae that need the output unit 
                to vary in one or more respects from units in the 
!               target XBRL instance, unit rules use child elements that express 
                multiplication sub-rules (See <sectionref ref="sec-unit-multiplication-rules"/>)
                and 
                unit division sub-rules (See <sectionref ref="sec-unit-division-rules"/>).
--- 1891,1901 ----
                  does not have any child elements and does not have a SAV.
                </error>
              </p>
!   
              <p>
                For formulae that need the output unit 
                to vary in one or more respects from units in the 
!               <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>, unit rules use child elements that express 
                multiplication sub-rules (See <sectionref ref="sec-unit-multiplication-rules"/>)
                and 
                unit division sub-rules (See <sectionref ref="sec-unit-division-rules"/>).
***************
*** 1922,1935 ****
                  the collection of denominator measures.
                </item>
              </olist>
! 
              <p>
                If the collection of numerator measures and the collection of denominator
                measures are both empty, then the RAV <rfc2119>MUST</rfc2119> be a single 
                numerator measure with the value:
!               <xtermref bibref="XBRL" idref="_Toc156209168">xbrli:pure</xtermref>.
              </p>
! 
              <p>
                Otherwise, the RAV for the unit rule <rfc2119>MUST</rfc2119>
                have a measure in its numerator for each
--- 1932,1945 ----
                  the collection of denominator measures.
                </item>
              </olist>
!   
              <p>
                If the collection of numerator measures and the collection of denominator
                measures are both empty, then the RAV <rfc2119>MUST</rfc2119> be a single 
                numerator measure with the value:
!               <xtermref bibref="XBRL" idref="_4.8.2">xbrli:pure</xtermref>.
              </p>
!   
              <p>
                Otherwise, the RAV for the unit rule <rfc2119>MUST</rfc2119>
                have a measure in its numerator for each
***************
*** 1938,1944 ****
                each measure in the combined collection of denominator measures, 
                also obtained from the steps given above.
              </p>
! 
              <example role="nonNormativeExample" id="example-unit-rules">
                <caption>Unit rules</caption>
                <table>
--- 1948,1954 ----
                each measure in the combined collection of denominator measures, 
                also obtained from the steps given above.
              </p>
!   
              <example role="nonNormativeExample" id="example-unit-rules">
                <caption>Unit rules</caption>
                <table>
***************
*** 1978,1984 ****
                      <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>
--- 1988,1994 ----
                      <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>
***************
*** 1989,1995 ****
                      <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>
--- 1999,2005 ----
                      <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>
***************
*** 2000,2006 ****
                      <td><val>iso4217:USD</val></td>
                      <td></td>
                    </tr>
! 
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
--- 2010,2016 ----
                      <td><val>iso4217:USD</val></td>
                      <td></td>
                    </tr>
!   
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
***************
*** 2011,2017 ****
                      <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
! 
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
--- 2021,2027 ----
                      <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
!   
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
***************
*** 2025,2031 ****
                      <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
! 
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
--- 2035,2041 ----
                      <td><val>xbrli:shares</val></td>
                      <td></td>
                    </tr>
!   
                    <tr>
                      <td><val>iso4217:EUR</val></td>
                      <td></td>
***************
*** 2039,2049 ****
                      <td><val>xbrli:shares</val></td>
                      <td><val>iso4217:USD</val></td>
                    </tr>
! 
                  </tbody>
                </table>
              </example>
! 
              <section id="sec-unit-multiplication-rules">
                <head>Unit multiplication rules</head>
    
--- 2049,2059 ----
                      <td><val>xbrli:shares</val></td>
                      <td><val>iso4217:USD</val></td>
                    </tr>
!   
                  </tbody>
                </table>
              </example>
!   
              <section id="sec-unit-multiplication-rules">
                <head>Unit multiplication rules</head>
    
***************
*** 2100,2106 ****
                    child element of a <elt>formula:unit</elt> element.
                  </definition>
                </p>
! 
                <p>
                  Each unit division rule defines a collection of
                  one or more measures to add to the denominator measures of
--- 2110,2116 ----
                    child element of a <elt>formula:unit</elt> element.
                  </definition>
                </p>
!   
                <p>
                  Each unit division rule defines a collection of
                  one or more measures to add to the denominator measures of
***************
*** 2154,2171 ****
          </termref>. 
          The processing model is defined for a single evaluation of 
          a single formula. Given a 
!         <xtermref bibref="VARIABLES" idref="term-target-xbrl-instance">target XBRL instance</xtermref>,
          it <rfc2119>MAY</rfc2119> be
          possible to evaluate a formula in several different ways,
          using different combinations of information from that 
!         XBRL instance.
        </p>
        
        <p>
          <definition id="term-formula-input" term="formula input">
          The input to a formula, referred to as the 
          <term>formula input</term> is the 
!         target XBRL instance and values, supplied by the
          processing application, for 
          any of the parameters that a formula is dependent on.
          </definition>
--- 2164,2181 ----
          </termref>. 
          The processing model is defined for a single evaluation of 
          a single formula. Given a 
!         <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>,
          it <rfc2119>MAY</rfc2119> be
          possible to evaluate a formula in several different ways,
          using different combinations of information from that 
!         <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
        </p>
        
        <p>
          <definition id="term-formula-input" term="formula input">
          The input to a formula, referred to as the 
          <term>formula input</term> is the 
!         <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> and values, supplied by the
          processing application, for 
          any of the parameters that a formula is dependent on.
          </definition>
***************
*** 2184,2190 ****
          rules for constructing the the concept, context, unit and
          precision of that fact <rfc2119>MAY</rfc2119> also be evaluated
          to construct the information necessary to report the fact 
!         in an output XBRL instance.
        </p>
  
      </section>
--- 2194,2200 ----
          rules for constructing the the concept, context, unit and
          precision of that fact <rfc2119>MAY</rfc2119> also be evaluated
          to construct the information necessary to report the fact 
!         in an <termref ref="term-output-xbrl-instance">output XBRL instance</termref>.
        </p>
  
      </section>
***************
*** 2244,2250 ****
          day="23" month="04" year="2007">
            <p>
              Added text to the formula processing model to clarify that a
!             formula may be evaluated against an XBRL instance to produce
              more than one output fact.
            </p>
            <p>
--- 2254,2260 ----
          day="23" month="04" year="2007">
            <p>
              Added text to the formula processing model to clarify that a
!             formula may be evaluated against an <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> to produce
              more than one output fact.
            </p>
            <p>
***************
*** 2392,2398 ****
            </p>
            <p>
              Defined the context node for evaluation of formula preconditions
!             as the <elt>xbrli:xbrl</elt> element of the target XBRL instance.
            </p>
            <p>
              Included parameters as yet another kind of resource that can be
--- 2402,2408 ----
            </p>
            <p>
              Defined the context node for evaluation of formula preconditions
!             as the <elt>xbrli:xbrl</elt> element of the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref>.
            </p>
            <p>
              Included parameters as yet another kind of resource that can be
***************
*** 2403,2409 ****
          <revision ref="person-geoff"
          day="13" month="11" year="2007">
            <p>
!             Moved the definition of the target XBRL instance to the variable
              specification.
            </p>
            <p>
--- 2413,2419 ----
          <revision ref="person-geoff"
          day="13" month="11" year="2007">
            <p>
!             Moved the definition of the <xtermref bibref="VARIABLES" idref="term-input-xbrl-instance">input XBRL instance</xtermref> to the variable
              specification.
            </p>
            <p>
***************
*** 2434,2441 ****
          <revision ref="person-geoff"
          day="20" month="11" year="2007">
            <p>
!             Begun work on the segment and scenario rules to make them
!             more capable with respect to explicit dimensions.
            </p>
          </revision>
  
--- 2444,2451 ----
          <revision ref="person-geoff"
          day="20" month="11" year="2007">
            <p>
!             Begun work on the segment OCC rules and scenario OCC rules 
!             to make them more capable with respect to explicit dimensions.
            </p>
          </revision>
  
***************
*** 2443,2449 ****
          day="21" month="11" year="2007">
            <p>
              Finished drafting of the OCC rules that cover both
!             segment and scenario rules.
            </p>
          </revision>
  
--- 2453,2459 ----
          day="21" month="11" year="2007">
            <p>
              Finished drafting of the OCC rules that cover both
!             segment OCC rules and scenario OCC rules.
            </p>
          </revision>
  
***************
*** 2571,2577 ****
          <revision ref="person-victor"
          day="08" month="12" year="2007">
            <p>
!           	Corrected some typos and added comments.
            </p>
          </revision>
  
--- 2581,2587 ----
          <revision ref="person-victor"
          day="08" month="12" year="2007">
            <p>
!                 Corrected some typos and added comments.
            </p>
          </revision>
  
***************
*** 2740,2746 ****
              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>
--- 2750,2756 ----
              for evaluation of such XPath expressions.
            </p>
            <p>
!             Added explicit markup for the OCC rules in the
              example showing how they work.
            </p>
            <p>
***************
*** 2791,2797 ****
              Fixed broken hyperlinks.
            </p>
          </revision>        
!         
        </revisions>
  
      </section>
--- 2801,2964 ----
              Fixed broken hyperlinks.
            </p>
          </revision>        
! 
!         <revision ref="person-geoff" day="01" month="04" year="2008">
!           <p>
!             Fixed the first period rule example to get the time 
!             and date adjustments correct for instants.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="07" month="04" year="2008">
!           <p>
!             Added a paragraph clarifying that a source in a formula can be
!             the source defined by a <att>source</att> attribute on a 
!             <elt>formula:formula</elt> element or on any of its descendant 
!             elements.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="23" month="04" year="2008">
!           <p>
!             Clarified that when a set of output OCC content has been 
!             identified by XPath or Fragment OCC rules and that content 
!             contains XDT dimensions, those dimensions need to be taken 
!             into account when determining what XDT dimension output 
!             aspect values to determine from source aspect values.
!             This addresses an ambiguity identified by 
!             <personref ref="person-andy"/>.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="07" month="08" year="2008">
!           <p>
!             Improved cross references to terminology used in the OCC rules section.
!           </p>
!           <p>
!             Replaced all usages of "OCC aspect rule" with the defined term: "OCC rule".
!           </p>
!           <p>
!             Restructured the definition of segment and scenario OCC rule sets to put the
!             terms being defined first rather than last in the definitions.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="12" month="08" year="2008">
!           <p>
!             Corrected the interpretation of omitted segments and
!             scenarios to ensure appropriate recognition of default XDT
!             dimension values.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="14" month="08" year="2008">
!           <p>
!             Corrected previous editing errors made in relation to the duplicate definition of the 
!             scenario OCC rule set.
!           </p>
!           <p>
!             Changed defined terminology for OCC rules to make each rule have a name following the
!             structure xxx OCC rule rather than OCC xxx rule.  Made this consistent throughout the 
!             text of the specification.
!           </p>
!           <p>
!             Removed the augment attribute on OCC rules, replacing it with an empty OCC rule that
!             converts any original OCC into an empty subsequent OCC.
!           </p>
!         </revision>     
! 
!         <revision ref="person-geoff" day="25" month="08" year="2008">
!           <p>
!             Redesigned OCC rules to only operate on the content
!             remaining in segment and scenario elements after the content
!             relating to other aspects in the relevant aspect model have
!             been removed. The dimension aspect rules have been changed
!             accordingly so that they are not OCC rules. This
!             simplification makes it easier to work with dimension
!             aspects (now that we do not have segment and scenario
!             dimension aspects).
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="04" month="09" year="2008">
!           <p>
!             Changed the base type for the segment/scenario enumeration
!             to xs:token instead of xs:string to achieve consistency with
!             other enumeration definitions in the normative schemas.  This
!             was suggested by <personref ref="person-roland"/>.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="08" month="09" year="2008">
!           <p>
!             Added in typed dimension rules to enable formula control of output typed dimension
!             values.  This was required, as suggested by <personref ref="person-andy"/>, 
!             now that OCC rules and dimension rules are separate.  The element name for the
!             explicit dimension rule has changed accordingly.
!           </p>
!           <p>
!             Defined a new error code to correspond to the existing normative constraints on the legal
!             results obtaining from evaluating the XPath expression in an XPath OCC rule.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="24" month="10" year="2008">
!           <p>
!             Deleted the <val>cannotOmitDimensionValue</val> error code because such errors
!             are more consistently handled by XDT validation of the output from formula processing.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="14" month="11" year="2008">
!           <p>
!             Made the abstract dimension aspect element really abstract.
!           </p>
!           <p>
!             Corrected references to the XDT specification to use the correct ID.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="17" month="11" year="2008">
!           <p>
!             Made the <att>source</att> attribute have type <code>variable:QName</code>
!             because it contains variable name QNames that do not resolve according to the
!             rules used for QNames with data type xs:QName. This change was suggested by 
!             <personref ref="person-herm"/>.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="15" month="12" year="2008">
!           <p>
!             Updated references to the latest errata-corrected version of the XBRL 2.1 specification.
!           </p>
!         </revision>
! 
!         <revision ref="person-geoff" day="19" month="03" year="2009">
!           <p>
!             Corrected the reference to the target XBRL instance instead of the output XBRL instance
!             in the explanation of the default location aspect rule.
!           </p>
!           <p>
!             Changed the term "target XBRL instance" to "input XBRL instance".
!             Ensured that all usages of the terms input XBRL instance and output
!             XBRL instance reference the term definition.
!           </p>
!           <p>
!             Added a definition of an output XBRL instance to tie into the definition 
!             of an input XBRL instance.
!           </p>
!           <p>
!             The wording of the specification has been altered to make clear 
!             that the operation of the formula:value style of typed dimension 
!             aspect rule operates on the basis of typed-dimension aspect matching 
!             rather than a notion of s-equality.           
!           </p>
!           <p>
!             Tightened the XML Schema constraint for the content of formula:value elements in line
!             with the wording of the specification.
!           </p>
!         </revision>
! 
        </revisions>
  
      </section>
