]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Partial revert of r1444573 to restore intermediate-format-ng.
authorGlenn Adams <gadams@apache.org>
Sun, 10 Feb 2013 23:38:26 +0000 (23:38 +0000)
committerGlenn Adams <gadams@apache.org>
Sun, 10 Feb 2013 23:38:26 +0000 (23:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1444631 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/intermediate-format-ng/README.txt [new file with mode: 0644]
src/documentation/intermediate-format-ng/example1.xml [new file with mode: 0644]
src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd [new file with mode: 0644]
src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd [new file with mode: 0644]
src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd [new file with mode: 0644]
src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd [new file with mode: 0644]
src/documentation/intermediate-format-ng/xmp-metadata.xsd [new file with mode: 0644]
src/documentation/intermediate-format-ng/xmp-rdf-metadata.xsd [new file with mode: 0644]

diff --git a/src/documentation/intermediate-format-ng/README.txt b/src/documentation/intermediate-format-ng/README.txt
new file mode 100644 (file)
index 0000000..d2da38b
--- /dev/null
@@ -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 (file)
index 0000000..eec5ff8
--- /dev/null
@@ -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 (file)
index 0000000..d6f0c69
--- /dev/null
@@ -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 (file)
index 0000000..e25556f
--- /dev/null
@@ -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 (file)
index 0000000..ff6697c
--- /dev/null
@@ -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 (file)
index 0000000..6e17c79
--- /dev/null
@@ -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 (file)
index 0000000..e05d061
--- /dev/null
@@ -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 (file)
index 0000000..b3cef70
--- /dev/null
@@ -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>