<?xml version="1.0" encoding="iso-8859-1"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- $Id: script.rng 42702 2004-03-13 12:34:18Z gregor $ -->
    
<!-- Script Module -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">

<define name="script">
  <element name="script">
    <ref name="script.attlist"/>
    <text/>
  </element>
</define>

<define name="script.attlist">
  <optional>
    <attribute name="charset">
      <ref name="Charset.datatype"/>
    </attribute>
  </optional>
  <attribute name="type">
    <ref name="ContentType.datatype"/>
  </attribute>
  <optional>
    <attribute name="src">
      <ref name="URI.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="defer">
      <value>defer</value>
    </attribute>
  </optional>
  <optional>
    <attribute name="xml:space">
      <value>preserve</value>
    </attribute>
  </optional>
</define>

<define name="noscript">
  <element name="noscript">
    <ref name="noscript.attlist"/>
    <ref name="Block.model"/>
  </element>
</define>

<define name="noscript.attlist">
  <ref name="Common.attrib"/>
</define>

<define name="head.content" combine="interleave">
  <zeroOrMore>
    <ref name="script"/>
  </zeroOrMore>
</define>

<define name="Script.class">
  <choice>
    <ref name="noscript"/>
    <ref name="script"/>
  </choice>
</define>

<define name="Inline.class" combine="choice">
  <ref name="Script.class"/>
</define>

<define name="Block.class" combine="choice">
  <ref name="Script.class"/>
</define>

</grammar>