aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Adams <gadams@apache.org>2013-02-10 23:38:26 +0000
committerGlenn Adams <gadams@apache.org>2013-02-10 23:38:26 +0000
commit4f6c6928b273a3dcceafaba22c15b98fe246bdf0 (patch)
tree58cacbffc2da325fc5268bcf49b1662156bda633 /src
parent41c2656fef9479580aa67682ed6ed8f5d252bd41 (diff)
downloadxmlgraphics-fop-4f6c6928b273a3dcceafaba22c15b98fe246bdf0.tar.gz
xmlgraphics-fop-4f6c6928b273a3dcceafaba22c15b98fe246bdf0.zip
Partial revert of r1444573 to restore intermediate-format-ng.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1444631 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/documentation/intermediate-format-ng/README.txt7
-rw-r--r--src/documentation/intermediate-format-ng/example1.xml73
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd165
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd124
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd124
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd102
-rw-r--r--src/documentation/intermediate-format-ng/xmp-metadata.xsd35
-rw-r--r--src/documentation/intermediate-format-ng/xmp-rdf-metadata.xsd36
8 files changed, 666 insertions, 0 deletions
diff --git a/src/documentation/intermediate-format-ng/README.txt b/src/documentation/intermediate-format-ng/README.txt
new file mode 100644
index 000000000..d2da38b26
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/README.txt
@@ -0,0 +1,7 @@
+IMPORTANT! This is "WORK IN PROGRESS"!
+
+This directory contains the draft XML schema for a new intermediate format for Apache FOP.
+The design is described on the FOP Wiki at:
+http://wiki.apache.org/xmlgraphics-fop/AreaTreeIntermediateXml/NewDesign
+
+Help and feedback is welcome. \ No newline at end of file
diff --git a/src/documentation/intermediate-format-ng/example1.xml b/src/documentation/intermediate-format-ng/example1.xml
new file mode 100644
index 000000000..eec5ff8b9
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/example1.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<document xmlns="http://xmlgraphics.apache.org/fop/intermediate"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://xmlgraphics.apache.org/fop/intermediate fop-intermediate-format-ng.xsd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:nav="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
+ <header>
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:title>New Intermediate Format Demo Document</dc:title>
+ <dc:creator>
+ <rdf:Seq>
+ <rdf:li>Jeremias Märki</rdf:li>
+ </rdf:Seq>
+ </dc:creator>
+ </rdf:Description>
+ </rdf:RDF>
+ </x:xmpmeta>
+ <bookmark-tree>
+ <bookmark internal-destination="toc">
+ <bookmark-title color="blue" font-weight="bold">Table of Contents</bookmark-title>
+ </bookmark>
+ <bookmark internal-destination="chapter1">
+ <bookmark-title>Chapter 1</bookmark-title>
+ </bookmark>
+ </bookmark-tree>
+ </header>
+
+ <page-sequence id="ps1">
+ <page index="0" name="1" width="595275" height="841889">
+ <page-header>
+ <ps:ps-setup-code xmlns:ps="apache:fop:extensions:postscript">%FOPTestPSSetupCode: General
+ setup code here!</ps:ps-setup-code>
+ </page-header>
+ <content>
+ <!-- Note: this is not actual content that is supposed to make any sense.
+ It is merely to give you an idea what the content can look like. -->
+ <viewport transform="translate(5000, 6000)" width="18000" height="10000">
+ <font family="Helvetica" style="normal" weight="400" variant="normal" size="12000"
+ color="black"/>
+ <text x="1233" y="803">Hello</text>
+ <rect x="1233" y="1200" width="20000" height="20000" fill="yellow"/>
+ <viewport transform="translate(1233, 1200)" width="20000" height="20000" clip-rect="0 0 20000 20000">
+ <image xlink:href="myimage.svg" x="0" y="0" width="20000" height="20000"/>
+ </viewport>
+ </viewport>
+ </content>
+ <page-trailer>
+ <nav:goto-xy id="toc" page-index="0" x="1233" y="803"/>
+ <nav:goto-xy id="chapter1" page-index="0" x="1233" y="1200"/>
+ </page-trailer>
+ </page>
+ </page-sequence>
+ <trailer/>
+</document>
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
new file mode 100644
index 000000000..d6f0c694c
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ targetNamespace="http://xmlgraphics.apache.org/fop/intermediate"
+ xmlns:mf="http://xmlgraphics.apache.org/fop/intermediate">
+ <xs:include schemaLocation="fop-intermediate-format-ng-datatypes.xsd"/>
+ <xs:complexType name="contentType">
+ <xs:choice maxOccurs="unbounded" minOccurs="0">
+ <xs:element name="viewport">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="mf:contentType">
+ <xs:attribute name="transform" type="xs:string"/>
+ <xs:attributeGroup ref="mf:sizeAtts"/>
+ <xs:attribute name="clip-rect" type="mf:rectangleType"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="g">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="mf:contentType">
+ <xs:attribute name="transform" type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="id">
+ <xs:complexType>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="font">
+ <xs:complexType>
+ <xs:attribute name="family" type="xs:string"/>
+ <xs:attribute name="style" type="mf:fontStyleType"/>
+ <xs:attribute name="variant" type="mf:fontVariantType"/>
+ <xs:attribute name="weight" type="mf:fontWeightType"/>
+ <xs:attribute name="stretch" type="mf:fontStretchType"/>
+ <xs:attribute name="size" type="mf:lengthType"/>
+ <xs:attribute name="color" type="mf:colorType"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="text">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="x" use="required" type="mf:lengthType"/>
+ <xs:attribute name="y" use="required" type="mf:lengthType"/>
+ <xs:attribute name="letter-spacing" type="mf:lengthType"/>
+ <xs:attribute name="word-spacing" type="mf:lengthType"/>
+ <xs:attribute name="dx" type="mf:lengthListType"/>
+ <xs:attribute name="dp" type="mf:dpListType"/>
+ <xs:attribute name="hyphenated" type="xs:boolean"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="clip-rect">
+ <xs:complexType>
+ <xs:attributeGroup ref="mf:rectAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="rect">
+ <xs:complexType>
+ <xs:attributeGroup ref="mf:rectAtts"/>
+ <xs:attributeGroup ref="mf:fillAtts"/>
+ <xs:attributeGroup ref="mf:borderAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="line">
+ <xs:complexType>
+ <xs:attribute name="x1" use="required" type="mf:lengthType"/>
+ <xs:attribute name="y1" use="required" type="mf:lengthType"/>
+ <xs:attribute name="x2" use="required" type="mf:lengthType"/>
+ <xs:attribute name="y2" use="required" type="mf:lengthType"/>
+ <xs:attribute name="color" use="required" type="mf:colorType"/>
+ <xs:attribute name="stroke-width" use="required" type="mf:lengthType"/>
+ <xs:attribute name="style" use="required" type="mf:ruleStyle"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="border-rect">
+ <xs:complexType>
+ <xs:attributeGroup ref="mf:rectAtts"/>
+ <xs:attribute name="inner-background-color" type="mf:colorType"/>
+ <xs:attributeGroup ref="mf:borderAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="image">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="xs:anyType">
+ <!-- Either use element content with any namespace or xlink:href -->
+ <xs:attributeGroup ref="mf:rectAtts"/>
+ <xs:attributeGroup ref="mf:foreignAtts"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ <xs:attributeGroup name="sizeAtts">
+ <xs:attribute name="width" type="mf:lengthType" use="required"/>
+ <xs:attribute name="height" type="mf:lengthType" use="required"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="posAtts">
+ <xs:attribute name="x" type="mf:lengthType" default="0"/>
+ <xs:attribute name="y" type="mf:lengthType" default="0"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="rectAtts">
+ <xs:attributeGroup ref="mf:posAtts"/>
+ <xs:attributeGroup ref="mf:sizeAtts"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="borderAtts">
+ <xs:attribute name="left" type="mf:borderDef"/>
+ <xs:attribute name="right" type="mf:borderDef"/>
+ <xs:attribute name="top" type="mf:borderDef"/>
+ <xs:attribute name="bottom" type="mf:borderDef"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="fillAtts">
+ <xs:attribute name="fill" type="xs:string" default="none"/>
+ </xs:attributeGroup>
+ <!--xs:attributeGroup name="fillStrokeAtts">
+ <xs:attribute name="fill" type="xs:string" default="none"/>
+ <xs:attribute name="stroke" type="xs:string" default="none"/>
+ </xs:attributeGroup-->
+ <xs:attributeGroup name="foreignAtts">
+ <xs:anyAttribute namespace="##other" processContents="lax"/>
+ </xs:attributeGroup>
+ <xs:attribute name="xmlSpace">
+ <!--
+ This is a copy of the definition of the xml:space attribute, from the schema for the XML
+ namespace. That schema can be found at http://www.w3.org/2001/xml.xsd.
+
+ Ideally we would want to re-use that schema. However, we don’t want to refer to it using an
+ import statement is it causes too many connections to the W3C website. Neither can we store a
+ local copy and ship it with FOP as its license is the W3C Document License and so far we are not
+ allowed to redistribute files under such a license.
+ See also https://issues.apache.org/jira/browse/LEGAL-111
+ -->
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd
new file mode 100644
index 000000000..e25556f9b
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ targetNamespace="http://xmlgraphics.apache.org/fop/intermediate"
+ xmlns:mf="http://xmlgraphics.apache.org/fop/intermediate">
+ <xs:simpleType name="colorType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="lengthType">
+ <xs:restriction base="xs:int"/>
+ </xs:simpleType>
+ <xs:simpleType name="fontStyleType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="italic"/>
+ <xs:enumeration value="oblique"/>
+ <xs:enumeration value="backslant"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontVariantType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="small-caps"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontWeightType">
+ <xs:restriction base="xs:positiveInteger">
+ <xs:enumeration value="100"/>
+ <xs:enumeration value="200"/>
+ <xs:enumeration value="300"/>
+ <xs:enumeration value="400"/>
+ <xs:enumeration value="500"/>
+ <xs:enumeration value="600"/>
+ <xs:enumeration value="700"/>
+ <xs:enumeration value="800"/>
+ <xs:enumeration value="900"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="fontStretchType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ultra-condensed"/>
+ <xs:enumeration value="extra-condensed"/>
+ <xs:enumeration value="condensed"/>
+ <xs:enumeration value="semi-condensed"/>
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="semi-expanded"/>
+ <xs:enumeration value="expanded"/>
+ <xs:enumeration value="extra-expanded"/>
+ <xs:enumeration value="ultra-expanded"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="borderStyle">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="solid"/>
+ <xs:enumeration value="dotted"/>
+ <xs:enumeration value="dashed"/>
+ <xs:enumeration value="double"/>
+ <xs:enumeration value="groove"/>
+ <xs:enumeration value="ridge"/>
+ <xs:enumeration value="inset"/>
+ <xs:enumeration value="outset"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ruleStyle">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="solid"/>
+ <xs:enumeration value="dotted"/>
+ <xs:enumeration value="dashed"/>
+ <xs:enumeration value="double"/>
+ <xs:enumeration value="groove"/>
+ <xs:enumeration value="ridge"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="borderDef">
+ <xs:restriction base="xs:string">
+ <!-- TODO refine me: \w+ will not be good enough for CMYK color, for example
+ <xs:pattern value="\((solid|dotted|dashed|double|groove|ridge|inset|outset),\w+,\d+(,collapse-(inner|outer))?"/>
+ -->
+ <xs:pattern value="\((solid|dotted|dashed|double|groove|ridge|inset|outset),.+\)"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="lengthListType">
+ <xs:list itemType="mf:lengthType"/>
+ </xs:simpleType>
+ <xs:simpleType name="rectangleType">
+ <xs:restriction base="mf:lengthListType">
+ <xs:length value="4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="dpListType">
+ <xs:list itemType="mf:dpItemType"/>
+ </xs:simpleType>
+ <xs:simpleType name="dpItemType">
+ <xs:union>
+ <xs:simpleType>
+ <xs:restriction base="mf:lengthType"/>
+ </xs:simpleType>
+ <xs:simpleType>
+ <xs:restriction base="mf:dpZeroesType"/>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+ <xs:simpleType name="dpZeroesType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="Z(\d)+"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd
new file mode 100644
index 000000000..ff6697cdf
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://xmlgraphics.apache.org/fop/intermediate/document-navigation"
+ xmlns:nav="http://xmlgraphics.apache.org/fop/intermediate/document-navigation"
+ xmlns:if="http://xmlgraphics.apache.org/fop/intermediate">
+
+ <xs:import schemaLocation="fop-intermediate-format-ng-datatypes.xsd"
+ namespace="http://xmlgraphics.apache.org/fop/intermediate"/>
+
+ <xs:element name="bookmark-tree">
+ <xs:complexType>
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
+ <xs:element ref="nav:bookmark"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="bookmark">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="nav:actionType">
+ <xs:sequence>
+ <xs:element ref="nav:bookmark" maxOccurs="unbounded" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="title" type="xs:string"/>
+ <xs:attribute name="starting-state">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="show"/>
+ <xs:enumeration value="hide"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <!-- Not yet implemented:
+ <xs:attribute name="color" type="if:colorType"/>
+ <xs:attribute name="font-style">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="italic"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="font-weight">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="bold"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ -->
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="link">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="nav:actionType">
+ <xs:attribute name="rect" type="if:rectangleType"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="actionType">
+ <xs:choice>
+ <xs:element ref="nav:goto-uri"/>
+ <xs:element ref="nav:goto-xy"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:element name="goto-uri">
+ <xs:complexType>
+ <xs:attributeGroup ref="nav:idAtts"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="required"/>
+ <xs:attribute name="show-destination" use="optional" default="replace">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="new"/>
+ <xs:enumeration value="replace"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="goto-xy">
+ <xs:complexType>
+ <xs:attributeGroup ref="nav:refDef"/>
+ <xs:attribute name="page-index" type="xs:int"/>
+ <xs:attributeGroup ref="nav:posAtts"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:attributeGroup name="posAtts">
+ <xs:attribute name="x" type="if:lengthType" default="0"/>
+ <xs:attribute name="y" type="if:lengthType" default="0"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="idAtts">
+ <xs:attribute name="id" type="xs:NCName"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="refDef">
+ <xs:attributeGroup ref="nav:idAtts"/>
+ <xs:attribute name="idref" type="xs:NCName"/>
+ </xs:attributeGroup>
+</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
new file mode 100644
index 000000000..6e17c793b
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ targetNamespace="http://xmlgraphics.apache.org/fop/intermediate"
+ xmlns:mf="http://xmlgraphics.apache.org/fop/intermediate"
+ xmlns:nav="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
+ <xs:import namespace="http://xmlgraphics.apache.org/fop/intermediate/document-navigation"
+ schemaLocation="fop-intermediate-format-ng-nav.xsd"/>
+ <xs:import namespace="adobe:ns:meta/" schemaLocation="xmp-metadata.xsd"/>
+ <xs:import namespace="http://xmlgraphics.apache.org/fop/intermediate/document-navigation"
+ schemaLocation="fop-intermediate-format-ng-nav.xsd"/>
+ <xs:include schemaLocation="fop-intermediate-format-ng-datatypes.xsd"/>
+ <xs:include schemaLocation="fop-intermediate-format-ng-content.xsd"/>
+ <xs:element name="document">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="mf:header"/>
+ <xs:element ref="mf:page-sequence" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:element ref="mf:trailer"/>
+ </xs:sequence>
+ <xs:attribute name="version" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="header">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="locale" minOccurs="0" maxOccurs="1">
+ <xs:complexType>
+ <xs:attributeGroup ref="mf:foreignAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <!--xs:element ref="x:xmpmeta" xmlns:x="adobe:ns:meta/"/-->
+ <xs:any namespace="##other" processContents="lax"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="trailer">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <!--xs:element ref="nav:bookmark-tree"/-->
+ <xs:any namespace="##other" processContents="lax"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="page-sequence">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:any namespace="##other" processContents="lax"/>
+ </xs:choice>
+ <xs:element ref="mf:page" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute ref="mf:xmlSpace"/>
+ <xs:attributeGroup ref="mf:foreignAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="page">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="page-header" type="mf:anyContent"/>
+ <xs:element name="content" type="mf:contentType"/>
+ <xs:element name="page-trailer" minOccurs="0">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="nav:link"/>
+ <xs:element ref="nav:goto-xy"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="index" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="page-master-name" type="xs:string"/>
+ <xs:attributeGroup ref="mf:sizeAtts"/>
+ <xs:attributeGroup ref="mf:foreignAtts"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="anyContent">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:any namespace="##other" processContents="lax"/>
+ </xs:choice>
+ </xs:complexType>
+</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/xmp-metadata.xsd b/src/documentation/intermediate-format-ng/xmp-metadata.xsd
new file mode 100644
index 000000000..e05d0615c
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/xmp-metadata.xsd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="adobe:ns:meta/"
+ xmlns:x="adobe:ns:meta/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ schemaLocation="xmp-rdf-metadata.xsd"/>
+ <!-- This defines the xmpmeta wrapper element for Adobe's XMP.
+ See: http://www.adobe.com/devnet/xmp/ -->
+ <xs:element name="xmpmeta">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="rdf:RDF"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/xmp-rdf-metadata.xsd b/src/documentation/intermediate-format-ng/xmp-rdf-metadata.xsd
new file mode 100644
index 000000000..b3cef703c
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/xmp-rdf-metadata.xsd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <!--
+ Note: this is incomplete but intentionally so. It's impossible to
+ write an XML Schema for XMP since it's heavily extensible and based on RDF.
+ We just define some minimal stubs here.
+ -->
+ <xs:element name="RDF">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:any namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ processContents="skip"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>