<?xml version="1.0" encoding="utf-8"?>
<!-- CSSStyleSheet interface -->

  <interface name="CSSStyleSheet" inherits="stylesheets::StyleSheet"
  id="CSS-CSSStyleSheet" since="DOM Level 2">
    <descr>
    <p>
      The <code>CSSStyleSheet</code> interface is a concrete interface used
      to represent a CSS style sheet i.e., a style sheet whose content type
      is "text/css".
    </p>
    </descr>

    <attribute type="CSSRule" readonly="yes" name="ownerRule" id="CSS-CSSStyleSheet-ownerRule">
     <descr>
     <p>
	If this style sheet comes from an <code>@import</code> rule, the
	<code>ownerRule</code> attribute will contain the
	<code>CSSImportRule</code>. In that case, the <code>ownerNode</code>
	attribute in the <code>StyleSheet</code> interface will be
	<code>null</code>. If the style sheet comes from an element or a
	processing instruction, the <code>ownerRule</code> attribute will be
	<code>null</code> and the <code>ownerNode</code> attribute will contain 
	the <code>Node</code>.
     </p>
     </descr>
    </attribute>

    <attribute type="CSSRuleList" readonly="yes" name="cssRules" id="CSS-CSSStyleSheet-cssRules">
     <descr>
     <p>
       The list of all CSS rules contained within the style sheet.
       This includes both <xspecref href="&css2;/syndata.html#q8">rule sets</xspecref> and 
       <xspecref href="&css2;/syndata.html#at-rules">at-rules</xspecref>.
     </p>
     </descr>
    </attribute>

    <method name="insertRule" id="CSS-CSSStyleSheet-insertRule">
     <descr>
     <p>
       Used to insert a new rule into the style sheet. The new rule now
       becomes part of the cascade.
     </p>
     </descr>
     <parameters>
      <param name="rule" type="DOMString" attr="in">
	<descr>
         <p>
           The parsable text representing the rule. For rule sets
           this contains both the selector and the style declaration.
           For at-rules, this specifies both the at-identifier and the
           rule content.
         </p>
        </descr>
      </param>
      <param name="index" type="unsigned long" attr="in">
	<descr>
          <p> 
           The index within the style sheet's rule list of the rule 
           before which to insert the specified rule. If the 
           specified index is equal to the length of the style sheet's rule
           collection, the rule will be added to the end of the style sheet.
          </p>
        </descr>
      </param>
     </parameters>
     <returns type="unsigned long">
      <descr>
        <p>
          The index within the style sheet's rule collection of the newly
          inserted rule.
        </p>
      </descr>
     </returns>
     <raises>
      <exception name="DOMException">
        <descr>
          <p>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted
             at the specified index e.g. if an <code>@import</code> rule
             is inserted after a standard rule set or other at-rule.</p>
          <p>INDEX_SIZE_ERR: Raised if the specified index is not a valid
             insertion point.</p>
	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
	    readonly.</p>
          <p>SYNTAX_ERR: Raised if the specified rule has a syntax error 
             and is unparsable.</p>
        </descr>  
      </exception>       
     </raises>
    </method>

    <method name="deleteRule" id="CSS-CSSStyleSheet-deleteRule">
     <descr>
     <p>
       Used to delete a rule from the style sheet.
     </p>
     </descr>
     <parameters>
      <param name="index" type="unsigned long" attr="in">
	<descr>
          <p>
           The index within the style sheet's rule list of the rule
           to remove.
          </p>
        </descr>
      </param>
     </parameters>
     <returns type="void">
       <descr><p></p></descr>
     </returns>
     <raises>
      <exception name="DOMException">
        <descr>
          <p>INDEX_SIZE_ERR: Raised if the specified index does not correspond
             to a rule in the style sheet's rule list.</p>
	  <p>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
	    readonly.</p>
        </descr>  
      </exception>
     </raises>
    </method>

  </interface>
