<?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: basic-form.rng 42702 2004-03-13 12:34:18Z gregor $ -->

    
<!-- Simplified Forms Module -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">

<define name="form">
  <element name="form">
    <ref name="form.attlist"/>
    <!-- Don't use Block.model, because this gets redefined by the
	 legacy module. -->
    <oneOrMore>
      <ref name="Block.class"/>
    </oneOrMore>
  </element>
</define>

<define name="form.attlist">
  <ref name="Common.attrib"/>
  <attribute name="action">
    <ref name="URI.datatype"/>
  </attribute>
  <optional>
    <attribute name="method">
      <choice>
	<value>get</value>
	<value>post</value>
      </choice>
    </attribute>
  </optional>
  <optional>
    <attribute name="enctype">
      <ref name="ContentType.datatype"/>
    </attribute>
  </optional>
</define>

<define name="label">
  <element name="label">
    <ref name="label.attlist"/>
    <ref name="Inline.model"/>
  </element>
</define>

<define name="label.attlist">
  <ref name="Common.attrib"/>
  <optional>
    <attribute name="for">
      <ref name="IDREF.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="accesskey">
      <ref name="Character.datatype"/>
    </attribute>
  </optional>
</define>

<define name="input">
  <element name="input">
    <ref name="input.attlist"/>
  </element>
</define>

<define name="input.attlist">
  <ref name="Common.attrib"/>
  <optional>
    <attribute name="type">
      <ref name="InputType.class"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="name"/>
  </optional>
  <optional>
    <attribute name="value"/>
  </optional>
  <optional>
    <attribute name="checked">
      <value>checked</value>
    </attribute>
  </optional>
  <optional>
    <attribute name="size"/>
  </optional>
  <optional>
    <attribute name="maxlength">
      <ref name="Number.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="src">
       <ref name="URI.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="accesskey">
      <ref name="Character.datatype"/>
    </attribute>
  </optional>
</define>

<define name="InputType.class">
  <choice>
    <value>text</value>
    <value>password</value>
    <value>checkbox</value>
    <value>radio</value>
    <value>submit</value>
    <value>reset</value>
    <value>hidden</value>
  </choice>
</define>

<define name="select">
  <element name="select">
    <ref name="select.attlist"/>
    <oneOrMore>
      <ref name="option"/>
    </oneOrMore>
  </element>
</define>

<define name="select.attlist">
  <ref name="Common.attrib"/>
  <optional>
    <attribute name="name"/>
  </optional>
  <optional>
    <attribute name="size">
      <ref name="Number.datatype"/>
    </attribute>
  </optional>
  <optional>
    <attribute name="multiple">
      <value>multiple</value>
    </attribute>
  </optional>
</define>
   
<define name="option">
  <element name="option">
    <ref name="Common.attrib"/>
    <optional>
      <attribute name="selected">
        <value>selected</value>
      </attribute>
    </optional>
    <optional>
      <attribute name="value"/>
    </optional>
    <text/>
  </element>
</define>

<define name="textarea">
  <element name="textarea">
    <ref name="textarea.attlist"/>
  </element>
</define>

<define name="textarea.attlist">
  <ref name="Common.attrib"/>
  <optional>
    <attribute name="name"/>
  </optional>
  <attribute name="rows">
    <ref name="Number.datatype"/>
  </attribute>
  <attribute name="cols">
    <ref name="Number.datatype"/>
  </attribute>
  <optional>
    <attribute name="accesskey">
      <ref name="Character.datatype"/>
    </attribute>
  </optional>
  <text/>
</define>

<define name="Form.class">
  <ref name="form"/>
</define>

<define name="Formctrl.class">
  <choice>
    <ref name="input"/>
    <ref name="label"/>
    <ref name="select"/>
    <ref name="textarea"/>
  </choice>
</define>

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

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

</grammar>