<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 1999-2004 The Apache Software Foundation

  Licensed 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: 1form.xml 55543 2004-10-26 00:14:59Z gregor $ -->

<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">

<document> 

<header> 
    <title>HTML One Form Editor</title>
     
     
     
</header> 
<body> 

<section>
<title>Integration</title>
<p>In order to make an XML document editable by the One Form Editor, one needs to add a menu item as follows:</p>
<source>
<![CDATA[
  <menus>
    <menu name="File" label="File">
      <block>
        <item uc:usecase="1formedit" href="?lenya.step=open">Edit&#160;with&#160;one&#160;Form</item>
        ...
]]>
</source>
<p>
Note that the filesystem path is generated by the path mapper which is configured within <code>pub-id/config/publication.xconf</code>.
</p>
<p>
In order to get the redirect right after closing and saving the document, one might need to add a <code>redirect-to</code> entry to the publication specific sitemap.
</p>
</section>

<section>
<title>Configuration</title>
<p>
The One Form Editor can be configured within the generic Lenya usecase sitemap <code>lenya/usecase.xmap</code>.
</p>
</section>

<section>
<title>Validation</title>
<p>
Upon saving, the form content is validated against the appropriate Relax NG schema using the <code>ValidateAction</code>
</p>
</section>
</body>
</document>
