diff options
author | Jeremias Maerki <jeremias@apache.org> | 2009-01-30 10:19:42 +0000 |
---|---|---|
committer | Jeremias Maerki <jeremias@apache.org> | 2009-01-30 10:19:42 +0000 |
commit | e45a9a7e4bab9801b2ed97e4e94efae4b5ee06c3 (patch) | |
tree | f7e7b797f83db4a0d1c9b4fa1ede20e4a5457a4b /src/documentation | |
parent | 72db510f91a0c498297f322f94246a7a79514d2c (diff) | |
download | xmlgraphics-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')
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> |