Copyright © 2006 Robert Bienert
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.
Abstract
This section describes all file formats used by the LayManSys library. In case a format is XML-based, you find here either a print of DTD (Document Type Definition) or a XML Schema Definition file.
Table of Contents
The layout.ini file format is one of two formats for layout.cfg files. It is based on the popular INI file format, using certain key, which are described in this section.
style-screen
Keys for CSS files (currently only for screen presentation):
style-screen=path/to/screen.css
style-printer
... and for printing:
style-printer=path/to/print.css
NOTE that the paths are relative to the document root. LayManSys also expects the files to be Cascading Style Sheets, other types are not supported by this kind of layout.cfg.
nav
Navigation only in HTML format, the path is relative to the document root, too:
nav=path/to/nav.html
<xsd:schema
targetNamespace="http://laymansys.sf.net/rdf/layout
" elementFormDefault="qualified
"> <xsd:annotation
> $Id: layout.xsd,v 1.4 2006/06/19 19:47:58 robertbienert Exp $ This file defines the LayManSys layout.xml format as described in the documentation, chapter "LayManSys Namespaces and Elements". Copyright © 2006 Robert Bienert, project LayManSys http://laymansys.sourceforge.net/ For information about the simple (built-in XSD) datatypes, please refer to "XML Schema Part 2: Datatypes", <http://www.w3.org/TR/xmlschema-2/#built-in-datatypes> </xsd:annotation
> <xsd:element
name="layout
" type="LayoutDefinition
" /> <xsd:complexType
name="LayoutDefinition
"> <xsd:annotation
> <layout> is the enclosing top-level element of every layout.xml file. The LayoutDefinition type is not very complex, but not so easy to understand if you do not know XSD (XML Schema Definition) well, so here is a short description: layout ::= favicon?, style*, nav? This means, that a layout contains an optional favicon, may contain several style elements and an optional nav tag. </xsd:annotation
> <xsd:sequence
> <xsd:element
name="favicon
" type="FaviconFile
" minOccurs="0
" maxOccurs="1
" /> <xsd:element
name="style
" type="StyleFile
" minOccurs="0
" maxOccurs="unbounded
" /> <xsd:element
name="nav
" type="NavFile
" minOccurs="0
" maxOccurs="1
" /> </xsd:sequence
> <xsd:attribute
name="name
" type="xsd:string
"> <xsd:annotation
> This is an optional name for the layout. </xsd:annotation
> </xsd:attribute
> </xsd:complexType
> <xsd:simpleType
name="MIMEType
"> <xsd:annotation
> This very basic type defines the syntax schema of an MIME type. Currently, it seems to be useful for LayManSys accepting only sub-types from the types "application", "image" and "text". The regular expression restriction this string may be a bit too liberal, so it should match most MIME types. If you encounter an error in this expression, please do not hesitate reporting it. The pattern commented out is even more liberal than the current one and allows even user-defined types which is possible, as RFC 2045 and 2046 tell. </xsd:annotation
> <xsd:restriction
base="xsd:token
"> <xsd:pattern
value="(application|image|text)/[\S]+
" /> </xsd:restriction
> </xsd:simpleType
> <xsd:complexType
name="FaviconFile
"> <xsd:annotation
> This type defines a favicon file using its location and type. The href attribute is optional, but then you have to give the favicon path as nodeValue. The type attribute is optional, too, to allow content negotiation. Otherwise, a value of "image/x-icon" or "image/png" would be good in most cases. </xsd:annotation
> <xsd:simpleContent
> <xsd:extension
base="xsd:anyURI
"> <xsd:attribute
name="href
" type="xsd:anyURI
" /> <xsd:attribute
name="type
" type="MIMEType
" /> </xsd:extension
> </xsd:simpleContent
> </xsd:complexType
> <xsd:complexType
name="StyleFile
"> <xsd:annotation
> This is the definition of the style tag. It is very similar to FaviconFile. The attributes are very similar to the ones used in HTMLs link tag, so provide here the same information as you would do in a HTML file. </xsd:annotation
> <xsd:simpleContent
> <xsd:extension
base="xsd:anyURI
"> <xsd:attribute
name="href
" type="xsd:anyURI
" /> <xsd:attribute
name="type
" type="MIMEType
" use="required
" /> <xsd:attribute
name="media
" type="xsd:string
" /> <xsd:attribute
name="title
" type="xsd:string
" /> <xsd:attribute
name="charset
" type="xsd:string
" /> </xsd:extension
> </xsd:simpleContent
> </xsd:complexType
> <xsd:complexType
name="NavFile
"> <xsd:annotation
> This type defines the nav tag. The src attribute refers to a local file for processing as navigation. Its MIME type is given by the type attribute. Position tells LayManSys where to place the navigation. </xsd:annotation
> <xsd:simpleContent
> <xsd:extension
base="xsd:anyURI
"> <xsd:attribute
name="src
" type="xsd:anyURI
" /> <xsd:attribute
name="type
" type="NavTypes
" use="required
" /> <xsd:attribute
name="position
" type="NavPositions
" default="after-heading
" /> </xsd:extension
> </xsd:simpleContent
> </xsd:complexType
> <xsd:simpleType
name="NavTypes
"> <xsd:annotation
> This type contains all valid values for the nav elements type attribute, see the section "Layout Definitions" for details. </xsd:annotation
> <xsd:restriction
base="MIMEType
"> <xsd:enumeration
value="text/html
" /> <xsd:enumeration
value="application/x-httpd-php
" /> </xsd:restriction
> </xsd:simpleType
> <xsd:simpleType
name="NavPositions
"> <xsd:annotation
> This type contains all valid values LayManSys recognizes for positioning the documents navigation. </xsd:annotation
> <xsd:restriction
base="xsd:token
"> <xsd:enumeration
value="first-of-all
" /> <xsd:enumeration
value="after-heading
" /> <xsd:enumeration
value="in-front-of-foot
" /> <xsd:enumeration
value="last
" /> <xsd:enumeration
value="user-defined
" /> </xsd:restriction
> </xsd:simpleType
> </xsd:schema
>