893 lines
33 KiB
Plaintext
893 lines
33 KiB
Plaintext
# Open Document Format for Office Applications (OpenDocument) Version 1.3
|
|
# OASIS Standard, In progress
|
|
# Relax-NG Schema
|
|
# Source: https://tools.oasis-open.org/version-control/svn/office/
|
|
# Copyright (c) OASIS Open 2002-2015. All Rights Reserved.
|
|
#
|
|
# All capitalized terms in the following text have the meanings assigned to them
|
|
# in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
|
|
# full Policy may be found at the OASIS website.
|
|
#
|
|
# This document and translations of it may be copied and furnished to others, and
|
|
# derivative works that comment on or otherwise explain it or assist in its
|
|
# implementation may be prepared, copied, published, and distributed, in whole or
|
|
# in part, without restriction of any kind, provided that the above copyright
|
|
# notice and this section are included on all such copies and derivative works.
|
|
# However, this document itself may not be modified in any way, including by
|
|
# removing the copyright notice or references to OASIS, except as needed for the
|
|
# purpose of developing any document or deliverable produced by an OASIS
|
|
# Technical Committee (in which case the rules applicable to copyrights, as set
|
|
# forth in the OASIS IPR Policy, must be followed) or as required to translate it
|
|
# into languages other than English.
|
|
#
|
|
# The limited permissions granted above are perpetual and will not be revoked by
|
|
# OASIS or its successors or assigns.
|
|
#
|
|
# This document and the information contained herein is provided on an "AS IS"
|
|
# basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
# LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
|
|
# INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
|
|
# FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
namespace anim = "urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
|
|
namespace calcext =
|
|
"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
|
|
namespace chart = "urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
|
|
namespace chartooo = "http://openoffice.org/2010/chart"
|
|
namespace config = "urn:oasis:names:tc:opendocument:xmlns:config:1.0"
|
|
namespace css3t = "http://www.w3.org/TR/css3-text/"
|
|
namespace db = "urn:oasis:names:tc:opendocument:xmlns:database:1.0"
|
|
namespace dc = "http://purl.org/dc/elements/1.1/"
|
|
namespace dr3d = "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
|
|
namespace draw = "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
|
|
namespace drawooo = "http://openoffice.org/2010/draw"
|
|
namespace field =
|
|
"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
|
|
namespace fo =
|
|
"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
|
|
namespace form = "urn:oasis:names:tc:opendocument:xmlns:form:1.0"
|
|
namespace grddl = "http://www.w3.org/2003/g/data-view#"
|
|
namespace loext =
|
|
"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
|
|
namespace math = "http://www.w3.org/1998/Math/MathML"
|
|
namespace meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
|
|
namespace number = "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
|
|
namespace office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0"
|
|
namespace officeooo = "http://openoffice.org/2009/office"
|
|
namespace presentation =
|
|
"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
|
|
namespace rng = "http://relaxng.org/ns/structure/1.0"
|
|
namespace script = "urn:oasis:names:tc:opendocument:xmlns:script:1.0"
|
|
namespace smil =
|
|
"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
|
|
namespace style = "urn:oasis:names:tc:opendocument:xmlns:style:1.0"
|
|
namespace svg =
|
|
"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
|
|
namespace table = "urn:oasis:names:tc:opendocument:xmlns:table:1.0"
|
|
namespace tableooo = "http://openoffice.org/2009/table"
|
|
namespace text = "urn:oasis:names:tc:opendocument:xmlns:text:1.0"
|
|
namespace xforms = "http://www.w3.org/2002/xforms"
|
|
namespace xhtml = "http://www.w3.org/1999/xhtml"
|
|
namespace xlink = "http://www.w3.org/1999/xlink"
|
|
|
|
include "OpenDocument-schema-v1.3.rnc" {
|
|
office-document-common-attrs =
|
|
attribute office:version {
|
|
# FIXME remove this hack once we write 1.3
|
|
"1.3" | "1.2"
|
|
}
|
|
& attribute grddl:transformation {
|
|
list { anyIRI* }
|
|
}?
|
|
style-graphic-properties-attlist =
|
|
attribute draw:stroke { "none" | "dash" | "solid" }?
|
|
& attribute draw:stroke-dash { styleNameRef }?
|
|
& attribute draw:stroke-dash-names { styleNameRefs }?
|
|
& attribute svg:stroke-width { length }?
|
|
& attribute svg:stroke-color { color }?
|
|
& attribute draw:marker-start { styleNameRef }?
|
|
& attribute draw:marker-end { styleNameRef }?
|
|
& attribute draw:marker-start-width { length }?
|
|
& attribute draw:marker-end-width { length }?
|
|
& attribute draw:marker-start-center { boolean }?
|
|
& attribute draw:marker-end-center { boolean }?
|
|
& attribute svg:stroke-opacity {
|
|
xsd:double { minInclusive = "0" maxInclusive = "1" }
|
|
| zeroToHundredPercent
|
|
}?
|
|
& attribute draw:stroke-linejoin {
|
|
"miter" | "round" | "bevel" | "middle" | "none"
|
|
}?
|
|
& attribute svg:stroke-linecap { "butt" | "square" | "round" }?
|
|
& attribute draw:symbol-color { color }?
|
|
& attribute text:animation {
|
|
"none" | "scroll" | "alternate" | "slide"
|
|
}?
|
|
& attribute text:animation-direction {
|
|
"left" | "right" | "up" | "down"
|
|
}?
|
|
& attribute text:animation-start-inside { boolean }?
|
|
& attribute text:animation-stop-inside { boolean }?
|
|
& attribute text:animation-repeat { nonNegativeInteger }?
|
|
& attribute text:animation-delay { duration }?
|
|
& attribute text:animation-steps { length }?
|
|
& attribute draw:auto-grow-width { boolean }?
|
|
& attribute draw:auto-grow-height { boolean }?
|
|
& # FIXME remove this once the export bug is fixed
|
|
attribute draw:fit-to-size {
|
|
"true" | "false" | "all" | "shrink-to-fit"
|
|
}?
|
|
& attribute draw:fit-to-contour { boolean }?
|
|
& attribute draw:textarea-vertical-align {
|
|
"top" | "middle" | "bottom" | "justify"
|
|
}?
|
|
& attribute draw:textarea-horizontal-align {
|
|
"left" | "center" | "right" | "justify"
|
|
}?
|
|
& attribute fo:wrap-option { "no-wrap" | "wrap" }?
|
|
& attribute style:shrink-to-fit { boolean }?
|
|
& attribute draw:color-mode {
|
|
"greyscale" | "mono" | "watermark" | "standard"
|
|
}?
|
|
& attribute draw:color-inversion { boolean }?
|
|
& attribute draw:luminance { signedZeroToHundredPercent }
|
|
# https://issues.oasis-open.org/browse/OFFICE-3821
|
|
?
|
|
& attribute draw:contrast { percent }?
|
|
& attribute draw:gamma { percent }?
|
|
& attribute draw:red { signedZeroToHundredPercent }?
|
|
& attribute draw:green { signedZeroToHundredPercent }?
|
|
& attribute draw:blue { signedZeroToHundredPercent }?
|
|
& attribute draw:image-opacity { zeroToHundredPercent }?
|
|
& attribute draw:shadow { "visible" | "hidden" }?
|
|
& attribute draw:shadow-offset-x { length }?
|
|
& attribute draw:shadow-offset-y { length }?
|
|
& attribute draw:shadow-color { color }?
|
|
& attribute draw:shadow-opacity { zeroToHundredPercent }?
|
|
& # TODO: no proposal for loext:shadow-blur
|
|
attribute loext:shadow-blur { length }?
|
|
& attribute draw:start-line-spacing-horizontal { distance }?
|
|
& attribute draw:start-line-spacing-vertical { distance }?
|
|
& attribute draw:end-line-spacing-horizontal { distance }?
|
|
& attribute draw:end-line-spacing-vertical { distance }?
|
|
& attribute draw:line-distance { distance }?
|
|
& attribute draw:guide-overhang { length }?
|
|
& attribute draw:guide-distance { distance }?
|
|
& attribute draw:start-guide { length }?
|
|
& attribute draw:end-guide { length }?
|
|
& attribute draw:placing { "below" | "above" }?
|
|
& attribute draw:parallel { boolean }?
|
|
& attribute draw:measure-align {
|
|
"automatic" | "left-outside" | "inside" | "right-outside"
|
|
}?
|
|
& attribute draw:measure-vertical-align {
|
|
"automatic" | "above" | "below" | "center"
|
|
}?
|
|
& attribute draw:unit {
|
|
"automatic"
|
|
| "mm"
|
|
| "cm"
|
|
| "m"
|
|
| "km"
|
|
| "pt"
|
|
| "pc"
|
|
| "inch"
|
|
| "ft"
|
|
| "mi"
|
|
}?
|
|
& attribute draw:show-unit { boolean }?
|
|
& attribute draw:decimal-places { nonNegativeInteger }?
|
|
& attribute draw:caption-type {
|
|
"straight-line" | "angled-line" | "angled-connector-line"
|
|
}?
|
|
& attribute draw:caption-angle-type { "fixed" | "free" }?
|
|
& attribute draw:caption-angle { angle }?
|
|
& attribute draw:caption-gap { distance }?
|
|
& attribute draw:caption-escape-direction {
|
|
"horizontal" | "vertical" | "auto"
|
|
}?
|
|
& attribute draw:caption-escape { length | percent }?
|
|
& attribute draw:caption-line-length { length }?
|
|
& attribute draw:caption-fit-line-length { boolean }?
|
|
& attribute dr3d:horizontal-segments { nonNegativeInteger }?
|
|
& attribute dr3d:vertical-segments { nonNegativeInteger }?
|
|
& attribute dr3d:edge-rounding { percent }?
|
|
& attribute dr3d:edge-rounding-mode { "correct" | "attractive" }?
|
|
& attribute dr3d:back-scale { percent }?
|
|
& attribute dr3d:depth { length }?
|
|
& attribute dr3d:backface-culling { "enabled" | "disabled" }?
|
|
& attribute dr3d:end-angle { angle }?
|
|
& attribute dr3d:close-front { boolean }?
|
|
& attribute dr3d:close-back { boolean }?
|
|
& attribute dr3d:lighting-mode { "standard" | "double-sided" }?
|
|
& attribute dr3d:normals-kind { "object" | "flat" | "sphere" }?
|
|
& attribute dr3d:normals-direction { "normal" | "inverse" }?
|
|
& attribute dr3d:texture-generation-mode-x {
|
|
"object" | "parallel" | "sphere"
|
|
}?
|
|
& attribute dr3d:texture-generation-mode-y {
|
|
"object" | "parallel" | "sphere"
|
|
}?
|
|
& attribute dr3d:texture-kind {
|
|
"luminance" | "intensity" | "color"
|
|
}?
|
|
& attribute dr3d:texture-filter { "enabled" | "disabled" }?
|
|
& attribute dr3d:texture-mode { "replace" | "modulate" | "blend" }?
|
|
& attribute dr3d:ambient-color { color }?
|
|
& attribute dr3d:emissive-color { color }?
|
|
& attribute dr3d:specular-color { color }?
|
|
& attribute dr3d:diffuse-color { color }?
|
|
& attribute dr3d:shininess { percent }?
|
|
& attribute dr3d:shadow { "visible" | "hidden" }?
|
|
& common-draw-rel-size-attlist
|
|
& attribute fo:min-width { length | percent }?
|
|
& attribute fo:min-height { length | percent }?
|
|
& attribute fo:max-height { length | percent }?
|
|
& attribute fo:max-width { length | percent }?
|
|
& common-horizontal-margin-attlist
|
|
& common-vertical-margin-attlist
|
|
& common-margin-attlist
|
|
& attribute style:print-content { boolean }?
|
|
& attribute style:protect {
|
|
"none"
|
|
| list { ("content" | "position" | "size")+ }
|
|
}?
|
|
& attribute style:horizontal-pos {
|
|
"left"
|
|
| "center"
|
|
| "right"
|
|
| "from-left"
|
|
| "inside"
|
|
| "outside"
|
|
| "from-inside"
|
|
}?
|
|
& attribute svg:x { coordinate }?
|
|
& attribute style:horizontal-rel {
|
|
"page"
|
|
| "page-content"
|
|
| "page-start-margin"
|
|
| "page-end-margin"
|
|
| "frame"
|
|
| "frame-content"
|
|
| "frame-start-margin"
|
|
| "frame-end-margin"
|
|
| "paragraph"
|
|
| "paragraph-content"
|
|
| "paragraph-start-margin"
|
|
| "paragraph-end-margin"
|
|
| "char"
|
|
}?
|
|
& common-vertical-pos-attlist
|
|
& common-vertical-rel-attlist
|
|
& common-text-anchor-attlist
|
|
& common-border-attlist
|
|
& common-border-line-width-attlist
|
|
& common-padding-attlist
|
|
& common-shadow-attlist
|
|
& common-background-color-attlist
|
|
& common-background-transparency-attlist
|
|
& common-editable-attlist
|
|
& attribute style:wrap {
|
|
"none"
|
|
| "left"
|
|
| "right"
|
|
| "parallel"
|
|
| "dynamic"
|
|
| "run-through"
|
|
| "biggest"
|
|
}?
|
|
& attribute style:wrap-dynamic-threshold { nonNegativeLength }?
|
|
& attribute style:number-wrapped-paragraphs {
|
|
"no-limit" | positiveInteger
|
|
}?
|
|
& attribute style:wrap-contour { boolean }?
|
|
& attribute style:wrap-contour-mode { "full" | "outside" }?
|
|
& attribute style:run-through { "foreground" | "background" }?
|
|
& attribute style:flow-with-text { boolean }?
|
|
& attribute style:overflow-behavior {
|
|
"clip" | "auto-create-new-frame"
|
|
}?
|
|
& attribute style:mirror {
|
|
"none"
|
|
| "vertical"
|
|
| horizontal-mirror
|
|
| list { "vertical", horizontal-mirror }
|
|
| list { horizontal-mirror, "vertical" }
|
|
}?
|
|
& attribute fo:clip { "auto" | clipShape }?
|
|
& attribute draw:wrap-influence-on-position {
|
|
"iterative" | "once-concurrent" | "once-successive"
|
|
}?
|
|
& common-writing-mode-attlist
|
|
& attribute draw:frame-display-scrollbar { boolean }?
|
|
& attribute draw:frame-display-border { boolean }?
|
|
& attribute draw:frame-margin-horizontal { nonNegativePixelLength }?
|
|
& attribute draw:frame-margin-vertical { nonNegativePixelLength }?
|
|
& attribute draw:visible-area-left { nonNegativeLength }?
|
|
& attribute draw:visible-area-top { nonNegativeLength }?
|
|
& attribute draw:visible-area-width { positiveLength }?
|
|
& attribute draw:visible-area-height { positiveLength }?
|
|
& attribute draw:draw-aspect {
|
|
"content" | "thumbnail" | "icon" | "print-view"
|
|
}?
|
|
& attribute draw:ole-draw-aspect { nonNegativeInteger }?
|
|
& # https://issues.oasis-open.org/browse/OFFICE-4047
|
|
attribute loext:allow-overlap { boolean }?
|
|
& # TODO: no proposal for loext:glow*
|
|
attribute loext:glow-radius { length }?
|
|
& attribute loext:glow-color { color }?
|
|
& attribute loext:glow-transparency { zeroToHundredPercent }?
|
|
& # TODO: no proposal for loext:softedge-radius
|
|
attribute loext:softedge-radius { length }?
|
|
draw-text =
|
|
(text-p
|
|
| text-list
|
|
| # https://issues.oasis-open.org/browse/OFFICE-3761
|
|
loext-table)*
|
|
office-annotation-attlist &=
|
|
attribute office:display { boolean }?
|
|
& common-office-annotation-name-attlist?
|
|
& attribute loext:resolved { boolean }?
|
|
style-style-content =
|
|
(attribute style:family { "text" },
|
|
style-text-properties?)
|
|
| (attribute style:family { "paragraph" },
|
|
# TODO no proposal
|
|
loext-graphic-properties?,
|
|
style-paragraph-properties?,
|
|
style-text-properties?)
|
|
| (attribute style:family { "section" },
|
|
style-section-properties?)
|
|
| (attribute style:family { "ruby" },
|
|
style-ruby-properties?)
|
|
| (attribute style:family { "table" },
|
|
style-table-properties?)
|
|
| (attribute style:family { "table-column" },
|
|
style-table-column-properties?)
|
|
| (attribute style:family { "table-row" },
|
|
style-table-row-properties?)
|
|
| (attribute style:family { "table-cell" },
|
|
# TODO no proposal
|
|
loext-graphic-properties?,
|
|
style-table-cell-properties?,
|
|
style-paragraph-properties?,
|
|
style-text-properties?)
|
|
| (attribute style:family { "graphic" | "presentation" },
|
|
style-graphic-properties?,
|
|
style-paragraph-properties?,
|
|
style-text-properties?)
|
|
| (attribute style:family { "drawing-page" },
|
|
style-drawing-page-properties?)
|
|
| (attribute style:family { "chart" },
|
|
style-chart-properties?,
|
|
style-graphic-properties?,
|
|
style-paragraph-properties?,
|
|
style-text-properties?)
|
|
table-table-template =
|
|
element table:table-template {
|
|
table-table-template-attlist,
|
|
table-first-row?,
|
|
table-last-row?,
|
|
table-first-column?,
|
|
table-last-column?,
|
|
table-body,
|
|
table-even-rows?,
|
|
table-odd-rows?,
|
|
table-even-columns?,
|
|
table-odd-columns?,
|
|
table-background?,
|
|
# TODO no proposal
|
|
table-first-row-even-column?,
|
|
table-last-row-even-column?,
|
|
table-first-row-end-column?,
|
|
table-first-row-start-column?,
|
|
table-last-row-end-column?,
|
|
table-last-row-start-column?
|
|
}
|
|
draw-frame =
|
|
element draw:frame {
|
|
common-draw-shape-with-text-and-styles-attlist,
|
|
common-draw-position-attlist,
|
|
common-draw-rel-size-attlist,
|
|
common-draw-caption-id-attlist,
|
|
presentation-shape-attlist,
|
|
draw-frame-attlist,
|
|
(draw-text-box
|
|
| draw-image
|
|
| draw-object
|
|
| draw-object-ole
|
|
| draw-applet
|
|
| draw-floating-frame
|
|
| draw-plugin
|
|
| table-table)*,
|
|
office-event-listeners?,
|
|
draw-glue-point*,
|
|
draw-image-map?,
|
|
svg-title?,
|
|
svg-desc?,
|
|
(draw-contour-polygon | draw-contour-path)?,
|
|
# TODO no proposal
|
|
loext-signatureline?,
|
|
loext-qrcode?
|
|
}
|
|
common-value-and-type-attlist =
|
|
(attribute office:value-type { "float" },
|
|
attribute calcext:value-type { "float" }?,
|
|
attribute office:value { double })
|
|
| (attribute office:value-type { "percentage" },
|
|
attribute calcext:value-type { "percentage" }?,
|
|
attribute office:value { double })
|
|
| (attribute office:value-type { "currency" },
|
|
attribute calcext:value-type { "currency" }?,
|
|
attribute office:value { double },
|
|
attribute office:currency { \string }?)
|
|
| (attribute office:value-type { "date" },
|
|
attribute calcext:value-type { "date" }?,
|
|
attribute office:date-value { dateOrDateTime })
|
|
| (attribute office:value-type { "time" },
|
|
attribute calcext:value-type { "time" }?,
|
|
attribute office:time-value { duration })
|
|
| (attribute office:value-type { "boolean" },
|
|
attribute calcext:value-type { "boolean" }?,
|
|
attribute office:boolean-value { boolean })
|
|
| (attribute office:value-type { "string" },
|
|
# OFFICE-3759
|
|
attribute calcext:value-type { "string" | "error" }?,
|
|
attribute office:string-value { \string }?)
|
|
chart-axis =
|
|
element chart:axis {
|
|
chart-axis-attlist,
|
|
# OFFICE-2119
|
|
((attribute chartooo:axis-type { "auto" },
|
|
chartooo-date-scale?)
|
|
| (attribute chartooo:axis-type { "date" },
|
|
chartooo-date-scale)
|
|
| attribute chartooo:axis-type { "text" })?,
|
|
chart-title?,
|
|
chart-categories?,
|
|
chart-grid*
|
|
}
|
|
table-table =
|
|
element table:table {
|
|
table-table-attlist,
|
|
table-title?,
|
|
table-desc?,
|
|
# TODO add to proposal, OFFICE-2112
|
|
table-table-protection?,
|
|
table-table-source?,
|
|
office-dde-source?,
|
|
table-scenario?,
|
|
office-forms?,
|
|
table-shapes?,
|
|
table-columns-and-groups,
|
|
table-rows-and-groups,
|
|
table-named-expressions?,
|
|
# TODO no proposal, this is wild guessing, OFFICE-3785
|
|
element calcext:conditional-formats {
|
|
element calcext:conditional-format {
|
|
attribute calcext:target-range-address { cellRangeAddress },
|
|
(element calcext:condition {
|
|
attribute calcext:apply-style-name { styleNameRef },
|
|
attribute calcext:value { \string },
|
|
attribute calcext:base-cell-address { cellAddress }
|
|
}+
|
|
| element calcext:data-bar {
|
|
attribute calcext:max-length { \string },
|
|
attribute calcext:negative-color { color },
|
|
attribute calcext:positive-color { color },
|
|
attribute calcext:axis-color { color },
|
|
attribute calcext:axis-position { "middle" }?,
|
|
element calcext:formatting-entry {
|
|
attribute calcext:value { \string },
|
|
attribute calcext:type {
|
|
"auto-minimum"
|
|
| "auto-maximum"
|
|
| "minimum"
|
|
| "maximum"
|
|
| "percent"
|
|
| "percentile"
|
|
| "number"
|
|
| "formula"
|
|
}
|
|
},
|
|
element calcext:formatting-entry {
|
|
attribute calcext:value { \string },
|
|
attribute calcext:type {
|
|
"auto-minimum"
|
|
| "auto-maximum"
|
|
| "minimum"
|
|
| "maximum"
|
|
| "percent"
|
|
| "percentile"
|
|
| "number"
|
|
| "formula"
|
|
}
|
|
}
|
|
}
|
|
| element calcext:color-scale {
|
|
element calcext:color-scale-entry {
|
|
attribute calcext:value { \string },
|
|
attribute calcext:type {
|
|
"minimum"
|
|
| "maximum"
|
|
| "percent"
|
|
| "percentile"
|
|
| "number"
|
|
| "formula"
|
|
},
|
|
attribute calcext:color { color }
|
|
},
|
|
element calcext:color-scale-entry {
|
|
attribute calcext:value { \string },
|
|
attribute calcext:type {
|
|
"minimum"
|
|
| "maximum"
|
|
| "percent"
|
|
| "percentile"
|
|
| "number"
|
|
| "formula"
|
|
},
|
|
attribute calcext:color { color }
|
|
},
|
|
element calcext:color-scale-entry {
|
|
attribute calcext:value { \string },
|
|
attribute calcext:type {
|
|
"minimum"
|
|
| "maximum"
|
|
| "percent"
|
|
| "percentile"
|
|
| "number"
|
|
| "formula"
|
|
},
|
|
attribute calcext:color { color }
|
|
}?
|
|
})
|
|
}+
|
|
}?
|
|
}
|
|
# TODO no proposal
|
|
draw-object =
|
|
element draw:object {
|
|
draw-object-attlist,
|
|
loext-text,
|
|
(common-draw-data-attlist | office-document | math-math)
|
|
}
|
|
draw-object-ole =
|
|
element draw:object-ole {
|
|
draw-object-ole-attlist,
|
|
loext-text,
|
|
(common-draw-data-attlist | office-binary-data)
|
|
}
|
|
# FIXME: one test exports 250 here, which is probably a bug
|
|
fontWeight =
|
|
"normal"
|
|
| "bold"
|
|
| "100"
|
|
| "200"
|
|
| "250"
|
|
| "300"
|
|
| "400"
|
|
| "500"
|
|
| "600"
|
|
| "700"
|
|
| "800"
|
|
| "900"
|
|
}
|
|
# TODO no proposal
|
|
loext-p =
|
|
element loext:p { paragraph-attrs, paragraph-content-or-hyperlink* }
|
|
loext-text = (loext-p | text-list | loext-table)*
|
|
# OFFICE-2119
|
|
chartooo-date-scale =
|
|
element chartooo:date-scale {
|
|
attribute chart:base-time-unit { chart-time-unit }?
|
|
& (attribute chart:major-interval-value { positiveInteger },
|
|
attribute chart:major-interval-unit { chart-time-unit })?
|
|
& (attribute chart:minor-interval-value { positiveInteger },
|
|
attribute chart:minor-interval-unit { chart-time-unit })?
|
|
}
|
|
chart-time-unit = "days" | "months" | "years"
|
|
# TODO no proposal
|
|
loext-signatureline =
|
|
element loext:signatureline {
|
|
attribute loext:id { \string },
|
|
attribute loext:suggested-signer-name { \string },
|
|
attribute loext:suggested-signer-title { \string },
|
|
attribute loext:suggested-signer-email { \string },
|
|
attribute loext:signing-instructions { \string },
|
|
attribute loext:show-sign-date { boolean },
|
|
attribute loext:can-add-comment { boolean }
|
|
}
|
|
loext-qrcode =
|
|
element loext:qrcode {
|
|
attribute office:string-value { \string },
|
|
attribute loext:qrcode-errorcorrection {
|
|
"low" | "medium" | "quartile" | "high"
|
|
},
|
|
attribute loext:qrcode-border { nonNegativeInteger }
|
|
}
|
|
# https://issues.oasis-open.org/browse/OFFICE-3761
|
|
loext-table =
|
|
element loext:table {
|
|
table-table-attlist,
|
|
table-title?,
|
|
table-desc?,
|
|
table-table-source?,
|
|
office-dde-source?,
|
|
table-scenario?,
|
|
office-forms?,
|
|
table-shapes?,
|
|
loext-columns-and-groups,
|
|
loext-rows-and-groups,
|
|
table-named-expressions?
|
|
}
|
|
loext-rows-and-groups = (table-table-row-group | loext-rows-no-group)+
|
|
loext-rows-no-group =
|
|
(loext-rows, (table-table-header-rows, loext-rows?)?)
|
|
| (table-table-header-rows, loext-rows?)
|
|
loext-rows =
|
|
table-table-rows | (text-soft-page-break?, loext-table-row)+
|
|
loext-table-row =
|
|
element loext:table-row {
|
|
table-table-row-attlist,
|
|
(loext-table-cell | loext-covered-table-cell)+
|
|
}
|
|
loext-table-cell =
|
|
element loext:table-cell {
|
|
table-table-cell-attlist,
|
|
table-table-cell-attlist-extra,
|
|
table-table-cell-content
|
|
}
|
|
loext-covered-table-cell =
|
|
element loext:covered-table-cell {
|
|
table-table-cell-attlist, table-table-cell-content
|
|
}
|
|
loext-columns-and-groups =
|
|
(table-table-column-group | loext-columns-no-group)+
|
|
loext-columns-no-group =
|
|
(loext-columns, (table-table-header-columns, loext-columns?)?)
|
|
| (table-table-header-columns, loext-columns?)
|
|
loext-columns = loext-table-columns | loext-table-column+
|
|
loext-table-columns =
|
|
element loext:table-columns { loext-table-column+ }
|
|
loext-table-column =
|
|
element loext:table-column { table-table-column-attlist, empty }
|
|
loext-graphic-properties =
|
|
element loext:graphic-properties {
|
|
style-graphic-properties-content-strict
|
|
}
|
|
table-first-row-even-column =
|
|
element loext:first-row-even-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
table-last-row-even-column =
|
|
element loext:last-row-even-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
table-first-row-end-column =
|
|
element loext:first-row-end-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
table-first-row-start-column =
|
|
element loext:first-row-start-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
table-last-row-end-column =
|
|
element loext:last-row-end-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
table-last-row-start-column =
|
|
element loext:last-row-start-column {
|
|
common-table-template-attlist, empty
|
|
}
|
|
common-draw-rel-size-attlist &=
|
|
# OFFICE-3854
|
|
attribute loext:rel-width-rel {
|
|
"page"
|
|
| [
|
|
# TODO layout-environment ?
|
|
|
|
]
|
|
"paragraph"
|
|
}?,
|
|
attribute loext:rel-height-rel { "page" | "paragraph" }?
|
|
common-svg-font-face-xlink-attlist &=
|
|
# TODO no proposal
|
|
attribute loext:font-style { fontStyle }?,
|
|
attribute loext:font-weight { fontWeight }?
|
|
# TODO no proposal
|
|
|
|
# there's no ref-attrs so add it here
|
|
text-common-ref-content &=
|
|
attribute loext:reference-language { language }?
|
|
style-list-level-label-alignment-attlist &=
|
|
# TODO no proposal
|
|
attribute loext:label-followed-by {
|
|
"listtab" | "space" | "nothing" | "newline"
|
|
}?
|
|
style-ruby-properties-attlist &=
|
|
# TODO proposal, OFFICE-3944
|
|
attribute loext:ruby-position {
|
|
"above" | "below" | "inter-character"
|
|
}?
|
|
style-text-properties-attlist &=
|
|
# TODO no proposal
|
|
attribute officeooo:rsid { \string }?,
|
|
attribute officeooo:paragraph-rsid { \string }?,
|
|
# https://issues.oasis-open.org/browse/OFFICE-4049
|
|
attribute loext:opacity { zeroToHundredPercent }?
|
|
style-text-properties-attlist &=
|
|
# OFFICE-3843
|
|
attribute loext:padding { nonNegativeLength }?,
|
|
attribute loext:padding-left { nonNegativeLength }?,
|
|
attribute loext:padding-right { nonNegativeLength }?,
|
|
attribute loext:padding-top { nonNegativeLength }?,
|
|
attribute loext:padding-bottom { nonNegativeLength }?,
|
|
attribute loext:border { \string }?,
|
|
attribute loext:border-left { \string }?,
|
|
attribute loext:border-right { \string }?,
|
|
attribute loext:border-top { \string }?,
|
|
attribute loext:border-bottom { \string }?,
|
|
attribute loext:shadow { shadowType }?
|
|
# TODO no proposal
|
|
style-chart-properties-attlist &=
|
|
attribute loext:try-staggering-first { boolean }?
|
|
# TODO no proposal
|
|
style-chart-properties-attlist &=
|
|
attribute loext:std-weight { \string }?
|
|
# TODO no proposal
|
|
chart-series-attlist &= attribute loext:label-string { \string }?
|
|
# OFFICE-1148
|
|
style-chart-properties-attlist &=
|
|
attribute loext:regression-max-degree { positiveInteger }?,
|
|
attribute loext:regression-force-intercept { boolean }?,
|
|
attribute loext:regression-intercept-value { double }?,
|
|
attribute loext:regression-name { \string }?,
|
|
attribute loext:regression-period { \string }?,
|
|
attribute loext:regression-extrapolate-forward { \string }?,
|
|
attribute loext:regression-extrapolate-backward { \string }?
|
|
# TODO no proposal
|
|
table-data-pilot-field-attlist &=
|
|
attribute tableooo:display-name { \string }?
|
|
# TODO no proposal, 9009663d
|
|
chart-chart-attlist &= attribute loext:data-pilot-source { \string }?
|
|
# OFFICE-2112, TODO half of this missing in proposal
|
|
table-table-protection =
|
|
element loext:table-protection {
|
|
attribute loext:select-protected-cells { boolean }?,
|
|
attribute loext:select-unprotected-cells { boolean }?,
|
|
attribute loext:insert-columns { boolean }?,
|
|
attribute loext:insert-rows { boolean }?,
|
|
attribute loext:delete-columns { boolean }?,
|
|
attribute loext:delete-rows { boolean }?
|
|
}
|
|
office-spreadsheet-attlist &=
|
|
attribute loext:protection-key-digest-algorithm-2 { anyURI }?
|
|
table-table-attlist &=
|
|
attribute loext:protection-key-digest-algorithm-2 { anyURI }?
|
|
# https://issues.oasis-open.org/browse/OFFICE-2317
|
|
vertJustifyValues = "auto" | "distribute"
|
|
common-text-justify =
|
|
attribute css3t:text-justify { vertJustifyValues }?
|
|
style-vertical-justify =
|
|
attribute loext:vertical-justify { vertJustifyValues }?,
|
|
attribute style:vertical-justify { vertJustifyValues }?
|
|
style-paragraph-properties-attlist &=
|
|
(common-text-justify, style-vertical-justify)?
|
|
style-table-cell-properties-attlist &=
|
|
(common-text-justify, style-vertical-justify)?
|
|
number-fraction-attlist &=
|
|
# OFFICE-3695
|
|
|
|
# TODO no proposal, 1544a26ac9f7dd60605dd21e9cbe29d490aafdce
|
|
attribute loext:max-numerator-digits { positiveInteger }?
|
|
# TODO no proposal
|
|
table-data-pilot-level-attlist &=
|
|
attribute calcext:repeat-item-labels { boolean }?
|
|
# TODO no proposal
|
|
draw-enhanced-geometry-attlist &=
|
|
attribute drawooo:sub-view-size { \string }?,
|
|
attribute drawooo:enhanced-path { \string }?
|
|
# TODO no proposal
|
|
draw-custom-shape-attlist &= common-draw-rel-size-attlist
|
|
# TODO no proposal
|
|
style-page-layout-properties-attlist &=
|
|
style-graphic-fill-properties-attlist
|
|
style-header-footer-properties-attlist &=
|
|
style-graphic-fill-properties-attlist
|
|
# TODO no proposal
|
|
text-index-entry-tab-stop-attrs &= attribute style:with-tab { boolean }?
|
|
# TODO no proposal
|
|
style-text-properties-attlist &=
|
|
attribute loext:char-shading-value { \string }?
|
|
# TODO no proposal
|
|
text-bookmark-start-attlist &=
|
|
(attribute loext:hidden { boolean },
|
|
attribute loext:condition { \string }?)?
|
|
# TODO no proposal; see 7a5d79f2297a43d0a854e304b0792164272edfe0
|
|
|
|
# FIXME this is almost certainly incomplete: need to figure out which elements can have this and which named pattern can be extended with it to get exactly these elements
|
|
form-checkbox-attlist &= attribute form:input-required { boolean }?
|
|
# https://issues.oasis-open.org/browse/OFFICE-4030
|
|
common-writing-mode-attlist &= attribute loext:writing-mode { "bt-lr" }?
|
|
# https://issues.oasis-open.org/browse/OFFICE-4073
|
|
common-vertical-rel-attlist &=
|
|
attribute loext:vertical-rel {
|
|
"page-content-top" | "page-content-bottom"
|
|
}?
|
|
# https://issues.oasis-open.org/browse/OFFICE-4105
|
|
style-page-layout-properties-attlist &=
|
|
attribute loext:margin-gutter { length }?
|
|
# just a test-case for user-defined attributes, move along, nothing to see here...
|
|
style-table-cell-properties-attlist &= attribute proName { \string }?
|
|
# TODO no proposal
|
|
chart-data-point-attlist &=
|
|
attribute loext:custom-label-field { \string }?
|
|
# TODO no proposal
|
|
style-text-properties-attlist &=
|
|
attribute loext:hyphenation-no-caps { boolean }?
|
|
# TODO no proposal
|
|
chart-data-point-attlist &=
|
|
(attribute loext:custom-label-pos-x { double },
|
|
attribute loext:custom-label-pos-y { double })?
|
|
# TODO no proposal
|
|
chart-legend-attlist &= attribute loext:overlay { boolean }?
|
|
# https://issues.oasis-open.org/browse/OFFICE-3936
|
|
style-chart-properties-attlist &=
|
|
attribute loext:major-origin { double }?
|
|
# TODO no proposal
|
|
text-index-entry-chapter-attrs &=
|
|
attribute loext:outline-content-visible { boolean }?
|
|
# https://issues.oasis-open.org/browse/OFFICE-2096
|
|
paragraph-content |=
|
|
element field:fieldmark-start {
|
|
attribute text:name { \string },
|
|
attribute field:type {
|
|
# TODO <rng:ref name="namespacedToken"/>
|
|
\string
|
|
},
|
|
element field:param {
|
|
attribute field:name { \string },
|
|
attribute field:value { \string }
|
|
}*
|
|
}
|
|
paragraph-content |= element field:fieldmark-end { empty }
|
|
paragraph-content |=
|
|
element field:fieldmark {
|
|
attribute text:name { \string },
|
|
attribute field:type {
|
|
# TODO <rng:ref name="namespacedToken"/>
|
|
\string
|
|
},
|
|
element field:param {
|
|
attribute field:name { \string },
|
|
attribute field:value { \string }
|
|
}*
|
|
}
|
|
# TODO no proposal
|
|
animation-element |=
|
|
element loext:animatePhysics {
|
|
common-anim-target-attlist,
|
|
common-timing-attlist,
|
|
animate-physics-attlist
|
|
}
|
|
animate-physics-attlist =
|
|
# default value: 0
|
|
attribute loext:velocity-x { double }?,
|
|
# default value: 0
|
|
attribute loext:velocity-y { double }?,
|
|
# default value: 0.1
|
|
attribute loext:bounciness {
|
|
xsd:double { minInclusive = "0" maxInclusive = "1" }
|
|
}?,
|
|
# default value: 1
|
|
attribute loext:density {
|
|
xsd:double { minInclusive = "0" }
|
|
}?
|
|
# TODO no proposal
|
|
style-chart-properties-attlist &=
|
|
attribute loext:custom-leader-lines { boolean }?
|
|
# TODO no proposal
|
|
style-chart-properties-attlist &=
|
|
attribute loext:external-data { \string }?
|