kiwi-el8/doc/source/image_description.rst
Marcus Schäfer 9cb68abcea Fixed include processing
This commit fixes several issue connected with the use of
the <include> directive:

First and foremost the XSLT chain was broken in a way that
the include XSLT in combination with the PrettyPrinter XSLT
were called not in the chain of stylesheets but together.
This results in XML descriptions which duplicated the content
and went invalid

Another change is, when the include XSLT is called in the chain.
This commit moves it to become the very first processing
instruction such that the included data is part of all subsequent
XSLT stylesheets. This also allows to use older schema versions
in included XML data and they get automatically converted through
the chain of XSLT stylesheets.

Last change is the evaluation of the from= attribute value. This
value is now interpreted as an URI. Currently only local URIs are
supported. The reason to do this is because XSLT when processing
a document resolves relative paths according to the file path
of the master document. As kiwi does not change the original
content that path with will be a /var/tmp location if one of
the XSLT stylesheets were used. The documentation for this change
was updated as well
2021-11-12 07:46:52 -05:00

111 lines
2.6 KiB
ReStructuredText

.. _image-description:
Image Description
=================
.. note::
This document explains the toplevel structure of the
{kiwi} image description document for version |version|
.. toctree::
:maxdepth: 1
image_description/elements.rst
Main Root
---------
.. code:: xml
<image/>
The mandatory :ref:`sec.image` element represents the root (top-level element) of
an image description. All other elements must be descendants of this
element. There can be only one `image` element.
Image Identity
--------------
.. code:: xml
<description/>
The mandatory :ref:`sec.description` element contains information about the author,
contact, license and the specification about the use case of this
image. All data together forms the identity card of the image.
There can be only one `description` element
Image Preferences
-----------------
.. code:: xml
<preferences/>
The mandatory :ref:`sec.preferences` element contains information to classify
the image and to describe the layout. All data about the image type, its
version, the partition layout and much more is specified here. There can be
multiple `preferences` elements
Image Software Sources
----------------------
.. code:: xml
<repository/>
The mandatory :ref:`sec.repository` element contains information where to find the
software packages that are used to build the image. There can be
multiple `repository` elements
Image Content Setup
-------------------
.. code:: xml
<packages/>
The mandatory :ref:`sec.packages` element contains information to list which
software should be installed from the configured repositories
into the image. Software can be defined as names for packages,
collections, archives or products. There can be multiple
`packages` elements
Image Users
-----------
.. code:: xml
<users/>
The optional :ref:`sec.users` element contains information about system users
to be created inside of the image. There can be multiple `users`
elements
Image Namespace
---------------
.. code:: xml
<profiles/>
The optional :ref:`sec.profiles` element contains information to create one
or more namespaces to an image description. The namespace can be
used with any of the above elements and therefore tie them into
a namespace which can be selected at call time of {kiwi}
Image Includes
--------------
.. code:: xml
<include from="file://filename.xml"/>
The optional :ref:`sec.include` element allows to drop in the contents
of the specified :file:`filename.xml` file at the place were the `include`
statement was specified in the document. The `include` statement is
only allowed as descendant of the root (top-level element) of the
image description.