diff options
author | Jeremias Maerki <jeremias@apache.org> | 2007-11-22 16:13:05 +0000 |
---|---|---|
committer | Jeremias Maerki <jeremias@apache.org> | 2007-11-22 16:13:05 +0000 |
commit | 80433dd208568dcfa0dabe0bd58e59f14487d353 (patch) | |
tree | 863976cc9681c7ad6a432d2cd61c733d1bdf0f46 /src/documentation/intermediate-format-ng | |
parent | b035ca72ae33279c2d1988a1a1768d4b8a815928 (diff) | |
download | xmlgraphics-fop-80433dd208568dcfa0dabe0bd58e59f14487d353.tar.gz xmlgraphics-fop-80433dd208568dcfa0dabe0bd58e59f14487d353.zip |
First draft of a possible new intermediate format for Apache FOP.
Details on: http://wiki.apache.org/xmlgraphics-fop/AreaTreeIntermediateXml/NewDesign
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@597448 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/documentation/intermediate-format-ng')
7 files changed, 480 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..c994e4ea8 --- /dev/null +++ b/src/documentation/intermediate-format-ng/example1.xml @@ -0,0 +1,71 @@ +<?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"> + <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="1" name="1"> + <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. --> + <box transform="translate(5000, 6000)" width="18000" height="10000"> + <font family="Helvetica" style="normal" weight="400" variant="normal" size="12000" + color="black"/> + <text x="1233 1241 1247 1253 1264" y="803">Hello</text> + <draw-rect x="1233" y="1200" width="20000" height="20000" fill="yellow" stroke="none"/> + <box transform="translate(1233, 1200)" width="20000" height="20000" clip="true"> + <image xlink:href="myimage.svg" x="0" y="0" width="20000" height="20000"/> + </box> + </box> + </content> + <page-trailer> + <target x="1233" y="803" name="toc"/> + <target x="1233" y="1200" name="chapter1"/> + </page-trailer> + </page> + </page-sequence> +</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..e377d35cb --- /dev/null +++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd @@ -0,0 +1,123 @@ +<?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="box"> + <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" type="xs:boolean" default="false"/> + </xs:extension> + </xs:complexContent> + </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="xs:positiveInteger"/> + <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"> + <xs:simpleType> + <xs:list itemType="xs:integer"/> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="y" use="required"> + <xs:simpleType> + <xs:list itemType="xs:integer"/> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="clip-path"> + <xs:complexType> + <xs:attribute name="d" type="mf:pathDataType" use="required"/> + </xs:complexType> + </xs:element> + <xs:element name="draw-path"> + <xs:complexType> + <xs:attribute name="d" type="mf:pathDataType" use="required"/> + <xs:attributeGroup ref="mf:fillStrokeAtts"/> + </xs:complexType> + </xs:element> + <xs:element name="clip-rect"> + <xs:complexType> + <xs:attributeGroup ref="mf:rectAtts"/> + </xs:complexType> + </xs:element> + <xs:element name="draw-rect"> + <xs:complexType> + <xs:attributeGroup ref="mf:rectAtts"/> + <xs:attributeGroup ref="mf:fillStrokeAtts"/> + </xs:complexType> + </xs:element> + <xs:element name="draw-border-line"> + <xs:complexType> + <xs:attribute name="x1" type="xs:integer" use="required"/> + <xs:attribute name="y1" type="xs:integer" use="required"/> + <xs:attribute name="x2" type="xs:integer" use="required"/> + <xs:attribute name="y2" type="xs:integer" use="required"/> + <xs:attribute name="width" type="xs:integer" use="required"/> + <xs:attribute name="style" type="mf:borderStyle" default="solid"/> + </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:anyAttribute namespace="http://www.w3.org/1999/xlink" processContents="skip"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + </xs:choice> + </xs:complexType> + <xs:attributeGroup name="sizeAtts"> + <xs:attribute name="width" type="xs:positiveInteger" use="required"/> + <xs:attribute name="height" type="xs:positiveInteger" use="required"/> + </xs:attributeGroup> + <xs:attributeGroup name="rectAtts"> + <xs:attribute name="x" type="xs:integer" default="0"/> + <xs:attribute name="y" type="xs:integer" default="0"/> + <xs:attributeGroup ref="mf:sizeAtts"/> + </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: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..72075f7c8 --- /dev/null +++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd @@ -0,0 +1,80 @@ +<?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="pathDataType"> + <xs:restriction base="xs:string"/> + </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: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..869e2fdce --- /dev/null +++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd @@ -0,0 +1,128 @@ +<?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:import namespace="adobe:ns:meta/" schemaLocation="xmp-metadata.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"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="header"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="x:xmpmeta" xmlns:x="adobe:ns:meta/"/> + <xs:element ref="mf:bookmark-tree"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="bookmark-tree"> + <xs:complexType> + <xs:sequence minOccurs="1" maxOccurs="unbounded"> + <xs:element ref="mf:bookmark"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="bookmark"> + <xs:complexType> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="bookmark-title"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="color" type="mf: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:simpleContent> + </xs:complexType> + </xs:element> + <xs:element ref="mf:bookmark" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="external-destination" type="xs:anyURI"/> + <xs:attribute name="internal-destination" type="xs:NCName"> + </xs:attribute> + <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> + </xs:complexType> + </xs:element> + <xs:element name="page-sequence"> + <xs:complexType> + <xs:sequence> + <xs:element ref="mf:page"/> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"/> + </xs:complexType> + </xs:element> + <xs:element name="page"> + <xs:complexType> + <xs:sequence> + <xs:element name="page-header"> + <xs:complexType> + <xs:choice minOccurs="1" maxOccurs="unbounded"> + <xs:any processContents="skip"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="content" type="mf:contentType"/> + <xs:element name="page-trailer" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="target" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="x" use="required" type="xs:integer"/> + <xs:attribute name="y" use="required" type="xs:integer"/> + <xs:attribute name="name" use="required" type="xs:ID"/> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="index" type="xs:nonNegativeInteger" use="required"/> + <xs:attribute name="name" type="xs:string"/> + </xs:complexType> + </xs:element> +</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> |