aboutsummaryrefslogtreecommitdiffstats
path: root/src/documentation
diff options
context:
space:
mode:
authorJeremias Maerki <jeremias@apache.org>2009-01-30 10:19:42 +0000
committerJeremias Maerki <jeremias@apache.org>2009-01-30 10:19:42 +0000
commite45a9a7e4bab9801b2ed97e4e94efae4b5ee06c3 (patch)
treef7e7b797f83db4a0d1c9b4fa1ede20e4a5457a4b /src/documentation
parent72db510f91a0c498297f322f94246a7a79514d2c (diff)
downloadxmlgraphics-fop-e45a9a7e4bab9801b2ed97e4e94efae4b5ee06c3.tar.gz
xmlgraphics-fop-e45a9a7e4bab9801b2ed97e4e94efae4b5ee06c3.zip
Updated XML Schema for the new intermediate format.
Fixed the ID prefix for the URIAction to conform to the "ID" XML Schema datatype. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@739227 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/documentation')
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd87
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd30
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd65
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd43
4 files changed, 169 insertions, 56 deletions
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
index e377d35cb..daedf9272 100644
--- a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
@@ -20,15 +20,26 @@
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:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:complexType name="contentType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
- <xs:element name="box">
+ <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" type="xs:boolean" default="false"/>
+ <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>
@@ -40,7 +51,7 @@
<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="size" type="mf:lengthType"/>
<xs:attribute name="color" type="mf:colorType"/>
</xs:complexType>
</xs:element>
@@ -48,50 +59,47 @@
<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:attribute name="x" use="required" type="mf:lengthType"/>
+ <xs:attribute name="y" use="required" type="mf:lengthType"/>
+ <xs:attribute name="dx">
<xs:simpleType>
- <xs:list itemType="xs:integer"/>
+ <xs:list itemType="mf:lengthType"/>
</xs:simpleType>
</xs:attribute>
+ <xs:attribute ref="xml:space"/>
</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:element name="clip-rect">
<xs:complexType>
- <xs:attribute name="d" type="mf:pathDataType" use="required"/>
- <xs:attributeGroup ref="mf:fillStrokeAtts"/>
+ <xs:attributeGroup ref="mf:rectAtts"/>
</xs:complexType>
</xs:element>
- <xs:element name="clip-rect">
+ <xs:element name="rect">
<xs:complexType>
<xs:attributeGroup ref="mf:rectAtts"/>
+ <xs:attributeGroup ref="mf:fillAtts"/>
</xs:complexType>
</xs:element>
- <xs:element name="draw-rect">
+ <xs:element name="line">
<xs:complexType>
- <xs:attributeGroup ref="mf:rectAtts"/>
- <xs:attributeGroup ref="mf:fillStrokeAtts"/>
+ <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="draw-border-line">
+ <xs:element name="border-rect">
<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:attributeGroup ref="mf:rectAtts"/>
+ <xs:attribute name="start" type="mf:borderDef"/>
+ <xs:attribute name="end" type="mf:borderDef"/>
+ <xs:attribute name="before" type="mf:borderDef"/>
+ <xs:attribute name="after" type="mf:borderDef"/>
</xs:complexType>
</xs:element>
<xs:element name="image">
@@ -100,7 +108,7 @@
<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:attributeGroup ref="mf:foreignAtts"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -108,16 +116,25 @@
</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: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:attribute name="x" type="xs:integer" default="0"/>
- <xs:attribute name="y" type="xs:integer" default="0"/>
+ <xs:attributeGroup ref="mf:posAtts"/>
<xs:attributeGroup ref="mf:sizeAtts"/>
</xs:attributeGroup>
- <xs:attributeGroup name="fillStrokeAtts">
+ <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: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
index 72075f7c8..3f7a33ad6 100644
--- a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd
@@ -22,8 +22,8 @@
<xs:simpleType name="colorType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
- <xs:simpleType name="pathDataType">
- <xs:restriction base="xs:string"/>
+ <xs:simpleType name="lengthType">
+ <xs:restriction base="xs:int"/>
</xs:simpleType>
<xs:simpleType name="fontStyleType">
<xs:restriction base="xs:string">
@@ -77,4 +77,30 @@
<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: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..cc53483f8
--- /dev/null
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-nav.xsd
@@ -0,0 +1,65 @@
+<?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="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: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:ID"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="refDef">
+ <xs:attributeGroup ref="nav:idAtts"/>
+ <xs:attribute name="idref" type="xs:IDREF"/>
+ </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
index 869e2fdce..519377c22 100644
--- a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
@@ -18,15 +18,21 @@
<!-- $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: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"/>
+ <xs:element ref="mf:page-sequence" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:element ref="mf:trailer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -38,6 +44,7 @@
</xs:choice>
</xs:complexType>
</xs:element>
+ <xs:element name="trailer" type="mf:anyContent"/>
<xs:element name="bookmark-tree">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
@@ -91,38 +98,36 @@
<xs:element name="page-sequence">
<xs:complexType>
<xs:sequence>
- <xs:element ref="mf:page"/>
+ <xs:element ref="mf:page" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
+ <xs:attributeGroup ref="mf:foreignAtts"/>
</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="page-header" type="mf:anyContent"/>
<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: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 processContents="skip"/>
+ </xs:choice>
+ </xs:complexType>
</xs:schema>