XML Schema Documentation

Table of Contents

top

Schema Document Properties

Target Namespace http://xml.fiforms.org/FiForms/
Version 1.0
Language en
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations have no namespace.
  • By default, local attribute declarations have no namespace.
Documentation This is the XML Schema for XML FiForm definitions. Please use this namespace for fiform elements: http://xml.fiforms.org/FiForms/
More information at: http://xml.fiforms.org/FiForms/.

This Schema is distributed with FiForms, a collection of PHP classes designed to facilitate rapid development of web-database software

Copyright (C) 2003-2005 Daniel McFeeters

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
More information at: http://www.gnu.org/copyleft/lesser.html.

The original author of this library can be contacted at the following address:

Daniel McFeeters

182 Baker Rd.

Faubush, KY 42544-6526

email:databases at alltel dot net

You can find out more about FiForms Solutions and download the open-source (LGPL) collection of FiForms PHP Classes from www.fiforms.org
More information at: http://www.fiforms.org.

Declared Namespaces

Prefix Namespace
Default namespace http://xml.fiforms.org/FiForms/
xml http://www.w3.org/XML/1998/namespace
xs http://www.w3.org/2001/XMLSchema
html http://www.w3.org/1999/xhtml
Schema Component Representation
<xs:schema xml:lang="en" targetNamespace="http://xml.fiforms.org/FiForms/" version="1.0">
...
</xs:schema>
top

Global Declarations

Element: code

Name code
Type xs:string
Nillable no
Abstract no
Documentation PHP code executed when the form is viewed. The code does not need to be enclosed in XML processing instructions (i.e. ?php tags)
XML Instance Representation
<code> xs:string </code>
Schema Component Representation
<xs:element name="code" type="xs:string"/>
top

Element: confidentiality

Name confidentiality
Type Locally-defined complex type
Nillable no
Abstract no
XML Instance Representation
<confidentiality
level="low_medium_high [1]"/>
Schema Component Representation
<xs:element name="confidentiality">
<xs:complexType>
<xs:attribute name="level" type="low_medium_high" use="required"/>
</xs:complexType>
</xs:element>
top

Element: connect

Name connect
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Information needed to connect with the database.
XML Instance Representation
<connect
type="database [0..1] ?"
id="xs:integer [1] ?"
server="xs:string [1] ?"
db="xs:string [1] ?"
update="xs:string [0..1] ?"
user="xs:string [0..1] ?"
passwd="xs:string [0..1] ?">
<primaryKey> ... </primaryKey> [0..*] ?
</connect>
Schema Component Representation
<xs:element name="connect">
<xs:complexType>
<xs:sequence>
<xs:element ref="primaryKey" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="type" type="database" default="MySQL" use="optional"/>
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="server" type="xs:string" use="required"/>
<xs:attribute name="db" type="xs:string" use="required"/>
<xs:attribute name="update" type="xs:string" use="optional"/>
<xs:attribute name="user" type="xs:string" use="optional"/>
<xs:attribute name="passwd" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: fiform

Name fiform
Type Locally-defined complex type
Nillable no
Abstract no
Documentation This is the root element of a FiForm definition. Attributes of this element affect the behaviour and appearance of the form and define permissions.
XML Instance Representation
<fiform
window="anySimpleType [0..1] ?"
menubar="yes_no [0..1] ?"
toolbar="yes_no [0..1] ?"
scrollbars="yes_no [0..1] ?"
resizable="yes_no [0..1] ?"
location="yes_no [0..1] ?"
width="xs:integer [0..1] ?"
height="xs:integer [0..1] ?"
ctlPosition="navlink_positions [1] ?"
svctlPosition="svlink_positions [1] ?"
viewsAllowed="allowed_view [1] ?"
defaultView="default_vew [0..1] ?"
allowView="yes_no [0..1] ?"
allowUpdate="yes_no [0..1] ?"
insert="insert_type [0..1] ?"
whichControls="availablecontrols [0..1] ?">
<title> ... </title> [1]
<summary> ... </summary> [1]
<security> ... </security> [0..1]
<connect> ... </connect> [1]
<param> ... </param> [0..*]
<query> ... </query> [0..1]
Start Sequence [0..*]
Start Choice [1]
<code> ... </code> [1]
<iText> ... </iText> [1]
<iROText> ... </iROText> [1]
<iHidden> ... </iHidden> [1]
<iTextArea> ... </iTextArea> [1]
<iDateText> ... </iDateText> [1]
<iDBSelect> ... </iDBSelect> [1]
<iLink> ... </iLink> [1]
<iSubform> ... </iSubform> [1]
<iCustomInput> ... </iCustomInput> [1]
<input> ... </input> [1]
<if> ... </if> [1]
End Choice
End Sequence
<wrapper> ... </wrapper> [0..1]
</fiform>
Schema Component Representation
<xs:element name="fiform">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="summary"/>
<xs:element ref="security" maxOccurs="1" minOccurs="0"/>
<xs:element ref="connect" maxOccurs="1" minOccurs="1"/>
<xs:element ref="param" maxOccurs="unbounded" minOccurs="0"/>
<xs:element ref="query" maxOccurs="1" minOccurs="0"/>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:group ref="controls"/>
</xs:sequence>
<xs:element ref="wrapper" maxOccurs="1" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="windowattributes"/>
<xs:attribute name="ctlPosition" type="navlink_positions" use="required"/>
<xs:attribute name="svctlPosition" type="svlink_positions" use="required"/>
<xs:attribute name="viewsAllowed" type="allowed_view" use="required"/>
<xs:attribute name="defaultView" type="default_vew" default="sheet" use="optional"/>
<xs:attribute name="allowView" type="yes_no" default="yes" use="optional"/>
<xs:attribute name="allowUpdate" type="yes_no" default="yes" use="optional"/>
<xs:attribute name="insert" type="insert_type" default="new"/>
<xs:attribute name="whichControls" type="availablecontrols"/>
</xs:complexType>
</xs:element>
top

Element: generator

Name generator
Type Locally-defined complex type
Nillable no
Abstract no
XML Instance Representation
<generator
href="xs:string [0..1] ?"/>
Schema Component Representation
<xs:element name="generator">
<xs:complexType>
<xs:attribute name="href" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
top

Element: headerTags

Name headerTags
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
XML Instance Representation
<headerTags>
Start Sequence [1..*]
Allow any elements from the following namespace(s): http://www.w3.org/1999/xhtml (skip validation). [1]
End Sequence
</headerTags>
Schema Component Representation
<xs:element name="headerTags">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>
</xs:sequence>
</xs:complexType>
</xs:element>
top

Element: iCustomInput

Name iCustomInput
Type Locally-defined complex type
Nillable no
Abstract no
Documentation FiForm iCustomInput Object. A fully customizable control. The contents of this control will simply be copied into the form, with variable substitutions made in between percent (%) signs.
XML Instance Representation
<iCustomInput
caption="anySimpleType [0..1] ?">
<!-- Mixed content -->
Start Sequence [1..*]
Allow any elements from the following namespace(s): http://www.w3.org/1999/xhtml (skip validation). [1]
End Sequence
</iCustomInput>
Schema Component Representation
<xs:element name="iCustomInput">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>
</xs:sequence>
<xs:attribute name="caption"/>
</xs:complexType>
</xs:element>
top

Element: iDBSelect

Name iDBSelect
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iDBSelect (data bound selection, drop-down box, or radio button group) FiForm object.

Options can be queried from the database by specifing a query in the rowQuery attribute or they can be specified here manually with option elements inside the iDBSelect element.
XML Instance Representation
<iDBSelect
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"
rowQuery="anySimpleType [0..1] ?">
<option> ... </option> [0..*]
</iDBSelect>
Schema Component Representation
<xs:element name="iDBSelect">
<xs:complexType>
<xs:sequence>
<xs:element ref="option" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="inputfields"/>
<xs:attribute name="rowQuery"/>
</xs:complexType>
</xs:element>
top

Element: iDateText

Name iDateText
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iDateText (data-bound date input box) FiForm object.
XML Instance Representation
<iDateText
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"/>
Schema Component Representation
<xs:element name="iDateText">
<xs:complexType>
<xs:attributeGroup ref="inputfields"/>
</xs:complexType>
</xs:element>
top

Element: iHidden

Name iHidden
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iHidden (hidden data-bound text box) FiForm object.
XML Instance Representation
<iHidden
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"/>
Schema Component Representation
<xs:element name="iHidden">
<xs:complexType>
<xs:attributeGroup ref="inputfields"/>
</xs:complexType>
</xs:element>
top

Element: iLink

Name iLink
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Link to a page (iLink FiForm object)
XML Instance Representation
Schema Component Representation
top

Element: iROText

Name iROText
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iROText (read-only database field) FiForm object.

Note that this does not actually create a form object that will be submitted, it simply prints the value of the field in text on the HTML page. This should be combined with iHidden if you want the value submitted on the form, or use iText disabled="disabled" to display the field in a disabled text box.
XML Instance Representation
<iROText
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"/>
Schema Component Representation
<xs:element name="iROText">
<xs:complexType>
<xs:attributeGroup ref="inputfields"/>
</xs:complexType>
</xs:element>
top

Element: iSubform

Name iSubform
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iSubform FiForm object. This displays a separate form in an iframe to show/edit related records.
XML Instance Representation
<iSubform
caption="anySimpleType [0..1] ?"
href="xs:string [1] ?"
view="subviewtype [0..1] ?"
params="xs:string [0..1] ?"
width="anySimpleType [0..1] ?"
height="anySimpleType [0..1] ?"/>
Schema Component Representation
<xs:element name="iSubform">
<xs:complexType>
<xs:attribute name="caption"/>
<xs:attribute name="href" type="xs:string" use="required"/>
<xs:attribute name="view" type="subviewtype" default="normal"/>
<xs:attribute name="params" type="xs:string" use="optional"/>
<xs:attribute name="width"/>
<xs:attribute name="height"/>
</xs:complexType>
</xs:element>
top

Element: iText

Name iText
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iText (data-bound text box) FiForm object.
XML Instance Representation
<iText
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"/>
Schema Component Representation
<xs:element name="iText">
<xs:complexType>
<xs:attributeGroup ref="inputfields"/>
</xs:complexType>
</xs:element>
top

Element: iTextArea

Name iTextArea
Type Locally-defined complex type
Nillable no
Abstract no
Documentation iTextArea (data-bound text area) FiForm object. Equivalant to iText, but uses textarea instead of input
XML Instance Representation
<iTextArea
field="xs:token [1] ?"
caption="xs:string [0..1] ?"
default="anySimpleType [0..1] ?"
onchange="anySimpleType [0..1] ?"
onblur="anySimpleType [0..1] ?"
onfocus="anySimpleType [0..1] ?"
onkeypress="anySimpleType [0..1] ?"
onkeydown="anySimpleType [0..1] ?"
rows="xs:integer [0..1] ?"
cols="xs:integer [0..1] ?"/>
Schema Component Representation
<xs:element name="iTextArea">
<xs:complexType>
<xs:attributeGroup ref="inputfields"/>
<xs:attribute name="rows" type="xs:integer"/>
<xs:attribute name="cols" type="xs:integer"/>
</xs:complexType>
</xs:element>
top

Element: if

Name if
Type ifType
Nillable no
Abstract no
Documentation Construct for conditional definitions. Elements inside this element will be present only if the condition is true.

Note: This schema technically allows elements under "if" that belong in the "connection", "fiforms", or "wrapper" elements. Although this may be technically allowed by the schema, no element is allowed under "if" that would not be allowed if it were outside the "if" element.