h1.Introduction
From release 3.3.0 we can describe a complete site's layout using an xml file. Through site schema you can set root page (called home) its children's tree, add attachments and labels.Use it is pretty straightforward, put your {{site.xml}} in `{{$\{basedir}/src/site/confluence}} folder and describe your preferred layout following the [site schema|https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/schemas/site-schema-3.4.0.xsd|].
h2.Site template
To simplify understanding, below there is a simple site descriptor template
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<bsc:site
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:bsc='https://github.com/bsorrentino/maven-confluence-plugin'
xsi:schemaLocation='https://github.com/bsorrentino/maven-confluence-plugin https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/schemas/site-schema-3.4.0.xsd'>
<home name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<child name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<child name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
</child>
<child name="" uri=""></child>
</child>
<child name="" uri=""></child>
</home>
<label>label1</label>
<label>label2</label>
<label>label3</label>
</bsc:site>
{code}
h2.Tags description
h3.home
||Attribute||Description ||mandatory ||
|uri |Content's source |no |
|name |Title of page |no (if uri is defined)|
h3.child
||Attribute||Description ||mandatory ||
|uri |Content's source |no |
|name |Title of page |no (if uri is defined)|
h3.attachment
||Attribute||Description ||mandatory ||
|uri |Content's source |no |
|name |Name of attachment |no (if uri is defined)|
|comment | |no |
|contentType | |yes |
|version | |no |
h3.label
bq. The content of label's tag is the label's value
h2.Example
The example below is the [site.xml|https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/maven-confluence-reporting-plugin/src/site/confluence/site.xml|] used by plugin to document itself{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<bsc:site
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:bsc='https://github.com/bsorrentino/maven-confluence-plugin'
xsi:schemaLocation='https://github.com/bsorrentino/maven-confluence-plugin https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/schemas/site-schema-3.4.0.xsd'>
<home uri="codehaus-home.confluence">
<child name="Usage" uri="usage.confluence">
<attachment name="gitlog-sample02.png" uri="../resources/images/gitlog-sample02.png" comment="gitlog to jira sample" contentType="image/png" version="1"></attachment>
</child>
</home>
<label>maven</label>
<label>confluence</label>
<label>documentation</label>
</bsc:site>
{code}
h2.Note:
h3.The *URI* format
The *uri* attribute could refer to
* *File* resource
bq. We can refer to file in *absolute* way using *file* scheme (e.g. {{file:///Documents/page.confluence}}) or in *relative* way not using any scheme. In that case the path will be resolved starting from *site home*
* *Classpath* resource
bq. We can refer to resource using *classpath* schema. (e.g. {{classpath:page.confluence}})
* Network resource
bq. We can refer to resource using *http* scheme. (e.g. {{http://www.thesite.com/page.confluence}})