# Introduction

## What is this?

This is the tutorial for Orbeon Forms's XForms features. It is aimed at programmers who either:

* want to make changes to the Orbeon Forms source code, which relies in part on XForms
* use [Form Builder](https://doc.orbeon.com/form-builder/) but want to add some custom processing to those forms&#x20;
* want to write their own XForms applications, as opposed to users who want to use [Form Builder](https://doc.orbeon.com/form-builder/)

If you have questions, issues or suggestions related to this tutorial, please send a message to the [Orbeon forum](http://discuss.orbeon.com/).

## Prerequisites

To go through this tutorial, you don't need much: any reasonably modern computer on which you can install Java (7 or 8 are current versions as of November 2016). You should be comfortable with installing new software on your computer, including uncompressing zip or gzip archives. You will also have to edit XML files. If you are familiar with HTML, this should not be a problem.

You also need a reasonably recent web browser. We recommend one of the following browsers:

* Google Chrome
* Safari
* Mozilla Firefox
* Internet Explorer 10, 11, or Microsoft Edge

You will *not* have to:

* Write any Java code or any scripting language code.
* Use a compiler or other complicated build tool.
* Install browser plugins or any other client-side software, besides your regular web browser!

## Principles of Orbeon Forms

Orbeon Forms follows a few principles:

* **More standards.** You use standards whenever possible. For example, Orbeon Forms applications are created using XForms and XHTML, which are W3C standards.
* **Less scripting.** You write most applications without writing Java, JavaScript, or other scripting code. (But you can if you really want.)
* **Instant gratification.** You get instant gratification by making changes to your application and just reloading your page in your web browser. (You don't need to "compile" or "build".)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.orbeon.com/xforms/xforms-tutorial/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
