Overview

XML Forms is a collection of Drupal modules for creating and updating XML metadata associated with repository objects though Drupal forms. The Islandora XML Form Builder (XML_Forms modules) makes it possible for users to create, copy, and edit ingest forms, and to affiliate them with Content Models in the repository.

The following modules are installed as part of the XML Forms package.

Islandora XML Form API

The core of the library this module provides functions for processing XML files through forms.

In essence this module models

Islandora XML Schema API

This module provides functions for processing Schema files. It's used to determine where to insert XML Nodes, and how to validate them.

Islandora XML Form Elements

This module defines custom Drupal Form Elements along with AHAH callbacks.

Elements

tabs/tabpanels

These Form Elements are used to model XML Nodes that can repeat and contain other XML Nodes.

Example:

<cntaddr> <!-- tabpanel one -->

<addrtype>undefined</addrtype>

<city>undefined</city>

<!-- ... -->

</cntaddr>

<cntaddr> <!-- tabpanel two -->

<addrtype>one</addrtype>

<!-- ... -->

</cntaddr>

tags/tag

These Form Elements are used to model XML Nodes that can repeat and contain only character data.

Example:

<origin>test</origin> <!-- tag #1 --> <origin>undefined</origin> <!-- tag #2 --> <origin>testing</origin> <!-- tag #3 -->

Dependencies

 

Downloads

Release Notes and Downloads

Installation

Install as usual, see this for further information.

Configuration

Create and import forms at Administration » Form Builder (admin/islandora/xmlform).

You can also set whether a default DC XSLT will be enforced.

FAQ

Q. Can I convert an existing field to any form element type listed in the "Type" options under the "Common Form Controls" tab (or create new form elements using any form element type)?

A. No.

The following element types are not supported for full CRUD (create/read/update/delete) operations:

Additionally, some form element types must be nested within another type.  For example, tabpanel must be nested within tab.