<?xml version="1.0"?>
<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You 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$
-->
<!--
Skin configuration file. This file contains details of your project,
which will be used to configure the chosen Forrest skin.

Explanation of some elements has been removed from this file.
See main/fresh-site/src/documentation/skinconf.xml for details.
-->
<!DOCTYPE skinconfig PUBLIC "-//APACHE//DTD Skin Configuration V0.8-2//EN" "http://forrest.apache.org/dtd/skinconfig-v08-2.dtd">
<skinconfig>
  <!-- To enable lucene search add provider="lucene" (default is google).
    Add box-location="alt" to move the search box to an alternate location
    (if the skin supports it) and box-location="all" to show it in all
    available locations on the page.  Remove the <search> element to show
    no search box. @domain will enable sitesearch for the specific domain with google.
    In other words google will search the @domain for the query string.
  -->
  <search name="Apache Batik" domain="xmlgraphics.apache.org" provider="google"/>

  <!-- Disable the print link? If enabled, invalid HTML 4.0.1 -->
  <disable-print-link>true</disable-print-link>  
  <!-- Disable the PDF link? -->
  <disable-pdf-link>false</disable-pdf-link>
  <!-- Disable the POD link? -->
  <disable-pod-link>true</disable-pod-link>
  <!-- Disable the Text link? FIXME: NOT YET IMPLEMENTED. -->
  <disable-txt-link>true</disable-txt-link>
  <!-- Disable the xml source link? -->
  <!-- The xml source link makes it possible to access the xml rendition
    of the source from the html page, and to have it generated statically.
    This can be used to enable other sites and services to reuse the
    xml format for their uses. Keep this disabled if you don't want other
    sites to easily reuse your pages.-->
  <disable-xml-link>false</disable-xml-link>

  <!-- Disable navigation icons on all external links? -->
  <disable-external-link-image>false</disable-external-link-image>

  <!-- Disable w3c compliance links? 
    Use e.g. align="center" to move the compliance links logos to 
    an alternate location default is left.
    (if the skin supports it) -->
  <disable-compliance-links>true</disable-compliance-links>

  <!-- Render mailto: links unrecognisable by spam harvesters? -->
  <obfuscate-mail-links>true</obfuscate-mail-links>
  <obfuscate-mail-value>.at.</obfuscate-mail-value>
<!-- Disable the javascript facility to change the font size -->
  <disable-font-script>false</disable-font-script>

  <!-- mandatory project logo
       default skin: renders it at the top -->
  <project-name>Apache Batik</project-name>
  <project-description>Batik is a Java-based toolkit for
  applications or applets that want to use images in the
  Scalable Vector Graphics (SVG) format for various purposes,
  such as display, generation or manipulation.</project-description>
  <project-url>http://xmlgraphics.apache.org/batik/</project-url>
  <project-logo>images/batik.png</project-logo>
  <!-- Alternative static image:
  <project-logo>images/project-logo.gif</project-logo> -->

  <!-- optional group logo
       default skin: renders it at the top-left corner -->
  <group-name>Apache XML Graphics</group-name>
  <group-description>Apache XML Graphics is responsible for the
  creation and maintenance of software for managing the
  conversion of XML formats to graphical output, and the
  creation and maintenance of related software components,
  based on software licensed to the Foundation</group-description>
  <group-url>http://xmlgraphics.apache.org/</group-url>
  <group-logo>images/group-logo.png</group-logo>
  <!-- Alternative static image:
  <group-logo>images/group-logo.gif</group-logo> -->

  <!-- optional host logo (e.g. sourceforge logo)
       default skin: renders it at the bottom-left corner -->
  <host-url></host-url>
  <host-logo></host-logo>

  <!-- relative url of a favicon file, normally favicon.ico -->
  <favicon-url></favicon-url>

  <!-- The following are used to construct a copyright statement -->
  <year inception="true">2000</year>
  <vendor>The Apache Software Foundation. Licensed under Apache License 2.0</vendor>
  <copyright-link>http://www.apache.org/licenses/</copyright-link>
<!-- Optional text trademark statement below the copyright statement -->
  <trademark-statement>
    Apache, Apache Forrest, the Apache feather logo, and the Apache Forrest
    logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
  </trademark-statement>
<!-- Some skins use this to form a 'breadcrumb trail' of links.
    If you don't want these, then set the attributes to blank.
    The DTD purposefully requires them.
    Use location="alt" to move the trail to an alternate location
    (if the skin supports it).
    Omit the location attribute to display the trail in the default location.
    Use location="none" to not display the trail (if the skin supports it).
    For some skins just set the attributes to blank.
    
    NOTE: If a breadcrumb entry points at a local file the href must
    be complete, that is it must point to the file itself, not to a 
    directory.
  -->
  <trail>
    <link1 name="apache" href="http://www.apache.org/"/>
    <link2 name="xml" href="http://xml.apache.org/"/>
    <link3 name="graphics" href="http://xmlgraphics.apache.org/"/>
  </trail>
<!-- Configure the TOC, i.e. the Table of Contents.
  @max-depth
   how many "section" levels need to be included in the
   generated Table of Contents (TOC). 
  @min-sections
   Minimum required to create a TOC.
  @location ("page","menu","page,menu", "none")
   Where to show the TOC.
  -->
  <toc max-depth="2" min-sections="2" location="page"/>

  <!-- Heading types can be clean|underlined|boxed  -->
  <headings type="boxed"/>
  
  <!-- The optional feedback element will be used to construct a
    feedback link in the footer with the page pathname appended:
    <a href="@href">{@to}</a>
  <feedback to="webmaster@foo.com"
    href="mailto:webmaster@foo.com?subject=Feedback&#160;" >
    Send feedback about the website to:
  </feedback>
    -->

  <!-- Optional message of the day (MOTD).
    Note: This is only implemented in the pelt skin.
    If the optional <motd> element is used, then messages will be appended
    depending on the URI string pattern.
    motd-option : Specifies a pattern to match and provides small text content.
    motd-title : This text will be added in brackets after the <html><title>
    motd-page : This text will be added in a panel on the face of the page,
    with the "motd-page-url" being the hyperlink "More".
    Values for the "location" attribute are:
      page : on the face of the page, e.g. in the spare space of the toc
      alt : at the bottom of the left-hand navigation panel
      both : both
    -->
<!--
  <motd>
    <motd-option pattern="docs_0_80">
      <motd-title>v0.8-dev</motd-title>
      <motd-page location="both">
        This is documentation for development version v0.8
      </motd-page>
      <motd-page-url>/versions/index.html</motd-page-url>
    </motd-option>
    <motd-option pattern="docs_0_70">
      <motd-title>v0.7</motd-title>
      <motd-page location="both">
        This is documentation for current version v0.7
      </motd-page>
      <motd-page-url>/versions/index.html</motd-page-url>
    </motd-option>
  </motd>
-->

  <!--
    extra-css - here you can define custom css-elements that are 
    A) overriding the fallback elements or 
    B) adding the css definition from new elements that you may have 
       used in your documentation.
    -->
  <extra-css>
    #content a:link {
      text-decoration: none;
      border-bottom: 1px solid #ccc;
    }
    #content a:visited {
      text-decoration: none;
      border-bottom: 1px solid #ccc;
    }
    #footer a {
      color: navy;
    }
    #content ul.minitoc a:visited {
      color: maroon;
    }
    #content a:hover {
      background-color: #ffffdd;
      border-bottom: 1px solid #aaa;
    }
    body, table, p {
      font-family: Verdana, "Bitstream Vera Sans", Arial, Helvetica, sans-serif;
    }
    body, p, div, dl, ul, ol {
      font-size: 9pt;
    }
    p, #content ul.minitoc, .note .content, .warning .content {
      line-height: 1.5em;
    }
    #main .breadtrail {
      display: none;
    }
    #top .grouplogo {
      position: absolute;
      left: 0;
      float: none;
    }
    #top .projectlogo {
      text-align: center;
      float: none;
      margin: 0 auto;
      width: 256px;
    }
    #menu {
      padding-top: 2em;
    }
    #menu hr {
      border: 0;
      border-top: 1px solid #6f569e;
    }
    #menu .menupage {
      background-position: center left;
      margin-top: 2px;
      margin-bottom: 2px;
      position: relative;
    }
    #menu .menupagetitle {
      border: 0;
      padding-top: 2px;
      padding-bottom: 2px;
      position: relative;
      font-weight: bold;
    }
    #menu .menuitem {
      position: relative;
    }
    #menu .menuitem, #menu .menupagetitle, #menu .menutitle {
      font-size: 8pt;
    }




    #credit2 img {
      margin-top: 1em;
    }
    p.quote {
      margin-left: 2em;
      padding: .5em;
      background-color: #f0f0f0;
      border: 1px solid #ddd;
    }
    #content ul {
      list-style-image: url('images/current.gif');
    }
    .boxed {
      color: white;
      padding: 0.25em;
    }
    #content h1 {
      font-size: 15pt;
    }
    #content h2 {
      clear: right;
      font-size: 12pt;
    }
    #content h3.boxed {
      background: #9f7ae1;
    }
    #content h3, #content h4 {
      font-size: 11pt;
    }
    a.broken {
      background: orange;
    }
    img.floating {
      float: right;
      margin-left: 2em;
      position: relative;
    }
    dl dt {
      font-weight: bold;
    }
    dl.options {
      margin: 0em 3em;
    }
    dl.options dt {
      font-weight: inherit;
      font-family: monospace;
    }
    dl.classes dt {
      font-weight: normal;
    }
    #content {
      margin: 0 1em;
    }
    #content li {
      margin-top: 0.5em;
    }
    #content ul, #content ol, #content dl {
      margin-bottom: 1em;
    }
    #content ul.minitoc {
      margin-bottom: 0;
    }
    #content ul.minitoc li {
      margin-top: 0;
    }
    #content ul.minitoc li ul {
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }
    pre.code {
      background: #eee;
      border: 1px solid #ccc;
      padding: 0.5em;
      margin: 1em 3em;
    }
    .codefrag {
      font-family: monospace;
      font-size: inherit;
    }
    .expertise td {
      text-align: center;
    }
    .expertise td.area {
      text-align: left;
    }
    .expertise th.tick {
      width: 6em;
    }
    #content td, #content th {
      padding: 0.25em;
    }
    #minitoc-area ul.minitoc {
      margin: 0;
    }
    strong.cont {
      color: maroon;
    }
    a.class {
      font-family: monospace;
    }
    h4 {
      font-weight: bold;
    }
    .figure {
      display: block;
      text-align: center;
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }
    #tabs {
      font-size: 80%;
    }
    #publishedStrip {
      font-size: 80%;
      height: 1.5em;
    }
    #top .searchbox {
      font-size: 80%;
    }
    #footer {
      border-top: solid 1px #482980;
    }

    <!-- For status tables: -->
    table.elements, table.tests {
      border-collapse: collapse;
      font-size: 10pt;
      width: auto ! important;
      margin-left: 2em;
      margin-right: 2em;
    }
    table.elements td, table.elements th, table.tests td, table.tests th {
      padding: 4px;
    }
    table.elements .attribute-name, table.elements .attribute-note, table.tests .attribute-name, table.tests .attribute-note, div.object {
      background: #eef;
    }
    div.object {
      margin-left: 2em;
      margin-right: 2em;
    }
    div.object-header, div.object-section-header, div.object-property-header, div.object-property-desc {
      padding: 4px;
    }
    .object-property-func-params {
      font-weight: normal;
      padding-left: 0.5em;
      font-style: italic;
    }
    table.elements .elements-header {
      background: navy;
      color: white;
    }
    table.elements .supported, table.elements .yes, table.elements .partial, table.elements .no,
    table.tests .supported, table.tests .yes, table.tests .partial, table.tests .no {
      text-align: center;
    }
    .yes {
      background: #35b92c;
      color: white;
    }
    .partial {
      background: #e29e1f;
      color: white;
    }
    .no {
      background: #cf1f1f;
      color: white;
    }
    table.elements .section-header th, div.object-section-header {
      padding-left: 2em ! important;
      text-align: left;
      font-style: italic;
      font-weight: normal;
      background: #eef;
    }
    table.elements .section-note td {
      padding-left: 2em ! important;
      text-align: left;
      font-weight: normal;
      background: #eef;
    }
    table.elements .attribute th, table.tests .attribute th, div.object-property-header {
      padding-left: 4em ! important;
      padding-right: 2em ! important;
      text-align: left;
      font-weight: normal;
    }
    div.object-property-header {
      font-weight: bold;
    }
    div.object-property-desc {
      padding-left: 6em;
    }
    table.elements .vertical-bar, table.tests .vertical-bar {
      width: 4px;
    }
    table.elements .element-header, table.tests .test-header {
      border-top: 3px solid white;
    }
    table.elements .element-header th, table.tests .tests-header th, div.object-header {
      background: #ccf;
      padding-right: 2em;
      text-align: left;
      font-weight: bold;
    }
    table.elements .attribute-note, table.elements .test-note {
      padding-left: 1em ! important;
      padding-right: 1em ! important;
    }

    <!-- For license page -->
    .license pre {
      width: 85ex;
    }

    <!-- For demo page -->
    #layout #data {
      border-collapse: collapse;
      width: auto;
    }
    #layout #data td, #layout #data th {
      padding: 4px;
      vertical-align: middle;
      text-align: left ! important;
    }
    #layout {
      text-align: center ! important;
      width: inherit ! important;
      border-collapse: collapse;
      border: none ! important;
      background: none ! important;
    }
    table#data tbody {
      border: 1px solid #9f7ae1 ! important;
    }
    #layout td {
      background: none ! important;
      vertical-align: middle;
    }
    #layout #data td {
      background: #f8f5ff ! important;
    }
    #layout td p {
      text-align: center ! important;
    }
  </extra-css>

  <colors>
  <!-- These values are used for the generated CSS files.
    They essentially "override" the default colors defined in the chosen skin.
    There are four duplicate "groups" of colors below, denoted by comments:
      Color group: Forrest, Krysalis, Collabnet, and Lenya using Pelt.
    They are provided for example only. To customize the colors of any skin,
    uncomment one of these groups of color elements and change the values
    of the particular color elements that you wish to change.
    Note that by default, all color groups are commented-out which means that
    the default colors provided by the skin are being used.
  -->

    <!--color name="navstrip" value="#CFDCED" font="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="heading" value="#a5b6c6"/>
    <color name="subheading" value="#CFDCED"/>
    <color name="body"    value="#ffffff" link="#0F3660" vlink="#009999" hlink="#000066"/>
    <color name="footer" value="#cedfef"/>
    <color name="table" value="#a5b6c6"/>    
    <color name="table-cell" value="#ffffff"/>    
    <color name="menu" value="#4a6d8c" font="#cedfef" link="#ffffff" vlink="#ffffff" hlink="#ffcf00"/-->

    <color name="heading"      value="#a5b6c6"/>
    <color name="subheading"   value="#482980"/>
    <color name="body"         value="#ffffff" link="maroon" vlink="#400" hlink="maroon"/>
    <color name="published"    value="#482980" font="#DDCCFF"/>
    <color name="footer"       value="#eae3f9"/>
    <color name="table"        value="#9f7ae1"/>
    <color name="table-cell"   value="#f8f5ff"/>
    <color name="menu"         value="#482980" font="#dfceef" link="#ffffff" vlink="#ffffff" hlink="#ffcf00"/>
    <color name="tab-selected" value="#482980" link="white" vlink="white" hlink="white"/>
    <color name="tab-unselected" value="#eae3f9" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-selected"   value="#482980" link="#DDCCFF" vlink="#DDCCFF" hlink="#AAAAEE"/>
    <color name="subtab-unselected" value="#482980" link="#DDCCFF" vlink="#DDCCFF" hlink="#AAAAEE"/>
    <color name="navstrip"     value="#482980" font="#ffffff" link="#DDCCFF" vlink="#DDCCFF" hlink="#AAAAEE"/>
    <color name="toolbox"      value="#6f569e" font="#ffcf00"/>
    <color name="dialog"       value="#482980"/>
    <color name="searchbox"    value="#482980" font="#000000"/>
    <color name="breadtrail"   value="#eae3f9" link="#482980" vlink="#482980" hlink="#000066"/>

  <!-- Color group: Forrest: example colors similar to forrest.apache.org
    Some of the element names are obscure, so comments are added to show how
    the "pelt" skin uses them, other skins might use these elements in a different way.
    Tip: temporarily change the value of an element to red (#ff0000) and see the effect.
     pelt: breadtrail: the strip at the top of the page and the second strip under the tabs
     pelt: header: top strip containing project and group logos
     pelt: heading|subheading: section headings within the content
     pelt: navstrip: the strip under the tabs which contains the published date
     pelt: menu: the left-hand navigation panel
     pelt: toolbox: the selected menu item
     pelt: searchbox: the background of the searchbox
     pelt: border: line border around selected menu item
     pelt: body: any remaining parts, e.g. the bottom of the page
     pelt: footer: the second from bottom strip containing credit logos and published date
     pelt: feedback: the optional bottom strip containing feedback link
  -->
<!--
    <color name="breadtrail" value="#cedfef" font="#0F3660" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="header" value="#294563"/>
    <color name="tab-selected" value="#4a6d8c" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="tab-unselected" value="#b5c7e7" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="subtab-selected" value="#4a6d8c" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="subtab-unselected" value="#4a6d8c" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="heading" value="#294563"/>
    <color name="subheading" value="#4a6d8c"/>
    <color name="published" value="#4C6C8F" font="#FFFFFF"/>
    <color name="feedback" value="#4C6C8F" font="#FFFFFF" align="center"/>
    <color name="navstrip" value="#4a6d8c" font="#ffffff" link="#0F3660" vlink="#0F3660" hlink="#000066"/>
    <color name="menu" value="#4a6d8c" font="#cedfef" link="#ffffff" vlink="#ffffff" hlink="#ffcf00"/>    
    <color name="toolbox" value="#4a6d8c"/>
    <color name="border" value="#294563"/>
    <color name="dialog" value="#4a6d8c"/>
    <color name="searchbox" value="#4a6d8c" font="#000000"/>
    <color name="body" value="#ffffff" link="#0F3660" vlink="#009999" hlink="#000066"/>
    <color name="table" value="#7099C5"/>    
    <color name="table-cell" value="#f0f0ff"/>    
    <color name="highlight" value="#ffff00"/>
    <color name="fixme" value="#cc6600"/>
    <color name="note" value="#006699"/>
    <color name="warning" value="#990000"/>
    <color name="code" value="#CFDCED"/>
    <color name="footer" value="#cedfef"/>
-->

  <!-- Color group: Krysalis -->
<!--
    <color name="header"    value="#FFFFFF"/>

    <color name="tab-selected" value="#a5b6c6" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="tab-unselected" value="#F7F7F7"  link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-selected" value="#a5b6c6"  link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-unselected" value="#a5b6c6"  link="#000000" vlink="#000000" hlink="#000000"/>

    <color name="heading" value="#a5b6c6"/>
    <color name="subheading" value="#CFDCED"/>
        
    <color name="navstrip" value="#CFDCED" font="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="toolbox" value="#a5b6c6"/>
    <color name="border" value="#a5b6c6"/>
        
    <color name="menu" value="#F7F7F7" link="#000000" vlink="#000000" hlink="#000000"/>    
    <color name="dialog" value="#F7F7F7"/>
            
    <color name="body"    value="#ffffff" link="#0F3660" vlink="#009999" hlink="#000066"/>
    
    <color name="table" value="#a5b6c6"/>    
    <color name="table-cell" value="#ffffff"/>    
    <color name="highlight" value="#ffff00"/>
    <color name="fixme" value="#cc6600"/>
    <color name="note" value="#006699"/>
    <color name="warning" value="#990000"/>
    <color name="code" value="#a5b6c6"/>
        
    <color name="footer" value="#a5b6c6"/>
-->

  <!-- Color group: Collabnet --> 
<!--
    <color name="header"    value="#003366"/>

    <color name="tab-selected" value="#dddddd" link="#555555" vlink="#555555" hlink="#555555"/>
    <color name="tab-unselected" value="#999999" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
    <color name="subtab-selected" value="#cccccc" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-unselected" value="#cccccc" link="#555555" vlink="#555555" hlink="#555555"/>

    <color name="heading" value="#003366"/>
    <color name="subheading" value="#888888"/>
    
    <color name="navstrip" value="#dddddd" font="#555555"/>
    <color name="toolbox" value="#dddddd" font="#555555"/>
    <color name="border" value="#999999"/>
    
    <color name="menu" value="#ffffff"/>    
    <color name="dialog" value="#eeeeee"/>
            
    <color name="body"      value="#ffffff"/>
    
    <color name="table" value="#ccc"/>    
    <color name="table-cell" value="#ffffff"/>   
    <color name="highlight" value="#ffff00"/>
    <color name="fixme" value="#cc6600"/>
    <color name="note" value="#006699"/>
    <color name="warning" value="#990000"/>
    <color name="code" value="#003366"/>
        
    <color name="footer" value="#ffffff"/>
-->
 <!-- Color group: Lenya using pelt-->
<!--

    <color name="header" value="#ffffff"/>

    <color name="tab-selected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="tab-unselected" value="#F5F4E9" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-selected" value="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="subtab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>

    <color name="heading" value="#E5E4D9"/>
    <color name="subheading" value="#000000"/>
    <color name="published" value="#000000"/>
    <color name="navstrip" value="#E5E4D9" font="#000000"/>
    <color name="toolbox" value="#CFDCED" font="#000000"/>
    <color name="border" value="#999999"/>

    <color name="menu" value="#E5E4D9" font="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
    <color name="dialog" value="#CFDCED"/>
    <color name="body" value="#ffffff" />

    <color name="table" value="#ccc"/>
    <color name="table-cell" value="#ffffff"/>
    <color name="highlight" value="#ffff00"/>
    <color name="fixme" value="#cc6600"/>
    <color name="note" value="#006699"/>
    <color name="warning" value="#990000"/>
    <color name="code" value="#003366"/>

    <color name="footer" value="#E5E4D9"/>
-->
  </colors>
 
  <!-- Settings specific to PDF output. -->
  <pdf>
    <!-- 
       Supported page sizes are a0, a1, a2, a3, a4, a5, executive,
       folio, legal, ledger, letter, quarto, tabloid (default letter).
       Supported page orientations are portrait, landscape (default
       portrait).
       Supported text alignments are left, right, justify (default left).
    -->
    <page size="letter" orientation="portrait" text-align="left"/>

    <!-- 
       Pattern of the page numbering in the footer - Default is "Page x".
       first occurrence of '1' digit represents the current page number,
       second occurrence of '1' digit represents the total page number,
       anything else is considered as the static part of the numbering pattern.
       Examples : x is the current page number, y the total page number.
       <page-numbering-format>none</page-numbering-format> Do not displays the page numbering
       <page-numbering-format>1</page-numbering-format> Displays "x"
       <page-numbering-format>p1.</page-numbering-format> Displays "px."
       <page-numbering-format>Page 1/1</page-numbering-format> Displays "Page x/y"
       <page-numbering-format>(1-1)</page-numbering-format> Displays "(x-y)"
    -->
    <page-numbering-format>Page 1</page-numbering-format>

    <!--
       Margins can be specified for top, bottom, inner, and outer
       edges. If double-sided="false", the inner edge is always left
       and the outer is always right. If double-sided="true", the
       inner edge will be left on odd pages, right on even pages,
       the outer edge vice versa.
       Specified below are the default settings.
    -->
    <margins double-sided="false">
      <top>0.5in</top>
      <bottom>0.5in</bottom>
      <inner>1in</inner>
      <outer>0.5in</outer>
    </margins>
<!--
      Print the URL text next to all links going outside the file
    -->
    <show-external-urls>false</show-external-urls>

    <!--
      Disable the copyright footer on each page of the PDF.
      A footer is composed for each page. By default, a "credit" with role=pdf
      will be used, as explained below. Otherwise a copyright statement
      will be generated. This latter can be disabled.
    -->
    <disable-copyright-footer>false</disable-copyright-footer>
  </pdf>
<!-- 
    Credits are typically rendered as a set of small clickable
    images in the page footer.
    
    Use box-location="alt" to move the credits to an alternate location
    (if the skin supports it).

    For example, pelt skin:
    - box-location="alt" will place the logo at the end of the
      left-hand coloured menu panel.
    - box-location="alt2" will place them underneath that panel
      in the left-hand whitespace.
    - Otherwise they are placed next to the compatibility icons
      at the bottom of the screen.

    Comment out the whole <credit>-element if you want no credits in the
    web pages 
  -->
  <credits>
    <credit box-location="alt">
      <name>Built with Apache Forrest</name>
      <url>http://forrest.apache.org/</url>
      <image>images/built-with-forrest-button.png</image>
      <width>88</width>
      <height>31</height>
    </credit>
    <credit box-location="alt2">
      <name>ApacheCon</name>
      <url>http://www.apachecon.com/</url>
      <image>http://www.apache.org/events/current-event-125x125.png</image>
      <width>125</width>
      <height>125</height>
    </credit>

    <!-- A credit with @role="pdf" will be used to compose a footer
     for each page in the PDF, using either "name" or "url" or both.
    -->
    <credit role="pdf">
      <name>PDF created by Apache FOP</name>
      <url>http://xmlgraphics.apache.org/fop/</url>
      <image>images/logo.jpg</image>
      <width>138</width>
      <height>31</height>
    </credit>
  </credits>

</skinconfig>
