diff options
author | Glenn Adams <gadams@apache.org> | 2013-02-10 23:38:26 +0000 |
---|---|---|
committer | Glenn Adams <gadams@apache.org> | 2013-02-10 23:38:26 +0000 |
commit | 4f6c6928b273a3dcceafaba22c15b98fe246bdf0 (patch) | |
tree | 58cacbffc2da325fc5268bcf49b1662156bda633 /src | |
parent | 41c2656fef9479580aa67682ed6ed8f5d252bd41 (diff) | |
download | xmlgraphics-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')
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> |