You are on page 1of 806

TÀI LIỆU KỸ THUẬT

HƯỚNG DẪN ÁP DỤNG TIÊU CHUẨN ISO/IEC 26300:2006 về ODF

I. Phần giới thiệu chung


Định dạng tài liệu mở (Open Document Format, viết tắt là ODF) là một
tiêu chuẩn định dạng mở cho tệp tin (file) do Tổ chức thúc đẩy phát triển các
chuẩn thông tin cấu trúc (Organization for the Advancement of Structured
Information Standards, viết tắt là OASIS) xây dựng để phục vụ cho việc lưu trữ
và trao đổi các tài liệu trong các ứng dụng văn phòng (office application). Sau
một thời gian dài xem xét, định dạng tài liệu mở này đã được Tổ chức Tiêu
chuẩn quốc tế (ISO) chính thức công nhận là một tiêu chuẩn quốc tế và được gọi
là chuẩn ISO/IEC 26300:2006 vào tháng 11/2006.
Tài liệu kỹ thuật này được biên soạn trên cơ sở tiêu chuẩn ISO/IEC
26300:2006 để hướng dẫn áp dụng tiêu chuẩn ODF cho các nhà phát triển phần
mềm xây dựng các chương trình đọc và ghi các tài liệu văn phòng theo định
dạng file ODF, phục vụ cho việc lưu trữ và trao đổi các tài liệu trong các ứng
dụng văn phòng. Toàn văn bản tiếng Anh của tiêu chuẩn ODF có thể tải về tại
địa chỉ www.oasis-open.org để tham khảo.
1. Các loại tệp tin tài liệu theo tiêu chuẩn ODF
Các loại file ứng dụng văn phòng thông thường được phân biệt thông qua
phần mở rộng của file. Phần mở rộng của các file dùng chung cho định dạng tài
liệu mở là: odt cho file văn bản, ods cho file bảng tính, odp cho file dữ liệu trình
diễn và odg cho file đồ họa. Điều này rất dễ nhớ là các ký tự đầu ".od" biểu thị
ký tự viết tắt tên tiếng Anh của "tài liệu mở " (OpenDocument) và ký tự cuối
cùng chính là ký tự đầu tiên của loại dữ liệu trong tiếng Anh (ví dụ t cho text).
Theo qui ước đó, các loại file tài liệu trong định dạng ODF được mô tả như sau:

Phần mở
Loại File Loại MIME
rộng
Text .odt application/vnd.oasis.opendocument.text
Spreadsheet .ods application/vnd.oasis.opendocument.spreadsheet
Presentation .odp application/vnd.oasis.opendocument.presentation
Drawing .odg application/vnd.oasis.opendocument.graphics
Chart .odc application/vnd.oasis.opendocument.chart
Formula .odf application/vnd.oasis.opendocument.formula
Image .odi application/vnd.oasis.opendocument.image
Master
.odm application/vnd.oasis.opendocument.text-master
Document

1
Ngoài ra, trong tiêu chuẩn ODF còn hỗ trợ các file theo định dạng mẫu
trung gian (template) và phần mở rộng của các loại file template này được xác
định tương tự như file tài liệu nêu trên, mô tả cụ thể các loại file template được
nêu trong bảng sau:

Phần mở
Loại File Loại MIME
rộng
Text .ott application/vnd.oasis.opendocument.text-template
application/vnd.oasis.opendocument.spreadsheet-
Spreadsheet .ots
template
application/vnd.oasis.opendocument.presentation-
Presentation .otp
template
application/vnd.oasis.opendocument.graphics-
Drawing .otg
template
Chart
.otc application/vnd.oasis.opendocument.chart-template
template
Formula application/vnd.oasis.opendocument.formula-
.otf
template template
Image
.oti application/vnd.oasis.opendocument.image-template
template
Web page
.oth application/vnd.oasis.opendocument.text-web
template

Như vậy, khi lập trình các nhà phát triển phần mềm cần phải tuân theo
việc phân loại tài liệu của tiêu chuẩn ODF nêu trên để gán phần mở rộng của file
tài liệu tương ứng với từng loại tài liệu, phục vụ cho việc trao đổi dữ liệu trong
các ứng dụng văn phòng và đảm bảo tính tương thích của các phần mềm.
2. Cấu trúc tài liệu theo tiêu chuẩn ODF
Cấu trúc của định dạng tài liệu mở ODF bao gồm các phần sau đây:
• Gốc tài liệu
• Siêu dữ liệu của tài liệu
• Phần tử thân và các kiểu tài liệu
• Thiết lập ứng dụng
• Tập lệnh
• Các khai báo bề mặt phông
• Các kiểu
• Trình bày và kiểu trang
Trong định dạng tài liệu mở, mỗi thành phần về cấu trúc được biểu diễn
bởi một phần tử cùng với các thuộc tính tương ứng. Cấu trúc của một tài liệu
trong ODF được áp dụng cho toàn bộ các kiểu tài liệu. Không có sự phân biệt
2
giữa một tài liệu văn bản, một bảng tính hoặc một bản vẽ, cấu trúc phần tử phân
tách với nội dung cũng như toàn bộ các kiểu tài liệu có thể bao gồm các kiểu
khác nhau trong một file tài liệu. Nội dung tài liệu chung cho toàn bộ các kiểu
tài liệu có thể được trao đổi từ một kiểu tài liệu này sang một kiểu tài liệu khác.
3. Lược đồ chung
Lược đồ chung về phát triển phần mềm ứng dụng văn phòng có sử dụng
tiêu chuẩn ODF chính là lược đồ theo chuẩn ngôn ngữ đánh dấu mở rộng XML,
cho phép nội dung tùy ý trong các phần tử siêu thông tin và các phần tử đặc tính
của định dạng tài liệu được thiết kế mở và được khai báo như sau:
© 2002-2007 OASIS Open
© 1999-2007 Sun Microsystems, Inc.
-->
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0">
4. Gốc tài liệu
Theo tiêu chuẩn ODF, phần tử gốc tài liệu là phần tử chính của một tài
liệu trong định dạng tài liệu mở và nó bao gồm toàn bộ nội dung tài liệu. Toàn
bộ các kiểu của tài liệu như tài liệu văn bản, tài liệu bảng tính, tài liệu trình diễn

3
và các tài liệu bản vẽ được sử dụng cùng một kiểu các phần tử gốc tài liệu. Định
dạng tài liệu mở ODF hỗ trợ cả hai cách thể hiện tài liệu sau đây:
• Như một tài liệu XML đơn.
• Như một tập hợp của nhiều tài liệu nhỏ cùng trong một gói, mỗi tập hợp
của tài liệu nhỏ lưu trữ một phần của tài liệu đầy đủ đó. Mỗi tài liệu con có một
gốc tài liệu khác nhau và lưu trữ một khía cạnh cụ thể của tài liệu XML đó.
Ngoài ra, tài liệu XML đơn có phần tử gốc là chính nó còn thông thường
một file tài liệu theo tiêu chuẩn ODF có 05 phần tử gốc được hỗ trợ khác nhau.
Các phần tử gốc tài liệu theo chuẩn ODF được tóm tắt trong bảng sau đây:

Phần tử gốc Nội dung tài liệu con Tên của tài liệu
nhỏ trong gói
<office:document> Tài liệu văn phòng đầy đủ n/a
trong một tài liệu XML đơn.
<office:document-content> Nội dung tài liệu và các kiểu content.xml
dữ liệu tự động được sử dụng
trong nội dung.

<office:document-styles> Các kiểu được sử dụng trong styles.xml


nội dung tài liệu và các kiểu tự
động được sử dụng trong chính
các kiểu của chúng.
<office:document-meta> Thông tin siêu dữ liệu của tài meta.xml
liệu, như người tạo tài liệu
hoặc thời gian lưu cuối cùng.
<office:document-settings> Thiết lập ứng dụng, tham số cụ settings.xml
thể của tài liệu, như kích thước
cửa sổ hoặc thông tin máy in.

Định nghĩa của phần tử gốc được mô tả trong bảng trên tương tự với định
nghĩa của phần <office:document> cần khai báo trong phần mềm ứng dụng, trừ
khi đặc tả phần tử con được giới hạn phù hợp, cú pháp cụ thể của nó khi lập
trình cần khai báo như sau:
<start>
<choice>
<ref name="office-document"/>
<ref name="office-document-content"/>
<ref name="office-document-styles"/>
<ref name="office-document-meta"/>
<ref name="office-document-settings"/>
</choice>
</start>

4
Ngoài ra, mô hình nội dung phần tử gốc tài liệu được đặc tả cần khai báo
trong phần mềm phải theo các câu lệnh sau:
<define name=”office:document”>
<element name=”office:document”>
<ref name=”office-document-attrs”/>
<ref name=”office-document-common-attrs”/>
<ref name=”office-meta”/>
<ref name=”office-settings”/>
<ref name=”office-scripts”/>
<ref name=”office-font-face-decls”/>
<ref name=”office-styles”/>
<ref name=”office-automatic-styles”/>
<ref name=”office-master-styles”/>
<ref name=”office-body”/>
</element>
</define>
+ Nếu gốc <office:document-content> chỉ chứa nội dung tài liệu theo các
kiểu tự động cần thiết đối với nội dung tài liệu thì viết theo:
<define name="office-document-content">
<element name="office:document-content">
<ref name="office-document-common-attrs"/>
<ref name="office-scripts"/>
<ref name="office-font-face-decls"/>
<ref name="office-automatic-styles"/>
<ref name="office-body"/>
</element>
</define>
+ Nếu gốc <office:document-styles> chứa toàn bộ các kiểu được đặt tên
của một tài liệu, theo các kiểu tự động cần thiết đối với các kiểu được đặt tên đó
thì viết theo:
<define name="office-document-styles">
<element name="office:document-styles">
<ref name="office-document-common-attrs"/>
<ref name="office-font-face-decls"/>
<ref name="office-styles"/>
<ref name="office-automatic-styles"/>
<ref name="office-master-styles"/>
</element>
</define>
+ Nếu gốc <office:document-meta> chứa siêu thông tin về một tài liệu tạo
lập thì viết theo:
<define name="office-document-meta">
<element name="office:document-meta">
<ref name="office-document-common-attrs"/>
5
<ref name="office-meta"/>
</element>
</define>
+ Nếu gốc <office:document-settings> chứa các thiết lập tham số cụ thể
của các ứng dụng được áp dụng khi xử lý tài liệu đó thì viết theo:
<define name="office-document-settings">
<element name="office:document-settings">
<ref name="office-document-common-attrs"/>
<ref name="office-settings"/>
</element>
</define>
Đặc biệt, tài liệu theo tiêu chuẩn ODF sẽ là một file nén (ZIP) không ở
dạng nhị phân, ta có thể đọc được nội dung thông tin.
5. Các thuộc tính gốc tài liệu
Toàn bộ các phần tử gốc tài liệu mang một thuộc tính là office:version để
chỉ ra phiên bản của đặc tả XML nó tuân thủ theo. Số hiệu phiên bản theo định
dạng revision.version sẽ chỉ cho phần mềm biết phiên bản đối với một bộ xử lý
thông tin theo XML và nó có thể kiểm tra tính hợp lệ của tài liệu đó. Nói cách
khác, kiểm tra tính hợp lệ của tài liệu là tùy chọn, nhưng tài liệu đó phải được
thiết lập hoàn toàn theo đặc tả của XML. Thuộc tính này xác lập như sau:
<define name="office-document-common-attrs" combine="interleave">
<optional>
<attribute name="office:version ">
<ref name="string"/>
</attribute>
</optional>
</define>
Ngoài ra, phần tử <office:document> sẽ còn phải mang một thuộc tính là
office:mimetype để chỉ ra kiểu tài liệu (văn bản, bảng tính, bản vẽ v.v.). Thuộc
tính này đặc biệt quan trọng đối với XML và được xác định:
<define name="office-document-attrs" combine="interleave">
<attribute name="office:mimetype">
<ref name="string"/>
</attribute>
</define>
6. Siêu dữ liệu của tài liệu
Siêu dữ liệu là thông tin khái quát về một tài liệu. Trong định dạng tài liệu
mở ODF, toàn bộ các phần tử siêu dữ liệu được chứa trong một phần tử gốc là
<office:meta>, thường được đặt tại vị trí bắt đầu của tài liệu. Các phần tử siêu
dữ liệu có thể được lược bỏ hoặc xuất hiện nhiều lần trong file. Các câu lệnh đặc
tả cho phần tử này gồm:
<define name="office-meta">
6
<optional>
<element name="office:meta">
<ref name="office-meta-content"/>
</element>
</optional>
</define>
<define name="office-meta-content">
<ref name="anyElements"/>
</define>
<define name="office-meta-content-strict">
<zeroOrMore>
<ref name="office-meta-data"/>
</zeroOrMore>
</define>
Trong lược đồ tài liệu mở, siêu dữ liệu sẽ được hiểu bao gồm các phần tử
siêu dữ liệu được định nghĩa trước, siêu dữ liệu được định nghĩa bởi người sử
dụng cũng như các phần tử siêu dữ liệu tùy chỉnh. Siêu dữ liệu mẫu của một tài
liệu trong ODF được cấu trúc như sau:
<office:meta>
<dc:title>Title của document</dc:title>
<dc:description>Description/Comment cho document</dc:description>
<meta:initial-creator>User Name</meta:initial-creator>
<meta:creation-date>1999-10-18T12:34:56</meta:creation-date>
<dc:creator>User Name</dc:creator>
<dc:date>1999-10-19T15:16:17</dc:date>
<meta:printed-by>User Name</meta:printed-by>
<meta:print-date>1999-10-20T16:17:18</meta:print-date>
<dc:subject>Description của document</dc:subject>
<meta:editing-duration>PT5H10M10S</meta:editing-duration>
<meta:keyword>First keyword</meta:keyword>
<meta:keyword>Second keyword</meta:keyword>
<meta:keyword>Third keyword</meta:keyword>
<meta:khuôn mẫu xlink:type="simple"
xlink:href="file:///c|
/office52/share/template/german/finance/budget.vor"
xlink:title="Khuôn mẫu name" meta:date="1999-10-15T10:11:12" />
<meta:auto-reload xlink:type="simple" xlink:href="file:///..."
meta:delay="P60S" />
<dc:language>de-DE</dc:language>
<meta:user-defined meta:name="Field 1"
meta:value-type="string">Value 1</meta:user-defined>
<meta:user-defined meta:name="Field 2"
meta:value-type="float">1.234</meta:user-defined>
</office:meta>
7
II. Đặc tả kỹ thuật của tiêu chuẩn ODF
1. Đặc tả chung về phần tử nội dung và các loại tài liệu
Trong đặc tả kỹ thuật của ODF, thân tài liệu chứa một phần tử để chỉ ra
kiểu nội dung tài liệu được chứa trong file tài liệu này. Các kiểu tài liệu hiện tại
trong ứng dụng văn phòng được ODF hỗ trợ là:
- Tài liệu văn bản
- Tài liệu bản vẽ
- Tài liệu trình diễn
- Tài liệu bảng tính
- Tài liệu biểu đồ
- Tài liệu hình ảnh
Tất cả các kiểu tài liệu trên đều có thể chia sẻ cùng nhau các phần tử nội
dung, trừ các kiểu tài liệu khác đã đặt các giới hạn khác nhau mà trong đó phần
tử này có thể xuất hiện trong các phương thức kết hợp. Nội dung tài liệu thường
được cấu thành bởi: một phần mở đầu, phần thân và phần kết thúc, chứa thông
tin bổ sung đối với một kiểu tài liệu cụ thể như dữ liệu biểu mẫu hoặc các khai
báo biến.
1.1. Tài liệu văn bản
Nội dung của các tài liệu văn bản chủ yếu bao gồm một trình tự chứa bất
kỳ số lượng các đoạn văn bản, bảng biểu, chỉ mục, khung văn bản, phần văn bản
và phần tử hình ảnh. Ngoài ra, một tài liệu văn bản có thể bao gồm các biểu
mẫu, thông tin theo dõi sự thay đổi và khai báo biến, từng yếu tố này được xác
định trong phần mở đầu của tài liệu và có thể được tham chiếu từ nội dung tài
liệu đó, cú pháp các câu lệnh gồm:
<define name="office-body-content" combine="choice">
<element name="office:text">
<ref name="office-text-attlist"/>
<ref name="office-text-content-prelude"/>
<zeroOrMore>
<ref name="office-text-content-main"/>
</zeroOrMore>
<ref name="office-text-content-epilogue"/>
</element>
</define>
Đoạn mở đầu tài liệu văn bản chứa dữ liệu biểu mẫu của tài liệu đó, thông
tin theo dõi sự thay đổi và khai báo biến. Để cho phép các ứng dụng văn phòng
thực thi tính năng thông thường sẵn có trong các bảng tính đối với các tài liệu
văn bản, nó có thể cũng chứa các phần tử thực thi các tính năng bảng nâng cao:
<define name="office-text-content-prelude">
<ref name="office-forms"/>
<ref name="text-tracked-changes"/>
<ref name="text-decls"/>
8
<ref name="table-decls"/>
</define>
Một tài liệu văn bản có thể chỉ gồm các khung trình tự:
<define name="office-text-content-main">
<choice>
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
<group>
<ref name="text-page-sequence"/>
<zeroOrMore>
<choice>
<ref name="draw-a"/>
<ref name="shape"/>
</choice>
</zeroOrMore>
</group>
</choice>
</define>
<define name="text-content">
<choice>
<ref name="text-h"/>
<ref name="text-p"/>
<ref name="text-list"/>
<ref name="text-numbered-paragraph"/>
<ref name="table-table"/>
<ref name="draw-a"/>
<ref name="text-section"/>
<ref name="text-table-of-content"/>
<ref name="text-illustration-index"/>
<ref name="text-table-index"/>
<ref name="text-object-index"/>
<ref name="text-user-index"/>
<ref name="text-alphabetical-index"/>
<ref name="text-bibliography"/>
<ref name="shape"/>
<ref name="change-marks"/>
</choice>
</define>
Để tạo thuận lợi cho một ứng dụng soạn thảo văn bản thích ứng với giao
diện người sử dụng, để hỗ trợ tốt hơn ký pháp của tài liệu tổng thể cùng với các
phần tử cấu thành (với một tài liệu có nội dung được liên kết tùy ý), có thể sử
dụng cờ text:global để điều khiển. Nếu đặt giá trị cờ này là đúng (true), thì sẽ
thông báo cho các phần mềm ứng dụng rằng các phần tử được liên kết trong tài
9
liệu này có phần của ngữ nghĩa của nó. Nếu đặt giá trị sai (false) thì sẽ tác động
ngược lại. Nội dung đặc tả kỹ thuật trình diễn theo XML của các phần tử đó
không thay đổi.
<define name="office-text-attlist" combine="interleave">
<optional>
<attribute name="text:global" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
1.2. Tài liệu bản vẽ
Nội dung của tài liệu bản vẽ đồ họa bao gồm một trình tự các trang đồ họa
đã tạo lập và cần khai báo:
<define name="office-body-content" combine="choice">
<element name="office:drawing">
<ref name="office-drawing-attlist"/>
<ref name="office-drawing-content-prelude"/>
<ref name="office-drawing-content-main"/>
<ref name="office-drawing-content-epilogue"/>
</element>
</define>
<define name="office-drawing-attlist">
<empty/>
</define>
Phần mở đầu tài liệu đồ họa có thể chỉ bao gồm các khai báo văn bản. Để
cho phép các ứng dụng văn phòng thực thi chức năng thường sẵn có trong các
bảng tính đối với các tài liệu bản vẽ, nó cũng có thể gồm các phần tử thực thi
các tính năng bảng biểu tăng cường.
<define name="office-drawing-content-prelude">
<ref name="text-decls"/>
<ref name="table-decls"/>
</define>
Nội dung chính của tài liệu bản vẽ bao gồm một trình tự các trang đồ họa:
<define name="office-drawing-content-main">
<zeroOrMore>
<ref name="draw-page"/>
</zeroOrMore>
</define>
Tuy không có phần tử phần kết thúc cụ thể của tài liệu bản vẽ nhưng trong
phần kết đó có thể bao gồm các phần tử thực thi các tính năng biểu bảng tăng
cường sẽ sử dụng trong tài liệu.
<define name="office-drawing-content-epilogue">
<ref name="table-functions"/>
10
</define>
1.3. Tài liệu trình diễn
Nội dung của tài liệu trình diễn bao gồm một trình tự các trang phần tử dữ
liệu trình diễn tương tự giống như các yếu tố đồ họa và cần khai báo:
<define name="office-body-content" combine="choice">
<element name="office:presentation">
<ref name="office-presentation-attlist"/>
<ref name="office-presentation-content-prelude"/>
<ref name="office-presentation-content-main"/>
<ref name="office-presentation-content-epilogue"/>
</element>
</define>
<define name="office-presentation-attlist">
<empty/>
</define>
Phần mở đầu tài liệu trình diễn cũng giống như một phần trong một tài
liệu đồ họa, nhưng có thể bao gồm một số các khai báo bổ sung.
<define name="office-presentation-content-prelude">
<ref name="text-decls"/>
<ref name="table-decls"/>
<ref name="presentation-decls"/>
</define>
Nội dung chính của tài liệu trình diễn sẽ bao gồm một trình tự các trang
đồ họa:
<define name="office-presentation-content-main">
<zeroOrMore>
<ref name="draw-page"/>
</zeroOrMore>
</define>
Phần kết của các tài liệu trình diễn có thể bao gồm các thiết lập tham số
trình diễn. Ngoài ra, nó có thể bao gồm các phần tử thực thi các tính năng biểu
bảng tăng cường.
<define name="office-presentation-content-epilogue">
<ref name="presentation-settings"/>
<ref name="table-functions"/>
</define>
1.4. Tài liệu bảng tính
Nội dung của các tài liệu bảng tính chủ yếu gồm một trình tự các bảng
(sheet), công thức tính của từng ô (cell). Ngoài ra, một tài liệu bảng tính có thể
bao gồm các biểu mẫu, thông tin theo dõi sự thay đổi và các kiểu khai báo biến
để đơn giản cách sử dụng các bảng tính cũng như các tính toán của chúng. Mỗi

11
phần của các trình tự này được chứa trong cả phần mở đầu của tài liệu và phần
kết của tài liệu, cần khai báo:
<define name="office-body-content" combine="choice">
<element name="office:spreadsheet">
<ref name="office-spreadsheet-attlist"/>
<ref name="office-spreadsheet-content-prelude"/>
<ref name="office-spreadsheet-content-main"/>
<ref name="office-spreadsheet-content-epilogue"/>
</element>
</define>
Phần mở đầu của tài liệu bảng tính gồm dữ liệu biểu mẫu của tài liệu đó,
thông tin theo dõi sự thay đổi, thiết lập tính toán cho công thức, các quy tắc
kiểm tra đối với nội dung ô và các khai báo đối với các miền của nhãn trong
bảng tính.
<define name="office-spreadsheet-content-prelude">
<optional>
<ref name="table-tracked-changes"/>
</optional>
<ref name="text-decls"/>
<ref name="table-decls"/>
</define>
<define name="table-decls">
<optional>
<ref name="table-calculation-settings"/>
</optional>
<optional>
<ref name="table-content-validations"/>
</optional>
<optional>
<ref name="table-label-ranges"/>
</optional>
</define>
Nếu tài liệu chính chỉ là một danh sách các bảng thì khai báo:
<define name="office-spreadsheet-content-main">
<zeroOrMore>
<ref name="table-table"/>
</zeroOrMore>
</define>
Phần kết của các tài liệu bảng tính gồm các khai báo đối với các biểu thức
được đặt tên, các dải cơ sở dữ liệu, các bảng dẫn dữ liệu, các thao tác hợp nhất
và liên kết thư viện theo chuẩn DDE. Các khai báo trong định dạng ODF được
lựa chọn theo:
<define name="office-spreadsheet-content-epilogue">
<ref name="table-functions"/>
12
</define>
<define name="table-functions">
<optional>
<ref name="table-named-expressions"/>
</optional>
<optional>
<ref name="table-database-ranges"/>
</optional>
<optional>
<ref name="table-data-pilot-tables"/>
</optional>
<optional>
<ref name="table-consolidation"/>
</optional>
<optional>
<ref name="table-dde-links"/>
</optional>
</define>
1.5. Tài liệu biểu đồ
Nội dung của các tài liệu biểu đồ được xác định và khai báo trong file:
<define name="office-body-content" combine="choice">
<element name="office:chart">
<ref name="office-chart-attlist"/>
<ref name="office-chart-content-prelude"/>
<ref name="office-chart-content-main"/>
<ref name="office-chart-content-epilogue"/>
</element>
</define>
<define name="office-chart-attlist">
<empty/>
</define>
Để cho phép các ứng dụng văn phòng thực thi chức năng thường sẵn có
trong các bảng tính đối với các bảng có thể được chứa trong một biểu đồ, phần
mở đầu tài liệu biểu đồ có thể bao gồm các phần tử thực thi các tính năng biểu
bảng tăng cường.
<define name="office-chart-content-prelude">
<ref name="text-decls"/>
<ref name="table-decls"/>
</define>
Nếu tài liệu chính chỉ là một phần tử biểu đồ thì khai báo:
<define name="office-chart-content-main">
<ref name="chart-chart"/>
</define>
13
Tuy không có các phần tử phần kết cụ thể tài liệu sơ đồ nhưng phần kết
đó có thể bao gồm các phần tử thực thi các tính năng biểu bảng tăng cường.
<define name="office-chart-content-epilogue">
<ref name="table-functions"/>
</define>
1.6. Tài liệu hình ảnh
Nội dung của một tài liệu hình ảnh chỉ là một phần tử khung chứa các
hình ảnh. Phần tử khung này phải bao gồm một số phần tử hình ảnh đơn lẻ.
<define name="office-body-content" combine="choice">
<element name="office:image">
<ref name="office-image-attlist"/>
<ref name="office-image-content-prelude"/>
<ref name="office-image-content-main"/>
<ref name="office-image-content-epilogue"/>
</element>
</define>
<define name="office-image-attlist">
<empty/>
</define>
Mô hình nội dung tài liệu hình ảnh được xác định:
<define name="office-image-content-prelude">
<empty/>
</define>
Nội dung chính của tài liệu chỉ chứa một khung thì khai báo:
<define name="office-image-content-main">
<ref name="draw-frame"/>
</define>
Không có các phần tử phần kết thúc cụ thể tài liệu hình ảnh.
<define name="office-image-content-epilogue">
<empty/>
</define>
2. Thiết lập các tham số ứng dụng
Thiết lập các tham số ứng dụng trong tài liệu sẽ được chứa trong một
phần tử <office:settings> và được khai báo như sau:
<define name="office-settings">
<optional>
<element name="office:settings">
<oneOrMore>
<ref name="config-config-item-set"/>
</oneOrMore>
</element>
</optional>

14
</define>
Các thiết lập tham số đối với các ứng dụng văn phòng có thể được chia
thành nhiều danh mục phân loại, mỗi danh mục phân loại được biểu diễn bởi
một phần tử <config:config-item-set>.
2.1. Trình tự các thiết lập tham số
Phần tử <config:config-item-set> là một phần tử phần chứa toàn bộ các
kiểu phần tử thiết lập tham số ứng dụng. Các thiết lập này có thể được chứa
trong phần tử đó theo một thứ tự tùy ý và cần khai báo:
<define name="config-config-item-set">
<element name="config:config-item-set">
<ref name="config-config-item-set-attlist"/>
<ref name="config-items"/>
</element>
</define>
<define name="config-items">
<oneOrMore>
<choice>
<ref name="config-config-item"/>
<ref name="config-config-item-set"/>
<ref name="config-config-item-map-named"/>
<ref name="config-config-item-map-indexed"/>
</choice>
</oneOrMore>
</define>
Ngoài ra, thuộc tính config:name sẽ định danh tên của phần chứa thiết lập.
Đối với các phần tử mức cao như <config:config-item-set>, đó là phần tử con
trực tiếp của phần tử <office:settings>, tên phần tử này nên được xác định trước
bởi một tiền tố tên miền định danh thuộc các thiết lập ứng dụng đó, cấu trúc khai
báo như sau:
<define name="config-config-item-set-attlist" combine="interleave">
<attribute name="config:name">
<ref name="string"/>
</attribute>
</define>
Ví dụ các lệnh khai báo thiết lập tham số ứng dụng cho phần mềm văn
phòng mở OpenOffice.org được viết như sau:
<office:settings>
<config:config-item-set xmlns:ooo="http://www.openoffice.org/...";
config:name="ooo:view-settings">
<config:config-item config:name="ViewAreaTop"
config:type="int">0</config:config-item>
</config:config-item-set>
</office:settings>
15
2.2. Các thiết lập cơ sở
Phần tử <config:config-item> chứa toàn bộ các thiết lập cơ sở. Giá trị của
thiết lập đó được lưu trữ trong phần tử này.
<define name="config-config-item">
<element name="config:config-item">
<ref name="config-config-item-attlist"/>
<text/>
</element>
</define>
Để thể hiện tên thuộc tính, cần sử dụng config:name để định danh tên của
thiết lập, cụ thể:
<define name="config-config-item-attlist" combine="interleave">
<attribute name="config:name">
<ref name="string"/>
</attribute>
</define>
Để thể hiện kiểu cấu hình, cần sử dụng config:type để định danh kiểu dữ
liệu của thiết lập, cụ thể:
<define name="config-config-item-attlist" combine="interleave">
<attribute name="config:type">
<choice>
<value>boolean</value>
<value>short</value>
<value>int</value>
<value>long</value>
<value>double</value>
<value>string</value>
<value>datetime</value>
<value>base64Binary</value>
</choice>
</attribute>
</define>
2.3. Truy cập chỉ mục của trình tự
Phần tử <config:config-item-map-indexed> là một phần tử phần chứa các
trình tự chỉ mục đã xác lập. Thứ tự này quy định chỉ mục của các phần tử đó:
<define name="config-config-item-map-indexed">
<element name="config:config-item-map-indexed">
<ref name="config-config-item-map-indexed-attlist"/>
<oneOrMore>
<ref name="config-config-item-map-entry"/>
</oneOrMore>
</element>
</define>
16
Thuộc tính config:name định danh tên của trình tự thiết lập, cụ thể:
<define name="config-config-item-map-indexed-attlist" combine="interleave">
<attribute name="config:name">
<ref name="string"/>
</attribute>
</define>
2.4. Sơ đồ mục nhập
Phần tử <config:config-item-map-entry> trình bày một mục nhập trong
một trình tự các thiết lập được đặt tên và lập bảng chỉ dẫn. Nó là một phần tử
phần chứa toàn bộ các kiểu phần tử thiết lập theo một trình tự truy nhập xác định
và cần khai báo:
<define name="config-config-item-map-entry">
<element name="config:config-item-map-entry">
<ref name="config-config-item-map-entry-attlist"/>
<ref name="config-items"/>
</element>
</define>
Thuộc tính config:name định danh tên của trình tự thiết lập, cụ thể:
<define name="config-config-item-map-entry-attlist" combine="interleave">
<optional>
<attribute name="config:name">
<ref name="string"/>
</attribute>
</optional>
</define>
2.5. Truy cập tên của các trình tự
Phần tử <config:config-item-map-named> là một phần tử chứa toàn bộ
các trình tự tên thiết lập, mỗi thiết lập theo trình tự ở đây được định danh bởi tên
của nó và cần khai báo:
<define name="config-config-item-map-named">
<element name="config:config-item-map-named">
<ref name="config-config-item-map-named-attlist"/>
<oneOrMore>
<ref name="config-config-item-map-entry"/>
</oneOrMore>
</element>
</define>
Thuộc tính config:name định danh tên của trình tự thiết lập, cụ thể:
<define name="config-config-item-map-named-attlist" combine="interleave">
<attribute name="config:name">
<ref name="string"/>
</attribute>

17
</define>
2.6. Tập lệnh script
Một tài liệu có thể bao gồm nhiều tập lệnh theo các ngôn ngữ tập lệnh
khác nhau. Mỗi tập lệnh được biểu diễn bởi một phần tử <office:script>. Toàn
bộ các phần tử tập lệnh này được chứa trong một phần tử <office:scripts> đơn
lẻ. Các tập lệnh không hàm chứa một ngôn ngữ tập lệnh hoặc một mô hình đối
tượng. Một tập lệnh có thể hoạt động trên mô hình đối tượng tài liệu (DOM) của
một loại tài liệu trong định dạng tài liệu mở hoặc trên một giao diện ứng dụng
API cụ thể của phần mềm ứng dụng. Các tập lệnh không thể sửa đổi một tài liệu
trong khi tài liệu đó đang nạp vào bộ nhớ máy. Tuy nhiên, một vài sự kiện được
gọi tức thì sau khi tài liệu đó được nạp vào máy. Ngoài phần tử <office:script>,
phần tử <office:scripts> cũng có thể bao gồm một phần tử <office:event-
listeners> bao gồm các sự kiện được ấn định cho chính tài liệu đó. Khai báo cho
phần tử này như sau:
<define name="office-scripts">
<optional>
<element name="office:scripts">
<zeroOrMore>
<ref name="office-script"/>
</zeroOrMore>
<optional>
<ref name="office-event-listeners"/>
</optional>
</element>
</optional>
</define>
Phần tử <office:script> bao gồm nội dung cụ thể của ngôn ngữ tập lệnh.
Trong phần lớn các trường hợp, phần tử đó bao gồm mã nguồn của tập lệnh,
nhưng nó cũng có thể bao gồm một phiên bản đã được biên dịch của tập lệnh
hoặc một liên kết tới một số mã tập lệnh bên ngoài.
<define name="office-script">
<element name="office:script">
<ref name="office-script-attlist"/>
<mixed>
<ref name="anyElements"/>
</mixed>
</element>
</define>
Thuộc tính script:language quy định ngôn ngữ của tập lệnh đó bởi tên của
nó. Do các tên ngôn ngữ tập lệnh là ứng dụng cụ thể, nên tên đó nên được xác
định trước bởi một tiền tố tên miền.
<define name="office-script-attlist">
<attribute name="script:language">
18
<ref name="string"/>
</attribute>
</define>
2.7. Các khai báo bề mặt phông
Trong một tài liệu theo chuẩn ODF có thể hàm chứa bao gồm nhiều khai
báo bề mặt phông. Một khai báo bề mặt phông chữ đưa ra thông tin về các
phông chữ được sử dụng bởi người tạo ra tài liệu. Vì vậy, các phông chữ này
hoặc các phông chữ gần giống các phông chữ này có thể được đặt trên các hệ
thống khác nhau. Khai báo phông chữ như sau:
<define name="office-font-face-decls">
<optional>
<element name="office:font-face-decls">
<zeroOrMore>
<ref name="style-font-face"/>
</zeroOrMore>
</element>
</optional>
</define>
2.8. Khai báo kiểu dáng
Định dạng tài liệu mở hỗ trợ các loại khai báo sau đây về các kiểu dáng
sau đây:
- Các kiểu dáng chung: Phần lớn các ứng dụng văn phòng hỗn trợ các
kiểu dáng trong giao diện người sử dụng của họ. Trong đặc tả này, các trình diễn
XML của các kiểu dáng như vậy được coi là các kiểu dáng. Khi có sự khác biệt
với các kiểu khác của các kiểu dáng được yêu cầu, thì chúng được coi là các
kiểu dáng chung. Thuật ngữ chung chỉ ra rằng đây là kiểu của kiểu dáng mà một
người sử dụng ứng dụng văn phòng coi là một kiểu dáng.
- Các kiểu dáng tự động: Một kiểu dáng tự động gồm các đặc tính định
dạng, trong quan sát giao diện người sử dụng của một tài liệu, được ấn định cho
một đối tượng như là một đoạn. Thuật ngữ tự động chỉ ra rằng kiểu dáng đó
được tạo một cách tự động. Nói cách khác, các đặc tính định dạng được ấn định
tức thì cho một đối tượng cụ thể biểu diễn một kiểu dáng tự động. Cách này, đạt
được sự phân tách nội dung và trình bày.
- Kiểu dáng chủ đạo: Kiểu dáng chủ đạo là một kiểu dáng chung nó bao
gồm thông tin định dạng và nội dung bổ sung được hiển thị cùng với nội dung
tài liệu đó khi áp dụng kiểu dáng đó. Một ví dụ về một kiểu dáng chủ đạo là các
trang chủ. Nội dung được chứa trong kiểu dáng chủ là nội dung bổ sung tác
động đến sự biểu diễn của một tài liệu nhưng không thay đổi nội dung của tài
liệu. Chúng biểu diễn cách bố trí độc lập với thiết bị đầu ra và thông tin định
dạng mà người tạo ra tài liệu đã sử dụng để tạo ra hoặc soạn thảo tài liệu đó. Các
kiểu tự động và kiểu chung có cùng cách biểu diễn trong XML, nhưng chúng
được chứa trong hai phần tử phân biệt, cụ thể như sau:

19
<office:master-styles>
<define name="office-styles">
<optional>
<element name="office:styles">
<interleave>
<ref name="styles"/>
<zeroOrMore>
<ref name="style-default-style"/>
</zeroOrMore>
<optional>
<ref name="text-outline-style"/>
</optional>
<zeroOrMore>
<ref name="text-notes-configuration"/>
</zeroOrMore>
<optional>
<ref name="text-bibliography-configuration"/>
</optional>
<optional>
<ref name="text-linenumbering-configuration"/>
</optional>
<zeroOrMore>
<ref name="draw-gradient"/>
</zeroOrMore>
<zeroOrMore>
<ref name="svg-linearGradient"/>
</zeroOrMore>
<zeroOrMore>
<ref name="svg-radialGradient"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-hatch"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-fill-image"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-marker"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-stroke-dash"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-opacity"/>
20
</zeroOrMore>
<zeroOrMore>
<ref name="style-presentation-page-layout"/>
</zeroOrMore>
</interleave>
</element>
</optional>
</define>
<define name="office-automatic-styles">
<optional>
<element name="office:automatic-styles">
<interleave>
<ref name="styles"/>
<zeroOrMore>
<ref name="style-page-layout"/>
</zeroOrMore>
</interleave>
</element>
</optional>
</define>
<define name="office-master-styles">
<optional>
<element name="office:master-styles">
<interleave>
<zeroOrMore>
<ref name="style-master-page"/>
</zeroOrMore>
<optional>
<ref name="style-handout-master"/>
</optional>
<optional>
<ref name="draw-layer-set"/>
</optional>
</interleave>
</element>
</optional>
</define>
<define name="styles">
<interleave>
<zeroOrMore>
<ref name="style-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="text-list-style"/>
21
</zeroOrMore>
<zeroOrMore>
<ref name="number-number-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-currency-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-percentage-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-date-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-time-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-boolean-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="number-text-style"/>
</zeroOrMore>
</interleave>
</define>
2.9. Khai báo trình bày và kiểu trang
Kiểu dáng trình bày và kiểu cách bố trí của các trang trong một tài liệu
được xác định bởi: Cách bố trí trang và các trang chủ của tài liệu. Cách bố trí
trang mô tả các đặc tính vật lý hoặc hình học của một trang tài liệu về kích
thước trang, các mép trang, độ cao đầu trang và độ cao cuối trang. Trang chủ là
một khuôn mẫu đối với các trang trong một tài liệu. Nó bao gồm một tham chiếu
đến một cách bố trí trang quy định các đặc tính vật lý của trang đó và và cũng có
thể bao gồm nội dung không thay đổi được hiển thị trên toàn bộ các trang trong
tài liệu sử dụng trang chủ. Nếu một văn bản hoặc tài liệu bảng tính được hiển thị
trong một cách bố trí được nhớ trang, thì các trang chủ được minh họa để tạo
một trình tự các trang bao gồm nội dung tài liệu đó. Khi một trang chủ được
minh họa, thì một trang trống được tạo ra cùng với các đặc tính của trang chủ đó
và nội dung không thay đổi của trang chủ đó. Thân của trang đó sau đó được
điền nội dung vào. Nếu nhiều trang trong một tài liệu sử dụng cùng trang chủ,
thì trang chủ có thể được minh họa vài lần trong tài liệu. Trong văn bản và các
tài liệu bảng tính, một trang chủ có thể được ấn định cho các kiểu dáng bảng và
đoạn có sử dụng một thuộc tính style:master-page-name. mỗi lần áp dụng đoạn
hoặc bảng đó cho văn bản, một ngắt trang được chèn trước đoạn hoặc bảng đó.
Trang mà bắt đầu tại vị trí ngắt trang đó sử dụng trang chủ được quy định. Trong
22
các trình diễn và đồ họa, các trang chủ có thể được ấn định cho các trang đồ họa
có sử dụng một thuộc tính style:parent-style-name. Chi tiết khai báo cho phần tử
này sẽ trình bày ở phần sau.
3. Các phần tử siêu dữ liệu (meta data)
Các phần tử siêu dữ liệu trong tiêu chuẩn này dựa trên cơ sở các tiêu
chuẩn siêu dữ liệu được xây dựng bởi sáng kiến của Dublin Core.
3.1 Các phần tử siêu dữ liệu định nghĩa trước
Có một bộ các phần tử siêu dữ liệu định nghĩa trước có thể được xử lý và
cập nhật bởi chương trình ứng dụng. Các phần tử siêu dữ liệu có thể bị bỏ qua
hoặc xuất hiện nhiều lần. Nó là ứng dụng cụ thể về cách cập nhật nhiều trường
hợp của cùng các phần tử. Phần tử <meta:generator> gồm một chuỗi để định
danh ứng dụng hoặc công cụ đã được sử dụng để tạo ra hoặc sửa đổi cuối cùng
tài liệu theo XML đó. Chuỗi này nên phù hợp với định nghĩa đối với các tác
nhân người sử dụng trong giao thức HTTP. Các ứng dụng phù hợp có thể sử
dụng chuỗi khởi tạo để hoạt động gỡ rối tồn tại hoặc đã tồn tại trong ứng dụng
cụ thể, nhưng không phải thực thi một cách thận trọng một hành vi phụ thuộc
vào chuỗi khởi tạo nào đó. Nếu ứng dụng đó đã tạo tài liệu mà không thể đưa ra
một chuỗi định danh, thì ứng dụng đó không truy xuất phần tử này. Nếu ứng
dụng khác điều chỉnh tài liệu và không thể đưa ra một định danh duy nhất, thì nó
không phải truy xuất định danh gốc thuộc ứng dụng đã tạo ra tài liệu đó, cấu trúc
khai báo chung như sau:
<define name="office-meta-data" combine="choice">
<element name="meta:generator">
<ref name="string"/>
</element>
</define>
Phần tử <dc:title> quy định tiêu đề của tài liệu.
<define name="office-meta-data" combine="choice">
<element name="dc:title">
<ref name="string"/>
</element>
</define>
Phần tử <dc:description> gồm một mô tả vắn tắt của tài liệu đó.
<define name="office-meta-data" combine="choice">
<element name="dc:description">
<ref name="string"/>
</element>
</define>
Phần tử <dc:subject> quy định chủ đề của tài liệu đó.
<define name="office-meta-data" combine="choice">
<element name="dc:subject">
<ref name="string"/>

23
</element>
</define>
Phần tử <meta:keyword> gồm một từ khóa gắn liền với tài liệu đó. Siêu
dữ liệu đó có thể bao gồm bất kỳ số phần tử <meta:keyword> nào, mỗi phần tử
quy định một từ khóa.
<define name="office-meta-data" combine="choice">
<element name="meta:keyword">
<ref name="string"/>
</element>
</define>
Phần tử <meta:initial-creator> quy định tên của người đã tạo ra tài liệu
ban đầu.
<define name="office-meta-data" combine="choice">
<element name="meta:initial-creator">
<ref name="string"/>
</element>
</define>
Phần tử <dc:creator> quy định tên của người sửa đổi cuối cùng tài liệu đó.
Tên của phần tử này được chọn để tương thích với Dublin Core, nhưng định
nghĩa "người tạo" được sử dụng ở đây khác với Dublin Core, định nghĩa người
tạo là "Một thực thể có trách nhiện chính đối với việc tạo ra nội dung của
nguồn." Trong thuật ngữ tài liệu mở, người cuối cùng sửa đổi tài liệu đó có trách
nhiệm chính tạo ra nội dung của tài liệu đó.
<define name="office-meta-data" combine="choice">
<ref name="dc-creator"/>
</define>
<define name="dc-creator">
<element name="dc:creator">
<ref name="string"/>
</element>
</define>
Phần tử <meta:printed-by> quy định tên của người cuối cùng in tài liệu đó
đã được đưa vào tài liệu.
<define name="office-meta-data" combine="choice">
<element name="meta:printed-by">
<ref name="string"/>
</element>
</define>
Phần tử <meta:creation-date> quy định ngày tháng và thời gian mà tài liệu
đó được khởi tạo ban đầu. Phù hợp với [xmlschema-2], định dạng ngày tháng và
thời gian là YYYY-MM-DDThh:mm:ss.
<define name="office-meta-data" combine="choice">
<element name="meta:creation-date">
<ref name="dateTime"/>
24
</element>
</define>
Phần tử <dc:date> quy định ngày tháng và thời gian cuối cùng mà tài liệu
đó được sửa đổi. Phù hợp với [xmlschema-2], định dạng ngày tháng và thời gian
là YYYY-MM-DDThh:mm:ss. Tên của phần tử này được chọn để tương thích
với Dublin Core.
<define name="office-meta-data" combine="choice">
<ref name="dc-date"/>
</define>
<define name="dc-date">
<element name="dc:date">
<ref name="dateTime"/>
</element>
</define>
Phần tử <meta:print-date> quy định ngày tháng và thời gian cuối cùng mà
tài liệu đó được in. Phù hợp với [xmlschema-2], định dạng ngày tháng và thời
gian là YYYY-MM-DDThh:mm:ss.
<define name="office-meta-data" combine="choice">
<element name="meta:print-date">
<ref name="dateTime"/>
</element>
</define>
Phần tử <meta:template> gồm một URL đối với khuôn mẫu tài liệu đó mà
được sử dụng để tạo ra tài liệu đó. URL này được quy định như một XLink.
Thuộc tính xlink:href quy định vị trí của khuôn mẫu tài liệu đó. Thuộc tính
xlink:title quy định tên của khuôn mẫu tài liệu đó. Thuộc tính meta:date quy
định ngày tháng và thời gian mà khuôn mẫu đó được sửa đổi cuối cùng, trước
khi được sử dụng để tạo ra tài liệu hiện tại. Phù hợp với [xmlschema-2], định
dạng ngày tháng và thời gian là YYYY-MM-DDThh:mm:ss.
<define name="office-meta-data" combine="choice">
<element name="meta:template">
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
25
<optional>
<attribute name="xlink:title">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="meta:date">
<ref name="dateTime"/>
</attribute>
</optional>
</element>
</define>
Phần tử <meta:auto-reload> quy định một tài liệu được nạp lại hay được
thay thế bởi một tài liệu khác sau một khoảng thời gian nào đó trôi qua. Nếu một
tài liệu được nạp lại được nên được thay thế bởi một tài liệu khác sau một
khoảng thời gian nào đó, phần tử <meta:auto-reload> được biểu diễn như một
XLink. Thuộc tính xlink:href định danh URL của tài liệu thay thế. Thuộc tính
meta:delay quy định trễ nạp lại. Phần tử <meta:hyperlink-behaviour> quy định
cách hoạt động mặc định đối với siêu liên kết trong tài liệu đó. Thuộc tính
meta:target-frame-name quy định tên của khung đích mặc định trong đó để hiển
thị một tài liệu được tham chiếu bởi một siêu liên kết. Thuộc tính này có thể có
một trong các giá trị sau đây:
<define name="office-meta-data" combine="choice">
<element name="meta:auto-reload">
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:show" a:defaultValue="replace">
<value>replace</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onLoad">
<value>onLoad</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
</optional>
26
<optional>
<attribute name="meta:delay">
<ref name="duration"/>
</attribute>
</optional>
</element>
</define>
Nếu giá trị của thuộc tính meta:target-frame-name là _blank, thì giá trị
thuộc tính xlink:show là mới. Nếu giá trị của thuộc tính meta:target- frame-name
là bất kỳ giá trị nào của các tùy chọn giá trị khác, thì giá trị của thuộc tính
xlink:show là replace.
<define name="office-meta-data" combine="choice">
<element name="meta:hyperlink-behaviour">
<optional>
<attribute name="office:target-frame-name">
<ref name="targetFrameName"/>
</attribute>
</optional>
<optional>
<attribute name="xlink:show">
<choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</element>
</define>
Phần tử <dc:language> quy định ngôn ngữ mặc định của tài liệu đó. Cách
thức ngôn ngữ đó được trình bày giống với thẻ ngôn ngữ được mô tả trong
[RFC3066]. Nó bao gồm một mã ngôn ngữ hai hoặc ba ký tự chữ cái theo tiêu
chuẩn ISO 639 theo sau một cách tùy ý bởi dấu gạch ngang (-) và một mã nước
hai ký tự chữ cái theo tiêu chuẩn ISO 3166.
<define name="office-meta-data" combine="choice">
<element name="dc:language">
<ref name="language"/>
</element>
</define>
Phần tử <meta:editing-cycles> quy định số hiệu chu trình soạn thảo tài
liệu đó đã được thông qua. Giá trị của phần tử này được tăng lên tại mọi thời
điểm tài liệu đó được lưu trữ. Phần tử này bao gồm số hiệu chu trình soạn thảo
văn bản.
<define name="office-meta-data" combine="choice">
<element name="meta:editing-cycles">
27
<ref name="nonNegativeInteger"/>
</element>
</define>
Phần tử <meta:editing-duration> quy định toàn bộ thời gian soạn thảo tài
liệu đó. Khoảng thời gian này được biểu diễn theo kiểu dữ liệu khoảng thời gian
của [xmlschema-2], đó là PnYnMnDTnHnMnS.
<define name="office-meta-data" combine="choice">
<element name="meta:editing-duration">
<ref name="duration"/>
</element>
</define>
Phần tử <meta:document-statistic> quy định các số liệu thống kê của tài
liệu đó như đếm số trang, đếm số từ, v.v. Các số liệu thống kê này được quy
định như là các thuộc tính của phần tử <meta:document-statistic> và các số liệu
thống kê này sẽ được truy xuất cùng với tài liệu đó nhưng phụ thuộc vào kiểu tài
liệu và ứng dụng được sử dụng để tạo ra tài liệu đó. Khai báo của phần tử này
được viết như sau:
<define name="office-meta-data" combine="choice">
<element name="meta:document-statistic">
<optional>
<attribute name="meta:page-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:table-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:draw-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:image-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:ole-object-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
28
<optional>
<attribute name="meta:paragraph-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:word-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:character-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="frame-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="sentence-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="syllable-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="non-whitespace-character-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:row-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<optional>
<attribute name="meta:cell-count">
<ref name="nonNegativeInteger"/>
</attribute>
29
</optional>
<optional>
<attribute name="meta:object-count">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</element>
</define>
3.2. Siêu dữ liệu do người sử dụng định nghĩa
Phần tử <meta:user-defined> quy định mọi siêu dữ liệu do người sử dụng
định nghĩa bổ sung đối với tài liệu đó. Mỗi trường hợp của phần tử này có thể
bao gồm một khối liền siêu dữ liệu người sử dụng định nghĩa. Phần tử này gồm
thuộc tính meta:name, định danh tên của phần tử siêu dữ liệu đó và thuộc tính
meta:value-type tùy chọn, định danh kiểu của phần tử siêu dữ liệu đó. Kiểu mặc
định đối với các phần tử siêu dữ liệu là chuỗi.
<define name="office-meta-data" combine="choice">
<element name="meta:user-defined">
<attribute name="meta:name">
<ref name="string"/>
</attribute>
<choice>
<group>
<attribute name="meta:value-type">
<value>float</value>
</attribute>
<ref name="double"/>
</group>
<group>
<attribute name="meta:value-type">
<value>date</value>
</attribute>
<ref name="dateOrDateTime"/>
</group>
<group>
<attribute name="meta:value-type">
<value>time</value>
</attribute>
<ref name="duration"/>
</group>
<group>
<attribute name="meta:value-type">
<value>boolean</value>
</attribute>
30
<ref name="boolean"/>
</group>
<group>
<attribute name="meta:value-type">
<value>string</value>
</attribute>
<ref name="string"/>
</group>
<văn bản/>
</choice>
</element>
</define>
3.3 Siêu dữ liệu tùy chỉnh
Ngoài ra, các phần tử siêu dữ liệu định nghĩa trước, các ứng dụng văn
phòng cũng có thể duy trì bất cứ nội dung bổ sung nào tùy ý. Việc khai báo siêu
dữ liệu loại này sẽ được thực hiện tương tự như khai báo về siêu dữ liệu do
người sử dụng định nghĩa bên trong phần tử <office:meta>. Khi không có các
định nghĩa được quy định đối với loại siêu dữ liệu này, các phần mềm ứng dụng
sẽ không cần xử lý thông tin này mà chỉ cần duy trì khi soạn thảo tài liệu đó.
4. Nội dung văn bản
Nội dung văn bản là thành phần chủ yếu của một tài liệu và nó bao gồm
các phần tử chính như sau:
4.1. Đoạn văn bản và tựa đề tài liệu
Phần này mô tả các thuộc tính và phần tử XML được sử dụng để trình bày
các thành phần đoạn văn bản (paragraph) và tựa đề trong một tài liệu văn bản.
Các phần tử <text:h> và <text:p> trình bày các tựa đề và các đoạn theo thứ tự,
và được đề cập chung như các phần tử đoạn. Toàn bộ nội dung văn bản trong
một tệp tài liệu mở phải được chứa trong các phần tử này. Tựa đề xác định cấu
trúc chương đối với một tài liệu. Một chương hoặc các chương nhỏ bắt đầu với
một tựa đề và phần mở rộng sang tựa đề tiếp theo tại cùng một mức hoặc ở mức
cao hơn. Việc khai báo được thực hiện:
<define name="text-h">
<element name="text:h">
<ref name="heading-attrs"/>
<ref name="paragraph-attrs"/>
<optional>
<ref name="text-number"/>
</optional>
<zeroOrMore>
<ref name="paragraph-content"/>
</zeroOrMore>
</element>
31
</define>
Thuộc tính text:outline-level tương ứng với phần tử tựa đề xác định mức
gia tiến của tựa đề đó, bắt đầu là 1. Các tựa đề không có thuộc tính về mức được
giả định là tại mức 1.
<define name="heading-attrs" combine="interleave">
<attribute name="text:outline-level">
<ref name="positiveInteger"/>
</attribute>
</define>
Đánh số tiêu đề có thể được thay đổi bởi các thuộc tính bổ sung, giống
như các thuộc tính trong các mục danh sách. Việc đánh số các tiêu đề có thể
được bắt đầu lại bằng việc thiết lập thuộc tính text:restart- numbering là true.
<define name="heading-attrs" combine="interleave">
<optional>
<attribute name="text:restart-numbering" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:start-value có thể được sử dụng để bắt đầu lại việc đánh
số các tiêu đề của mức của tiêu đề hiện tại bằng việc thiết lập một giá trị mới đối
với việc đánh số đó.
<define name="heading-attrs" combine="interleave">
<optional>
<attribute name="text:start-value">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Trong một số trường hợp, khi mong muốn có một số tựa đề cụ thể không
nên đánh số thì cần xác định danh sách để khai báo cho phần mềm. Điều này
tương ứng với các tiêu đề liệt kê không được đánh số trong danh sách. Để tạo
thuận tiện cho điều này, có thể sử dụng một thuộc tính tùy chọn text:is-list-
header. Nếu đúng, tiêu đề cho trước không được đánh số, thậm chí kiểu danh
sách rõ ràng được cho trước.
<define name="heading-attrs" combine="interleave">
<optional>
<attribute name="text:is-list-header" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Nếu một tựa đề áp dụng việc đánh số, thì văn bản số được định dạng có
thể được chứa trong một phần tử <text:number>. Văn bản này có thể được sử
32
dụng bởi các ứng dụng không hỗ trợ việc đánh số các tựa đề, nhưng nó sẽ được
bỏ qua bởi các ứng dụng hỗ trợ việc đánh số.
<define name="text-number">
<element name="text:number">
<ref name="string"/>
</element>
</define>
Đoạn văn bản là đơn vị cơ sở của tài liệu văn bản và được xác định:
<define name="text-p">
<element name="text:p">
<ref name="paragraph-attrs"/>
<zeroOrMore>
<ref name="paragraph-content"/>
</zeroOrMore>
</element>
</define>
Các phần tử đoạn có các thuộc tính text:style-name, text:class-names và
text:cond-style-name. Các thuộc tính này phải tham chiếu đến các kiểu dáng
đoạn. Thuộc tính text:style-name tham chiếu một kiểu dáng đoạn, khi một thuộc
tính text:cond-style-name tham chiếu một conditional-style, đó là, một kiểu dáng
bao gồm các điều kiện và các ánh xạ tới các kiểu dáng khác. Nếu áp dụng một
kiểu dáng có điều kiện cho một đoạn, thì thuộc tính text:style-name chứa tên của
kiểu dáng là kết quả của việc đánh giá kiểu dáng có điều kiện, khi chính bản
thân tên của kiểu dáng có điều kiện là giá trị của thuộc tính text:cond-style-
name. Thuộc tính text:class-names có một danh sách được phân tách bằng
khoảng trắng các tên kiểu đoạn. Kiểu dáng tham chiếu được áp dụng theo thứ tự
chúng được chứa trong danh sách đó. Nếu có mặt cả text:style-name và
text:class-names, thì kiểu dáng được tham chiếu bởi thuộc tính text:style-name
như là kiểu dáng đầu tiên trong danh sách của text:class-names. Nếu một kiểu
dáng có điều kiện được quy định cùng với một thuộc tính style:class-names,
nhưng không được quy định bởi thuộc tính text:style-name, thì kiểu dáng đầu
tiên trong danh sách kiểu dáng đó được sử dụng như giá trị của thuộc tính
text:style-name thiếu.
<define name="paragraph-attrs">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<optional>
<attribute name="text:class-names">
<ref name="styleNameRefs"/>
</attribute>
</optional>
33
<optional>
<attribute name="text:cond-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Một đoạn có thể có một chỉ số ID. Chỉ số ID này có thể được sử dụng để
tham chiếu đoạn đó từ các phần tử khác.
<define name="paragraph-attrs" combine="interleave">
<optional>
<ref name="text-id"/>
</optional>
</define>
4.2. Trình tự trang
Phần tử trình tự trang <text:page-sequence> quy định một trình tự của các
trang chủ được minh họa theo cùng thứ tự chính xác như chúng được tham chiếu
theo trình tự trang. Ngoài ra, trình tự trang còn bao hàm các thông tin về cách
trình bày của từng trang văn bản. Việc khai báo được thực hiện:
<style:automatic-style>
<style:page-layout name="pm1">
<!-- portrait page -->
</style:page-layout>
<style:page-layout name="pm2">
<!-- landscape page -->
</style:page-layout>
</style:automatic-style>
...
<style:master-styles>
<style:master-page name="portrait" style:page-layout-name="pm1"/>
<style:master-page name="landscape" style:page-layout-name="pm2"/>
</style:master-styles>
...
<office:body>
<text:page-sequence>
<text:page text:master-page-name="portrait"/>
<text:page text:master-page-name="portrait"/>
<text:page text:master-page-name="landscape"/>
<text:page text:master-page-name="landscape"/>
<text:page text:master-page-name="portrait"/>
</text:page-sequence>
<draw:frame ...>
<draw:text-box ...>
<text:p>Example text.</text:p>
34
...
</draw:text-box>
</draw:frame>
</office:body>
<define name="text-page-sequence">
<element name="text:page-sequence">
<oneOrMore>
<ref name="text-page"/>
</oneOrMore>
</element>
</define>
Phần tử <text:page> quy định một trang đơn lẻ trong một trình tự trang.
<define name="text-page">
<element name="text:page">
<ref name="text-page-attlist"/>
<empty/>
</element>
</define>
Thuộc tính text:master-page-name quy định trang chủ được minh họa cụ
thể trong file tài liệu.
<define name="text-page-attlist">
<attribute name="text:master-page-name">
<ref name="styleNameRef"/>
</attribute>
</define>
4.3. Danh sách liệt kê
Một danh sách liệt kê được biểu diễn bởi phần tử <text:list>. Nó bao gồm
tiêu đề danh sách tùy chọn cho các khối, mục, tiêu đề hoặc các đoạn văn bản đã
đánh số ... trong một tài liệu.
<define name="text-list">
<element name="text:list">
<ref name="text-list-attr"/>
<optional>
<ref name="text-list-header"/>
</optional>
<zeroOrMore>
<ref name="text-list-item"/>
</zeroOrMore>
</element>
</define>
Thuộc tính tùy chọn text:style-name quy định tên của kiểu dáng danh sách
được áp dụng cho danh sách đó. Nếu danh sách đó được chứa trong một danh
sách khác, kiểu dáng danh sách ngầm định đối với kiểu dáng của danh sách là
35
kiểu dáng của danh sách phụ cận. Nếu không có kiểu dánh danh sách nào được
quy định đối với danh sách phụ cận, nhưng danh sách đó bao gồm các đoạn có
các kiểu dáng đoạn được gắn kèm việc quy định một kiểu dáng danh sách, kiểu
dáng danh sách này được sử dụng cho bất kỳ đoạn nào của tài liệu.
<define name="text-list-attr" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính này có thể được sử dụng cùng với phần tử <text:list> và có thể
có một giá trị true hoặc false. Nếu giá trị của thuộc tính là true và việc đánh số
kiểu dáng của danh sách trước giống danh sách hiện tại, thì số mục danh sách
đầu tiên trong danh sách hiện tại là số mục cuối cùng trong danh sách trước
cộng thêm với một.
<define name="text-list-attr" combine="interleave">
<optional>
<attribute name="text:continue-numbering">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <text:list-item> có thể bao gồm các đoạn hoặc danh sách. Một
mục danh sách có thể không bao gồm các tựa đề hoặc các bảng.
<define name="text-list-item">
<element name="text:list-item">
<ref name="text-list-item-attr"/>
<ref name="text-list-item-content"/>
</element>
</define>
<define name="text-list-item-content">
<optional>
<ref name="text-number"/>
</optional>
<zeroOrMore>
<choice>
<ref name="text-p"/>
<ref name="text-h"/>
<ref name="text-list"/>
</choice>
</zeroOrMore>
</define>

36
Dòng đầu tiên trong một mục danh sách được ghi trước bởi một dấu đề
mục (bullet) hoặc số, phụ thuộc vào kiểu dáng danh sách được ấn định cho danh
sách đó. Nếu một mục danh sách bắt đầu một danh sách khác tức thì và không
bao gồm bất kỳ văn bản nào, thì không hiển thị dấu bullet hoặc số nào. Việc
đánh số danh sách hiện tại có thể được bắt đầu lại tại một số nào đó. Thuộc tính
text:start-value được sử dụng để quy định số hiệu để bắt đầu lại danh sách đó.
Thuộc tính này chỉ có thể được áp dụng cho các mục trong một danh sách cùng
với một kiểu danh sách đánh số. Nó bắt đầu lại việc đánh số danh sách đó tại
mục hiện tại.
<define name="text-list-item-attr" combine="interleave">
<optional>
<attribute name="text:start-value">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Nếu một mục danh sách có áp dụng một việc đánh số, thì văn bản đánh số
có định dạng có thể được chứa trong một phần tử <text:number>. Văn bản này
có thể được sử dụng bởi các ứng dụng không hỗ trợ việc đánh số, nhưng nó
được bỏ qua bởi các ứng dụng hỗ trợ việc đánh số, ví dụ:
<text:list text:style-name="List 1">
<text:list-item>
<text:p>Đây là mục danh sách thứ nhất</text:p>
<text:p>Đây là một danh mục của danh sách đầu tiên.</text:p>
</text:list-item>
<text:list-item>
<text:p>Đây là mục danh sách thứ hai.
Nó bao gồm một danh sách con.</text:p>
<text:list>
<text:list-item><text:p>Đây là một mục danh sách nhỏ.</text:p>
<text:list-item><text:p>Đây là một mục danh sách nhỏ.</text:p>
<text:list-item><text:p>Đây là một mục danh sách nhỏ.</text:p>
</text:list>
</text:list-item>
<text:list-item>
<text:p>Đây là mục danh sách thứ ba</text:p>
</text:list-item>
</text:list>
Tiêu đề danh sách là một kiểu mục danh sách đặc biệt. Nó bao gồm một
hoặc nhiều đoạn được hiển thị trước một danh sách. Các đoạn này được định
dạng giống như các mục danh sách nhưng chúng không có số hiệu hoặc dấu mục
đứng trước. Tiêu đề danh sách sẽ được biểu diễn bởi phần tử tiêu đề danh sách
riêng và được khai báo:
<define name="text-list-header">
37
<element name="text:list-header">
<ref name="text-list-item-content"/>
</element>
</define>
Trong một số trường hợp, mong muốn quy định một danh sách không
phải là một phần tử về cấu trúc bao gồm nhiều mục danh sách, nhưng để xác
định trên một mức cho mỗi đoạn mà đoạn đó có được đánh số hay không và tại
mức đó. Để tạo thuận tiện cho điều này, phần tử <text:numbered-paragraph>
cho phép việc đánh số một đoạn riêng, coi như nó là một phần của một danh
sách tại một mức được quy định. Ngoài ra, các đoạn văn bản được đánh số có
thể sử dụng song cùng các đặc tính đánh số liên tục mà các mục danh sách sử
dụng. Vì vậy, nó có thể tạo ra một cách thay thế tương đương để quy định các
danh sách trong tài liệu.
<define name="text-numbered-paragraph">
<element name="text:numbered-paragraph">
<ref name="text-numbered-paragraph-attr"/>
<optional>
<ref name="text-number"/>
</optional>
<choice>
<ref name="text-p"/>
<ref name="text-h"/>
</choice>
</element>
</define>
Một đoạn được đánh số có thể được ấn định ở một mức danh sách nhất
định. Nếu không có mức nào được qui định trước, thì đoạn được đánh số sẽ
được hiểu là tại mức 1.
<define name="text-numbered-paragraph-attr" combine="interleave">
<optional>
<attribute name="text:level" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Khi một đoạn văn bản được đánh số kết nối chức năng của một danh sách
với một mục danh sách đơn lẻ (có thể được lồng nhau), thì nó cũng có thể sử
dụng các thuộc tính của các phần tử đó.
<define name="text-numbered-paragraph-attr" combine="interleave">
<ref name="text-list-attr"/>
</define>
<define name="text-numbered-paragraph-attr" combine="interleave">
<ref name="text-list-item-attr"/>
</define>
38
4.4. Khúc văn bản
Khúc văn bản (text section) là một vùng của nội dung văn bản được đặt
tên. Khúc văn bản có thể bao gồm nội dung văn bản bình thường hoặc văn bản
đó có thể được chứa trong một tệp khác và được liên kết với khúc đó. Các khúc
văn bản có thể có các thiết lập đối với các cột văn bản, mầu nền hoặc kiểu dáng
và cấu hình trang giấy. Các thiết lập tạo ra kiểu dáng của khúc văn bản đó được
biểu diễn trong một phần tử <style:style>. Các khúc văn bản được hỗ trợ hai
cách liên kết với nội dung ngoài là XLink, được biểu diễn bởi một phần tử
text:section-source và trao đổi dữ liệu động (DDE), được biểu diễn bởi một phần
tử office:dde-source.
<define name="text-section">
<element name="text:section">
<ref name="text-section-attr"/>
<choice>
<ref name="text-section-source"/>
<ref name="text-section-source-dde"/>
<empty/>
</choice>
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
</element>
</define>
Thuộc tính text:style-name quy cho một kiểu dáng của khúc văn bản.
<define name="sectionAttr" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<define>
Thuộc tính text:name bao gồm tên của khúc văn bản đó.
<define name="sectionAttr" combine="interleave">
<attribute name="text:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính text:protected biểu thị của khúc văn bản có được bảo vệ hay
không.
<define name="sectionAttr" combine="interleave">
<optional>
<attribute name="text:protected">
<ref name="boolean"/>
</attribute>
39
</optional>
</define>
Thuộc tính text:protection-key quy định mật khẩu bảo vệ của khúc văn
bản đó. Để tránh việc lưu mật khẩu đó trực tiếp vào tệp XML, chỉ lưu trữ giá trị
băm của mật khẩu đó.
<define name="sectionAttr" combine="interleave">
<optional>
<attribute name="text:protection-key">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính text:display quy định của khúc văn bản đó được ẩn hay không.
Giá trị của thuộc tính này có thể là true, khúc văn bản đó được hiển thị hoặc
none, khúc văn bản đó được ẩn vô điều kiện hoặc condition, khúc văn bản đó
được ẩn theo điều kiện được quy định trong thuộc tính text:condition.
<attribute name="text:display">
<choice>
<value>true</value>
<value>none</value>
</choice>
</attribute>
<group>
<attribute name="text:display">
<value>condition</value>
</attribute>
<attribute name="text:condition">
<ref name="string"/>
</attribute>
</group>
<empty/>
</choice>
</define>
Phần tử <text:section-source> chỉ ra rằng khúc văn bản được kèm theo là
một khúc văn bản được liên kết. Nếu phần tử này được sử dụng, nó phải là phần
tử đầu tiên trong phần tử <text:section>.
<define name="text-section-source">
<element name="text:section-source">
<ref name="text-section-source-attr"/>
</element>
</define>
Các thuộc tính mà có thể tương ứng với thuộc tính <text:section-source>
là nguồn của khúc văn bản URL, tên của khúc văn bản được liên kết, tên bộ lọc.
<define name="text-section-source-attr" combine="interleave">
40
<optional>
<attribute name="xlink:href">
<ref name="anyURL"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:show" a:defaultValue="embed">
<value>embed</value>
</attribute>
</optional>
</optional>
</define>
Thuộc tính text:filter-name quy định kiểu bộ lọc đã được sử dụng để nhập
đích liên kết đó. Giá trị của thuộc tính này là phụ thuộc vào phần mềm thực thi.
<define name="text-section-source-attr" combine="interleave">
<optional>
<attribute name="text:filter-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Nếu các khúc văn bản được liên kết thông qua DDE, thông tin liên kết của
chúng được biểu diễn bởi các phần tử <office:dde- source>. Nó bao gồm các
thuộc tính quy định ứng dụng đó, nên thông tin này chỉ cần xử lý nếu dữ liệu
được cập nhật từ liên kết DDE.
<define name="text-section-source-dde">
<ref name="office-dde-source"/>
</define>
4.5. Theo dõi các thay đổi
Toàn bộ các thay đổi được theo dõi đối với các tài liệu văn bản sẽ được
lưu trữ trong một danh sách. Danh sách đó bao gồm một phần tử đối với mỗi
thay đổi tạo ra cho tài liệu đó. Nếu phần tử <text:tracked-changes> không có
mặt, không cho phép theo dõi thay đổi.
<define name="text-tracked-changes">
<optional>
<element name="text:tracked-changes">
<ref name="text-tracked-changes-attr"/>
<zeroOrMore>
<ref name="text-changed-region"/>
41
</zeroOrMore>
</element>
</optional>
</define>
Thuộc tính này xác định các tác nhân của người sử dụng nên theo dõi và
ghi lại các thay đổi đối với tài liệu này hay không.
<define name="text-tracked-changes-attr" combine="interleave">
<optional>
<attribute name="text:track-changes" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Đối với mọi miền được thay đổi của một tài liệu, có một mục nhập trong
danh sách các thay đổi được theo dõi. Mục nhập này bao gồm một danh sách
toàn bộ các thay đổi được áp dụng cho miền đó. Vị trí bắt đầu và kết thúc của
miền này được đánh dấu bởi các phần tử bắt đầu và kết thúc được mô tả trong
phần tiếp theo.
<define name="text-changed-region">
<element name="text:changed-region">
<ref name="text-changed-region-attr"/>
<ref name="text-changed-region-content"/>
</element>
</define>
Các phần tử đánh dấu vị trí bắt đầu và kết thúc của miền có sự thay đổi và
sử dụng chỉ số ID này để định danh miền dữ liệu có sự thay đổi.
<define name="text-changed-region-attr" combine="interleave">
<attribute name="text:id">
<ref name="ID"/>
</attribute>
</define>
Phần tử <text:insertion> bao gồm các thông tin được yêu cầu để định
danh bất kỳ việc chèn thêm vào nội dung tài liệu. Nội dung này có thể là một
phần đoạn văn bản trong một đoạn, toàn bộ một đoạn hoặc toàn bộ bảng. Nội
dung được chèn thêm vào sẽ là một phần của chính tài liệu văn bản đó và được
đánh dấu bởi một phần tử bắt đầu và một phần tử kết thúc thay đổi.
<define name="text-changed-region-content" combine="choice">
<element name="text:insertion">
<ref name="office-change-info"/>
</element>
</define>
Phần tử <text:deletion> bao gồm nội dung đã được xóa bỏ trong tài liệu
và cho phép theo dõi thay đổi đó. Vị trí của đoạn văn bản bị xóa bỏ sẽ được
đánh dấu bởi phần tử xác định vị trí thay đổi.
42
<define name="text-changed-region-content" combine="choice">
<element name="text:deletion">
<ref name="office-change-info"/>
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
</element>
</define>
Phần tử <text:format-change> xác định thay đổi định dạng biểu diễn trong
các thuộc tính định dạng tài liệu. Vùng nội dung tài liệu mà ở đó sự thay đổi
được tiến hành sẽ được đánh dấu bởi một phần tử bắt đầu và một phần tử kết
thúc thay đổi.
<define name="text-changed-region-content" combine="choice">
<element name="text:format-change">
<ref name="office-change-info"/>
</element>
</define>
Phần tử bắt đầu thay đổi <text:change-start> đánh dấu vị trí bắt đầu của
một miền cùng nội dung nơi văn bản hoặc định dạng đã được thay đổi.
Phần tử kết thúc thay đổi <text:change-end> đánh dấu vị trí kết thúc của
một miền cùng nội dung nơi văn bản hoặc định dạng đã được thay đổi.
Phần tử vị trí thay đổi <text:change> đánh dấu một vị trí trong một miền
rỗng nơi văn bản đã được thay đổi. Toàn bộ ba phần tử có một thuộc tính quy
định ID đánh dấu vị trí của miền mà chúng phụ thuộc vào.
Các phần tử trên cần được khai báo để xác định vị trí bắt đầu và kết thúc
sự thay đổi trong tài liệu văn bản như sau:
<define name="change-marks">
<choice>
<element name="text:change">
<ref name="change-mark-attr"/>
</element>
<element name="text:change-start">
<ref name="change-mark-attr"/>
</element>
<element name="text:change-end">
<ref name="change-mark-attr"/>
</element>
</choice>
</define>
<define name="change-mark-attr">
<attribute name="text:change-id">
<ref name="IDREF"/>
</attribute>
</define>
43
4.6. Khai báo văn bản
Việc khai báo các tham số sử dụng trong một tài liệu sẽ hỗ trợ phần mềm
ứng dụng văn phòng xử lý văn bản theo nhu cầu người sử dụng.
Phần tử <text-decls> sử dụng để thông báo các khai báo sử dụng trong tài
liệu đã tạo lập và được xác định:
<define name="text-decls">
<optional>
<element name="text:variable-decls">
<zeroOrMore>
<ref name="text-variable-decl"/>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="text:sequence-decls">
<zeroOrMore>
<ref name="text-sequence-decl"/>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="text:user-field-decls">
<zeroOrMore>
<ref name="text-user-field-decl"/>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="text:dde-connection-decls">
<zeroOrMore>
<ref name="text-dde-connection-decl"/>
</zeroOrMore>
</element>
</optional>
<optional>
<ref name="text-alphabetical-index-auto-mark-file"/>
</optional>
</define>
5. Nội dung các phần tử đoạn
5.1. Nội dung văn bản cơ bản
Nếu phần tử đoạn hoặc bất kỳ phần tử con của nó bao gồm các ký tự
khoảng trắng thì chúng sẽ được thu bớt lại, nói cách khác chúng sẽ được xử lý

44
theo cùng cách mà chuẩn [HTML4] xử lý. Các ký tự trong bảng mã quốc tế
[UNICODE] sau đây được chuẩn hóa cho một ký tự:
• Dấu cách bảng (0x0009)
• Xuống dòng (0x000D)
• Chuyển dòng tiếp theo (0x000A)
• Dấu cách (0x0020)
Ngoài ra, các ký tự này được bỏ qua nếu ký tự trước đó là một ký tự
khoảng trắng. Ký tự trước đó có thể được chứa trong cùng phần tử, trong phần
tử chung hoặc trong phần tử cùng gốc trước đó, như thể nó được chứa trong
cùng phần tử đoạn và phần tử mà trong đó nó được chứa các xử lý ký tự khoảng
trắng như được mô tả ở trên. Việc xử lý ký tự khoảng trắng tiến hành trong các
phần tử sau đây:
• <text:p>
• <text:h>
• <text:span>
• <text:a>
• <text:ref-point>
• <text:ref-point-start>
• <text:ref-point-end>
• <text:bookmark>
• <text:bookmark-start>
• <text:bookmark-end>
Phần tử <text:tab> biểu diễn ký tự dấu bảng hay còn gọi là Tab (0x0009)
trong một tiêu đề hoặc đoạn văn bản. Một phần tử <text:tab> dành ký tự trống từ
vị trí hiện tại tới ký tự điểm dừng của Tab tiếp theo, như được xác định trong
thông tin kiểu dáng của đoạn.
<define name="paragraph-content" combine="choice">
<element name="text:tab">
<ref name="text-tab-attr"/>
</element>
</define>
Thuộc tính text:tab-ref xác định tham số cho ký tự Tab với một điểm
dừng Tab trong kiểu dáng đoạn văn bản hiện tại. Nó bao gồm số hiệu của điểm
dừng Tab mà ký tự Tab đó sẽ dịch chuyển đến.
<define name="text-tab-attr">
<optional>
<attribute name="text:tab-ref">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Phần tử <text:span> biểu diễn các phần của văn bản được thêm thuộc tính
có sử dụng một kiểu dáng hoặc lớp văn bản nào đó. Nội dung của phần tử này là
văn bản sử dụng kiểu dáng của văn bản. Tên của một kiểu dáng văn bản hoặc
45
lớp văn bản là giá trị của một thuộc tính text:style-name hoặc text:class- names
tương ứng, được đính kèm với phần tử <text:span>. Các thuộc tính này phải
phải đề cập tới các lớp hoặc kiểu dáng văn bản.
Phần tử <text:a> xác định các thuộc tính của đoạn văn bản và khai báo
tương tự như phần tử <text:span>.
Ngoài ra, trong phần nội dung cơ bản của văn bản còn có thể có thông báo
về sự liên kết nóng (Hyperlink) tới nguồn tài liệu khác hoặc dấu nối mềm (soft
hyphen) giữa các ký tự.
5.2. Dấu sách và tham chiếu
Dấu sách (Bookmark) có thể đánh dấu một vị trí văn bản cũng như một
dải văn bản. Một dải văn bản có thể bắt đầu tại bất kỳ vị trí văn bản nào và kết
thúc tại một vị trí văn bản khác.
Phần tử <text:bookmark> sử dụng để đánh dấu một vị trí văn bản theo dấu
sách, phần tử <text:bookmark-start> sử dụng để đánh dấu vị trí bắt đầu trong
một dải văn bản và phần tử <text:bookmark-end> sử dụng để đánh dấu vị trí kết
thúc trong một dải văn bản cần sử dụng dấu sách.
Khi phần tử <text:bookmark-start> được sử dụng thì phải khai báo một
phần tử <text:bookmark-end> trong cùng dải văn bản có sử dụng cùng thuộc
tính text:name và ngược lại. Phần tử <text:bookmark-start> phải đứng trước
phần tử <text:bookmark-end>.
Ngoài ra, trong một tài liệu còn có thể sử dụng các tham chiếu và được
thiết lập mô hình trên cơ sở đặc tả của XML và dấu sách. Có hai kiểu dấu tham
chiếu thường được sử dụng như sau:
• Tham chiếu điểm: Tham chiếu điểm đánh dấu một vị trí cụ thể
trong văn bản và được biểu diễn bởi một phần tử <text:reference-mark> đơn.
• Tham chiếu dải: Tham chiếu dải đánh dấu một dải các ký tự trong
văn bản và được biểu diễn bởi hai phần tử: <text:reference-mark-start> để đánh
dấu vị trí bắt đầu của dải và <text:reference-mark-end> để đánh dấu vị trí kết
thúc của dải.
Tất cả các tham chiếu phải được định danh bởi tên của nó và phải là duy
nhất. Trong một tham chiếu dải, các phần tử bắt đầu và kết thúc phải sử dụng
cùng tên tham chiếu. Phần tử <text:reference-mark-start> đứng trước phần tử
<text:reference-mark-end> để biểu diễn dải tham chiếu.
<define name="paragraph-content" combine="choice">
<choice>
<element name="text:reference-mark-start">
<attribute name="text:name">
<ref name="string"/>
</attribute>
</element>
<element name="text:reference-mark-end">
<attribute name="text:name">
<ref name="string"/>
46
</attribute>
</element>
</choice>
</define>
5.3. Chú thích
Chú thích (note) bao gồm một phần tử <text:note> xuất hiện trong chùm
văn bản tại vị trí mà chú thích được neo. Cách thức các chú thích được đánh số
và đưa ra được xác định bởi phần tử <text:notes-configuration> và khai báo ở
phần bên trong phần tử <office:styles>. Phần tử chú thích biểu diễn các chú
thích hoặc trích dẫn văn bản được đính kèm với một vị trí văn bản nào đó. Lược
đồ tài liệu mở sử dụng cùng cấu trúc nhưng đưa ra một phần tử <text:note-
citation>. Ngoài ra, trong ODF còn sử dụng phần tử <text:notes-body> để thông
báo phần thân của chú thích. Tất cả các phần tử trích dẫn chú thích phải được
định dạng một cách thích hợp.
<define name="paragraph-content" combine="choice">
<element name="text:note">
<ref name="text-note-class"/>
<optional>
<attribute name="text:id">
<ref name="string"/>
</attribute>
</optional>
<element name="text:note-citation">
<optional>
<attribute name="text:label">
<ref name="string"/>
</attribute>
</optional>
<text/>
</element>
<element name="text:note-body">
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
</element>
</element>
</define>
Mỗi chú thích thuộc về một lớp xác định cách thức chú thích đó được
mong đợi để đưa ra. Hiện nay, hai lớp chú thích được hỗ trợ: Chú giải cuối trang
và chú giải cuối cùng tài liệu.
<define name="text-note-class">
<attribute name="text:note-class">
<choice>
47
<value>footnote</value>
<value>endnote</value>
</choice>
</attribute>
</define>
Phần tử <text:note-citation> bao gồm phần tử trích dẫn chú thích được
định dạng ở định dạng chữ số cũng như chuỗi ký tự. Các phần tử trích dẫn chú
thích có thể được ghi nhãn hoặc đánh số. Nếu chúng được đánh số, số hiệu đó
được chọn và được định dạng một cách tự động theo phần tử cấu hình các chú
thích. Nếu chúng được ghi nhãn, người sử dụng phải cung cấp một nhãn cho
mọi chú thích mà người sử dụng chèn vào trong tài liệu. Nhãn này được lưu trữ
trong thuộc tính text:label của phần tử <text:note-citation>. Phần tử <text:note-
body> bao gồm nội dung thực tế của chú giải cuối trang. Nó không có bất kỳ
thuộc tính nào.
6. Các trường văn bản
Các tài liệu văn bản mở hoặc nội dung văn bản tài liệu mở được nhúng
trong các kiểu tài liệu khác có thể bao gồm các phần tử văn bản biến đổi được
gọi là các trường (text field). Có nhiều kiểu trường khác nhau, mỗi trường thực
thi một kiểu phần tử văn bản biến đổi khác nhau. Các trường văn bản được sử
dụng phổ biến nhất đối với:
• Số trang: Một trường số trang hiển thị số hiệu của trang nó hiện
trên đó. Trường này có thể sử dụng ở cuối trang. Đối với tất cả các trang có cuối
trang, trường này đưa ra số hiệu trang hiện tại do đó toàn bộ các trang được
đánh số phù hợp.
• Ngày tháng tạo: Một trường ngày tháng tạo hiển thị ngày tháng mà
tài liệu hiện tại đó được tạo ra. Trường này có thể sử dụng cho các khuôn mẫu
tài liệu. Mỗi tài liệu được tạo ra có sử dụng khuôn mẫu này bao gồm ngày tháng
tạo ra tài liệu đó.
• Dải chữ số: Một trường về dải chữ số cho phép người sử dụng đánh
số các phần tử nào đó, ví dụ, hình ảnh hoặc bảng biểu. Một trường về dải chữ số
hiển thị vị trí của nó trong mối tương quan với các trường về dải chữ số khác
cùng dải. Vì vậy, nếu một phần tử văn bản có trường dải chữ số tương ứng của
nó đã được xê dịch trong một tài liệu, các trường này được tự động cập nhật để
phản ánh thứ tự mới.
6.1. Đặc điểm chung của các phần tử trường văn bản
Mỗi kiểu trường được biểu diễn bởi một kiểu phần tử tương ứng. Một
trường trong một tài liệu được mã hóa như một phần tử đơn lẻ của kiểu thích
hợp. Nội dung của phần tử đó là biểu diễn nguyên bản của giá trị trường hiện tại
như nó có thể được hiển thị hoặc được in. Vì vậy, việc bỏ qua toàn bộ phần tử
trường và chỉ hiện thị nội dung nguyên bản của các phần tử đó đưa ra một phiên
bản chỉ về văn bản thích hợp của tài liệu đó. Giá trị của một trường thường được
lưu trữ trong một thuộc tính. Cần thiết lưu trữ giá trị đó do đó việc biểu diễn

48
trường này có thể được tính toán lại nếu cần. Các thuộc tính chung nhất của các
phần tử trường văn bản trong ODF là:
• Các trường cố định: Nhiều trường có một biến trong đó nội dung
không thay đổi sau khi giá trị ban đầu được ấn định. Các trường này thường
được đánh dấu bởi thuộc tính text:fixed.
• Kiểu dáng định dạng: Nhiều kiểu dáng trường, cụ thể chúng biểu
diễn dữ liệu chữ số, ngày tháng, hoặc thời gian, do vậy mỗi loại cần có một kiểu
dáng định dạng riêng. Trong định dạng tài liệu mở, kiểu dáng định dạng này
được biểu diễn bởi một thuộc tính style:data-style-name. Do người sử dụng có
thể thay đổi kiểu dáng biểu diễn đối với các trường, các ứng dụng phải có khả
năng tính toán lại một biểu diễn mới của nội dung trường tại mọi thời điểm.
6.2. Các trường dữ liệu
Các trường dữ liệu có thể hiển thị thông tin về tài liệu hiện tại hoặc về
một phần cụ thể của tài liệu hiện tại, ví dụ như tác giả, số hiệu trang hiện tại,
hoặc ngày tháng tạo tài liệu... Các trường này được gọi chung là các trường dữ
liệu. Trong ODF, các trường dữ liệu thường sử dụng bao gồm:
• Trường ngày tháng và thời gian
• Trường số hiệu trang
• Trường tác giả và người gửi
• Trường về chương tài liệu
• Tường tên tệp tin
• Trường khuôn mẫu tài liệu
Trường ngày tháng <text:date> hiển thị ngày tháng hiện tại của hệ thống.
Phần tử này bao gồm cách biểu diễn của giá trị trường ngày tháng, phụ thuộc
vào kiểu dáng dữ liệu được quy định. Ngày tháng mặc định là ngày tháng hiện
tại. Giá trị của phần tử này có thể được duy trì bằng cách sử dụng thuộc tính
text:fixed được mô tả trong:
<define name="paragraph-content" combine="choice">
<element name="text:date">
<ref name="text-date-attlist"/>
<text/>
</element>
</define>
Thuộc tính text:date-value quy định một giá trị ngày tháng cụ thể. Ví dụ,
nếu trường ngày tháng được đánh dấu cố định, thì thuộc tính này có thể được sử
dụng để quy định ngày tháng trong đó trường này đã được đánh dấu cố định.
Thuộc tính này cùng có thể được sử dụng để quy định một ngày tháng trong
tương lai. Một số ứng dụng hỗ trợ ngày tháng và thời gian bổ sung cho các giá
trị chỉ ngày tháng.
<define name="text-date-attlist" combine="interleave">
<optional>
<attribute name="text:date-value">
<ref name="dateOrDateTime"/>
49
</attribute>
</optional>
</define>
Giá trị của một trường ngày tháng có thể được điều chỉnh bởi một khoảng
thời gian nào đó, được quy định bằng cách sử dụng thuộc tính text:date-adjust.
Nếu khoảng thời gian đó là âm, thì nó bị trừ từ giá trị của trường ngày tháng, tạo
ra một ngày tháng trước ngày tháng hiện tại. Giá trị này có thể được đặt trước
bởi một dấu trừ tùy chọn để chỉ ra một khoảng thời gian âm.
<define name="text-date-attlist" combine="interleave">
<optional>
<attribute name="text:date-adjust">
<ref name="duration"/>
</attribute>
</optional>
</define>
Trường thời gian hiển thị thời gian hiện tại và được thực hiện thông qua
các thuộc tính text:time-value và text:time-adjust. Phần tử này bao gồm cách
biểu diễn của giá trị trường thời gian, phụ thuộc vào kiểu dáng dữ liệu được quy
định. Thời gian mặc định là thời gian hiện tại. Giá trị của phần tử này có thể
được duy trì bằng cách sử dụng thuộc tính text:fixed được mô tả trong:
<define name="paragraph-content" combine="choice">
<element name="text:time">
<ref name="text-time-attlist"/>
<text/>
</element>
</define>
Thuộc tính text:time-value ghi lại thời gian mà lúc đó tài liệu đó được
soạn thảo cuối cùng. Một số ứng dụng hỗ trợ ngày tháng và thời gian bổ sung
cho các giá trị chỉ ngày tháng.
<define name="text-time-attlist" combine="interleave">
<optional>
<attribute name="text:time-value">
<ref name="timeOrDateTime"/>
</attribute>
</optional>
</define>
Giá trị của một trường thời gian có thể được điều chỉnh bởi một khoảng
thời gian nào đó, được quy định bằng cách sử dụng thuộc tính text:time-adjust.
Các giá trị dương điều chỉnh thời gian đó thành một thời điểm trong tương lai,
trong khi các giá trị âm điều chỉnh thời gian đó sang một thời điểm trong quá
khứ. Khoảng thời gian được làm tròn tới phút.
<define name="text-time-attlist" combine="interleave">
<optional>
<attribute name="text:time-adjust">
50
<ref name="duration"/>
</attribute>
</optional>
</define>
Các trường số hiệu trang hiển thị số hiệu trang hiện tại. Các trường này
đặc biệt hữu ích trong các phần đầu trang và cuối trang. Nghĩa là, nếu một
trường số trang được chèn vào trong một phần cuối trang, thì số trang hiện tại
được hiển thị trên tất cả các trang mà trong đó phần cuối trang đó xuất hiện.
<define name="paragraph-content" combine="choice">
<element name="text:page-number">
<ref name="text-page-number-attlist"/>
<text/>
</element>
</define>
<define name="text-page-number-attlist" combine="interleave">
<interleave>
<ref name="common-field-num-format-attlist"/>
<ref name="common-field-fixed-attlist"/>
</interleave>
</define>
Giá trị của một trường số trang có thể được điều chỉnh bởi một chữ số đã
quy định, cho phép hiển thị số trang của các trang trước hoặc sau. Số lượng các
điều chỉnh được quy định bằng cách sử dụng thuộc tính text:page-adjustment.
<define name="text-page-number-attlist" combine="interleave">
<optional>
<attribute name="text:page-adjust">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính text:select-page được sử dụng để hiển thị số hiệu của trang
trước đó hoặc trang tiếp theo không phải hiển thị số hiệu của trang hiện tại.
<define name="text-page-number-attlist" combine="interleave">
<optional>
<attribute name="text:select-page">
<choice>
<value>previous</value>
<value>current</value>
<value>next</value>
</choice>
</attribute>
</optional>
</define>

51
Thông tin về người gửi được lấy từ đối tượng thông tin người sử dụng tài
liệu đã khai báo. Nếu một trường người gửi được đánh dấu cố định bằng cách sử
dụng thuộc tính text:fixed, thông tin người gửi gốc trong các trường của người
gửi sẽ được duy trì. Phần tử này biểu diễn họ tên của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-lastname">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn các chữ cái đầu của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-initials">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn tước hiệu của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-title">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn vị trí của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-position">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn địa chỉ thư điện tử của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-email">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn số điện thoại cá nhân của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-phone-private">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
52
</define>
Phần tử này biểu diễn số fax của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-fax">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn tên công ty mà người gửi làm.
<define name="paragraph-content" combine="choice">
<element name="text:sender-company">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn số điện thoại văn phòng của người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-phone-work">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn tên phố của địa chỉ người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-street">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn tên thành phố của địa chỉ người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-city">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn mã bưu điện của địa chỉ người gửi.
<define name="paragraph-content" combine="choice">
<element name="text:sender-postal-code">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn quốc gia trong địa chỉ của người gửi.
53
<define name="paragraph-content" combine="choice">
<element name="text:sender-country">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn bang hoặc tỉnh trong địa chỉ của người gửi, nếu áp
dụng.
<define name="paragraph-content" combine="choice">
<element name="text:sender-state-or-province">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Có hai phần tử sẵn có để hiển thị tác giả của một tài liệu. Một phần tử
hiển thị tên đầy đủ của tác giả và phần tử kia hiển thị các chữ cái viết tắt tên của
tác giả. Giá trị của các trường tác giả có thể được cố định bằng cách sử dụng
thuộc tính text:fixed. Đánh dấu một trường tác giả là cố định duy trì nội dung
của trường gốc. Nói cách khác, mỗi lần nội dung trường đó thay đổi thì tài liệu
đó được cập nhật, để phản ánh tác giả cuối cùng của tài liệu đó.
Phần tử này biểu diễn tên đầy đủ của tác giả.
<define name="paragraph-content" combine="choice">
<element name="text:author-name">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử này biểu diễn các chữ cái viết tắt tên của tác giả.
<define name="paragraph-content" combine="choice">
<element name="text:author-initials">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Các trường hiển thị chương tài liệu có thể sử dụng một trong các trường
hợp sau đây: hiển thị tên của chương hiện tại hoặc số hiệu của chương hiện tại
và hiển thị cả tên cùng số hiệu của chương hiện tại. Nếu trường về chương được
đặt bên trong một phần đầu trang hoặc phần cuối trang, nó hiển thị tên hoặc số
hiệu chương hiện tại trên tất cả các trang.
<define name="paragraph-content" combine="choice">
<element name="text:chapter">
<ref name="text-chapter-attlist"/>
<text/>
</element>
54
</define>
Thuộc tính text:display quy định thông tin mà trường về chương nên hiển
thị.
<define name="text-chapter-attlist" combine="interleave">
<attribute name="text:display">
<choice>
<value>name</value>
<value>number</value>
<value>number-and-name</value>
<value>plain-number-and-name</value>
<value>plain-number</value>
</choice>
</attribute>
</define>
Các trường tên tệp tin sẽ hiển thị tên của tệp đang được soạn thảo. Các
thuộc tính có thể tương ứng với phần tử <text:file-name>.
<define name="paragraph-content" combine="choice">
<element name="text:file-name">
<ref name="text-file-name-attlist"/>
<text/>
</element>
</define>
Thuộc tính text:display quy định số lượng tên tệp để hiển thị. Các mục tùy
chọn hiển thị sau đây được cho phép hiển thị tên tệp đầy đủ bao gồm đường dẫn
và phần đuôi mở rộng hoặc chỉ đường dẫn của tệp tin hoặc chỉ tên tệp hoặc tên
tệp và phần đuôi mở rộng.
<define name="text-file-name-attlist" combine="interleave">
<optional>
<attribute name="text:display">
<choice>
<value>full</value>
<value>path</value>
<value>name</value>
<value>name-and-extension</value>
</choice>
</attribute>
</optional>
</define>
Trường tên khuôn mẫu tài liệu hiển thị thông tin về khuôn mẫu tài liệu đó
đang sử dụng, như tiêu đề khuôn mẫu hoặc tên tệp đó. Chỉ một thuộc tính có thể
tương ứng với phần tử <text:template-name>:
<define name="paragraph-content" combine="choice">
<element name="text:template-name">
<ref name="text-template-name-attlist"/>
55
<text/>
</element>
</define>
Đối với các tài liệu bảng tính, các trường tên của trang tính sẽ hiển thị tên
của trang tính đang được soạn thảo.
<define name="paragraph-content" combine="choice">
<element name="text:sheet-name">
<text/>
</element>
</define>
6.3. Các trường biến số
Các văn bản tài liệu mở có thể chứa các biến số khác nhau, được xử lý
hoặc được hiển thị bằng cách sử dụng các trường biến số. Một biến số sử dụng
là một cặp gồm tên và giá trị. Tên biến số được sử dụng từ đầu đến cuối tài liệu
để định danh một biến cụ thể và vì vậy các tên biến không thể được sử dụng lại
cho các kiểu biến khác nhau. Phần lớn các trường biến số hỗ trợ các kiểu giá trị
khác nhau, như chữ số, ngày tháng, chuỗi, v.v. Trong định dạng tệp tài liệu mở,
một biến phải được khai báo tại điểm bắt đầu của một tài liệu. Các biến đơn giản
được khai báo bằng cách sử dụng các phần tử <text:variable-decl>. Khai báo đó
quy định tên (name) và kiểu (type) biến của giá trị này.
<define name="text-variable-decl">
<element name="text:variable-decl">
<ref name="common-field-name-attlist"/>
<ref name="common-value-type-attlist"/>
</element>
</define>
Các biến đơn giản có thể được thiết lập bằng cách sử dụng các phần tử
người thiết lập biến. Phần tử này bao gồm cách biểu diễn của giá trị của biến đó,
mà có thể rỗng nếu thuộc tính text:display được đặt là không có. Các thuộc tính
mà có thể tương ứng với phần tử <text:variable-set>.
<define name="paragraph-content" combine="choice">
<element name="text:variable-set">
<interleave>
<ref name="common-field-name-attlist"/>
<ref name="common-field-formula-attlist"/>
<ref name="common-value-and-type-attlist"/>
<ref name="common-field-display-value-none-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
</interleave>
<text/>
</element>
</define>

56
Phần tử <text:variable-get> đọc và hiển thị giá trị của một biến đơn giản.
Giá trị của phần tử này là giá trị của phần tử <text:variable-set> đứng ngay liền
trước cùng với một thuộc tính text:name đồng dạng. Phần tử đó xác định cách
giá trị của biến đó được gửi lại, phù hợp với kiểu dáng định dạng được chọn.
<define name="paragraph-content" combine="choice">
<element name="text:variable-get">
<interleave>
<ref name="common-field-name-attlist"/>
<ref name="common-field-display-value-formula-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
</interleave>
<text/>
</element>
</define>
Các biến của người sử dụng bao gồm các giá trị để được hiển thị bằng
cách sử dụng các trường thích hợp. Không giống với các biến đơn giản, các biến
của người sử dụng có cùng giá trị trên toàn bộ một tài liệu. Đối với lý do này,
giá trị của các biến của người sử dụng được lưu trữ trong chính khai báo biến.
<define name="text-user-field-decl">
<element name="text:user-field-decl">
<ref name="common-field-name-attlist"/>
<optional>
<ref name="common-field-formula-attlist"/>
</optional>
<ref name="common-value-and-type-attlist"/>
</element>
</define>
Nội dung các biến của người sử dụng có thể được hiển thị bằng cách sử
dụng các phần tử <text:user-field-get>.
<define name="paragraph-content" combine="choice">
<element name="text:user-field-get">
<interleave>
<ref name="common-field-name-attlist"/>
<ref name="common-field-display-value-formula-none-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
</interleave>
<text/>
</element>
</define>
Một phương pháp thiết lập các biến thay thế của người sử dụng là sử dụng
chính các trường đầu vào cho các trường biến đơn giản. Một biến của người sử
dụng có thể được thiết lập bằng cách sử dụng phần tử <text:user-field-input>.
Do giá trị của biến người sử dụng được lưu trữ trong phần tử <text:user-field-
input> không bao gồm các thuộc tính giá trị và kiểu giá trị từ trường
57
<text:variable-input>. Biểu diễn đó có thể rỗng nếu thuộc tính text:display được
đặt là không có.
<define name="paragraph-content" combine="choice">
<element name="text:user-field-input">
<interleave>
<ref name="common-field-name-attlist"/>
<ref name="common-field-description-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
</interleave>
<text/>
</element>
</define>
Các biến trình tự được sử dụng để đánh số các mục trong một văn bản tài
liệu mở. Các biến trình tự được sử dụng chung nhất đối với việc đánh số trình
tự. Tuy nhiên, các công thức của biểu thức có thể được chứa trong các trường
của trình tự để hỗ trợ thiết lập nhiều trình tự tiên tiến hơn. Các biến trình tự được
khai báo bằng cách sử dụng phần tử <text:sequence-decl>.
<define name="text-sequence-decl">
<element name="text:sequence-decl">
<ref name="text-sequence-decl-attlist"/>
</element>
</define>
<define name="text-sequence-decl-attlist" combine="interleave">
<ref name="common-field-name-attlist"/>
</define>
Các trình tự có thể được đánh số bởi các chương văn bản thông qua sử
dụng thuộc tính text:display-outline-level để quy định một mức bố cục xác định
các chương nào tham chiếu đối với việc đánh số chương cụ thể. Toàn bộ các
chương tại đó hoặc sau mức bố cục được quy định sẽ xác lập lại giá trị của trình
tự đó là 0, giá trị mặc định. Cũng như vậy, số hiệu chương của chương cuối
cùng tại đó hoặc sau mức bố cục được quy định được thêm phần đầu cho số hiệu
trình tự đó. Việc chọn một mức bố cục của các kết quả 0 trong một trình tự
thẳng của toàn bộ các phần tử trình tự đối với biến trình tự đó.
<define name="text-sequence-decl-attlist" combine="interleave">
<attribute name="text:display-outline-level">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Nếu các trình tự được đánh số chương, thuộc tính này được sử dụng để
chọn một ký tự để phân tách số hiệu chương khỏi số hiệu trình tự đó. Nếu giá trị
của thuộc tính text:display-outline-level là một giá trị khác 0, thì một ký tự phân
tách có thể được quy định. Ký tự phân tách mặc định là ".". Nếu giá trị của
text:display-outline-level là 0, thì thuộc tính này phải được lược bỏ.
<define name="text-sequence-decl-attlist" combine="interleave">
58
<optional>
<attribute name="text:separation-character">
<ref name="character"/>
</attribute>
</optional>
</define>
Ngay khi một biến trình tự được khai báo, nó có thể được sử dụng trong
các trường của trình tự trên toàn bộ tài liệu đó. Phần lớn các trường của trình tự
tăng một cách đơn giản và hiển thị biến trình tự đó. Tuy nhiên, các trường của
trình tự cũng có thể giả định một giá trị bắt đầu mới tại bất kỳ vị trí cho trước
nào trong một tài liệu. Giá trị bắt đầu này được tính toán bằng cách sử dụng một
công thức được chứa trong trường trình tự. Các trường trình tự được sử dụng
phổ biến nhất đối với các trình tự đếm đơn giản. Tuy nhiên, khả năng cung cấp
các biểu thức tùy ý hỗ trợ nhiều trình tự phức tạp.
<define name="paragraph-content" combine="choice">
<element name="text:sequence">
<interleave>
<ref name="common-field-name-attlist"/>
<ref name="common-field-formula-attlist"/>
<ref name="common-field-num-format-attlist"/>
<ref name="text-sequence-ref-name"/>
</interleave>
<text/>
</element>
</define>
6.4. Các trường siêu dữ liệu
Các trường siêu dữ liệu hiển thị siêu thông tin về tài liệu đó, như là ngày
tháng tạo tài liệu hoặc thời gian mà tại lúc đó tài liệu đó được in lần cuối. Toàn
bộ trường các phần tử siêu dữ liệu có thể được đánh dấu cố định bằng cách sử
dụng thuộc tính text:fixed.
Phần tử biểu diễn tên tác giả đã tạo ra tài liệu gốc.
<define name="paragraph-content" combine="choice">
<element name="text:initial-creator">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử biểu diễn ngày tháng đó mà tài liệu đó được tạo ra.
<define name="paragraph-content" combine="choice">
<element name="text:creation-date">
<interleave>
<ref name="common-field-fixed-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
59
<optional>
<attribute name="text:date-value">
<ref name="dateOrDateTime"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử biểu diễn thời gian mà lúc đó tài liệu được tạo ra.
<define name="paragraph-content" combine="choice">
<element name="text:creation-time">
<interleave>
<ref name="common-field-fixed-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
<optional>
<attribute name="text:time-value">
<ref name="timeOrDateTime"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử mô tả tóm tắt của tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:description">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử thông tin tài liệu của người sử dụng định nghĩa về tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:user-defined">
<interleave>
<ref name="common-field-fixed-attlist"/>
<attribute name="text:name">
<ref name="string"/>
</attribute>
<ref name="common-field-data-style-name-attlist"/>
<optional>
<attribute name="office:value">
<ref name="double"/>
</attribute>
60
</optional>
<optional>
<attribute name="office:date-value">
<ref name="dateOrDateTime"/>
</attribute>
</optional>
<optional>
<attribute name="office:time-value">
<ref name="duration"/>
</attribute>
</optional>
<optional>
<attribute name="office:boolean-value">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="office:string-value">
<ref name="string"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử biểu diễn thời gian mà tại thời điểm đó tài liệu đó được in ra.
<define name="paragraph-content" combine="choice">
<element name="text:print-time">
<interleave>
<ref name="common-field-fixed-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
<optional>
<attribute name="text:time-value">
<ref name="time"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử biểu diễn ngày tháng mà tài liệu đó được in ra.
<define name="paragraph-content" combine="choice">
<element name="text:print-date">
<interleave>
61
<ref name="common-field-fixed-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
<optional>
<attribute name="text:date-value">
<ref name="date"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử biểu diễn tên của người cuối cùng đã in tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:printed-by">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử biểu diễn tiêu đề của tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:title">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử biểu diễn chủ đề của tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:subject">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử danh sách các từ khóa được sử dụng để mô tả tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:keywords">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Phần tử số hiệu soát xét, biên tập tài liệu đó. Khi tài liệu đó được tạo ra,
thì số hiệu soát xét được đặt là 1. Mỗi thời điểm tài liệu đó được lưu, số hiệu
soát xét tài liệu đó được tăng lên.
<define name="paragraph-content" combine="choice">
<element name="text:editing-cycles">
62
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Mọi thời điểm, khi một tài liệu được soạn thảo hoặc biên tập lại, phần
mềm ứng dụng văn phòng ghi lại khoảng thời gian giữa thời điểm tài liệu đó
được mở ra và thời điểm tài liệu đó được đóng vào. Sau đó nó cộng khoảng thời
gian vào một bộ đếm khoảng thời gian xen giữa, bằng cách đó giữ lại theo dõi
tổng thời gian đã được sử dụng để tạo lập tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:editing-duration">
<interleave>
<ref name="common-field-fixed-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
<optional>
<attribute name="text:duration">
<ref name="duration"/>
</attribute>
</optional>
</interleave>
<text/>
</element>
</define>
Phần tử biểu diễn tên của người sửa đổi cuối cùng tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:creator">
<ref name="common-field-fixed-attlist"/>
<text/>
</element>
</define>
Các trường này hiển thị số liệu thống kê về các đối tượng của một kiểu tài
liệu nào đó chứa file văn bản. Chúng có thể được sử dụng để hiển thị số lượng
các trang, các đoạn, các từ, các ký tự, các bảng, các ảnh, hoặc các đối tượng
được nhúng trong tài liệu.
<define name="paragraph-content" combine="choice">
<element>
<choice>
<name>text:page-count</name>
<name>text:paragraph-count</name>
<name>text:word-count</name>
<name>text:character-count</name>
<name>text:table-count</name>
<name>text:image-count</name>
<name>text:object-count</name>
63
</choice>
<ref name="common-field-num-format-attlist"/>
<text/>
</element>
</define>
6.5. Các trường cơ sở dữ liệu
Các tài liệu mở có thể tham chiếu tới cơ sở dữ liệu và hiển thị thông tin
trong cơ sở dữ liệu như nội dung văn bản. Để hiển thị thông tin cơ sở dữ liệu,
lược đồ tài liệu mở sử dụng một nhóm các trường riêng, được gọi chung là các
trường cơ sở dữ liệu. Các ứng dụng văn phòng có thể sử dụng các bảng cơ sở dữ
liệu từ các máy server SQL, vì vậy các trường cơ sở dữ liệu có thể được sử dụng
để truy cập mọi cơ sở dữ liệu SQL, được cung cấp các bộ điều khiển thích hợp
sẵn có. Để hiển thị dữ liệu từ một bảng cơ sở dữ liệu sử dụng phần tử
<text:database-display>. Các phần tử <text:database-select> và <text:database-
next> có thể được sử dụng để xác định hàng nào trong cơ sở dữ liệu lựa chọn
hiện tại nên được hiển thị. Số hiệu hàng hay còn gọi là bản ghi hiện tại đối với
một bảng dữ liệu cụ thể có thể được hiển thị bằng cách sử dụng phần tử
<text:database-row-number>.
Thuộc tính text:database-name quy định cơ sở dữ liệu nguồn bằng chính
tên của nó.
<define name="common-field-database-name" combine="choice">
<optional>
<attribute name="text:database-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính text:table-name quy định một bảng trong cơ sở dữ liệu nguồn.
<define name="common-field-database-table-attlist" combine="interleave">
<attribute name="text:table-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính text:table-type xác định bảng cơ sở dữ liệu đó nói đến một
bảng SQL, một truy vấn tài liệu mở, hay kết quả của một câu lệnh SQL .
<define name="common-field-database-table-attlist" combine="interleave">
<optional>
<attribute name="text:table-type">
<choice>
<value>table</value>
<value>query</value>
<value>command</value>
</choice>
64
</attribute>
</optional>
</define>
Phần tử <text:database-display> hiển thị dữ liệu từ một cơ sở dữ liệu. Khi
một bộ dữ liệu mới được thêm vào một tài liệu, thì toàn bộ các trường để hiển
thị dữ liệu từ bảng cơ sở dữ liệu đó cập nhật nội dung của chúng.
<define name="paragraph-content" combine="choice">
<element name="text:database-display">
<ref name="text-database-display-attlist"/>
<text/>
</element>
</define>
<define name="text-database-display-attlist" combine="interleave">
<ref name="common-field-database-table"/>
</define>
<define name="text-database-display-attlist" combine="interleave">
<ref name="common-field-data-style-name-attlist"/>
</define>
Thuộc tính text:column-name quy định cột mà từ đó sẽ hiển thị dữ liệu.
Giá trị của thuộc tính này phải là một cột được chứa trong cơ sở dữ liệu được
quy định.
<define name="text-database-display-attlist" combine="interleave">
<attribute name="text:column-name">
<ref name="string"/>
</attribute>
</define>
Phần tử <text:database-next> xác định thay đổi hàng tiếp theo hàng đang
lựa chọn được sử dụng để hiển thị trong toàn bộ các trường <text:database-
display>. Hàng tiếp theo từ lựa chọn hiện tại được chọn nếu nó thỏa mãn một
điều kiện cho trước. Nếu hàng tiếp theo muốn không quan tâm đến bấy kỳ điều
kiện nào, thì điều kiện có thể được lược bỏ hoặc đặt là true.
<define name="paragraph-content" combine="choice">
<element name="text:database-next">
<ref name="text-database-next-attlist"/>
</element>
</define>
<define name="text-database-next-attlist" combine="interleave">
<ref name="common-field-database-table"/>
</define>
Thuộc tính text:condition quy định biểu thức điều kiện. Biểu thức đó được
đánh giá và nếu kết quả được hiểu như một giá trị Boolean là true, thì hàng tiếp
theo được sử dụng như hàng hiện tại mới. Các giá trị trường cơ sở dữ liệu có thể
được sử dụng trong biểu thức khoanh dấu ngoặc vuông tên cơ sở dữ liệu, tên
bảng và tên cột, được phân tách bởi các dấu chấm. Nếu thuộc tính text:condition
65
không có mặt, thì nó được giả định rằng công thức là true, có nghĩa là hàng tiếp
theo được chọn mà không có điều kiện nào.
<define name="text-database-next-attlist" combine="interleave">
<optional>
<attribute name="text:condition">
<ref name="formula"/>
</attribute>
</optional>
</define>
Phần tử <text:database-row-select> lựa chọn một hàng cụ thể từ cơ sở dữ
liệu lựa chọn hiện tại. Khi cùng với phần tử <text:database-row-next>, một điều
kiện có thể được quy định do đó hàng cho trước chỉ được chọn nếu điều kiện đó
là true.
<define name="paragraph-content" combine="choice">
<element name="text:database-row-select">
<ref name="text-database-row-select-attlist"/>
</element>
</define>
<define name="text-database-row-select-attlist" combine="interleave">
<ref name="common-field-database-table"/>
</define>
<define name="text-database-row-select-attlist" combine="interleave">
<optional>
<attribute name="text:condition">
<ref name="formula"/>
</attribute>
</optional>
</define>
Phần tử <text:database-row-number> hiển thị số hiệu hàng hiện tại đối
với một bảng cho trước. Chú ý rằng phần tử đó hiển thị số hiệu hàng thực tế từ
cơ sở dữ liệu đó và không hiển thị số hiệu hàng của lựa chọn hiện tại được sử
dụngnhư một giá trị thuộc tính trong phần tử <text:database-row-select>.
<define name="paragraph-content" combine="choice">
<element name="text:database-row-number">
<interleave>
<ref name="common-field-database-table"/>
<ref name="common-field-num-format-attlist"/>
<optional>
<attribute name="text:value">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</interleave>
<text/>
66
</element>
</define>
Các ứng dụng văn phòng có thể duy trì việc theo dõi bảng và cơ sở dữ
liệu cuối cùng đã được sử dụng trong tài liệu đó. Nói cách khác, bảng được sử
dụng bởi trường cuối cùng đã được chèn vào tài liệu đó. Phần tử <text:database-
name> hiển thị cơ sở dữ liệu đó và tên bảng đã được sử dụng gần thời gian đó.
<define name="paragraph-content" combine="choice">
<element name="text:database-name">
<ref name="common-field-database-table"/>
<text/>
</element>
</define>
6.6. Các trường khác
Ngoài các trường văn bản cơ bản nêu trên, trong file ODF còn có thể sử
dụng một số trường khác, cụ thể:
Để thiết lập một trường biến đổi trang, sử dụng phần tử <text:variable-
page-set>.
<define name="paragraph-content" combine="choice">
<element name="text:page-variable-set">
<ref name="text-set-page-variable-attlist"/>
<text/>
</element>
</define>
Thuộc tính text:active có thể được sử dụng để vô hiệu hóa một biến trang
sau khi nó được sử dụng trong tài liệu đó.
<define name="text-set-page-variable-attlist" combine="interleave">
<optional>
<attribute name="text:active">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:page-adjustment xác định việc điều chỉnh trang. Giá trị
của biến trang hoạt động là số hiệu trang hiện tại cộng với giá trị điều chỉnh
trang gần nhất mà đã được thiết lập trước đó.
<define name="text-set-page-variable-attlist" combine="interleave">
<optional>
<attribute name="text:page-adjust">
<ref name="integer"/>
</attribute>
</optional>
</define>

67
Phần tử <text:variable-page-get> hiển thị giá trị của biến số về trang đó.
Trường đó có thể được định dạng theo cùng cách thức như các trường số hiệu
trang quy định.
<define name="paragraph-content" combine="choice">
<element name="text:page-variable-get">
<ref name="text-get-page-variable-attlist"/>
<text/>
</element>
</define>
Định dạng tài liệu mở sử dụng các trường trình giữ chỗ (placeholder) để
chỉ ra các vị trí trong một tài liệu mà ở đó người sử dụng phải điền đầy đủ một
số thông tin. Ví dụ trong một khuôn mẫu thư tín, một phần đoạn của tài liệu đó
có thể được dành cho địa chỉ của người nhận. Một trường trình giữ chỗ hiển thị
văn bản thông báo cho người sử dụng về mục đích của trình giữ chỗ và thỉnh
thoảng bao gồm một mô tả. Các trường trình giữ chỗ có thể biểu diễn các phần
tử văn bản khác nhau, như văn bản hoặc bảng. Phần tử này bao gồm một số văn
bản vắn tắt được hiển thị cùng với trình giữ chỗ đó.
<define name="paragraph-content" combine="choice">
<element name="text:placeholder">
<ref name="text-placeholder-attlist"/>
<text/>
</element>
</define>
Các trường văn bản có thể được sử dụng để hiển thị một văn bản hoặc
một một văn bản khác, phụ thuộc vào một điều kiện. Các trường văn bản thể
hiện điều kiện được cho trước một điều kiện và hai chuỗi văn bản. Nếu điều kiện
đó là true, thì một trong các chuỗi văn bản được hiển thị. Nếu điều kiện đó là
false, thì chuỗi văn bản khác được hiển thị.
<define name="paragraph-content" combine="choice">
<element name="text:conditional-text">
<ref name="text-conditional-text-attlist"/>
<text/>
</element>
</define>
Trường của văn bản ẩn quan hệ gần gũi với trường văn bản thể điều kiện.
Nó hiển thị văn bản cố định, ngoại trừ khi điều kiện đó là true khi nó nó không
hiển thị gì cả.
<define name="paragraph-content" combine="choice">
<element name="text:hidden-text">
<ref name="text-hidden-text-attlist"/>
<text/>
</element>
</define>

68
Định dạng tài liệu mở sử dụng bốn kiểu trường tham chiếu và mỗi kiểu
được biểu diễn bởi chính phần tử của nó. Các kiểu trường tham chiếu dựa trên
cơ sở kiểu phần tử chúng đề cập; các chú thích, dấu sách, tham chiếu, và trình
tự. Mọi tham chiếu bao gồm một định dạng tham chiếu mà xác định thông tin về
đích được tham chiếu được hiển thị.
<define name="paragraph-content" combine="choice">
<element>
<choice>
<name>text:reference-ref</name>
<name>text:bookmark-ref</name>
</choice>
<interleave>
<ref name="text-common-ref-content"/>
<ref name="text-ref-content"/>
</interleave>
</element>
</define>
<define name="paragraph-content" combine="choice">
<element name="text:note-ref">
<interleave>
<ref name="text-common-ref-content"/>
<ref name="text-note-ref-content"/>
<ref name="text-ref-content"/>
</interleave>
</element>
</define>
<define name="paragraph-content" combine="choice">
<element name="text:sequence-ref">
<interleave>
<ref name="text-common-ref-content"/>
<ref name="text-sequence-ref-content"/>
</interleave>
</element>
</define>
<define name="text-common-ref-content" combine="interleave">
<text/>
</define>
Thuộc tính text:ref-name định danh phần tử tham chiếu. Làm dấu sách và
các tham chiếu có một tên, tên này được sử dụng bởi các trường tham chiếu
tương ứng. Các chú giải cuối trang, các chú giải cuối cùng, và các trình tự được
định danh bởi một tên thường được tạo một cách tự động.
<define name="text-common-ref-content" combine="interleave">
<optional>
<attribute name="text:ref-name">
69
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính text:reference-format xác định thông tin về tham chiếu được
hiển thị. Nếu định dạng tham chiếu không được quy định, thì sử dụng định dạng
trang như định dạng mặc định.
<define name="text-ref-content" combine="interleave">
<optional>
<attribute name="text:reference-format">
<choice>
<value>page</value>
<value>chapter</value>
<value>direction</value>
<value>text</value>
</choice>
</attribute>
</optional>
</define>
<define name="text-sequence-ref-content" combine="interleave">
<optional>
<attribute name="text:reference-format">
<choice>
<value>page</value>
<value>chapter</value>
<value>direction</value>
<value>text</value>
<value>category-and-value</value>
<value>caption</value>
<value>value</value>
</choice>
</attribute>
</optional>
</define>
Một trường tập lệnh lưu trữ các tập lệnh hoặc các phần của tập lệnh.
Trường đó có thể được sử dụng để lưu trữ và soạn thảo các tập lệnh được đính
kèm tài liệu đó.
<define name="paragraph-content" combine="choice">
<element name="text:script">
<interleave>
<choice>
<group>
<attribute name="xlink:href">
<ref name="anyURI"/>
70
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
</group>
<text/>
</choice>
<optional>
<attribute name="script:language">
<ref name="string"/>
</attribute>
</optional>
</interleave>
</element>
</define>
Trường vi lệnh (Macro) bao gồm tên của một Macro được thi hành khi
trường đó được kích hoạt. Trường này cũng bao gồm một mô tả được hiển thị
như nội dung trường đó.
<define name="paragraph-content" combine="choice">
<element name="text:execute-macro">
<optional>
<attribute name="text:name">
<ref name="string"/>
</attribute>
</optional>
<optional>
<ref name="office-event-listeners"/>
</optional>
<text/>
</element>
</define>
Trường của đoạn ẩn có một chức năng tương tự với trường của văn bản
ẩn. Tuy nhiên, trường của đoạn ẩn không có bất kỳ nội dung nào. Nó ấn đoạn đó
trong văn bản chứa nó. Điều này cho phép một đoạn của văn bản định dạng
được ẩn đi hoặc được hiển thị phụ thuộc vào điều kiện là true hoặc false.
<define name="paragraph-content" combine="choice">
<element name="text:hidden-paragraph">
<ref name="text-hidden-paragraph-attlist"/>
<text/>
</element>
</define>

71
Trong văn bản được chứa trong các đối tượng hình vẽ đo lường, một
trường <text:measure> hiển dữ liệu đo lường hiện tại. Thuộc tính draw:kind quy
định phần đo lường được hiển thị.
<define name="paragraph-content" combine="choice">
<element name="text:measure">
<attribute name="text:kind">
<choice>
<value>value</value>
<value>unit</value>
<value>gap</value>
</choice>
</attribute>
<text/>
</element>
</define>
Trường công thức trong bảng đó là một trường kế thừa từ các phiên bản
trước đó của các ứng dụng văn phòng hiện tại. Nó không nên được sử dụng
trong các tài liệu mới. Nó lưu trữ một công thức được sử dụng trong các bảng,
một chức năng dược thực hiện tốt hơn bởi thuộc tính table:formula của ô trong
bảng.
<define name="paragraph-content" combine="choice">
<element name="text:table-formula">
<interleave>
<ref name="common-field-formula-attlist"/>
<ref name="common-field-display-value-formula-attlist"/>
<ref name="common-field-data-style-name-attlist"/>
</interleave>
<text/>
</element>
</define>
7. Các chỉ mục văn bản
Các tài liệu văn bản mở có thể bao gồm các chỉ mục (text index) được tạo
tự động. Một chỉ mục nói chung bao gồm một danh sách được lưu trữ của tất cả
các khoản mục kiểu nào đó như việc sắp xếp (vị trí tài liệu, theo bảng chữ cái,
v.v) hoặc kiểu dáng của các khoản mục (các tiêu đề chương, các bảng, v.v.)...
của tài liệu được xác định bởi các chỉ mục cụ thể.
7.1. Đánh dấu chỉ mục
Có ba kiểu đánh dấu chỉ mục (index mark) tương ứng với ba kiểu chỉ mục
tạo ra việc sử dụng của đánh dấu chỉ mục. Ba kiểu đánh dấu chỉ mục là: Đánh
dấu chỉ mục bảng nội dung, đánh dấu chỉ mục người dùng định nghĩa, đánh dấu
chỉ mục theo bảng chữ cái. Các lệnh theo mã XML cho đánh dấu chỉ mục cũng
tương tự như với mã đối với trường dấu sách và tham chiếu. Mỗi đánh dấu chỉ
mục được biểu diễn bởi một phần tử bắt đầu và một phần tử kết thúc.

72
Phần tử <text:toc-mark-start> đánh dấu vị trí bắt đầu của một mục nhập
chỉ mục của bảng nội dung. ID được quy định bởi thuộc tính text:id phải duy
nhất ngoại trừ đối việc làm khớp với phần tử kết thúc đánh dấu chỉ mục. Phải có
một phần tử kết thúc để khớp với phần tử bắt đầu được đặt trong cùng đoạn, với
phần tử bắt đầu xuất hiện đầu tiên.
<define name="paragraph-content" combine="choice">
<element name="text:toc-mark-start">
<ref name="text-toc-mark-start-attrs"/>
</element>
</define>
Phần tử <text:toc-mark-end> đánh dấu cuối của một mục nhập chỉ mục
các bảng nội dung. Phải có một phần tử bắt đầu với cùng giá trị text:id để khớp
với phần tử kết thúc được đặt trong cùng đoạn, với phần tử bắt đầu xuất hiện đầu
tiên.
<define name="paragraph-content" combine="choice">
<element name="text:toc-mark-end">
<ref name="text-id"/>
</element>
</define>
Đánh dấu chỉ mục bảng nội dung cũng có một biến thể không bao quanh
văn bản được đánh chỉ mục. Điều này được biểu diễn có sử dụng phần tử
<text:toc-mark> bao gồm một thuộc tính text:string-value đối với văn bản của
mục nhập chỉ mục. Trong trường hợp này, một thuộc tính text:id là không cần
thiết bởi vì không có các phần tử bắt đầu và kết thúc phù hợp.
<define name="paragraph-content" combine="choice">
<element name="text:toc-mark">
<attribute name="text:string-value">
<ref name="string"/>
</attribute>
<ref name="text-outline-level"/>
</element>
</define>
Phần tử <text:user-index-mark-start> đánh dấu vị trí bắt đầu của một mục
nhập chỉ mục người dùng định nghĩa. ID được quy định bởi thuộc tính text:id
phải duy nhất ngoại trừ đối với việc làm khớp phần tử kết thúc đánh dấu chỉ
mục. Phải có một phần tử kết thúc để khớp với phần tử bắt đầu được đặt trong
cùng đoạn, với phần tử bắt đầu xuất hiện đầu tiên.
<define name="paragraph-content" combine="choice">
<element name="text:user-index-mark-start">
<ref name="text-id"/>
<ref name="text-outline-level"/>
<ref name="text-index-name"/>
</element>
</define>

73
Phần tử <text:user-index-mark-end> đánh dấu kết thúc của mục nhập chỉ
mục người dùng định nghĩa. Phải có một phần tử bắt đầu với cùng giá trị text:id
để khớp với phần tử kết thúc được đặt trong cùng đoạn, với phần tử bắt đầu xuất
hiện đầu tiên.
<define name="paragraph-content" combine="choice">
<element name="text:user-index-mark-end">
<ref name="text-id"/>
<ref name="text-outline-level"/>
</element>
</define>
Đánh dấu chỉ mục của người sử dụng cũng có một biến thể không bao
quanh văn bản được đánh chỉ mục. Điều này được biểu diễn bởi phần tử
<text:user-index-mark> bao gồm một thuộc tính text:string-value đối với văn
bản của mục nhập chỉ mục. Trong trường hợp này, thuộc tính text:id là không
cần thiết bởi vì không có các phần tử bắt đầu và kết thúc phù hợp.
<define name="paragraph-content" combine="choice">
<element name="text:user-index-mark">
<attribute name="text:string-value">
<ref name="string"/>
</attribute>
<ref name="text-outline-level"/>
<ref name="text-index-name"/>
</element>
</define>
Có thể có nhiều hơn một chỉ mục người dùng định nghĩa. Trong trường
hợp này, chỉ mục người sử dụng phải được dặt tên có sử dụng thuộc tính
text:index-name. thuộc tính này xác định chỉ mục người dùng định nghĩa mà
một đánh dấu chỉ mục trực thuộc. Nếu không được đặt tên, thì sử dụng chỉ mục
người dùng định nghĩa mặc định.
<define name="text-index-name">
<attribute name="text:index-name">
<ref name="string"/>
</attribute>
</define>
Phần tử <text:alpha-index-mark-start> đánh dấu vị trí bắt đầu của một
mục nhập chỉ mục theo bảng chữ cái. Có hai thuộc tính tùy chọn có thể bao gồm
các khóa cho các mục trong bảng chữ cái, cho phép lập cấu trúc các mục nhập.
Cũng có một thuộc tính Boolean xác định nếu mục nhập này được dành cho là
mục nhập chính, nếu có nhiều mục nhập bằng nhau. ID được quy định bởi thuộc
tính text:id phải duy nhất ngoại trừ đối với việc làm khớp phần tử kết thúc đánh
dấu chỉ mục. Phải có một phần tử kết thúc để khớp với phần tử bắt đầu được đặt
trong cùng đoạn, cùng với phần tử bắt đầu xuất hiện đầu tiên.
<define name="paragraph-content" combine="choice">
<element name="text:alphabetical-index-mark-start">
<ref name="text-id"/>

74
<ref name="text-alphabetical-index-mark-attrs"/>
</element>
</define>
Phần tử <text:alpha-index-mark-end> đánh dấu kết thúc của một mục
nhập chỉ mục theo bảng chữ cái. Phải có một phần tử bắt đầu với cùng giá trị
text:id để khớp với phần tử kết thúc được đặt trong cùng đoạn, cùng với phần tử
bắt đầu xuất hiện đầu tiên.
<define name="paragraph-content" combine="choice">
<element name="text:alphabetical-index-mark-end">
<ref name="text-id"/>
</element>
</define>
Đánh dấu chỉ mục theo bảng chữ cái cũng có một biến thể không bao
quanh văn bản được đánh chỉ mục. Điều này được biểu diễn có sử dụng phần tử
<text:alpha-index-mark> bao gồm một thuộc tính text:string-value cho văn bản
của mục nhập chỉ mục. Trong trường hợp này, một thuộc tính text:id là không
cần thiết bởi vì không có các phần tử bắt đầu và kết thúc phù hợp.
<define name="paragraph-content" combine="choice">
<element name="text:alphabetical-index-mark">
<attribute name="text:string-value">
<ref name="string"/>
</attribute>
<ref name="text-alphabetical-index-mark-attrs"/>
</element>
</define>
Các thuộc tính text:key1 và text:key2 quy định các khóa bổ sung cho đánh
dấu chỉ mục theo bảng chữ cái. Nếu nếu chỉ một khóa được sử dụng, nó phải
được chứa trong thuộc tính text:key1.
<define name="text-alphabetical-index-mark-attrs" combine="interleave">
<optional>
<attribute name="text:key1">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="text:key2">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <text:bibliography-mark> bao gồm văn bản và thông tin cho một
mục nhập chỉ mục danh sách xuất bản. Nó hỗ trợ các thuộc tính cho mỗi kiểu dữ
liệu danh sách xuất bản có thể được chứa trong một chỉ mục danh sách xuất bản.
<define name="paragraph-content" combine="choice">
<element name="text:bibliography-mark">

75
<attribute name="text:bibliography-type">
<ref name="text-bibliography-types"/>
</attribute>
<zeroOrMore>
<attribute>
<choice>
<name>text:identifier</name>
<name>text:address</name>
<name>text:annote</name>
<name>text:author</name>
<name>text:booktitle</name>
<name>text:chapter</name>
<name>text:edition</name>
<name>text:editor</name>
<name>text:howpublished</name>
<name>text:institution</name>
<name>text:journal</name>
<name>text:month</name>
<name>text:note</name>
<name>text:number</name>
<name>text:organizations</name>
<name>text:pages</name>
<name>text:publisher</name>
<name>text:school</name>
<name>text:series</name>
<name>text:title</name>
<name>text:report-type</name>
<name>text:volume</name>
<name>text:year</name>
<name>text:url</name>
<name>text:custom1</name>
<name>text:custom2</name>
<name>text:custom3</name>
<name>text:custom4</name>
<name>text:custom5</name>
<name>text:isbn</name>
<name>text:issn</name>
</choice>
<ref name="string"/>
</attribute>
</zeroOrMore>
<text/>
</element>
</define>
<define name="text-bibliography-types">

76
<choice>
<value>article</value>
<value>book</value>
<value>booklet</value>
<value>conference</value>
<value>custom1</value>
<value>custom2</value>
<value>custom3</value>
<value>custom4</value>
<value>custom5</value>
<value>email</value>
<value>inbook</value>
<value>incollection</value>
<value>inproceedings</value>
<value>journal</value>
<value>manual</value>
<value>mastersthesis</value>
<value>misc</value>
<value>phdthesis</value>
<value>proceedings</value>
<value>techreport</value>
<value>unpublished</value>
<value>www</value>
</choice>
</define>
7.2. Cấu trúc chỉ mục
Một chỉ mục bao gồm ba phần: Nguồn chỉ mục, thân chỉ mục và tiêu đề
chỉ mục. Cả ba phần này đều được chứa trong một phần tử của chính chúng.
Thân chỉ mục thể hiện nguyên văn thực tại của chỉ mục đó và định dạng giống
như đối với văn bản thông thường.
<define name="text-index-body">
<element name="text:index-body">
<zeroOrMore>
<ref name="index-content-main"/>
</zeroOrMore>
</element>
</define>
<define name="index-content-main">
<choice>
<ref name="text-content"/>
<ref name="text-index-title"/>
</choice>
</define>

77
Tiêu đề chỉ mục thường được chứa trong một phần đoạn của chính nó. Lý
do là để cho phép bố trí tiêu đề chỉ mục trên toàn bộ trang đó, trừ khi có chỉ mục
khác mà chính nó nằm trong cách bố trí hai cột.
<define name="text-index-title">
<element name="text:index-title">
<ref name="sectionAttr"/>
<zeroOrMore>
<ref name="index-content-main"/>
</zeroOrMore>
</element>
</define>
7.3. Bảng nội dung
Một bảng nội dung cung cấp cho người sử dụng một hướng dẫn thông qua
nội dung của tài liệu. Thông thường, nó được tìm thấy tại vị trí bắt đầu của một
tài liệu, bao gồm các tiêu đề chương với các số hiệu trang tương ứng của chúng.
Các bảng nội dung được biểu diễn bởi phần tử <text:table-of-content>.
<define name="text-table-of-content">
<element name="text:table-of-content">
<ref name="sectionAttr"/>
<ref name="text-table-of-content-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:table-of-content-source> quy định cách thức xác định
nguồn cho các bảng nội dung được tạo lập.
<define name="text-table-of-content-source">
<element name="text:table-of-content-source">
<ref name="text-table-of-content-source-attlist"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<zeroOrMore>
<ref name="text-table-of-content-entry-template"/>
</zeroOrMore>
<zeroOrMore>
<ref name="text-index-source-styles"/>
</zeroOrMore>
</element>
</define>
Phần tử <text:table-of-content-entry-template> xác định định dạng của
một trình tự truy nhập theo mẫu về mức phân cấp riêng của bảng nội dung. Đối
với mỗi bảng nội dung chỉ có một phần tử cho bất kỳ mức phân cấp nào.
<define name="text-table-of-content-entry-template">
<element name="text:table-of-content-entry-template">

78
<ref name="text-table-of-content-entry-template-attlist"/>
<zeroOrMore>
<ref name="text-table-of-content-children"/>
</zeroOrMore>
</element>
</define>
Thuộc tính ext:style-name quy định kiểu dáng đoạn đó để sử dụng cho
khuôn mẫu này.
<define name="text-table-of-content-entry-template-attlist"
combine="interleave">
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</define>
7.4. Chỉ mục của các minh họa
Chỉ mục của các minh họa liệt kê tất cả các ảnh và hình trong tài liệu hoặc
chương hiện tại. Các mục nhập chỉ mục có thể được lấy từ đoạn chú thích của
minh họa hoặc tên của minh họa đó. Thuộc tính này có thể được đính kèm với
phần tử <text:illustration-index>.
<define name="text-illustration-index">
<element name="text:illustration-index">
<ref name="sectionAttr"/>
<ref name="text-illustration-index-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:illustration-index-source> quy định cách thức xác định
nguồn của chỉ mục các minh họa được tạo lập.
<define name="text-illustration-index-source">
<element name="text:illustration-index-source">
<ref name="text-illustration-index-source-attrs"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<optional>
<ref name="text-illustration-index-entry-template"/>
</optional>
</element>
</define>
Mỗi đối tượng được chứa trong một tài liệu văn bản có một tên riêng do
phần mềm tự phát sinh. Ngoài ra, thông thường các hình ảnh cũng có một đoạn
chú thích. Đoạn chú thích của ảnh hoặc tên của ảnh có thể được tập hợp cho chỉ
mục của các minh họa.
<define name="text-illustration-index-source-attrs" combine="interleave">

79
<optional>
<attribute name="text:use-caption" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các đoạn chú thích được liên kết với một tên trình tự. Nếu thuộc tính
text:use-caption được đặt là true, thì thuộc tính này phải được sử dụng để quy
định trình tự đó cùng với các đoạn chú thích được liên kết. Nếu thuộc tính này bị
bỏ qua, thì trình tự mặc định cho kiểu đối tượng được sử dụng.
<define name="text-illustration-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:caption-sequence-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Nếu các mục nhập cho chỉ mục của các minh họa đạt được từ đoạn chú
thích của các ảnh, thuộc tính này phải được sử dụng để quy định định dạng cho
các mục nhập.
<define name="text-illustration-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:caption-sequence-format">
<choice>
<value>text</value>
<value>category-and-value</value>
<value>caption</value>
</choice>
</attribute>
</optional>
</define>
Phần tử khuôn mẫu mục nhập chỉ mục minh họa <text-illustration-index-
entry-template> sẽ xác định định dạng của một mục nhập chỉ mục cho một mức
phân cấp riêng.
<define name="text-illustration-index-entry-template">
<element name="text:illustration-index-entry-template">
<ref name="text-illustration-index-entry-content"/>
</element>
</define>
<define name="text-illustration-index-entry-content">
<ref name="text-illustration-index-entry-template-attrs"/>
<zeroOrMore>
<choice>
<ref name="text-index-entry-page-number"/>
<ref name="text-index-entry-text"/>

80
<ref name="text-index-entry-span"/>
<ref name="text-index-entry-stop-tab"/>
</choice>
</zeroOrMore>
</define>
7.5. Chỉ mục của các bảng
Chỉ mục của các bảng sẽ liệt kê toàn bộ các bảng trong tài liệu hoặc
chương hiện tại. Nó thực hiện giống hệt chỉ mục của các minh họa đã nêu ở trên.
<define name="text-table-index">
<element name="text:table-index">
<ref name="sectionAttr"/>
<ref name="text-table-index-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:table-index-source> quy định cách thức xác định nguồn chỉ
mục của các bảng được tạo. Các thuộc tính có thể được liên kết với phần tử này
giống như các thuộc tính có thể được liên kết với phần tử <text:illustration-
index-source> đã nêu trên.
<define name="text-table-index-source">
<element name="text:table-index-source">
<ref name="text-illustration-index-source-attrs"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<optional>
<ref name="text-table-index-entry-template"/>
</optional>
</element>
</define>
Phần tử khuôn mẫu mục nhập chỉ mục bảng <text-table-index-entry-
template> xác định định dạng của một mục nhập chỉ mục cho một mức phân cấp
cụ thể. Các thuộc tính có thể được liên kết với phần tử này giống như các thuộc
tính có thể được kết hợp với phần tử <text:illustration-index-entry-template>.
<define name="text-table-index-entry-template">
<element name="text:table-index-entry-template">
<ref name="text-illustration-index-entry-content"/>
</element>
</define>
7.6. Chỉ mục của các đối tượng
Chỉ mục của các đối tượng liệt kê toàn bộ các đối tượng trong tài liệu
hoặc chương hiện tại. Nó tập hợp các mục nhập của nó từ các kiểu đối tượng đã
biết.

81
<define name="text-object-index">
<element name="text:object-index">
<ref name="sectionAttr"/>
<ref name="text-object-index-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:object-index-source> xác định các nguồn kiểu đối tượng để
đưa vào trong chỉ mục của các đối tượng.
<define name="text-object-index-source">
<element name="text:object-index-source">
<ref name="text-object-index-source-attrs"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<optional>
<ref name="text-object-index-entry-template"/>
</optional>
</element>
</define>
Phần tử khuôn mẫu mục nhập chỉ mục đối tượng <text-object-index-
entry-template> xác định định dạng của một mục nhập chỉ mục cho một mức
phân cấp cụ thể.
<define name="text-object-index-entry-template">
<element name="text:object-index-entry-template">
<ref name="text-illustration-index-entry-content"/>
</element>
</define>
7.7. Chỉ mục người dùng định nghĩa
Chỉ mục người dùng định nghĩa có thể tập hợp các nguồn như đánh dấu
chỉ mục, các đoạn được định dạng, các ảnh hoặc các khung văn bản...
<define name="text-user-index">
<element name="text:user-index">
<ref name="sectionAttr"/>
<ref name="text-user-index-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:user-index-source> có thể bao gồm nhiều nguồn thuộc tính
xác định cách thức chỉ mục các mục nhập được tập hợp. Nó cũng hỗ trợ một
thuộc tính xác định cách thức các mức phân cấp của chỉ mục các mục nhập được
tập hợp. Các định dạng đoạn được sử dụng như đánh dấu chỉ mục được mã hóa
trong phần tử <text:index-source-styles>, chỉ giống trong các phần tử
<text:table-of-content-source>.

82
<define name="text-user-index-source">
<element name="text:user-index-source">
<ref name="text-user-index-source-attr"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<zeroOrMore>
<ref name="text-user-index-entry-template"/>
</zeroOrMore>
<zeroOrMore>
<ref name="text-index-source-styles"/>
</zeroOrMore>
</element>
</define>
Để hỗ trợ chỉ mục người dùng định nghĩa có nội dung khác nhau, đánh
dấu chỉ mục của người sử dụng có một thuộc tính text:index-name. Cùng thuộc
tính có thể được sử dụng với một phần tử <text:user-index-source> để quy định
chỉ mục nào sẽ đánh dấu chỉ mục áp dụng cho chỉ mục hiện tại.
<define name="text-user-index-source-attr" combine="interleave">
<ref name="text-index-scope-attr"/>
<ref name="text-relative-stop-tab-position-attr"/>
<attribute name="text:index-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính này có thể có một giá trị là true hoặc false. Nếu giá trị là true,
thì các mục nhập được tập hợp tại mức phân cấp của phần tử nguồn mà chúng
đề cập tới. Nếu giá trị là false, toàn bộ các mục nhập chỉ mục được tập hợp tại
mức phân cấp đỉnh.
<define name="text-user-index-source-attr" combine="interleave">
<optional>
<attribute name="text:copy-outline-levels"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Khuôn mẫu mục nhập chỉ mục của người sử dụng <text-user-index-entry-
template> hỗ trợ các phần tử mục nhập cho số hiệu chương, số trang, văn bản
mục nhập, các nhịp văn bản, và các điểm dừng tab.
<define name="text-user-index-entry-template">
<element name="text:user-index-entry-template">
<ref name="text-user-index-entry-template-attrs"/>
<zeroOrMore>
<choice>

83
<ref name="text-index-entry-chapter"/>
<ref name="text-index-entry-page-number"/>
<ref name="text-index-entry-text"/>
<ref name="text-index-entry-span"/>
<ref name="text-index-entry-stop-tab"/>
</choice>
</zeroOrMore>
</element>
</define>
Thuộc tính text:outline-level quy định tới mức phân cấp mục nhập mà cấu
hình áp dụng. Tất cả các phần tử <text:outline-level> được chứa trong cùng
phần tử gốc phải quy định các mức phân cấp khác nhau.
<define name="text-user-index-entry-template-attrs" combine="interleave">
<attribute name="text:outline-level">
<ref name="positiveInteger"/>
</attribute>
</define>
Thuộc tính ext:style-name quy định kiểu dáng đoạn đó để sử dụng cho
khuôn mẫu.
<define name="text-user-index-entry-template-attrs" combine="interleave">
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</define>
Một chỉ mục theo bảng chữ cái tập hợp các mục nhập của nó một cách
duy nhất từ đánh dấu chỉ mục.
<define name="text-alphabetical-index">
<element name="text:alphabetical-index">
<ref name="sectionAttr"/>
<ref name="text-alphabetical-index-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:alphabetical-index-source> quy định cách thức chỉ mục
theo bảng chữ cái được tạo.
<define name="text-alphabetical-index-source">
<element name="text:alphabetical-index-source">
<ref name="text-alphabetical-index-source-attrs"/>
<optional>
<ref name="text-index-title-template"/>
</optional>
<zeroOrMore>
<ref name="text-alphabetical-index-entry-template"/>
</zeroOrMore>
</element>

84
</define>
Thuộc tính text:ignore-case xác định việc viết chữ in hoa của các từ có
được bỏ qua hay không. Nếu giá trị là true, việc viết in hoa được bỏ qua và các
mục nhập là đồng dạng ngoại trừ đối với các trường hợp ký tự được liệt kê cùng
các mục nhập. Nếu giá trị là false, thì việc viết chữ in hoa của các từ không được
bỏ qua.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:ignore-case" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:main-entry-style-name xác định kiểu dáng ký tự để sử
dụng cho các mục nhập chính. Các mục nhập phụ được định dạng có sử dụng
kiểu dáng ký tự mặc định được xác định bởi kiểu dáng trang của các mục nhập.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:main-entry-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính text:alphabetical-separators xác định các mục nhập có bắt đầu
với cùng chữ cái được nhóm và được phân tách từ các mục nhập bắt đầu với chữ
cái tiếp theo hay không, v.v. Giá trị của thuộc tính này có thể là true hoặc false.
Nếu giá trị là true, toàn bộ các mục nhập bắt đầu với cùng chữ cái được nhóm
cùng nhau.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:alphabetical-separators" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Bổ sung vào một từ khóa, đánh dấu chỉ mục có thể có đến hai khóa. Nếu
giá trị của thuộc tính này là true, thì các khóa được sử dụng như các mục nhập
bổ sung. Nếu giá trị của thuộc tính này là false, các khóa được sử dụng như các
mục nhập phụ.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:use-keys-as-entries" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>

85
</define>
Thuộc tính text:capitalize-entries xác định các mục nhập trong chỉ mục có
được viết dạng chữ hoa hay không.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:capitalize-entries" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:comma-separated quy định cách thức để xem xét nhiều
mục nhập chỉ mục. Thay cho việc liệt kê mỗi mục nhập chỉ mục trên một dòng
riêng rẽ, nhiều mục nhập có thể được liệt kê trên một dòng đơn được phân tách
bởi một dấu phảy. Nếu giá trị của thuộc tính này là true, nhiều mục nhập được
liệt kê trên một dòng đơn được phân tách bởi một dấu phảy. Mặc định, giá trị
của thuộc tính này là false và mỗi mục nhập chỉ mục được hiển thị trên một
dòng riêng rẽ.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="text:comma-separated" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Nếu các mục nhập chỉ mục là để được sắp xếp, thì các thuộc tính này có
thể được sử dụng để quy định việc sắp xếp. Các thuộc tính ngôn ngữ và quốc gia
quy định việc sắp xếp nơi xảy ra. Đối với một số nơi xảy ra, có nhiều thuật toán
sắp xếp đang sử dụng. Trong trường hợp này, thuộc tính thuật toán có thể được
sử dụng để quy định một thuật toán theo tên.
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="fo:language">
<ref name="languageCode"/>
</attribute>
</optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>
<attribute name="fo:country">
<ref name="countryCode"/>
</attribute>
</optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
<optional>

86
<attribute name="text:sort-algorithm">
<ref name="string"/>
</attribute>
</optional>
</define>
Chỉ mục theo bảng chữ cái hỗ trợ tệp tin được gọi là đánh dấu tự động.
Một tệp như vậy bao gồm một danh sách của các thuật ngữ, và mỗi lần xuất hiện
của một thuật ngữ như vậy là được chứa trong chỉ mục theo bảng chữ cái. Tệp
đánh dấu chỉ mục theo bảng chữ cái được khai báo như một phần của các khai
báo văn bản.
<define name="text-alphabetical-index-auto-mark-file">
<element name="text:alphabetical-index-auto-mark-file">
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
</element>
</define>
Các chỉ mục theo bảng chữ cái hỗ trợ ba các mức; một mức cho mục nhập
chỉ mục chính, và đến hai mức bổ sung đối với các khóa được kết hợp với các
mục nhập chỉ mục. Các chỉ mục theo bảng chữ cái cũng sử dụng một khuôn mẫu
mục nhập cho dấu phân tách theo bảng chữ cái.
<define name="text-alphabetical-index-entry-template">
<element name="text:alphabetical-index-entry-template">
<ref name="text-alphabetical-index-entry-template-attrs"/>
<zeroOrMore>
<choice>
<ref name="text-index-entry-chapter"/>
<ref name="text-index-entry-page-number"/>
<ref name="text-index-entry-text"/>
<ref name="text-index-entry-span"/>
<ref name="text-index-entry-stop-tab"/>
</choice>
</zeroOrMore>
</element>
</define>
Thuộc tính ext:style-name quy định kiểu dáng đoạn đó để sử dụng cho
khuôn mẫu.
<define name="text-alphabetical-index-entry-template-attrs"
combine="interleave">
<attribute name="text:style-name">

87
<ref name="styleNameRef"/>
</attribute>
</define>
Phần tử <text:bibliography> biểu diễn một danh sách xuất bản.
<define name="text-bibliography">
<element name="text:bibliography">
<ref name="sectionAttr"/>
<ref name="text-bibliography-source"/>
<ref name="text-index-body"/>
</element>
</define>
Phần tử <text:bibliography-source> quy định cách thức danh sách xuất
bản được tạo.
<define name="text-bibliography-source">
<element name="text:bibliography-source">
<optional>
<ref name="text-index-title-template"/>
</optional>
<zeroOrMore>
<ref name="text-bibliography-entry-template"/>
</zeroOrMore>
</element>
</define>
Khuôn mẫu mục nhập các danh sách xuất bản hỗ trợ các phần tử mục
nhập cho dữ liệu danh sách xuất bản, các nhịp văn bản, và các điểm dừng tab.
<define name="text-bibliography-entry-template">
<element name="text:bibliography-entry-template">
<ref name="text-bibliography-entry-template-attrs"/>
<zeroOrMore>
<choice>
<ref name="text-index-entry-span"/>
<ref name="text-index-entry-stop-tab"/>
<ref name="text-index-entry-bibliography"/>
</choice>
</zeroOrMore>
</element>
</define>
Thuộc tính ext:style-name quy định kiểu dáng đoạn đó để sử dụng cho
khuôn mẫu này.
<define name="text-bibliography-entry-template-attrs" combine="interleave">
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</define>

88
Một số chỉ mục có thể tập hợp các mục nhập chỉ mục từ các đoạn được
định dạng trước có sử dụng kiểu dáng đoạn nào đó. Phần tử <text:index-source-
styles> cho một mức phân cấp riêng và thuộc tính text:outline-levels xác định tại
mức phân cấp cho danh sách các mục nhập chỉ mục được tập hợp từ các kiểu
dáng trang tương ứng.
<define name="text-index-source-styles">
<element name="text:index-source-styles">
<attribute name="text:outline-level">
<ref name="positiveInteger"/>
</attribute>
<zeroOrMore>
<ref name="text-index-source-style"/>
</zeroOrMore>
</element>
</define>
Tất cả các đoạn được định dạng có sử dụng kiểu dáng hoặc lớp được quy
định trong phần tử <text:index-source- style> được chứa trong chỉ mục.
<define name="text-index-source-style">
<element name="text:index-source-style">
<attribute name="text:style-name">
<ref name="styleName"/>
</attribute>
<empty/>
</element>
</define>
Phần tử <text:index-title-template> xác định kiểu dáng và nội dung của
tiêu đề chỉ mục. Chỉ có thể có một phần tử <text:index-title-template> được
chứa trong một phần tử <text:table-of-content-source>.
<define name="text-index-title-template">
<element name="text:index-title-template">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<text/>
</element>
</define>
Phần tử <text:index-entry-chapter> hiện thị số hiệu chương của mục nhập
chỉ mục. Kiểu dáng ký tự cho số hiệu chương có thể được chứa trong mục nhập
phần tử chỉ mục như một thuộc tính ext:style-name.
<define name="text-index-entry-chapter">
<element name="text:index-entry-chapter">
<optional>
<attribute name="text:style-name">

89
<ref name="styleNameRef"/>
</attribute>
</optional>
<ref name="text-index-entry-chapter-attrs"/>
</element>
</define>
Thuộc tính text:display hiện thị hoặc số hiệu chương hoặc tên chương,
hoặc cả hai.
<define name="text-index-entry-chapter-attrs">
<optional>
<attribute name="text:display" a:defaultValue="number">
<choice>
<value>name</value>
<value>number</value>
<value>number-and-name</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <text:index-entry-text> hiện thị văn bản của mục nhập chỉ mục,
ví dụ, tên chương nếu mục nhập đó được tạo từ một phần đầu trang hoặc cụm từ
được chứa trong đánh dấu chỉ mục nếu mục nhập đó được tạo từ một đánh dấu
chỉ mục. Kiểu dáng ký tự cho văn bản mục nhập có thể được chứa trong mục
nhập phần tử chỉ mục như một thuộc tính text:style-name.
<define name="text-index-entry-text">
<element name="text:index-entry-text">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</element>
</define>
Phần tử <text:index-entry-page-number> hiện thị số trang mà trong đó
mục nhập chỉ mục được đặt. Kiểu dáng ký tự cho số trang có thể được chứa
trong mục nhập phần tử chỉ mục như một thuộc tính text:style-name.
<define name="text-index-entry-page-number">
<element name="text:index-entry-page-number">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</element>
</define>

90
Phần tử <text:index-entry-span> biểu diễn một chuỗi cố định trong một
mục nhập chỉ mục. Kiểu dáng ký tự cho văn bản mục nhập có thể được chứa
trong mục nhập phần tử chỉ mục như một thuộc tính text:style- name. Khác với
phần tử <text:span>, phần tử <text:index-entry-span> không có bất kỳ phần tử
con nào.
<define name="text-index-entry-span">
<element name="text:index-entry-span">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<text/>
</element>
</define>
Phần tử <text:index-entry-bibliography> đưa ra dữ liệu danh sách xuất
bản vào mục nhập các khuôn mẫu chỉ mục.
<define name="text-index-entry-bibliography">
<element name="text:index-entry-bibliography">
<ref name="text-index-entry-bibliography-attrs"/>
</element>
</define>
Thuộc tính ext:bibliography-data-field xác định một phần của trường dữ
liệu danh sách xuất bản sẽ được hiển thị.
<define name="text-index-entry-bibliography-attrs" combine="interleave">
<attribute name="text:bibliography-data-field">
<choice>
<value>address</value>
<value>annote</value>
<value>author</value>
<value>bibliography-type</value>
<value>booktitle</value>
<value>chapter</value>
<value>custom1</value>
<value>custom2</value>
<value>custom3</value>
<value>custom4</value>
<value>custom5</value>
<value>edition</value>
<value>editor</value>
<value>howpublished</value>
<value>identifier</value>
<value>institution</value>
<value>isbn</value>
<value>issn</value>

91
<value>journal</value>
<value>month</value>
<value>note</value>
<value>number</value>
<value>organizations</value>
<value>pages</value>
<value>publisher</value>
<value>report-type</value>
<value>school</value>
<value>series</value>
<value>title</value>
<value>url</value>
<value>volume</value>
<value>year</value>
</choice>
</attribute>
</define>
Phần tử <text:index-entry-stop-tab> biểu diễn một điểm dừng tab trong
một mục nhập chỉ mục. Nó cũng bao gồm thông tin vị trí cho điểm dừng tab.
<define name="text-index-entry-stop-tab">
<element name="text:index-entry-stop-tab">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<ref name="text-index-entry-stop-tab-attrs"/>
</element>
</define>
Các phần tử <text:index-entry-link-start> và <text:index-entry-link-end>
đánh dấu vị trí bắt đầu và kết thúc của một siêu liên kết mục nhập chỉ mục. Kiểu
dáng ký tự cho siêu liên kết đó có thể được chứa trong mục nhập phần tử chỉ
mục như một thuộc tính text:style-name.
<define name="text-index-entry-link-start">
<element name="text:index-entry-link-start">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</element>
<define name="text-index-entry-link-end">
<element name="text:index-entry-link-end">
<optional>
<attribute name="text:style-name">

92
<ref name="styleNameRef"/>
</attribute>
</optional>
</element>
</define>
8. Bảng biểu
Phần này mô tả cấu trúc bảng biểu được sử dụng cho đối tượng bảng được
nhúng trong các tài liệu văn bản và cho các bảng tính.
8.1. Mô hình bảng cơ bản
Các thành phần chính của bảng biểu là khung, các hàng, các cột. Các hàng
giữ thứ tự trước sau đó đến các cột. Bảng được chia thành các hàng (row) và các
hàng đó được các cột (colum) chia thành các ô (cell). Các hàng của bảng có thể
rỗng và các hàng khác có thể chứa một số các ô của bảng khác nhau. Các hàng
và cột có thể hợp nhất thành các nhóm hàng và các nhóm cột. Các nhóm này có
thể quy định một hàng hoặc một cột có lặp lại ở trang tiếp theo hay không. Phần
tử bảng là phần tử gốc đối với các bảng biểu được khai báo.
<define name="table-table">
<element name="table:table">
<ref name="table-table-attlist"/>
<optional>
<ref name="table-table-source"/>
</optional>
<optional>
<ref name="office-dde-source"/>
</optional>
<optional>
<ref name="table-scenario"/>
</optional>
<optional>
<ref name="office-forms"/>
</optional>
<optional>
<ref name="table-shapes"/>
</optional>
<ref name="table-columns-and-groups"/>
<ref name="table-rows-and-groups"/>
</element>
</define>
Nội dung của các phần tử bảng là các phần tử hàng và cột được khai báo.
<define name="table-columns-and-groups">
<oneOrMore>
<choice>
<ref name="table-table-column-group"/>

93
<ref name="table-columns-no-group"/>
</choice>
</oneOrMore>
</define>
<define name="table-columns-no-group">
<choice>
<group>
<ref name="table-columns"/>
<optional>
<ref name="table-table-header-columns"/>
<optional>
<ref name="table-columns"/>
</optional>
</optional>
</group>
<group>
<ref name="table-table-header-columns"/>
<optional>
<ref name="table-columns"/>
</optional>
</group>
</choice>
</define>
<define name="table-columns">
<choice>
<ref name="table-table-columns"/>
<oneOrMore>
<ref name="table-table-column"/>
</oneOrMore>
</choice>
</define>
<define name="table-rows-and-groups">
<oneOrMore>
<choice>
<ref name="table-table-row-group"/>
<ref name="table-rows-no-group"/>
</choice>
</oneOrMore>
</define>
<define name="table-rows-no-group">
<choice>
<group>
<ref name="table-rows"/>
<optional>
<ref name="table-table-header-rows"/>

94
<optional>
<ref name="table-rows"/>
</optional>
</optional>
</group>
<group>
<ref name="table-table-header-rows"/>
<optional>
<ref name="table-rows"/>
</optional>
</group>
</choice>
</define>
<define name="table-rows">
<choice>
<ref name="table-table-rows"/>
<oneOrMore>
<ref name="table-table-row"/>
</oneOrMore>
</choice>
</define>
Thuộc tính table:name quy định tên của một bảng.
<define name="table-table-attlist" combine="interleave">
<optional>
<attribute name="table:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:style-name tham chiếu một kiểu dáng bảng, như là một
phần tử <style:style> của kiểu dáng “bảng”. Kiểu dáng bảng mô tả các đặc tính
định dạng của bảng đó, như chiều rộng và mầu nền... Kiểu dáng bảng có thể là
kiểu dáng chung hoặc tự động.
<define name="table-table-attlist" combine="interleave">
<optional>
<attribute name="table:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính table:protected quy định một bảng được bảo vệ khỏi việc soạn
thảo hay không. Nếu bảng đó được bảo vệ, thì thuộc tính table:protection-key có
thể quy định một mật khẩu để ngăn ngừa người sử dụng thiết lập lại cờ bảo vệ
để cho phép soạn thảo. Nếu một bảng được bảo vệ, toàn bộ các phần tử bảng và
các phần tử ô cùng với một thuộc tính style:cell-protect đặt là true được bảo vệ.

95
Để tránh việc lưu lại mật khẩu một cách trực tiếp vào tệp XML, chỉ một giá trị
băm của mật khẩu được lưu trữ trong thuộc tính table:protection-key.
<define name="table-table-attlist" combine="interleave">
<optional>
<attribute name="table:protected" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="table:protection-key">
<text/>
</attribute>
</optional>
</define>
Thuộc tính table:print được quy định nếu một bảng được in. Nếu giá trị
của nó là true, thì bảng đó được in, nếu giá trị của nó là false, thì bảng đó không
được in.
<define name="table-table-attlist" combine="interleave">
<optional>
<attribute name="table:print" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:table-row> biểu diễn một hàng trong một bảng. Nội dung
của nó là các phần tử quy định tại các ô trong hàng của bảng đó.
<define name="table-table-row">
<element name="table:table-row">
<ref name="table-table-row-attlist"/>
<oneOrMore>
<choice>
<ref name="table-table-cell"/>
<ref name="table-covered-table-cell"/>
</choice>
</oneOrMore>
</element>
</define>
Thuộc tính table:number-rows-repeated quy định số hàng mà một phần tử
hàng áp dụng. Nếu hai hoặc nhiều hàng liền kề và có cùng nội dung và đặc tính,
không bao gồm các ô được kết hợp theo chiều dọc, chúng có thể được mô tả bởi
một phần tử <table:table-row> đơn lẻ có thể sẽ có một thuộc tính table:number-
rows-repeated cùng với một giá trị lớn hơn 1.
<define name="table-table-row-attlist" combine="interleave">
<optional>
<attribute name="table:number-rows-repeated" a:defaultValue="1">

96
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính table:style-name qui định đặc tính định dạng của hàng trong
bảng và khai báo:
<define name="table-table-row-attlist" combine="interleave">
<optional>
<attribute name="table:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính table:default-cell-style-name quy định một kiểu dáng ô mặc
định. Các ô được chứa trong hàng đó không có một kiểu dáng ô riêng sử dụng
các kiểu dáng ô mặc định này.
<define name="table-table-row-attlist" combine="interleave">
<optional>
<attribute name="table:default-cell-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính table:visibility quy định hàng đó là nhìn thấy, được lọc, hoặc
che lấp. Các hàng được lọc và che lấp là không nhìn thấy được trên màn hình.
<define name="table-table-row-attlist" combine="interleave">
<optional>
<attribute name="table:visibility" a:defaultValue="visible">
<ref name="table-visibility-value"/>
</attribute>
</optional>
</define>
<define name="table-visibility-value">
<choice>
<value>visible</value>
<value>collapse</value>
<value>filter</value>
</choice>
</define>
Ví dụ để khai báo mã tài liệu mở đối với một bảng có ba hàng và ba cột.
Hai hàng đầu tiên của bảng đó có mầu nền xanh nước biển, chúng ta viết:
<style:style style:name="Table 1" style:family="table">
<style:table-properties style:width="12cm" fo:background-color="light-grey"/>
</style:style>
<style:style style:name="Col1" style:family="table-column">

97
<style:table-column-properties style:column-width="2cm"/>
</style:style>
<style:style style:name="Col2" style:family="table-column">
<style:table-column-properties style:column-width="4cm"/>
</style:style>
<style:style style:name="Col3" style:family="table-column">
<style:table-column-properties style:column-width="6cm"/>
</style:style>
<style:style style:name="Row1" style:family="table-row">
<style:table-row-properties fo:background-color="blue"/>
</style:style>
<table:table table:name="Table 1" table:style-name="Table 1">
<table:table-columns>
<table:table-column table:style-name="Col1"/>
<table:table-column table:style-name="Col2"/>
<table:table-column table:style-name="Col3"/>
</table:table-columns>
<table:table-rows>
<table:table-row table:style-name="Row1">
...
</table:table-row>
<table:table-row table:style-name="Row1">
...
</table:table-row>
<table:table-row>
...
</table:table-row>
<table:table-rows>
</table:table>
Phần tử <table:table-cell> và <table:covered-table-cell> quy định nội
dung của các ô của một bảng. Chúng được chứa trong các phần tử hàng của
bảng. Một ô của bảng có thể bao gồm các đoạn và nội dung văn bản khác cũng
như các bảng phụ.
<define name="table-table-cell">
<element name="table:table-cell">
<ref name="table-table-cell-attlist"/>
<ref name="table-table-cell-attlist-extra"/>
<ref name="table-table-cell-content"/>
</element>
</define>
<define name="table-covered-table-cell">
<element name="table:covered-table-cell">
<ref name="table-table-cell-attlist"/>
<ref name="table-table-cell-content"/>
</element>

98
</define>
<define name="table-table-cell-content">
<optional>
<ref name="table-cell-range-source"/>
</optional>
<optional>
<ref name="office-annotation"/>
</optional>
<optional>
<ref name="table-detective"/>
</optional>
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
</define>
Khi một ô bao trùm một ô khác bởi vì một cột hoặc hàng mở rộng ra giá
trị lớn hơn một, một phần tử <table:covered-table-cell> phải xuất hiện trong
bảng đó để biểu diễn ô được bao trùm đó.
<define name="table-table-cell-attlist-extra" combine="interleave">
<optional>
<attribute name="table:number-columns-spanned" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="table:number-rows-spanned" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính table:content-validation-name quy định nếu một ô bao gồm
một kiểm tả tính hợp lệ. Thì giá trị của thuộc tính này là tên của một phần tử
<table:cell-content-validation>. Nếu thuộc tính đó không có mặt, thì ô đó có thể
có nội dung tùy ý.
<define name="table-table-cell-attlist" combine="interleave">
<optional>
<attribute name="table:content-validation-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Các công thức cho phép các phép tính toán được thực hiện trong các ô của bảng.
Mọi công thức nên bắt đầu cùng với một tiền tố tên miền quy định các ngữ
nghĩa và cú pháp được sử dụng trong công thức đó. Thuộc tính table:formula
bao gồm một công thức đối với một ô của bảng.

99
<define name="table-table-cell-attlist" combine="interleave">
<optional>
<attribute name="table:formula">
<ref name="string"/>
</attribute>
</optional>
</define>
8.2. Mô hình bảng tiên tiến
Mọi cột trong một bảng có một phần tử mô tả cột <table:table-column>.
Nó giống với phần tử <fo:table-column> và việc sử dụng chính của nó là để
tham chiếu một kiểu dáng cột của bảng.
<define name="table-table-column">
<element name="table:table-column">
<ref name="table-table-column-attlist"/>
<empty/>
</element>
</define>
Kiểu dáng của một cột được quy định thông qua sử dụng một thuộc tính
trong table:style-name.
<define name="table-table-column-attlist" combine="interleave">
<optional>
<attribute name="table:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính table:visibility quy định cột là có thể trông thấy, được lọc,
hoặc che lấp.
<define name="table-table-column-attlist" combine="interleave">
<optional>
<attribute name="table:visibility" a:defaultValue="visible">
<ref name="table-visibility-value"/>
</attribute>
</optional>
</define>
Thuộc tính table:default-cell-style-name quy định kiểu dáng ô mặc định.
Các ô không có kiểu dáng sử dụng các kiểu dáng này khi không có kiểu dáng ô
mặc định cũng được quy định đối với hàng của ô đó.
<define name="table-table-column-attlist" combine="interleave">
<optional>
<attribute name="table:default-cell-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>

100
</define>
Phần tử <table:table-header-columns> tiêu đề của cột trong bảng.
<define name="table-table-header-columns">
<element name="table:table-header-columns">
<oneOrMore>
<ref name="table-table-column"/>
</oneOrMore>
</element>
</define>
<define name="table-table-columns">
<element name="table:table-columns">
<oneOrMore>
<ref name="table-table-column"/>
</oneOrMore>
</element>
</define>
Phần tử <table:table-column-group> nhóm các cột gần kề của bảng thành
nhóm. Mọi nhóm có thể chứa một nhóm mới hoặc các cột và các đầu đề cột.
Một nhóm cột có thể nhìn thấy hoặc ẩn.
<define name="table-table-column-group">
<element name="table:table-column-group">
<ref name="table-table-column-group-attlist"/>
<ref name="table-columns-and-groups"/>
</element>
</define>
Thuộc tính table:display quy định nhóm cột đó trong bảng có thể quan sát
thấy hay không.
<define name="table-table-column-group-attlist" combine="interleave">
<optional>
<attribute name="table:display" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Nếu một bảng không vừa vặn trên một trang đơn, một bộ các hàng gần kề
của bảng có thể được tự động lặp lại trên mỗi trang. Để làm như vậy, các phần
tử hàng của chúng phải được chứa trong một phần tử <table:table-header-
rows>. Các hàng sẽ không được lặp lại trên mỗi trang có thể được chứa trong
một phần tử <table:table-rows>, nhưng không bắt buộc. Một bảng không phải
bao gồm nhiều hơn một phần tử <table:table-header-rows> và một phần tử
<table:table-rows> không phải theo sau một phần tử <table:table-rows> khác,
ngoại trừ các nhóm hàng.
<define name="table-table-header-rows">
<element name="table:table-header-rows">
<oneOrMore>

101
<ref name="table-table-row"/>
</oneOrMore>
</element>
</define>
<define name="table-table-rows">
<element name="table:table-rows">
<oneOrMore>
<ref name="table-table-row"/>
</oneOrMore>
</element>
</define>
Các hàng liền kề của bảng có thể được nhóm với nhau thông qua phần tử
<table:table-row-group>. Mọi nhóm có thể chứa một nhóm mới hoặc các hàng,
và các tiêu đề hàng. Một nhóm các hàng có thể nhìn thấy hoặc ẩn.
<define name="table-table-row-group">
<element name="table:table-row-group">
<ref name="table-table-row-group-attlist"/>
<ref name="table-rows-and-groups"/>
</element>
</define>
Thuộc tính table:display quy định nhóm hàng trong bảng đó có thể quan
sát thấy hay không.
<define name="table-table-row-group-attlist" combine="interleave">
<optional>
<attribute name="table:display" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Nếu một ô của bảng chỉ bao gồm một bảng đơn nhưng không chứa các
đoạn hoặc nội dung khác, thì bảng này có thể được quy định như bảng phụ. Một
bảng khi sử dụng lồng nhau sẽ được chuyển đổi thành một bảng phụ với thuộc
tính table:is-subtable đính kèm.
<define name="table-table-attlist" combine="interleave">
<optional>
<attribute name="table:is-sub-table" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
8.3. Các bảng nâng cao
Các ô trong bảng có thể được tham chiếu bằng việc sử dụng cả các địa chỉ
tuyệt đối lẫn các địa chỉ tương đối. Khi một thao tác được thực hiện trên một ô
của bảng, ví dụ khi một công thức được sao chép, tham chiếu ô tuyệt đối không

102
thay đổi. Trái với điều này, tham chiếu ô tương đối thích hợp cho địa chỉ của ô
đích của thao tác sẽ thay đổi và sao chép.
<define name="cellAddress">
<Datatype="string">
<param name="pattern">($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+</param>
</data>
</define>
Một dải ô là một số của các ô gần kề tạo ra một dạng hình chữ nhật. Hình
chữ nhật đó kéo dài từ góc trên đỉnh bên trái ô đó tới góc phải dưới của ô đó.
<define name="cellRangeAddress">
<data type="string">
<param name="pattern">($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-
9]+(:($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+)?</param>
</data>
</define>
Một danh sách địa chỉ dải ô là một danh sách các dải ô và các địa chỉ ô.
Mỗi mục trong danh sách đó được phân tách bởi một dấu cách. Nếu tên các
bảng được sử dụng trong danh sách đó chứa một ký tự trống, tên bảng phải được
trính dẫn trong dấu móc lửng (').
<define name="cellRangeAddressList">
<!—Giá trị là một danh sách dấu cách được phân tách các kiểu dáng
"cellRangeAddress"-->
<data type="string"/>
</define>
Nếu một bảng được liên kết tới một bảng gốc, thì thông tin về bảng gốc
được chứa trong một phần tử <table:table-source>. Các thuộc tính đó có thể
được kết hợp với phần tử <table:table-source> là:
<define name="table-table-source">
<element name="table:table-source">
<ref name="table-table-source-attlist"/>
<ref name="table-linked-source-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:mode quy định dữ liệu nên được sao chép từ bảng gốc
tới bảng đích. Nếu giá trị của thuộc tính đó là “sao chép toàn bộ” công thức và
kiểu dáng được sao chép. Nếu giá trị của thuộc tính đó là “chỉ sao chép các kết
quả”, chỉ các kết quả của công thức và nội dung ô không được tính toán được
sao chép.
<define name="table-table-source-attlist" combine="interleave">
<optional>
<attribute name="table:mode" a:defaultValue="copy-all">
<choice>
<value>copy-all</value>
<value>copy-results-only</value>

103
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:table-name quy định tên của bảng đó trong tài liệu gốc.
Nếu tên bảng không được quy định, bảng đầu tiên trong tài liệu được sử dụng.
<define name="table-table-source-attlist" combine="interleave">
<optional>
<attribute name="table:table-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Bảng gốc được quy định bởi một một XLink, nơi thuộc tính xlink:href
quy định URL của tài liệu bao gồm bảng gốc.
<define name="table-linked-source-attlist" combine="interleave">
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
</define>
Thuộc tính table:filter-name quy định the kiểu tệp của tài liệu bao gồm
bảng gốc. Giá trị của thuộc tính này là đặc trưng của ứng dụng.
<define name="table-linked-source-attlist" combine="interleave">
<optional>
<attribute name="table:filter-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:filter-options quy định các thiết lập tùy chọn về kiểu tệp.
Giá trị của thuộc tính này là đặc trưng của ứng dụng.
<define name="table-linked-source-attlist" combine="interleave">
<optional>
<attribute name="table:filter-options">
<ref name="string"/>

104
</attribute>
</optional>
</define>
Thuộc tính table:refresh-delay quy định thời gian trễ giữa các hành động
làm mới cho khả năng được liên kết.
<define name="table-linked-source-attlist" combine="interleave">
<optional>
<attribute name="table:refresh-delay">
<ref name="duration"/>
</attribute>
</optional>
</define>
Phần tử <table:scenario> biểu diễn một bảng kịch bản. Tên của bảng đó
và tên của kịch bản đó là giống nhau. Kịch bản được hiển thị trong bảng chuẩn
trước bảng kịch bản. Nếu một bảng kịch bản đang tồn tại đối với một bảng, kịch
bản đó được hiển thị trên bảng một cách tự động. Điều này có nghĩa sự tồn tại
của một bảng kịch bản hàm ý sự tồn tại của một kịch bản.
<define name="table-scenario">
<element name="table:scenario">
<ref name="table-scenario-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:scenario-ranges quy định dải bảng đó được hiển thị như
một kịch bản. Giá trị của thuộc tính này là một danh sách các địa chỉ dải của ô.
<define name="table-scenario-attlist" combine="interleave">
<attribute name="table:scenario-ranges">
<ref name="cellRangeAddressList"/>
</attribute>
</define>
Thuộc tính table:is-active quy định kịch bản đó có thuộc về bảng kịch bản
được kích hoạt hay không.
<define name="table-scenario-attlist" combine="interleave">
<attribute name="table:is-active">
<ref name="boolean"/>
</attribute>
</define>
Thuộc tính table:display-border quy định có hiển thị một đường viền
quanh kịch bản thuộc về bảng kịch bản hay không.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:display-border" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>

105
</define>
Thuộc tính table:border-color quy định mầu của đường viền được hiển thị
quanh kịch bản thuộc về bảng kịch bản.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:border-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính table:copy-back quy định dữ liệu có được sao chép mặt sau
vào bảng kịch bản nếu một kịch bản khác được kích hoạt.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:copy-back" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:copy-styles quy định các kiểu dáng có được sao chép từ
bảng kịch bản sang bảng đích cùng với dữ liệu đó hay không.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:copy-styles" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:copy-formulas quy định công thức có được sao chép từ
bảng kịch bản tới bảng đích hay không. Giá trị của thuộc tính này có thể là true
hoặc false. Nếu giá trị là true, thì các công thức đó được sao chép. Nếu giá trị là
false, chỉ các giá trị suy ra từ các công thức đó được sao chép.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:copy-formulas" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:comment bao gồm một ghi chú về kịch bản.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:comment">
<ref name="string"/>
</attribute>

106
</optional>
</define>
Thuộc tính table:protected quy định dữ liệu được hiển thị trong kịch bản
có được bảo vệ khỏi bị biên tập lại hay không. Thuộc tính đó chỉ được đánh giá
nếu bảng trên kịch bản được hiển thị cũng được bảo vệ.
<define name="table-scenario-attlist" combine="interleave">
<optional>
<attribute name="table:protected">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:shapes> bao gồm toàn bộ các hình dáng đồ họa cùng với
một mấu neo trên bảng đó, phần tử này là một phần tử con. Nó là một phần tử
bộ chứa và không có bất kỳ thuộc tính được liên kết nào.
<define name="table-shapes">
<element name="table:shapes">
<oneOrMore>
<ref name="shape"/>
</oneOrMore>
</element>
</define>
8.4. Ô bảng nâng cao
Một dải ô có thể được liên kết với một dải cơ sở dữ liệu hoặc dải nội dung
được đặt tên của một tệp khác. Trong trường hợp này thông tin về dải cơ sở dữ
liệu gốc hoặc dải được đặt tên được chứa trong một phần tử <table:cell- range-
source> được chứa trong phần tử đó của ô đầu tiên của dải.
<define name="table-cell-range-source">
<element name="table:cell-range-source">
<ref name="table-table-cell-range-source-attlist"/>
<ref name="table-linked-source-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:name quy định tên của dải cơ sở dữ liệu nguồn hoặc dải
được đặt tên.
<define name="table-table-cell-range-source-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
</define>
Các thuộc tính table:last-column-spanned và table:last-row-spanned quy
định kích cỡ cuối cùng được biết của dải. Nếu kích cỡ này của dải được thay đổi
do thao tác cuối cùng, thì các giá trị của các thuộc tính này là không đúng.

107
<define name="table-table-cell-range-source-attlist" combine="interleave">
<attribute name="table:last-column-spanned">
<ref name="positiveInteger"/>
</attribute>
<attribute name="table:last-row-spanned">
<ref name="positiveInteger"/>
</attribute>
</define>
Phần tử <table:detective> xác định thông tin về mối quan hệ tồn tại giữa
các ô của bảng bởi các công thức và được tô sáng trong bảng.
<define name="table-detective">
<element name="table:detective">
<zeroOrMore>
<ref name="table-highlighted-range"/>
</zeroOrMore>
<zeroOrMore>
<ref name="table-operation"/>
</zeroOrMore>
</element>
</define>
Phần tử <table:operation> quy định mối quan hệ nào đó cần tồn tại giữa ô
hoặc thao tác phần tử mà có thể trông thấy hoặc không thể trông thấy trong
bảng. Để tiến hành xác định cách hoạt động của các thao tác có một chỉ mục và
được áp dụng theo thứ tự của chỉ mục đó.
<define name="table-operation">
<element name="table:operation">
<ref name="table-operation-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:index quy định thứ tự mà trong đó các thao tác dò tìm
được áp dụng.
<define name="table-operation-attlist" combine="interleave">
<attribute name="table:index">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Phần tử <table:highlighted-range> quy định một dải ô được tô sáng trong
thao tác dò tìm được mô tả ở trên hoặc bởi vì nó bao gồm một lỗi hoặc dữ liệu
không hợp lệ.
<define name="table-highlighted-range">
<element name="table:highlighted-range">
<choice>
<group>
<ref name="table-highlighted-range-attlist"/>

108
</group>
<group>
<ref name="table-highlighted-range-attlist-invalid"/>
</group>
</choice>
<empty/>
</element>
</define>
Thuộc tính table:direction quy định hướng của mối quan hệ giữa ô này và
dải được tô sáng.
<define name="table-highlighted-range-attlist" combine="interleave">
<attribute name="table:direction">
<choice>
<value>from-another-table</value>
<value>to-another-table</value>
<value>from-same-table</value>
</choice>
</attribute>
</define>
Thuộc tính table:marked-invalid quy định ô hiện tại có được đánh dấu
không hợp lệ hay không. Thuộc tính này không thể được sử dụng cùng với bất
kỳ các thuộc tính nào khác.
<define name="table-highlighted-range-attlist-invalid" combine="interleave">
<attribute name="table:marked-invalid">
<ref name="boolean"/>
</attribute>
</define>
8.5. Nội dung tài liệu bảng tính
Cấu trúc của một tài liệu bảng tính có thể được bảo vệ bằng việc sử dụng
thuộc tính table:structure-protected, vì vậy người sử dụng không thể chèn, xóa,
di chuyển hoặc đổi tên các bảng trong tài liệu. Thuộc tính tùy chọn
table:protection-key có thể được sử dụng để quy định một mật khẩu ngăn ngừa
người sử dụng thiết lập lại cờ bảo vệ để cho phép soạn thảo. Để tránh lưu mật
khẩu trực tiếp vào tệp XML, chỉ một giá trị băm của mật khẩu được lưu trữ.
<define name="office-spreadsheet-attlist" combine="interleave">
<optional>
<attribute name="table:structure-protected" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="table:protection-key">
<ref name="string"/>
</attribute>

109
</optional>
</define>
Các tài liệu bảng tính thông thường phải thiết lập công thức tính toán giá
trị của các ô trong bảng. Các thiết lập này phải được lưu trong tài liệu trong phần
tử <table:calculation-settings>.
<define name="table-calculation-settings">
<element name="table:calculation-settings">
<ref name="table-calculation-setting-attlist"/>
<optional>
<ref name="table-null-date"/>
</optional>
<optional>
<ref name="table-iteration"/>
</optional>
</element>
</define>
Thuộc tính table:case-sensitive quy định có phân biệt hay không giữa chữ
hoa và chữ thường khi so sánh các toán tử được áp dụng cho nội dung ô.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:case-sensitive" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:precision-as-shown quy định việc thực hiện tính toán có
sử dụng các giá trị làm tròn để hiển thị trong bảng tính hoặc có sử dụng toàn bộ
các chữ số tính được cho kết quả. Nếu giá trị của thuộc tính này là true, tính toán
được thực hiện có sử dụng các giá trị làm tròn được hiển thị trong bảng tính.
Nếu giá trị của thuộc tính này là false, các phép tính toán được thực hiện có sử
dụng toàn bộ các chữ số trong số, nhưng kết quả vẫn được hiển thị như một số
được làm tròn.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:precision-as-shown" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:search-criteria-must-apply-to-whole-cell quy định tiêu
chí tìm kiếm áp dụng theo biểu thức chuẩn được sử dụng và có phải áp dụng cho
toàn bộ nội dung các ô hay không.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:search-criteria-must-apply-to-whole-cell"

110
a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:automatic-find-labels quy định có tự động tìm các nhãn
của các hàng và các cột hay không.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:automatic-find-labels" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:use-regular-expressions quy định các biểu thức chuẩn
được cho phép đối với việc so sánh chuỗi ký tự và khi tìm kiếm.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:use-regular-expressions"
a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:null-year quy định năm bắt đầu cho các giá trị năm chỉ
bao gồm hai chữ số. tất cả các giá trị năm gồn hai chữ số được hiểu như một
năm bằng hoặc theo sau năm bắt đầu.
<define name="table-calculation-setting-attlist" combine="interleave">
<optional>
<attribute name="table:null-year" a:defaultValue="1930">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Phần tử <table:null-date> quy định ngày tháng rỗng. Ngày tháng rỗng là
ngày tháng mà kết quả là giá trị “0” nếu một giá trị ngày tháng được chuyển đổi
thành một giá trị số. Ngày tháng rỗng được quy định theo thuộc tính table:date-
value của phần tử đó. Các giá trị được sử dụng chung là 12/30/1899,
01/01/1900, và 01/01/1904
<define name="table-null-date">
<element name="table:null-date">
<optional>
<attribute name="table:value-type" a:defaultValue="date">
<ref name="valueType"/>
</attribute>

111
</optional>
<optional>
<attribute name="table:date-value-type"
a:defaultValue="1899-12-30">
<ref name="date"/>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <table:iteration> cho phép công thức với các tham chiếu lặp hoặc
tuần hoàn để được tính toán sau khi một số các phép tính lặp cụ thể. Công thức
cùng với tham chiếu lặp được lặp lại cho đến khi vấn đề được giải quyết. Các
phép tính lặp được cho phép và vô hiệu hóa theo thuộc tính table:status. Nếu các
phép tính lặp được cho phép, thuộc tính table:steps quy định số lần lặp lớn nhất
được cho phép. Thuộc tính table:maximum-difference quy định sự sai khác lớn
nhất được cho phép giữa hai kết quả tính toán. Phép lặp này được dừng nếu kết
quả nhỏ hơn giá trị của thuộc tính này.
<define name="table-iteration">
<element name="table:iteration">
<optional>
<attribute name="table:status" a:defaultValue="disable">
<choice>
<value>enable</value>
<value>disable</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="table:steps" a:defaultValue="100">
<ref name="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="table:maximum-difference"
a:defaultValue="0.001">
<ref name="double"/>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <table:content-validation> quy định một quy tắc kiểm tra tính
hợp lệ của nội dung ô bảng. Tất cả các quy tắc kiểm tra tính hợp lệ tồn tại trong
một tài liệu được chứa phần tử <table:content-validations>. Các quy tắc kiểm tra

112
tính hợp lệ tự chúng được đặt tên và được tham chiếu từ ô đó trong bảng bởi tên
của nó.
<define name="table-content-validations">
<element name="table:content-validations">
<oneOrMore>
<ref name="table-content-validation"/>
</oneOrMore>
</element>
</define>
<define name="table-content-validation">
<element name="table:content-validation">
<ref name="table-validation-attlist"/>
<optional>
<ref name="table-help-message"/>
</optional>
<optional>
<choice>
<ref name="table-error-message"/>
<group>
<ref name="table-error-macro"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
</group>
</choice>
</optional>
</element>
</define>
Thuộc tính table:name quy định tên của kiểm tra tính hợp lệ của nội dung.
Nó được sử dụng để tham chiếu quy tắc kiểm tra tính hợp lệ từ ô đó quy tắc đó
nên được áp dụng cho. tên được tạo ra một cách tự động bởi ứng dụng đó.
<define name="table-validation-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:condition quy định điều kiện phải đánh giá là “true” đối
với toàn bộ các ô quy tắc kiểm tra tính hợp lệ được áp dụng cho. Giá trị của
thuộc tính này nên là một tiền tố tên miền, được theo sau bởi một biểu thức
Boolean. Sau đây là các điều kiện hợp lệ:
• Condition ::= ExtendedTrueCondition | TrueFunction 'and' TrueCondition
• TrueFunction ::= cell-content-is-whole-number() | cell-content-is-
decimal-number() | cell-content-is-date() | cell-content-is-time() | cell-content-is-
text()

113
• ExtendedTrueCondition ::= ExtendedGetFunction | cell-content-text-
length() Operator Value
• TrueCondition ::= GetFunction | cell-content() Operator Value
• GetFunction ::= cell-content-is-between(Value, Value) | cell- content-is-
not-between(Value, Value)
• ExtendedGetFunction ::= cell-content-text-length-is-between(Value,
Value) | cell-content-text-length-is-not-between(Value, Value) | cell-content-is-
in-list( StringList )
• Operator ::= '<' | '>' | '<=' | '>=' | '=' | '!='
• Value ::= NumberValue | String | Formula
• StringList ::= StringList ';' String | String
• Một Formula là một công thức không có dấu bằng (=) tại vị trí bắt đầu.
• Một chuỗi bao gồm một hoặc nhiều ký tự được bao quanh bởi các dấu
ngoặc kép.
• Một NumberValue là một số tổng hoặc thập phân. Nó không phải bao
gồm dấu phẩy phân tách các chữ số hàng 1000 hoặc lớn hơn.
Việc khai báo trong ODF được thực hiện rất đơn giản như sau:
<define name="table-validation-attlist" combine="interleave">
<optional>
<attribute name="table:condition">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:base-cell-address quy định địa chỉ của ô cơ sở cho
relative các địa chỉ trong công thức xuất hiện trong một điều kiện. Thuộc tính
này là chỉ cần thiết khi điều kiện bao gồm một công thức. Giá trị của thuộc tính
này phải là một địa chỉ ô tuyệt đối bao gồm một tên bảng.
<define name="table-validation-attlist" combine="interleave">
<optional>
<attribute name="table:base-cell-address">
<ref name="cellAddress"/>
</attribute>
</optional>
</define>
Thuộc tính table:allow-empty-cell quy định một ô có thể là rỗng hay
không.
<define name="table-validation-attlist" combine="interleave">
<optional>
<attribute name="table:allow-empty-cell" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>

114
Thuộc tính table:display-list quy định một danh sách các giá trị xuất hiện
trong một điều kiện được hiển thị trong giao diện người dùng khi nhập một giá
trị ô. Giá trị của thuộc tính này có thể là none, unsorted hoặc sort-ascending.
<define name="table-validation-attlist" combine="interleave">
<optional>
<attribute name="table:display-list" a:defaultValue="unsorted">
<choice>
<value>none</value>
<value>unsorted</value>
<value>sort-ascending</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <table:help-message> quy định một thông điệp để hiển thị nếu
một người sử dụng lựa chọn ô đó. Phần tử đó có một thuộc tính table:title tùy
chọn quy định tiêu đề của thông điệp hỗ trợ. Nó có thêm một thuộc tính
table:display tùy chọn có thể được sử dụng để khử sự hiển thị của thông điệp.
<define name="table-help-message">
<element name="table:help-message">
<optional>
<attribute name="table:title">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="table:display" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
Phần tử <table:error-message> quy định một thông điệp để hiển thị nếu
một người sử dụng cố gắng nhập nội dung không hợp lệ vào một ô khi mà nội
dung nơi mà điều kiện của quy tắc kiểm tra tính hợp lệ đánh giá là “false”. Phần
tử đó có một thuộc tính table:title tùy chọn quy định một tiêu đề của thông điệp
hỗ trợ. Nó có thêm một thuộc tính table:display tùy chọn có thể được sử dụng để
khử sự hiển thị của thông điệp. Thuộc tính table:message-type, có thể lấy các giá
trị stop, warning, hoặc information, quy định thông điệp nên được hiển thị như
lỗi (stop), cảnh báo (warning) hoặc chỉ tham khảo (information).
<define name="table-error-message">
<element name="table:error-message">

115
<optional>
<attribute name="table:title">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="table:display" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="table:message-type" a:defaultValue="stop">
<choice>
<value>stop</value>
<value>warning</value>
<value>information</value>
</choice>
</attribute>
</optional>
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
Các dải nhãn có thể được sử dụng để ấn định các tên cho các hàng và các
cột, hoặc cho các phần của các hàng và các cột, ở đây các tên tự chúng được quy
định như nội dung của các ô của bảng. Một cách chính xác hơn, phần tử dải
nhãn <table:label-range> quy định một nhãn dải ô bao gồm các nhãn, và dải ô
dữ liệu quy định các hàng hoặc các cột mà nội dung của chúng được tham chiếu
bởi các nhãn.
<define name="table-label-ranges">
<element name="table:label-ranges">
<zeroOrMore>
<ref name="table-label-range"/>
</zeroOrMore>
</element>
</define>
<define name="table-label-range">
<element name="table:label-range">
<ref name="table-label-range-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:label-cell-range-address quy định ô đó dải địa chỉ của
các nhãn.

116
<define name="table-label-range-attlist" combine="interleave">
<attribute name="table:label-cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</define>
Thuộc tính table:data-cell-range-address quy định ô đó với dải địa chỉ của
dữ liệu.
<define name="table-label-range-attlist" combine="interleave">
<attribute name="table:data-cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</define>
Thuộc tính table:orientation quy định định hướng của dải nhãn. Thuộc
tính này có thể có một giá trị của cột hoặc hàng.
<define name="table-label-range-attlist" combine="interleave">
<attribute name="table:orientation">
<choice>
<value>column</value>
<value>row</value>
</choice>
</attribute>
</define>
Phần tử các biểu thức được đặt tên <table:named-expressions> bao gồm
một tập hợp của các ấn định các tên cho các biểu thức, vì vậy các tên đó có thể
được sử dụng để đề cập tới biểu thức đó.
<define name="table-named-expressions">
<element name="table:named-expressions">
<zeroOrMore>
<choice>
<ref name="table-named-range"/>
<ref name="table-named-expression"/>
</choice>
</zeroOrMore>
</element>
</define>
Phần tử dải được đặt tên <table:named-range> quy định một dải ô có một
tên được ấn định. Thuộc tính table:name quy định tên của dải đó và thuộc tính
table:cell-range- address địa chỉ của nó. Địa chỉ có thể là tuyệt đối hoặc tương
đối. Nếu ô đó địa chỉ dải là tương đối, thì thuộc tính table:base-cell-address phải
tồn tại thêm nữa. Nó quy định địa chỉ ô cơ sở cho dải ô. Địa chỉ này phải là tuyệt
đối. Một thuộc tính bổ sung table:range-usable-as quy định tên của dải đó có thể
được sử dụng trong đặc tả của một dải in, một bộ lọc, một hàng lặp lại, hoặc một
cột lặp lại.
<define name="table-named-range">
<element name="table:named-range">

117
<ref name="table-named-range-attlist"/>
<empty/>
</element>
</define>
<define name="table-named-range-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
<attribute name="table:cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
<optional>
<attribute name="table:base-cell-address">
<ref name="cellAddress"/>
</attribute>
</optional>
<optional>
<attribute name="table:range-usable-as" a:defaultValue="none">
<choice>
<value>none</value>
<list>
<oneOrMore>
<choice>
<value>print-range</value>
<value>filter</value>
<value>repeat-row</value>
<value>repeat-column</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
Phần tử biểu thức được đặt tên <table:named-expression> bao gồm một
biểu thức cùng với một tên. Thuộc tính table:name quy định tên của biểu thức đó
và thuộc tính table:expression qui định nội dung của chính biểu thức đó. Các
biểu thức không hỗ trợ dấu bằng (=) như ký tự đầu tiên. Nếu biểu thức đó bao
gồm một dải được đặt tên hoặc một biểu thức được đặt tên khác, dải được đặt
tên hoặc biểu thức được đặt tên đó phải được quy định đầu tiên, trước khi bao
gồm biểu thức đó. Nếu biểu thức đó bao gồm một địa chỉ dải ô tương đối, thì
thuộc tính table:base-cell-address phải tồn tại thêm nữa. Nó quy định địa chỉ ô
cơ sở cho dải ô.
<define name="table-named-expression">
<element name="table:named-expression">

118
<ref name="table-named-expression-attlist"/>
<empty/>
</element>
</define>
<define name="table-named-expression-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
<attribute name="table:expression">
<ref name="string"/>
</attribute>
<optional>
<attribute name="table:base-cell-address">
<ref name="cellAddress"/>
</attribute>
</optional>
</define>
8.6. Các dải cơ sở dữ liệu
Một dải cơ sở dữ liệu là vùng được đặt tên trong một bảng nơi cơ sở dữ
liệu hoạt động, đồng thời cho phép một vài loại thao tác khác như lọc và sắp
xếp, có thể được thực hiện. Phần tử các dải cơ sở dữ liệu <table:database-
ranges> bao gồm một tập hợp của tất cả các dải cơ sở dữ liệu được xác định
trong một tài liệu.
<define name="table-database-ranges">
<element name="table:database-ranges">
<zeroOrMore>
<ref name="table-database-range"/>
</zeroOrMore>
</element>
</define>
Để xác định một dải cơ sở dữ liệu đơn cần khai báo:
<table:database-range>
<define name="table-database-range">
<element name="table:database-range">
<ref name="table-database-range-attlist"/>
<optional>
<choice>
<ref name="table-database-source-sql"/>
<ref name="table-database-source-table"/>
<ref name="table-database-source-query"/>
</choice>
</optional>
<optional>
<ref name="table-filter"/>

119
</optional>
<optional>
<ref name="table-sort"/>
</optional>
<optional>
<ref name="table-subtotal-rules"/>
</optional>
</element>
</define>
Thuộc tính table:name quy định tên của dải cơ sở dữ liệu trong tài liệu để
thực hiện các thao tác. Trong một tài liệu đơn, chỉ có một dải cơ sở dữ liệu được
cho phép không có tên. Dải cơ sở dữ liệu này thường tự động được tạo bởi ứng
dụng gốc và được sử dụng để lọc hoặc sắp xếp dữ liệu trong dải các ô sử dụng.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:is-selection quy định dải cơ sở dữ liệu bao gồm một cơ
sở dữ liệu đầy đủ hoặc một lựa chọn các bản ghi từ một cơ sở dữ liệu.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:is-selection" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:on-update-keep-styles quy định cách hoạt động khi dải
cơ sở dữ liệu được cập nhật. Nếu giá trị thuộc tính đó là “true” thì các kiểu dáng
ô đó được ấn định cho các ô trong hàng không có nhãn đầu tiên của dải cơ sở dữ
liệu được sử dụng cho toàn bộ các hàng trong dải cơ sở dữ liệu. Nếu giá trị
thuộc tính đó là “false”, toàn bộ các ô trong dải cơ sở dữ liệu nhận kiểu dáng ô
mặc định của tài liệu được ấn định.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:on-update-keep-styles" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:on-update-keep-size quy định qui cách hoạt động của dải
cơ sở dữ liệu nếu kích cỡ của các dữ liệu thay đổi so với nguồn dữ liệu. Nếu giá
trị thuộc tính đó là true, dải cơ sở dữ liệu đó sẽ giữ lại kích cỡ thay đổi của nó.

120
Nếu giá trị thuộc tính đó là false, dải cơ sở dữ liệu đó sẽ không giữ lại kích cỡ
thay đổi của nó.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:on-update-keep-size" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:has-persistent-data quy định dữ liệu hiện tại có trong một
dải cơ sở dữ liệu được lưu lại trong chính tài liệu đó hay không.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:has-persistent-data" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:orientation quy định định hướng của dải cơ sở dữ liệu về
các giá trị thuộc tính của hàng hoặc cột. Định hướng được sử dụng khi thực hiện
sắp xếp các dải cơ sở dữ liệu. Nếu sự định hướng này là hàng, thì việc sắp xếp
tiến hành cho các hàng, trường hợp khác thì cho các cột.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:orientation" a:defaultValue="row">
<choice>
<value>column</value>
<value>row</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính của các nút bấm table:display-filter-buttons quy định kiểu hiển
thị hay không các nút bấm của bộ lọc. Các nút bấm của bộ lọc là các điều khiển
hộp danh sách được hiển thị trong nhãn các ô mà các mục nhập danh sách của
chúng là các giá trị tồn tại trong hàng hoặc cột được ghi nhãn. Việc lựa chọn
một trong các mục nhập này bằng việc áp dụng một bộ lọc cho dải cơ sở dữ liệu
lựa chọn tất cả các hàng hoặc cột nơi các ô trong hàng hoặc cột được ghi nhãn
có giá trị được chọn.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:display-filter-buttons"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>

121
</optional>
</define>
Thuộc tính table:target-range-address quy định dải địa chỉ ô mục tiêu của
dải bảng cơ sở dữ liệu. Sự phân biệt giữa các địa chỉ tương đối và tuyệt đối là
không thể. Vì vậy, tên bảng phải được quy định theo địa chỉ và các dấu đô la sẽ
được bỏ qua khi gặp khai báo này.
<define name="table-database-range-attlist" combine="interleave">
<attribute name="table:target-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</define>
Thuộc tính table:refresh-delay quy định một thời gian trễ giữa các hành
động tự động làm mới.
<define name="table-database-range-attlist" combine="interleave">
<optional>
<attribute name="table:refresh-delay">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính <table:database-source-sql> mô tả một cơ sở dữ liệu SQL bao
hàm dữ liệu nguồn của dải cơ sở dữ liệu.
<define name="table-database-source-sql">
<element name="table:database-source-sql">
<ref name="table-database-source-sql-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:database-name quy định tên của cơ sở dữ liệu SQL mà ở
đó dữ liệu đó được nhập từ.
<define name="table-database-source-sql-attlist" combine="interleave">
<attribute name="table:database-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:sql-statement quy định the Câu lệnh SQL để sử dụng khi
nhập dữ liệu từ một cơ sở dữ liệu SQL.
<define name="table-database-source-sql-attlist" combine="interleave">
<attribute name="table:sql-statement">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:parse-sql-statement quy định ứng dụng đó có phân tách
các câu lệnh SQL hay không.
<define name="table-database-source-sql-attlist" combine="interleave">

122
<optional>
<attribute name="table:parse-sql-statement" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử bảng nguồn cơ sở dữ liệu <table:database-source-table> quy định
dữ liệu nguồn của dải cơ sở dữ liệu được lưu trữ trong một bảng cơ sở dữ liệu.
<define name="table-database-source-query">
<element name="table:database-source-table">
<ref name="table-database-source-table-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:database-name quy định tên của cơ sở dữ liệu nơi mà dữ
liệu đó được nhập từ.
<define name="table-database-source-table-attlist" combine="interleave">
<attribute name="table:database-name">
<ref name="string"/>
</attribute>
</define>
Phần tử <table:database-source-query> quy định dữ liệu nguồn của dải cơ
sở dữ liệu là kết quả của một câu truy vấn cơ sở dữ liệu.
<define name="table-database-source-table">
<element name="table:database-source-query">
<ref name="table-database-source-query-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:query-name quy định tên câu truy vấn để thực hiện trên
cơ sở dữ liệu mà dữ liệu của nó được truy nhập.
<define name="table-database-source-query-attlist" combine="interleave">
<attribute name="table:query-name">
<ref name="string"/>
</attribute>
</define>
Phần tử <table:sort> qui định và mô tả việc sắp xếp các khóa được áp
dụng cho dải cơ sở dữ liệu sử dụng.
<define name="table-sort">
<element name="table:sort">
<ref name="table-sort-attlist"/>
<oneOrMore>
<ref name="table-sort-by"/>
</oneOrMore>
</element>

123
</define>
Thuộc tính table:bind-styles-to-content quy định các ô có giữ lại các thuộc
tính kiểu dáng của chúng sau một thao tác sắp xếp.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:bind-styles-to-content" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Nếu thuộc tính tùy chọn table:target-range-address có mặt, thì kết quả của
việc sắp xếp được sao chép vào dải ô được quy định bởi dải cơ sở dữ liệu nguồn.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:target-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</define>
Thuộc tính table:case-sensitive quy định thao tác sắp xếp được phân biệt
theo kiểu dạng chữ hay không.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:language quy định ngôn ngữ tự nhiên mà trong đó việc
so sánh sẽ xảy ra.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:language">
<ref name="languageCode"/>
</attribute>
</optional>
</define>
Thuộc tính table:country quy định quy tắc cụ thể của quốc gia được sử
dụng trong các so sánh chuỗi đối với một ngôn ngữ tự nhiên riêng.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:country">
<ref name="countryCode"/>
</attribute>
</optional>

124
</define>
Thuộc tính table:algorithm quy định thuật toán được sử dụng để so sánh
các khóa sắp xếp. Giá trị của thuộc tính đó là một ứng dụng nhưng cũng là tên
thuật toán sắp xếp cụ thể của ngôn ngữ theo quốc gia. Để tránh tên bị xung đột
giữa các ứng dụng khác nhau, tên thuật toán nên bắt đầu cùng với một tiền tố tên
miền trong bảng.
<define name="table-sort-attlist" combine="interleave">
<optional>
<attribute name="table:algorithm">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <table:sort-by> quy định một khóa hoặc trường để thực hiện sắp
xếp cũng như kiểu dữ liệu trường này và cách thức để sắp xếp nó.
<define name="table-sort-by">
<element name="table:sort-by">
<ref name="table-sort-by-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:field-number quy định trường số hiệu hàng hoặc cột
được sắp xếp theo. Nó là số hiệu một hàng hoặc một cột trong dải cơ sở dữ liệu.
<define name="table-sort-by-attlist" combine="interleave">
<attribute name="table:field-number">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Thuộc tính table:data-type quy định kiểu dữ liệu của trường được sắp xếp.
Giá trị của nó có thể là văn bản, số chữ, tự động hoặc tên của thứ tự sắp xếp do
người dùng định nghĩa.
<define name="table-sort-by-attlist" combine="interleave">
<optional>
<attribute name="table:data-type" a:defaultValue="automatic">
<choice>
<value>text</value>
<value>number</value>
<value>automatic</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:order quy định việc sắp xếp dữ liệu theo thứ tự tăng dần
hoặc giảm dần trong bảng cơ sở dữ liệu.

125
<define name="table-sort-by-attlist" combine="interleave">
<optional>
<attribute name="table:order" a:defaultValue="ascending">
<choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <table:subtotal-rules> quy định các kết quả tạm thời hay còn gọi
là tổng phụ được tính toán cho một dải cơ sở dữ liệu. Nó bao gồm thông tin về
các kết quả tạm thời của hàng hoặc cột cần được tính toán và cách thức các kết
quả này được tính toán. Để tính toán các kết quả tạm thời, các giá trị ô của một
hàng hoặc cột được nhóm bởi giá trị của chúng, đó là, toàn bộ các ô cùng nội
dung trong cùng trường sẽ tạo thành một nhóm. Một kết quả tạm thời được tính
toán sẽ hiển thị tại ô kết thúc của mỗi nhóm.
<define name="table-subtotal-rules">
<element name="table:subtotal-rules">
<ref name="table-subtotal-rules-attlist"/>
<optional>
<ref name="table-sort-groups"/>
</optional>
<zeroOrMore>
<ref name="table-subtotal-rule"/>
</zeroOrMore>
</element>
</define>
Thuộc tính table:bind-styles-to-content quy định các ô có giữ lại kiểu
dáng của chúng sau một phép tính toán tổng phụ hay không. Thuộc tính này chỉ
được đánh giá nếu phần tử <table:sort-groups> có mặt.
<define name="table-subtotal-rules-attlist" combine="interleave">
<optional>
<attribute name="table:bind-styles-to-content" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:case-sensitive quy định kiểu dạng chữ của các ký tự có
quan trọng hay không khi so sánh.
<define name="table-subtotal-rules-attlist" combine="interleave">
<optional>
<attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="boolean"/>
</attribute>

126
</optional>
</define>
Thuộc tính <table:page-breaks-on-group-change> quy định có chèn hay
không một điều khiển ngắt trang sau tổng phụ đối với mỗi nhóm khi thay đổi.
<define name="table-subtotal-rules-attlist" combine="interleave">
<optional>
<attribute name="table:page-breaks-on-group-change"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:sort-groups> quy định cột hoặc hàng được sắp xếp trước
khi thực hiện nhóm chúng và cách thức để sắp xếp chúng.
<define name="table-sort-groups">
<element name="table:sort-groups">
<ref name="table-sort-groups-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:data-type quy định kiểu dữ liệu của cột hoặc hàng của
nhóm để thực hiện việc sắp xếp.
<define name="table-sort-groups-attlist" combine="interleave">
<optional>
<attribute name="table:data-type" a:defaultValue="automatic">
<choice>
<value>text</value>
<value>number</value>
<value>automatic</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:order quy định sắp xếp dữ liệu nhóm theo thứ tự tăng
dần hoặc giảm dần.
<define name="table-sort-groups-attlist" combine="interleave">
<optional>
<attribute name="table:order" a:defaultValue="ascending">
<choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</optional>

127
</define>
Phần tử <table:subtotal-rule> mô tả cách thức để tính toán các tổng phụ
cho một hàng hoặc cột nào đó. Quy tắc này bao gồm số hiệu trường của nhóm
đó, quy định nhóm cột mà quy tắc này được sử dụng và một hoặc nhiều trường
các tổng phụ, quy định một cột hàng nơi các tổng phụ nên được tính toán cũng
như hàm sử dụng cho việc tính toán.
<define name="table-subtotal-rule">
<element name="table:subtotal-rule">
<ref name="table-subtotal-rule-attlist"/>
<zeroOrMore>
<ref name="table-subtotal-field"/>
</zeroOrMore>
</element>
</define>
Thuộc tính table:group-by-field-number quy định trường dữ liệu được sử
dụng làm cơ sở cho việc nhóm dữ liệu. Nó là số hiệu hàng hoặc cột trong dải cơ
sở dữ liệu.
<define name="table-subtotal-rule-attlist" combine="interleave">
<attribute name="table:group-by-field-number">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Phần tử <table:subtotal-field> qui định số hiệu trường và hàm được sử
dụng để tính toán một kết quả tạm thời cho tổng phụ.
<define name="table-subtotal-field">
<element name="table:subtotal-field">
<ref name="table-subtotal-field-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:field-number quy định số hiệu trường của một hàng hoặc
một cột nên được tính toán.
<define name="table-subtotal-field-attlist" combine="interleave">
<attribute name="table:field-number">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Thuộc tính table:function quy định lựa chọn hàm số cho tính toán và các
giá trị có thể gán cho thuộc tính này: auto, average, count, countnums, max, min,
product, stdev, stdevp, sum, var và varp.
<define name="table-subtotal-field-attlist" combine="interleave">
<attribute name="table:function">
<choice>
<value>auto</value>
<value>average</value>

128
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
<value>varp</value>
<ref name="string"/>
</choice>
</attribute>
</define>
8.7. Bộ lọc
Phần tử <table:filter> mô tả cách thức dữ liệu được chứa trong một dải cơ
sở dữ liệu hoặc bảng dẫn dữ liệu được thực hiện phép lọc. Điều kiện được quy
định trong phần tử đó được áp dụng cho toàn bộ các hàng được quy định trong
dải cơ sở dữ liệu hoặc bảng dẫn dữ liệu.
<define name="table-filter">
<element name="table:filter">
<ref name="table-filter-attlist"/>
<choice>
<ref name="table-filter-condition"/>
<ref name="table-filter-and"/>
<ref name="table-filter-or"/>
</choice>
</element>
</define>
Nếu thuộc tính tùy chọn table:target-range-address có mặt, thì kết quả
chọn lọc được sao chép vào địa chỉ quy định của dải ô nhưng các hàng của bảng
vẫn gữi nguyên hiển thị cũ. Nếu thuộc tính đó không có mặt, các hàng không
thỏa mãn điều kiện lọc sẽ không được hiển thị.
<define name="table-filter-attlist" combine="interleave">
<optional>
<attribute name="table:target-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</define>
Thuộc tính table:condition-source quy định nguồn điều kiện được chứa
trong bộ lọc hoặc được mã hóa trong một dải bảng.
<define name="table-filter-attlist" combine="interleave">

129
<optional>
<attribute name="table:condition-source" a:defaultValue="self">
<choice>
<value>self</value>
<value>cell-range</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:condition-source-range-address quy định một dải ô bao
gồm các điều kiện nguồn được mã hóa. Các điều kiện lọc trong mỗi hàng được
kết nối bởi một lệnh liên kết “và” (and), “hoặc” (or),... Điều này có nghĩa rằng
một hàng của bảng gốc sẽ được hiển thị nếu có ít nhất một hàng theo dải điều
kiện được thỏa mãn.
<define name="table-filter-attlist" combine="interleave">
<optional>
<attribute name="table:condition-source-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</define>
Thuộc tính table:display-duplicates quy định có hiển thị bản sao trùng
nhau phù hợp trong kết quả hay không.
<define name="table-filter-attlist" combine="interleave">
<optional>
<attribute name="table:display-duplicates" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:filter-and> quy định toán tử lôgic “và” được áp dụng cho
các điều kiện được quy định bởi các phần tử con của phần tử đó.
<define name="table-filter-and">
<element name="table:filter-and">
<oneOrMore>
<choice>
<ref name="table-filter-or"/>
<ref name="table-filter-condition"/>
</choice>
</oneOrMore>
</element>
</define>
Phần tử <table:filter-or> quy định toán tử lôgic “hoặc” được áp dụng cho
các điều kiện được quy định bởi các phần tử con của phần tử đó.
130
<define name="table-filter-or">
<element name="table:filter-or">
<oneOrMore>
<choice>
<ref name="table-filter-and"/>
<ref name="table-filter-condition"/>
</choice>
</oneOrMore>
</element>
</define>
Phần tử <table:filter-condition> của bảng mô tả một điều kiện đơn áp
dụng trong một thao tác lọc dữ liệu.
<define name="table-filter-condition">
<element name="table:filter-condition">
<ref name="table-filter-condition-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:field-number quy định số hiệu trường dữ liệu sử dụng
đối với điều kiện lọc.
<define name="table-filter-condition-attlist" combine="interleave">
<attribute name="table:field-number">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Thuộc tính table:value quy định một giá trị cho điều kiện lọc.
<define name="table-filter-condition-attlist" combine="interleave">
<attribute name="table:value">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:operator quy định toán tử sử dụng trong điều kiện lọc.
Điều này có nghĩa rằng mỗi ô được chứa trong các cột được quy định bởi số
hiệu trường (như là thuộc tính table:field-number) được so sánh với giá trị (như
là thuộc tính table:value) có sử dụng toán tử cho trước. Kết quả của so sánh này
là kết quả của một bộ lọc điều kiện phụ được quy định bởi phần tử <table:filter-
condition>. Các toán tử sử dụng cho các biểu thức chuẩn sau đây:
• match (phù hợp)
• !match (không phù hợp)
• = (Bằng)
• != (Không bằng)
• < (Nhỏ hơn)
• > (Lớn hơn)
• <= (Nhỏ hơn hoặc bằng)
131
• >= (Lớn hơn hoặc bằng)
Ngoài ra, các toán tử suy diễn “empty”, “!empty”, “bottom values”, “top
values”, “bottom percent” và “top percent” có thể được sử dụng.
Thuộc tính table:case-sensitive xác định điều kiện lọc là phân biệt các
kiểu dạng chữ.
<define name="table-filter-condition-attlist" combine="interleave">
<optional>
<attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:data-type quy định việc so sánh phải tiến hành như văn
bản hoặc như các giá trị số.
<define name="table-filter-condition-attlist" combine="interleave">
<optional>
<attribute name="table:data-type" a:defaultValue="text">
<choice>
<value>text</value>
<value>number</value>
</choice>
</attribute>
</optional>
</define>
8.8. Bảng dẫn dữ liệu
Phần tử <table:data-pilot-tables> cho phép phân tích và đánh giá dữ liệu
được chứa trong các bảng dẫn dữ liệu.
<define name="table-data-pilot-tables">
<element name="table:data-pilot-tables">
<zeroOrMore>
<ref name="table-data-pilot-table"/>
</zeroOrMore>
</element>
</define>
Trong bảng dẫn dữ liệu, khi toàn bộ các kết nối giá trị tồn tại trong các cột
lựa chọn được tổng hợp và đối với mỗi thao tác tổng hợp có một công thức được
áp dụng cho các ô của các cột khác thì cần khai báo:
<define name="table-data-pilot-table">
<element name="table:data-pilot-table">
<ref name="table-data-pilot-table-attlist"/>
<optional>
<choice>
<ref name="table-database-source-sql"/>

132
<ref name="table-database-source-table"/>
<ref name="table-database-source-query"/>
<ref name="table-source-service"/>
<ref name="table-source-cell-range"/>
</choice>
</optional>
<oneOrMore>
<ref name="table-data-pilot-field"/>
</oneOrMore>
</element>
</define>
Thuộc tính table:name quy định tên của bảng dẫn dữ liệu.
<define name="table-data-pilot-table-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:application-data quy định thông tin về bảng dẫn dữ liệu
áp dụng có thể được sử dụng bởi ứng dụng đó. Dữ liệu này không ảnh hưởng
cách hoạt động của dẫn dữ liệu.
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:application-data">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:grand-total quy định một hàng, cột tổng cộng hoặc cả hai
nên được hiển thị bổ sung vào các giá trị được tính toán đối với mỗi kết quả tổng
hợp của các giá trị trong các cột danh mục phân loại.
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:grand-total" a:defaultValue="both">
<choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:ignore-empty-rows quy định các hàng rỗng trong dải
nguồn có nên được bỏ qua hay không.
133
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:ignore-empty-rows" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:identify-categories quy định kiểu cách phân loại dữ liệu
trong bảng. Nếu không qui định giá trị cho nó thì bảng phân loại sẽ là chính nó.
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:identify-categories" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:target-range-address quy định dải đích địa chỉ của bảng
dẫn dữ liệu truy xuất, nơi mà bảng dẫn dữ liệu được hiển thị.
<define name="table-data-pilot-table-attlist" combine="interleave">
<attribute name="table:target-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</define>
Thuộc tính table:buttons quy định các nút hiển thị của toàn bộ các ô trong
bảng dẫn dữ liệu.
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:buttons">
<ref name="cellRangeAddressList"/>
</attribute>
</optional>
</define>
Thuộc tính table:show-filter-button quy định một nút bấm của bộ lọc được
sử dụng trong bảng dẫn dữ liệu khi trình diễn.
<define name="table-data-pilot-table-attlist" combine="interleave">
<optional>
<attribute name="table:show-filter-button" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:drill-down-on-double-click quy định cách thức bảng dẫn
dữ liệu phản ứng lại trên một thao tác kích đúp chuột vào bảng dẫn dữ liệu đó.
<define name="table-data-pilot-table-attlist" combine="interleave">
134
<optional>
<attribute name="table:drill-down-on-double-click"
a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:source-cell-range> bao gồm thông tin về dải ô và cách
thức bảng dẫn dữ liệu nhận dữ liệu từ dải ô đó. Trước khi dữ liệu nguồn được xử
lý bởi phần dẫn dữ liệu, một bộ lọc có thể được áp dụng cho nó.
<define name="table-source-cell-range">
<element name="table:source-cell-range">
<ref name="table-source-cell-range-attlist"/>
<optional>
<ref name="table-filter"/>
</optional>
</element>
</define>
Thuộc tính table:cell-range-address quy định dải ô địa chỉ dữ liệu nguồn
trong bảng dẫn dữ liệu.
<define name="table-source-cell-range-attlist" combine="interleave">
<attribute name="table:cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</define>
Phần tử <table:source-service> bao gồm thông tin về dịch vụ được sử
dụng để tạo ra bảng dẫn dữ liệu dịch vụ nguồn.
<define name="table-source-service">
<element name="table:source-service">
<ref name="table-source-service-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:name quy định tên của dịch vụ. Giá trị của thuộc tính này
là đặc trưng phần mềm thực thi.
<define name="table-source-service-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:source-name quy định tên nguồn được chuyển đến phần
mềm thực thi dịch vụ và ứng dụng.
<define name="table-source-service-attlist" combine="interleave">
<attribute name="table:source-name">
135
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:object-name quy định tên của đối tượng trong nguồn bao
gồm dữ liệu và được chuyển tới phần mềm thực thi dịch vụ. Giá trị của nó là đặc
trưng riêng của dịch vụ và ứng dụng.
define name="table-source-service-attlist" combine="interleave">
<attribute name="table:object-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:user-name quy định tên người sử dụng được yêu cầu để
truy cập nguồn.
<define name="table-source-service-attlist" combine="interleave">
<optional>
<attribute name="table:user-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:password quy định mật khẩu được yêu cầu để truy cập
nguồn. Nó được chuyển tới phần mềm thực thi dịch vụ.
<define name="table-source-service-attlist" combine="interleave">
<optional>
<attribute name="table:password">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:source-field-name quy định tên hoặc nhãn của cột đường
đó được kết nối tới nguồn.
<define name="table-data-pilot-field-attlist" combine="interleave">
<attribute name="table:source-field-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:orientation quy định định hướng của trường gốc. Nếu giá
trị là dữ liệu, thì trường đó quy định một cột dữ liệu. Nếu giá trị là hàng hoặc
cột, thì trường đó quy định một cột danh mục phân loại.
<define name="table-data-pilot-field-attlist" combine="interleave">
<choice>
<attribute name="table:orientation">
<choice>
<value>row</value>
136
<value>column</value>
<value>data</value>
<value>hidden</value>
</choice>
</attribute>
<group>
<attribute name="table:orientation">
<value>page</value>
</attribute>
<attribute name="table:selected-page">
<ref name="string"/>
</attribute>
</group>
</choice>
</define>
Thuộc tính table:is-data-layout-field quy định một trường là một trường
bố trí dữ liệu. Các trường bố trí dữ liệu thường không có tên.
<define name="table-data-pilot-field-attlist" combine="interleave">
<optional>
<attribute name="table:is-data-layout-field" a:defaultValue="false">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính table:function quy định hàm số được áp dụng cho các giá trị ô
đó của các cột dữ liệu. Các giá trị có thể của thuộc tính này là: auto, average,
count, countnums, max, min, product, stdev, stdevp, sum, var và varp. Đối với
các cột danh mục phân loại giá trị của thuộc tính đó là auto có thể được sử dụng
quy định rằng không áp dụng hàm nào.
<define name="table-data-pilot-field-attlist" combine="interleave">
<optional>
<attribute name="table:function">
<choice>
<value>auto</value>
<value>average</value>
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
137
<value>varp</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
Phần tử <table:data-pilot-level> qui định mức ưu tiên về một trường dẫn
dữ liệu trong bảng.
<define name="table-data-pilot-level">
<element name="table:data-pilot-level">
<ref name="table-data-pilot-level-attlist"/>
<optional>
<ref name="table-data-pilot-subtotals"/>
</optional>
<optional>
<ref name="table-data-pilot-members"/>
</optional>
<optional>
<ref name="table-data-pilot-display-info"/>
</optional>
<optional>
<ref name="table-data-pilot-sort-info"/>
</optional>
<optional>
<ref name="table-data-pilot-layout-info"/>
</optional>
</element>
</define>
Thuộc tính table:show-empty quy định các trường có hay không có các
thành phần nên được hiển thị.
<define name="table-data-pilot-level-attlist" combine="interleave">
<optional>
<attribute name="table:show-empty">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:data-pilot-subtotals> bao gồm thông tin về các kết quả tạm
thời được hiển thị đối với tất cả thành phần của một trường và hàm được sử
dụng để tính toán kết quả trong bảng dẫn dữ liệu.
<define name="table-data-pilot-subtotals">
<element name="table:data-pilot-subtotals">
<zeroOrMore>
<ref name="table-data-pilot-subtotal"/>
138
</zeroOrMore>
</element>
</define>
Phần tử <table:data-pilot-member> quy định thông tin được hiển thị cho
một thành phần dẫn dữ liệu nào đó.
<define name="table-data-pilot-member">
<element name="table:data-pilot-member">
<ref name="table-data-pilot-member-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:name quy định giá trị đối với thông tin hiển thị được quy
định.
<define name="table-data-pilot-member-attlist" combine="interleave">
<attribute name="table:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:display quy định một thành phần dẫn dữ liệu có nhìn
thấy tất cả hay không.
<define name="table-data-pilot-member-attlist" combine="interleave">
<optional>
<attribute name="table:display">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính table:show-details quy định các trường bổ sung được hiển thị
nội dung chi tiết cho một thành phần. Thuộc tính này thay đổi cách hoạt động
của một phần dẫn dữ liệu nếu có một vài trường cùng với sự định hướng hàng
hoặc cột.
<define name="table-data-pilot-member-attlist" combine="interleave">
<optional>
<attribute name="table:show-details">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:data-pilot-display-info> giới hạn các hàng chữ số được
hiển thị cho một trường phân loại đến một số các giá trị cụ thể của một trường
dữ liệu.
<define name="table-data-pilot-display-info">
<element name="table:data-pilot-display-info">
<ref name="table-data-pilot-display-info-attlist"/>
139
<empty/>
</element>
</define>
Thuộc tính table:enabled quy định phần tử <table:data-pilot-display-info>
được đánh giá hay không.
<define name="table-data-pilot-display-info-attlist" combine="interleave">
<attribute name="table:enabled">
<ref name="boolean"/>
</attribute>
</define>
Thuộc tính table:data-field quy định trường dữ liệu mà giá trị của nó được
tính toán đưa vào.
<define name="table-data-pilot-display-info-attlist" combine="interleave">
<attribute name="table:data-field">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:member-count quy định có bao nhiêu giá trị từ đỉnh hoặc
từ đáy của cột trường dữ liệu được chỉ ra.
<define name="table-data-pilot-display-info-attlist" combine="interleave">
<attribute name="table:member-count">
<ref name="nonNegativeInteger"/>
</attribute>
</define>
Thuộc tính table:display-member-mode quy định các giá trị được quy
định bởi table:member-count có nên được lấy từ đỉnh hoặc từ đáy của một cột
trường dữ liệu.
<define name="table-data-pilot-display-info-attlist" combine="interleave">
<attribute name="table:display-member-mode">
<choice>
<value>from-top</value>
<value>from-bottom</value>
</choice>
</attribute>
</define>
Phần tử <table:data-pilot-sort-info> quy định cách thức các thành phần
của một trường phân loại được sắp xếp.
<define name="table-data-pilot-sort-info">
<element name="table:data-pilot-sort-info">
<ref name="table-data-pilot-sort-info-attlist"/>
<empty/>
</element>
</define>

140
Thuộc tính table:sort-mode mô tả cách thức để sắp xếp các thành phần
của một trường dẫn dữ liệu đơn.
<define name="table-data-pilot-sort-info-attlist" combine="interleave">
<choice>
<group>
<attribute name="table:sort-mode">
<value>data</value>
</attribute>
<attribute name="table:data-field">
<ref name="string"/>
</attribute>
</group>
<attribute name="table:sort-mode">
<choice>
<value>none</value>
<value>manual</value>
<value>name</value>
</choice>
</attribute>
</choice>
</define>
Thuộc tính table:sort-order quy định cách sắp xếp các thành phần tăng
hoặc giảm dần.
<define name="table-data-pilot-sort-info-attlist" combine="interleave">
<attribute name="table:order">
<choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</define>
Phần tử <table:data-pilot-layout-info> mô tả cách bố trí nội dung thông
tin trong trường đó.
<define name="table-data-pilot-layout-info">
<element name="table:data-pilot-layout-info">
<ref name="table-data-pilot-layout-info-attlist"/>
<empty/>
</element>
</define>
Phần tử <table:data-pilot-field-reference> mô tả dữ liệu có thể được sử
dụng để thay đổi các giá trị được hiển thị của các trường dữ liệu.
<define name="table-data-pilot-field-reference">
<element name="table:data-pilot-field-reference">
<ref name="table-data-pilot-field-reference-attlist"/>
141
</element>
</define>
Thuộc tính table:field-name tham chiếu một trường phân loại mà các
thành viên của nó ảnh hưởng tới các giá trị được hiển thị của trường dữ liệu.
<define name="table-data-pilot-field-reference-attlist" combine="interleave">
<attribute name="table:field-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính table:member-type quy định thành phần của trường phân loại
được tham chiếu, mà giá trị của nó trong trường dữ liệu hiện tại phải được tính
đến.
<define name="table-data-pilot-field-reference-attlist" combine="interleave">
<choice>
<group>
<attribute name="table:member-type">
<value>named</value>
</attribute>
<attribute name="table:member-name">
<ref name="string"/>
</attribute>
</group>
<attribute name="table:member-type">
<choice>
<value>previous</value>
<value>next</value>
</choice>
</attribute>
</choice>
</define>
Phần tử <table:data-pilot-groups> quy định một trường dẫn dữ liệu là một
trường nhóm thông tin. Một trường nhóm cho phép nhóm các trường khác. Việc
nhóm có thể cũng tiến hành đối với các giá trị số và ngày tháng.
<define name="table-data-pilot-groups">
<element name="table:data-pilot-groups">
<ref name="table-data-pilot-groups-attlist"/>
<oneOrMore>
<ref name="table-data-pilot-group"/>
</oneOrMore>
</element>
</define>
Phần tử <table:data-pilot-group> quy định tên các thành phần của một
nhóm đơn trong bảng dữ liệu.
<define name="table-data-pilot-group">
142
<element name="table:data-pilot-group">
<ref name="table-data-pilot-group-attlist"/>
<oneOrMore>
<ref name="table-data-pilot-group-member"/>
</oneOrMore>
</element>
</define>
Phần tử <table:data-pilot-group-member> quy định tên của một thành
phần nhóm đơn.
<define name="table-data-pilot-group-member">
<element name="table:data-pilot-group-member">
<ref name="table-data-pilot-group-member-attlist"/>
</element>
</define>
8.9. Hợp nhất
Phần tử <table:consolidation> xác định việc hợp nhất các dữ liệu từ các
bảng độc lập.
<define name="table-consolidation">
<element name="table:consolidation">
<ref name="table-consolidation-attlist"/>
<empty/>
</element>
</define>
Thuộc tính table:source-cell-range-addresses xác định một danh sách các
địa chỉ của dải của ô quy định các dải ô nguồn.
<define name="table-consolidation-attlist" combine="interleave">
<attribute name="table:source-cell-range-addresses">
<ref name="cellRangeAddressList"/>
</attribute>
</define>
Thuộc tính table:target-cell-address bao gồm địa chỉ ô đích.
<define name="table-consolidation-attlist" combine="interleave">
<attribute name="table:target-cell-address">
<ref name="cellAddress"/>
</attribute>
</define>
Thuộc tính table:use-label quy định các nhãn có nên được sử dụng bởi sự
hợp nhất đó cho các hàng, các cột hoặc cả hai hay không. Nếu các nhãn được sử
dụng cho các hàng hoặc các cột, thì các hàm toán học được áp dụng cho các ô
cùng địa chỉ tương đối.
<define name="table-consolidation-attlist" combine="interleave">
<optional>
<attribute name="table:use-labels" a:defaultValue="none">

143
<choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:link-to-source-data quy định dữ liệu trong dải bảng hợp
nhất được liên kết với dữ liệu nguồn, vì vậy nó được cập nhật một cách tự động
nếu có bất kỳ sự thay đổi được tạo cho dữ liệu nguồn.
<define name="table-consolidation-attlist" combine="interleave">
<optional>
<attribute name="table:link-to-source-data" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:insertion> bao gồm thông tin được yêu cầu để định danh
cho bất kỳ việc chèn thêm nội dung nào. Nội dung này có thể là một hoặc nhiều
hàng, một hoặc nhiều cột, hoặc một bảng.
<define name="table-insertion">
<element name="table:insertion">
<ref name="table-insertion-attlist"/>
<ref name="common-table-change-attlist"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
</optional>
</element>
</define>
Phần tử <table:dependencies> bao gồm thông tin được theo dõi phụ thuộc
vào sự thay đổi trong bảng dữ liệu.
<define name="table-dependencies">
<element name="table:dependencies">
<oneOrMore>
<ref name="table-dependency"/>
</oneOrMore>
</element>
</define>
144
Phần tử <table:dependency> bao gồm thông tin về một hành động thay
đổi mà trong đó phần tử gốc bị phụ thuộc. Hành động thay đổi trong đó phần tử
hiện tại được tham chiếu bởi một chỉ số id.
<define name="table-dependency">
<element name="table:dependency">
<attribute name="table:id">
<ref name="string"/>
</attribute>
<empty/>
</element>
</define>
Phần tử <table:deletions> bao gồm toàn bộ các thông tin bị xóa bỏ được
thực hiện trong khi theo dõi một thay đổi đối với một bảng.
<define name="table-deletions">
<element name="table:deletions">
<oneOrMore>
<choice>
<ref name="table-cell-content-deletion"/>
<ref name="table-change-deletion"/>
</choice>
</oneOrMore>
</element>
</define>
Phần tử <table:cell-content-deletion> xác định nội dung của ô đã được
xóa bỏ. Nó bao gồm địa chỉ của ô chịu tác động và nội dung ban đầu của nó.
<define name="table-cell-content-deletion">
<element name="table:cell-content-deletion">
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<optional>
<ref name="table-cell-address"/>
</optional>
<optional>
<ref name="table-change-track-table-cell"/>
</optional>
</element>
</define>
Phần tử <table:change-deletion> quy định chỉ số id của một thay đổi được
theo dõi trước đó mà các nội dung nhận được bị xóa bởi thay đổi hiện tại.
<define name="table-change-deletion">
<element name="table:change-deletion">
145
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <table:cut-offs> bao gồm thông tin về việc chèn được theo dõi
trước đó hoặc các di chuyển nơi mà các phần của nội dung mới được tạo ra bởi
thao tác cắt bỏ.
<define name="table-cut-offs">
<element name="table:cut-offs">
<choice>
<oneOrMore>
<ref name="table-movement-cut-off"/>
</oneOrMore>
<group>
<ref name="table-insertion-cut-off"/>
<zeroOrMore>
<ref name="table-movement-cut-off"/>
</zeroOrMore>
</group>
</choice>
</element>
</define>
Phần tử <table:insertion-cut-off> bao gồm thông tin nơi mà việc chèn
thêm bị xóa bỏ.
<define name="table-insertion-cut-off">
<element name="table:insertion-cut-off">
<ref name="table-insertion-cut-off-attlist"/>
<empty/>
</element>
</define>
Phần tử <table:movement-cut-off> bao gồm thông tin nơi và phần tử nơi
mà sự dịch chuyển nội dung bị cắt bỏ.
<define name="table-movement-cut-off">
<element name="table:movement-cut-off">
<ref name="table-movement-cut-off-attlist"/>
<empty/>
</element>
</define>

146
Phần tử <table:movement> bao gồm thông tin được yêu cầu để định danh
mọi di chuyển nội dung trong bảng dữ liệu. Nội dung này có thể là một nội dung
của ô hoặc một nội dung của một dải ô trong bảng.
<define name="table-movement">
<element name="table:movement">
<ref name="common-table-change-attlist"/>
<ref name="table-source-range-address"/>
<ref name="table-target-range-address"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
</optional>
</element>
</define>
Phần tử <table:source-range-address> quy định dải địa chỉ ô nguồn của
một di chuyển trong bảng.
<define name="table-source-range-address">
<element name="table:source-range-address">
<ref name="common-table-range-attlist"/>
<empty/>
</element>
</define>
Phần tử <table:target-range-address> quy định dải địa chỉ ô đích đi đến
của một di chuyển trong bảng.
<define name="table-target-range-address">
<element name="table:target-range-address">
<ref name="common-table-range-attlist"/>
<empty/>
</element>
</define>
<define name="common-table-range-attlist" combine="interleave">
<choice>
<group>
<ref name="common-table-cell-address-attlist"/>
</group>
<group>
<ref name="common-table-cell-range-address-attlist"/>
</group>
</choice>
</define>

147
Phần tử <table:change-track-table-cell> bao gồm toàn bộ thông tin của
một ô trong bảng cần thiết bên trong các phần tử theo dõi thay đổi.
<define name="table-change-track-table-cell" combine="interleave">
<element name="table:change-track-table-cell">
<ref name="table-change-track-table-cell-attlist"/>
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
Phần tử <table:cell-content-change> bao gồm thông tin được yêu cầu để
định danh các thay đổi của nội dung ô đó.
<define name="table-cell-content-change">
<element name="table:cell-content-change">
<ref name="common-table-change-attlist"/>
<ref name="table-cell-address"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
</optional>
<ref name="table-previous"/>
</element>
</define>
Phần tử <table:cell-address> xác định địa chỉ của ô được thay đổi. Không
giống với các địa chỉ ô khác, địa chỉ đó bao gồm số hiệu hàng, cột của ô đó.
<define name="table-cell-address">
<element name="table:cell-address">
<ref name="common-table-cell-address-attlist"/>
<empty/>
</element>
</define>
Phần tử table:previous bao gồm nội dung của ô trước đó được ghi đè bởi
thay đổi hiện tại.
<define name="table-previous">
<element name="table:previous">
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<ref name="table-change-track-table-cell"/>
148
</element>
</define>
8.10. Các liên kết động
Phần tử <table:dde-links> lưu trữ tất cả các liên kết động (DDE) trong
một tài liệu bảng tính. Mọi liên kết phải bao gồm dữ liệu nguồn DDE và dữ liệu
của kết nối cuối cùng.
<define name="table-dde-links">
<element name="table:dde-links">
<oneOrMore>
<ref name="table-dde-link"/>
</oneOrMore>
</element>
</define>
8.11. Theo dõi thay đổi trong các bảng tính
Trong các tài liệu bảng tính, các thay đổi trong bảng có thể được theo dõi.
Phần tử <table:tracked-changes> mô tả cách thức thông tin theo dõi thay đổi
được tạo ra đối với tài liệu.
<define name="table-tracked-changes">
<element name="table:tracked-changes">
<ref name="table-tracked-changes-attlist"/>
<zeroOrMore>
<choice>
<ref name="table-cell-content-change"/>
<ref name="table-insertion"/>
<ref name="table-deletion"/>
<ref name="table-movement"/>
</choice>
</zeroOrMore>
</element>
</define>
Phần tử <table:insertion> bao gồm thông tin được yêu cầu để định danh
bất kỳ việc chèn thêm nội dung nào. Nội dung này có thể là một hoặc nhiều
hàng, một hoặc nhiều cột, hoặc một bảng.
<define name="table-insertion">
<element name="table:insertion">
<ref name="table-insertion-attlist"/>
<ref name="common-table-change-attlist"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
149
</optional>
</element>
</define>
Thuộc tính table:type quy định kiểu chèn thêm và việc chèn đó có thể là
hàng, cột hoặc bảng.
<define name="table-insertion-attlist" combine="interleave">
<attribute name="table:type">
<choice>
<value>row</value>
<value>column</value>
<value>table</value>
</choice>
</attribute>
</define>
Thuộc tính table:position quy định vị trí chèn được tạo trong bảng đó.
<define name="table-insertion-attlist" combine="interleave">
<attribute name="table:position">
<ref name="integer"/>
</attribute>
</define>
Thuộc tính table:count quy định số đếm của các hàng, các cột hoặc các
bảng được chèn.
<define name="table-insertion-attlist" combine="interleave">
<optional>
<attribute name="table:count" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính table:table quy định chữ số của bảng tính mà ở đó việc chèn
được tiến hành. Thuộc tính này chỉ tồn tại đối với việc chèn của cột và hàng.
<define name="table-insertion-attlist" combine="interleave">
<optional>
<attribute name="table:table">
<ref name="integer"/>
</attribute>
</optional>
</define>
Ví dụ về chèn thêm văn bản trong một ô:
<table:tracked-changes>
<table:insertion table:id="c001" table:acceptance-state="pending"
table:type="column" table:position="5">
<office:change-info>
<dc:creator>Sascha Ballach</dc:creator>
150
<dc:date>1999-55-18T12:56:04</dc:date>
</office:change-info>
</table:insertion>
</table:tracked-changes>
Phần tử <table:dependencies> xác định các thông tin mà trên đó các thay
đổi khác được theo dõi phụ thuộc một thay đổi trong bảng tính.
<define name="table-dependencies">
<element name="table:dependencies">
<oneOrMore>
<ref name="table-dependency"/>
</oneOrMore>
</element>
</define>
Phần tử <table:deletions> bao gồm toàn bộ các xóa bỏ được thực hiện
trong khi theo dõi một thay đổi đơn đối với một bảng tính.
<define name="table-deletions">
<element name="table:deletions">
<oneOrMore>
<choice>
<ref name="table-cell-content-deletion"/>
<ref name="table-change-deletion"/>
</choice>
</oneOrMore>
</element>
</define>
Phần tử <table:cell-content-deletion> quy định một nội dung của ô đã
được xóa bỏ trong bảng tính. Nó bao gồm địa chỉ của ô chịu tác động và nội
dung ban đầu của nó.
<define name="table-cell-content-deletion">
<element name="table:cell-content-deletion">
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<optional>
<ref name="table-cell-address"/>
</optional>
<optional>
<ref name="table-change-track-table-cell"/>
</optional>
</element>
</define>

151
Phần tử <table:change-deletion> quy định chỉ số id của một thay đổi được
theo dõi trước đó bị xóa đi bởi thay đổi hiện tại.
<define name="table-change-deletion">
<element name="table:change-deletion">
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <table:cut-offs> bao gồm thông tin về việc chèn được theo dõi
trước đó hoặc các di chuyển nơi mà các phần của nội dung mới được tạo lập bởi
thao tác thu nhận được bị xóa bỏ.
<define name="table-cut-offs">
<element name="table:cut-offs">
<choice>
<oneOrMore>
<ref name="table-movement-cut-off"/>
</oneOrMore>
<group>
<ref name="table-insertion-cut-off"/>
<zeroOrMore>
<ref name="table-movement-cut-off"/>
</zeroOrMore>
</group>
</choice>
</element>
</define>
Phần tử <table:insertion-cut-off> xác định các thông tin trong bảng tính
nơi mà việc chèn thêm sẽ được loại bỏ.
<define name="table-insertion-cut-off">
<element name="table:insertion-cut-off">
<ref name="table-insertion-cut-off-attlist"/>
<empty/>
</element>
</define>
Phần tử <table:movement-cut-off> xác định các thông tin trong bảng nơi
mà sự dịch chuyển sẽ bị xóa bỏ.
<define name="table-movement-cut-off-attlist" combine="interleave">
<choice>
<attribute name="table:position">
<ref name="integer"/>
152
</attribute>
<group>
<attribute name="table:start-position">
<ref name="integer"/>
</attribute>
<attribute name="table:end-position">
<ref name="integer"/>
</attribute>
</group>
</choice>
</define>
Ví dụ việc xóa bỏ một cột không bao gồm nội dung sẽ khai báo:
<table:tracked-changes>
<table:deletion table:id="c002" table:acceptance-state="pending"
table:type="column" table:position="9">
<office:change-info>
<dc:creator>Sascha Ballach</dc:creator>
<dc:date>1999-05-18T12:56:04</dc:creator>
</office:change-info>
</table:deletion>
</table:tracked-changes>
Phần tử <table:movement> bao gồm thông tin được yêu cầu để định danh
cho mọi sự di chuyển nội dung. Nội dung này có thể là một nội dung của ô hoặc
một nội dung của dải ô.
<define name="table-movement">
<element name="table:movement">
<ref name="common-table-change-attlist"/>
<ref name="table-source-range-address"/>
<ref name="table-target-range-address"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
</optional>
</element>
</define>
Phần tử <table:change-track-table-cell> xác định toàn bộ thông tin của
một ô bảng cần thiết bên trong các phần tử để theo dõi thay đổi.
<define name="table-change-track-table-cell" combine="interleave">
<element name="table:change-track-table-cell">
<ref name="table-change-track-table-cell-attlist"/>
<zeroOrMore>
153
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
Phần tử <table:cell-content-change> bao gồm thông tin được yêu cầu để
định danh các thay đổi của nội dung ô đó.
<define name="table-cell-content-change">
<element name="table:cell-content-change">
<ref name="common-table-change-attlist"/>
<ref name="table-cell-address"/>
<ref name="office-change-info"/>
<optional>
<ref name="table-dependencies"/>
</optional>
<optional>
<ref name="table-deletions"/>
</optional>
<ref name="table-previous"/>
</element>
</define>
Phần tử <table:cell-address> bao gồm địa chỉ của ô được thay đổi trong
bảng tính.
<define name="table-cell-address">
<element name="table:cell-address">
<ref name="common-table-cell-address-attlist"/>
<empty/>
</element>
</define>
Phần tử <table:previous> bao gồm nội dung của ô trước đó được ghi đè
bởi thay đổi hiện tại.
<define name="table-previous">
<element name="table:previous">
<optional>
<attribute name="table:id">
<ref name="string"/>
</attribute>
</optional>
<ref name="table-change-track-table-cell"/>
</element>
</define>
Thuộc tính table:id quy định id của thay đổi được theo dõi.
<define name="common-table-change-attlist" combine="interleave">
<attribute name="table:id">
<ref name="string"/>
154
</attribute>
</define>
Thuộc tính table:acceptance-state quy định thay đổi được theo dõi đã thực
sự được chấp nhận hay từ chối, hoặc một chấp nhận hay từ chối vẫn còn để treo.
<define name="common-table-change-attlist" combine="interleave">
<optional>
<attribute name="table:acceptance-state" a:defaultValue="pending">
<choice>
<value>accepted</value>
<value>rejected</value>
<value>pending</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính table:rejecting-change-id xác định chỉ số địa chỉ ô bảng sẽ
thực thi việc từ chối một thay đổi được theo dõi trước đó.
<define name="common-table-change-attlist" combine="interleave">
<optional>
<attribute name="table:rejecting-change-id">
<ref name="string"/>
</attribute>
</optional>
</define>
9. Nội dung đồ họa
Phần này đưa ra những đặc tả kỹ thuật cho các phần tử lõi của các ứng
dụng đồ họa như bản vẽ hoặc trình diễn và cho các đối tượng đồ họa được chứa
trong các ứng dụng phi đồ họa như bộ xử lý văn bản hoặc các ứng dụng bảng
tính...
9.1. Các tính năng trang nâng cao cho ứng dụng đồ họa
Phần tử <style:handout-master> xác định một khuôn mẫu chủ để tạo lập
tự động các trang bản tin và có thể bao gồm bất kỳ các kiểu hình dạng nào.
<define name="style-handout-master">
<element name="style:handout-master">
<ref name="common-presentation-header-footer-attlist"/>
<ref name="style-handout-master-attlist"/>
<zeroOrMore>
<ref name="shape"/>
</zeroOrMore>
</element>
</define>
Thuộc tính style:page-layout-name quy định tên của một bố trí trang bao
gồm các kích thước, đường viền và định hướng của trang chủ bản tin.
155
<define name="style-handout-master-attlist" combine="interleave">
<attribute name="style:page-layout-name">
<ref name="styleNameRef"/>
</attribute>
</define>
Thuộc tính draw:style-name ấn định tên của một định dạng bổ sung cho
các thuộc tính cho một trang chủ bản tin là một kiểu dáng trang bản vẽ.
<define name="style-handout-master-attlist" combine="interleave">
<optional>
<attribute name="draw:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Phần tử <draw:layer-set> xác định các lớp kiểu dáng trang chủ của các
ứng dụng đồ họa về nhóm các đối tượng hình vẽ.
<define name="draw-layer-set">
<element name="draw:layer-set">
<zeroOrMore>
<ref name="draw-layer"/>
</zeroOrMore>
</element>
</define>
Phần tử <draw:layer> xác định một lớp đơn.
<define name="draw-layer">
<element name="draw:layer">
<ref name="draw-layer-attlist"/>
<empty/>
</element>
</define>
Thuộc tính draw:protected quy định các đối tượng hình vẽ chứa trong lớp
được bảo vệ khỏi bị thay đổi.
<define name="draw-layer-attlist" combine="interleave">
<optional>
<attribute name="draw:protected" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:display quy định các đối tượng hình vẽ chứa trong lớp
được hiển thị trên màn hình hoặc được in ra.
<define name="draw-layer-attlist" combine="interleave">
<optional>
<attribute name="draw:display" a:defaultValue="always">
156
<choice>
<value>always</value>
<value>screen</value>
<value>printer</value>
<value>none</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <draw:page> chứa nội dung một trang chủ trong một tài liệu hình
vẽ hoặc trình diễn.
<define name="draw-page">
<element name="draw:page">
<ref name="common-presentation-header-footer-attlist"/>
<ref name="draw-page-attlist"/>
<optional>
<ref name="office-forms"/>
</optional>
<zeroOrMore>
<ref name="shape"/>
</zeroOrMore>
<optional>
<choice>
<ref name="presentation-animations"/>
<ref name="animation-element"/>
</choice>
</optional>
<optional>
<ref name="presentation-notes"/>
</optional>
</element>
</define>
Thuộc tính draw:name quy định tên của một trang hình vẽ. Thuộc tính
này là tùy chọn và nếu nó được sử dụng thì tên khai báo phải là duy nhất.
<define name="draw-page-attlist" combine="interleave">
<optional>
<attribute name="draw:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:style-name ấn định một định dạng bổ sung cho các thuộc
tính của một trang hình vẽ bằng việc ấn định một kiểu dáng trang hình vẽ.
<define name="draw-page-attlist" combine="interleave">
157
<optional>
<attribute name="draw:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:master-page-name quy định tên của trang chủ được ấn
định cho trang hình vẽ.
<define name="draw-page-attlist" combine="interleave">
<attribute name="draw:master-page-name">
<ref name="styleNameRef"/>
</attribute>
</define>
Thuộc tính draw:id ấn định một chỉ số ID duy nhất cho một trang hình vẽ.
<define name="draw-page-attlist">
<optional>
<attribute name="draw:id">
<ref name="ID"/>
</attribute>
</optional>
</define>
9.2. Các hình dạng hình vẽ
Phần tử <draw:rect> biểu diễn một hình vẽ hình chữ nhật.
<define name="draw-rect">
<element name="draw:rect">
<ref name="draw-rect-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Phần tử <draw:line> biểu diễn một đối tường bản vẽ đường thẳng.
<define name="draw-line">
<element name="draw:line">
<ref name="draw-line-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>

158
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Các thuộc tính điểm bắt đầu svg:x1 và svg:y1 quy định các tọa độ bắt đầu
của dòng.
<define name="draw-line-attlist" combine="interleave">
<attribute name="svg:x1">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y1">
<ref name="coordinate"/>
</attribute>
</define>
Các thuộc tính điểm kết thúc svg:x2 và svg:y2 quy định các tọa độ kết
thúc của dòng.
<define name="draw-line-attlist" combine="interleave">
<attribute name="svg:x2">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y2">
<ref name="coordinate"/>
</attribute>
</define>
Phần tử <draw:polyline> biểu diễn một hình dạng của hình vẽ là đối
tượng đường.
<define name="draw-polyline">
<element name="draw:polyline">
<ref name="common-draw-points-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
159
<ref name="draw-text"/>
</element>
</define>
Thuộc tính svg:points lưu trữ một trình tự của các điểm, được nối bởi các
đường thẳng. Mỗi điểm bao gồm hai tọa độ. Các tọa độ được phân tách bởi một
dấu phẩy và các điểm đó được phân tách bởi khoảng cách trắng.
<define name="common-draw-points-attlist">
<attribute name="draw:points">
<ref name="points"/>
</attribute>
</define>
Phần tử <draw:polygon> biểu diễn một đối tượng bản vẽ là đa giác. Một
đa giác là một tập đóng của các đường thẳng.
<define name="draw-polygon">
<element name="draw:polygon">
<ref name="common-draw-points-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Phần tử <draw:regular-polygon> biểu diễn một đa giác thường. Một đa
giác thường là một đa giác được quy định bởi số cạnh của nó (bằng số các góc
của nó), hơn là bởi các điểm tùy ý.
<define name="draw-regular-polygon">
<element name="draw:regular-polygon">
<ref name="draw-regular-polygon-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
160
<ref name="draw-text"/>
</element>
</define>
Thuộc tính draw:concave quy định đa giác đó là lồi hay lõm. Đối với một
đa giác lồi, các góc của đa giác đó được đặt trên một ê-líp đơn có tâm của nó
trong tâm của đa giác đó. Đối với các đa giác lõi, cần phải khai báo bổ sung
thêm một thuộc tính draw:sharpness.
<define name="draw-regular-polygon-attlist" combine="interleave">
<choice>
<attribute name="draw:concave">
<value>false</value>
</attribute>
<group>
<attribute name="draw:concave">
<value>true</value>
</attribute>
<ref name="draw-regular-polygon-sharpness-attlist"/>
</group>
</choice>
</define>
Thuộc tính draw:corners quy định số các góc của đa giác.
<define name="draw-regular-polygon-attlist" combine="interleave">
<attribute name="draw:corners">
<ref name="positiveInteger"/>
</attribute>
</define>
Phần tử <draw:path> biểu diễn một đối tượng bản vẽ là đường dẫn. Một
đường dẫn là một kiểu hình dạng đường viền do người dùng định nghĩa.
<define name="draw-path">
<element name="draw:path">
<ref name="common-draw-path-data-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
161
Phần tử <draw:circle> biểu diễn một hình tròn.
<define name="draw-circle">
<element name="draw:circle">
<ref name="draw-circle-attlist"/>
<ref name="common-draw-circle-ellipse-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Các thuộc tính điểm trung tâm svg:cx và svg:cy quy định các tọa độ của
điểm trung tâm của hình tròn. Nếu các thuộc tính tùy chọn này không được thiết
lập, các thuộc tính vị trí và kích thước được sử dụng để tạo ra chúng.
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
<optional>
<attribute name="svg:cx">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:cy">
<ref name="coordinate"/>
</attribute>
</optional>
</define>
Thuộc tính svg:r quy định bán kính của hình tròn. Nếu thuộc tính tùy chọn
này không được thiết lập, thì các thuộc tính vị trí và kích thước được sử dụng để
tạo ra hình tròn.
<define name="draw-circle-attlist" combine="interleave">
<optional>
<attribute name="svg:r">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:kind quy định hình thức của hình tròn.
<define name="common-draw-circle-ellipse-attlis ne="interleave">
<optional>
<attribute name="draw:kind" a:defaultValue="full">
162
<choice>
<value>full</value>
<value>section</value>
<value>cut</value>
<value>arc</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <draw:ellipse> biểu diễn một hình ê-líp.
<define name="draw-ellipse">
<element name="draw:ellipse">
<ref name="common-draw-circle-ellipse-attlist"/>
<ref name="draw-ellipse-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Thuộc tính svg:rx và svg:rx quy định bán kính ngang và bán kính dọc của
hình ê-líp. Nếu các thuộc tính tùy chọn này không được thiết lập, các thuộc tính
vị trí và kích thước được sử dụng để tạo ra hình ê-líp đó.
<define name="draw-ellipse-attlist" combine="interleave">
<optional>
<attribute name="svg:rx">
<ref name="length"/>
</attribute>
<attribute name="svg:ry">
<ref name="length"/>
</attribute>
</optional>
</define>
Phần tử <draw:connector> biểu diễn một dãy các đường kẻ được kết nối
với các điểm cần gắn lại của hai hình khác nhau.
<define name="draw-connector">
<element name="draw:connector">
<ref name="draw-connector-attlist"/>
163
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Thuộc tính draw:type quy định cách thức kết nối giữa hai điểm được nêu
ra. Giá trị của thuộc tính này có thể là standard, lines, line hoặc curve.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="draw:type" a:defaultValue="standard">
<choice>
<value>standard</value>
<value>lines</value>
<value>line</value>
<value>curve</value>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính vị trí bắt đầu svg:x1 và svg:y1 quy định vị trí bắt đầu của
một bộ kết nối. Nếu vị trí bắt đầu được kết nối tới một hình dạng, các thuộc tính
này là tùy chọn bởi vì vị trí bắt đầu mặc định đối với điểm gắn lại tương ứng
trên hình dạng đích.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="svg:x1">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y1">
<ref name="coordinate"/>
</attribute>
</optional>
</define>
Thuộc tính draw:start-shape định danh hình dạng hình vẽ đối với điểm bắt
đầu bộ nối này được kết nối theo tên của nó. Nếu một hình dạng được kết nối tới
điểm bắt đầu của một bộ kết nối, thì vị trí bắt đầu xác lập mặc định cho điểm
gắn lại tương ứng trên hình dạng đích.
<define name="draw-connector-attlist" combine="interleave">
<optional>
164
<attribute name="draw:start-shape">
<ref name="IDREF"/>
</attribute>
</optional>
</define>
Thuộc tính draw:start-glue-point định danh điểm gắn lại trong hình dạng
bắt đầu của bộ nối bởi số hiệu của nó. Nếu điểm bắt đầu của bộ nối không được
kết nối cho một hình dạng, thì thuộc tính này được bỏ qua.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="draw:start-glue-point">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Các thuộc tính vị trí kết thúc svg:x2 và svg:y2 quy định vị trí kết thúc của
một bộ kết nối. Nếu vị trí kết thúc được kết nối tới một hình dạng, các thuộc tính
này là tùy chọn bởi vì vị trí kết thúc xác lập mặc định cho điểm gắn lại tương
ứng trên hình dạng đích.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="svg:x2">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y2">
<ref name="coordinate"/>
</attribute>
</optional>
</define>
Thuộc tính draw:end-shape định danh hình dạng hình vẽ đối với điểm kết
thúc của bộ nối được kết nối bởi tên của nó. Nếu một hình dạng được kết nối tới
điểm kết thúc của một bộ kết nối, vị trí kết thúc xác lập mặc định cho điểm gắn
lại tương ứng trên hình dạng đích.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="draw:end-shape">
<ref name="IDREF"/>
</attribute>
</optional>
</define>
Thuộc tính draw:end-glue-point định danh điểm gắn lại trong hình dạng
kết thúc của bộ nối bởi số hiệu của nó. Nếu điểm kết thúc của bộ nối không
được kết nối cho một hình dạng, thuộc tính này được bỏ qua.
<define name="draw-connector-attlist" combine="interleave">
165
<optional>
<attribute name="draw:end-glue-point">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính draw:line-skew kiểm soát việc tạo của các dòng kết nối các
điểm bắt đầu và điểm kết thúc.
<define name="draw-connector-attlist" combine="interleave">
<optional>
<attribute name="draw:line-skew">
<list>
<ref name="length"/>
<optional>
<ref name="length"/>
<optional>
<ref name="length"/>
</optional>
</optional>
</list>
</attribute>
</optional>
</define>
Phần tử <draw:caption> biểu diễn một hình dạng hình chữ nhật với một
đối tượng chữ chú thích bản vẽ bổ sung. Nó có thể được sử dụng như một mô tả
đối với một điểm cố định trong một hình vẽ.
<define name="draw-caption">
<element name="draw:caption">
<ref name="draw-caption-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Thuộc tính draw:corner-radius quy định bán kính của đường tròn được sử
dụng để vẽ tròn các góc của chú thích bản vẽ.
<define name="draw-caption-attlist" combine="interleave">
166
<optional>
<attribute name="draw:corner-radius">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Phần tử <draw:measure> xác định đơn vị đo lường cho hình dạng sẽ được
sử dụng để đo các khoảng cách trong các hình vẽ.
<define name="draw-measure">
<element name="draw:measure">
<ref name="draw-measure-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
</element>
</define>
Các thuộc tính svg:x1 và svg:y1 quy định điểm bắt đầu của khoảng cách
được đo.
<define name="draw-measure-attlist" combine="interleave">
<attribute name="svg:x1">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y1">
<ref name="coordinate"/>
</attribute>
</define>
Các thuộc tính svg:x2 và svg:y2 quy định điểm kết thúc của khoảng cách
được đo.
<define name="draw-measure-attlist" combine="interleave">
<attribute name="svg:x2">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y2">
<ref name="coordinate"/>
</attribute>
</define>
Phần tử <draw:control> xác định kiểu kiểm soát hình dạng được sử dụng
trong các đối tượng hình vẽ.
<define name="draw-control">
167
<element name="draw:control">
<ref name="draw-control-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
</element>
</define>
Phần tử <draw:page-thumbnail> biểu diễn một vùng hình chữ nhật hiển
thị hình thu nhỏ của một trang hình vẽ.
<define name="draw-page-thumbnail">
<element name="draw:page-thumbnail">
<ref name="draw-page-thumbnail-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="presentation-shape-attlist"/>
<ref name="common-draw-shape-with-styles-attlist"/>
<empty/>
</element>
</define>
Thuộc tính draw:page-number quy định số trang được hiển thị như một
hình thu nhỏ (thumbnail).
<define name="draw-page-thumbnail-attlist">
<optional>
<attribute name="draw:page-number">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Phần tử <draw:g> xác định một phương thức nhóm các đối tượng hình
dạng hình vẽ trong trang.
<define name="draw-g">
<element name="draw:g">
<ref name="draw-g-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-name-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-style-name-attlist"/>
<ref name="common-text-spreadsheet-shape-attlist"/>
<optional>
<ref name="office-event-listeners"/>
</optional>
168
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<zeroOrMore>
<ref name="shape"/>
</zeroOrMore>
</element>
</define>
Thuộc tính draw:name ấn định một tên cho hình dạng hình vẽ.
<define name="common-draw-name-attlist" combine="interleave">
<optional>
<attribute name="draw:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Các thuộc tính vị trí svg:x và svg:y quy định các tọa độ x và y của vị trí
bắt đầu của hình dạng hình vẽ.
<define name="common-draw-position-attlist">
<optional>
<attribute name="svg:x">
<ref name="coordinate"/>
</attribute>
</optional>
<optional>
<attribute name="svg:y">
<ref name="coordinate"/>
</attribute>
</optional>
</define>
Các thuộc tính svg:width và svg:height quy định chiều rộng và chiều cao
của hình dạng hình vẽ.
<define name="common-draw-size-attlist">
<optional>
<attribute name="svg:width">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="svg:height">
<ref name="length"/>
</attribute>
</optional>
</define>
169
Thuộc tính draw:transform quy định một danh sách các phép biến đổi có
thể được áp dụng cho một hình dạng hình vẽ. Giá trị của thuộc tính này là một
danh sách các định nghĩa biến đổi, được áp dụng cho hình dạng hình vẽ theo thứ
tự mà chúng được liệt kê.
<define name="common-draw-transform-attlist">
<optional>
<attribute name="draw:transform">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính svg:viewBox thiết lập một hệ tọa độ của người sử dụng bên
trong hệ tọa độ vật lý của hình dạng được quy định bởi các thuộc tính vị trí và
kích thước.
<define name="common-draw-viewbox-attlist">
<attribute name="svg:viewBox">
<list>
<ref name="integer"/>
<ref name="integer"/>
<ref name="integer"/>
<ref name="integer"/>
</list>
</attribute>
</define>
Các thuộc tính draw:style-name và presentation:style-name quy định một
kiểu dáng đối với hình dạng hình vẽ. Nếu draw:style-name được sử dụng, thì
hình dạng là một hình dạng đồ họa thông thường.
<define name="common-draw-style-name-attlist">
<choice>
<group>
<optional>
<attribute name="draw:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
<optional>
<attribute name="draw:class-names">
<ref name="styleNameRefs"/>
</attribute>
</optional>
</group>
<group>
<optional>
<attribute name="presentation:style-name">
170
<ref name="styleNameRef"/>
</attribute>
</optional>
<optional>
<attribute name="presentation:class-names">
<ref name="styleNameRefs"/>
</attribute>
</optional>
</group>
</choice>
</define>
Thuộc tính draw:text-style-name quy định tên một kiểu dáng đối với hình
dạng hình vẽ được sử dụng để định dạng văn bản có thể được cộng thêm vào
hình dạng này.
<define name="common-draw-text-style-name-attlist">
<optional>
<attribute name="draw:text-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:layer có thể ấn định mỗi hình dạng cho một lớp. Giá trị
của thuộc tính này phải là tên của một lớp bên trong tài liệu đó.
<define name="common-draw-layer-name-attlist">
<optional>
<attribute name="draw:layer">
<data type="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:id ấn định một chỉ số ID duy nhất cho một hình dạng
hình vẽ có thể được sử dụng để tham chiếu hình dạng đó.
<define name="common-draw-id-attlist">
<optional>
<attribute name="draw:id">
<ref name="ID"/>
</attribute>
</optional>
</define>
Thuộc tính table:table-background quy định hình dạng màu nền của bảng
sử dụng.
<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
<optional>
<attribute name="table:table-background">
171
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:anchor-type quy định cách thức mấu neo cho một khung
được tạo viền ranh giới cho tài liệu văn bản đó. Vị trí mấu neo là điểm mà tại đó
một khung được tạo viền ranh giới cho một tài liệu văn bản.
<define name="common-text-anchor-attlist" combine="interleave">
<optional>
<attribute name="text:anchor-type">
<choice>
<value>page</value>
<value>frame</value>
<value>paragraph</value>
<value>char</value>
<value>as-char</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính text:anchor-page-number quy định số trang vật lý của một
mấu neo nếu đối tượng hình vẽ được tạo viền ranh giới cho một trang.
<define name="common-text-anchor-attlist" combine="interleave">
<optional>
<attribute name="text:anchor-page-number">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
9.3. Các đối tượng khung
Phần tử <draw:text-box> biểu diễn một khung hộp văn bản. Một hộp văn
bản có thể được sử dụng để đặt văn bản tại mọi vị trí của tài liệu hoặc bản vẽ.
<xác định name="draw-text-box">
<element name="draw:text-box">
<ref name="draw-text-box-attlist"/>
<zeroOrMore>
<ref name="text-content"/>
</zeroOrMore>
</element>
</define>
Thuộc tính draw:corner-radius quy định bán kính của đường tròn được sử
dụng để vẽ tròn các góc của text-box.
<xác định name="draw-text-box-attlist" combine="interleave">

172
<optional>
<attribute name="draw:corner-radius">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Các thuộc tính fo:min-height và fo:min-width quy định chiều cao hoặc
chiều rộng tối thiểu đối với một hộp văn bản.
<xác định name="draw-text-box-attlist" combine="interleave">
<optional>
<attribute name="fo:min-height">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
<optional>
<attribute name="fo:min-width">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Phần tử <draw:image> biểu diễn một khung đối tượng ảnh. Đối tượng ảnh
có thể được chứa trong một tài liệu như một liên kết tới một nguồn bên ngoài
hoặc được nhúng trong một tài liệu.
<xác định name="draw-image">
<element name="draw:image">
<ref name="draw-image-attlist"/>
<choice>
<ref name="common-draw-data-attlist"/>
<ref name="office-binary-data"/>
</choice>
<ref name="draw-text"/>
</element>
</define>
Phần tử <draw:object-ole> biểu diễn các đối tượng hình vẽ được nhúng
trong tài liệu.
<xác định name="draw-object">
<element name="draw:object">
<ref name="draw-object-attlist"/>
173
<choice>
<ref name="common-draw-data-attlist"/>
<ref name="office-document"/>
<ref name="math-math"/>
</choice>
</element>
</define>
<xác định name="draw-object-ole">
<element name="draw:object-ole">
<ref name="draw-object-ole-attlist"/>
<choice>
<ref name="common-draw-data-attlist"/>
<ref name="office-binary-data"/>
</choice>
</element>
</define>
Thuộc tính draw:archive quy định một danh sách các URL được phân
tách bởi dấu phẩy đối với các kho lưu trữ gồm các lớp và các nguồn khác được
tải trước đó.
<xác định name="draw-applet-attlist" combine="interleave">
<optional>
<attribute name="draw:archive"/>
</optional>
</define>
Thuộc tính draw:mayscript quy định chương trình ký sinh đó có thể là tập
lênh hay không.
<xác định name="draw-applet-attlist" combine="interleave">
<optional>
<attribute name="draw:may-script" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <draw:plugin> là một đối tượng nhị phân được gắn vào với một
tài liệu để biểu diễn một kiểu môi trường thường không được kiểm soát vốn có
bởi phần mềm ứng dụng văn phòng.
<xác định name="draw-plugin">
<element name="draw:plugin">
<ref name="draw-plugin-attlist"/>
<ref name="common-draw-data-attlist"/>
<zeroOrMore>
<ref name="draw-param"/>
</zeroOrMore>
</element>
174
</define>
Thuộc tính draw:mimetype quy định kiểu MIME mà cho plugin này nên
được đăng ký.
<xác định name="draw-plugin-attlist" combine="interleave">
<optional>
<attribute name="draw:mime-type"/>
</optional>
</define>
Phần tử <draw:param> bao gồm các tham số hợp quy cách với một ứng
dụng ký sinh hoặc được gắn vào khi chúng được khởi tạo.
<xác định name="draw-param">
<element name="draw:param">
<ref name="draw-param-attlist"/>
<empty/>
</element>
</define>
Phần tử <draw:floating-frame> xác định một khung trôi là một khung
được nhúng trong một tài liệu.
<xác định name="draw-floating-frame">
<element name="draw:floating-frame">
<ref name="draw-floating-frame-attlist"/>
<ref name="common-draw-data-attlist"/>
</element>
</define>
Các phần tử này mô tả đường viền của một ảnh hoặc đối tượng:
<xác định name="draw-contour-polygon">
<element name="draw:contour-polygon">
<ref name="common-contour-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-points-attlist"/>
<empty/>
</element>
</define>
<xác định name="draw-contour-path">
<element name="draw:contour-path">
<ref name="common-contour-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-path-data-attlist"/>
<empty/>
</element>
</define>

175
Thuộc tính draw:recreate-on-edit quy định nếu đường viền của ảnh hoặc
đối tượng được tạo lập lại một cách tự động thì ảnh hoặc đối tượng đó sẽ được
chỉnh sửa lại theo.
<xác định name="common-contour-attlist" combine="interleave">
<attribute name="draw:recreate-on-edit">
<ref name="boolean"/>
</attribute>
</define>
Thuộc tính office:target-frame quy định khung đích của liên kết.
<xác định name="draw-a-attlist" combine="interleave">
<optional>
<attribute name="office:target-frame-name">
<ref name="targetFrameName"/>
</attribute>
</optional>
<optional>
<attribute name="xlink:show">
<choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <draw:area-polygon> mô tả một vùng bản đồ ảnh đa giác.
<xác định name="draw-area-polygon">
<element name="draw:area-polygon">
<ref name="common-draw-area-attlist"/>
<attribute name="svg:x">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:y">
<ref name="coordinate"/>
</attribute>
<attribute name="svg:width">
<ref name="length"/>
</attribute>
<attribute name="svg:height">
<ref name="length"/>
</attribute>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-points-attlist"/>
<optional>
<ref name="svg-desc"/>
176
</optional>
<optional>
<ref name="office-event-listeners"/>
</optional>
</element>
</define>
9.4. Hình dạng ba chiều (3D)
Phần tử <dr3d:scene> xác định các thực thể đồ họa bao gồm các hình
dạng 3 chiều theo một cảnh diễn.
<xác định name="dr3d-scene">
<element name="dr3d:scene">
<ref name="dr3d-scene-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-style-name-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-layer-name-attlist"/>
<ref name="common-text-spreadsheet-shape-attlist"/>
<ref name="common-dr3d-transform-attlist"/>
<zeroOrMore>
<ref name="dr3d-light"/>
</zeroOrMore>
<zeroOrMore>
<ref name="shapes3d"/>
</zeroOrMore>
</element>
</define>
<xác định name="shapes3d">
<choice>
<ref name="dr3d-scene"/>
<ref name="dr3d-extrude"/>
<ref name="dr3d-sphere"/>
<ref name="dr3d-rotate"/>
<ref name="dr3d-cube"/>
</choice>
</define>
Thuộc tính dr3d:vrp quy định nguồn gốc, thuộc tính dr3d:vpn xác định
phương thức véc tơ trỏ vào các đối tượng được chiếu và thuộc tính dr3d:vup xác
định phương thức véc tơ trỏ trên.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:vrp">

177
<ref name="vector3D"/>
</attribute>
</optional>
<optional>
<attribute name="dr3d:vpn">
<ref name="vector3D"/>
</attribute>
</optional>
<optional>
<attribute name="dr3d:vup">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:projection quy định phép chiếu phối cảnh hoặc vật tương
đương. Trong chế độ hình phối cảnh, các đối tượng trở nên nhỏ hơn theo khoảng
cách đối với nguồn sáng.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:projection">
<choice>
<value>parallel</value>
<value>perspective</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:distance quy định khoảng cách giữa camera và đối tượng
được chiếu.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:distance">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:focal-length quy định chiều dài của tiêu cự đối với
camera ảo của cảnh này cần sử dụng.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:focal-length">
<ref name="length"/>
</attribute>
</optional>
178
</define>
Shadow Slant
Thuộc tính dr3d:shadow-slant attribute xác định góc nghiêng mà đó từ
cảnh diễn 3D cho trang ảo sẽ được trình diễn.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:shadow-slant">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:shade-mode xác định chế độ bóng tùy theo cách thức bố
trí ánh sáng được tính toán đối với các bề mặt được đối tượng được chiếu.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:shade-mode">
<choice>
<value>flat</value>
<value>phong</value>
<value>gouraud</value>
<value>draft</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:ambient-color quy định mầu đối với bố trí ánh sáng xung
quanh. Bố trí ánh sáng xung quanh là bố trí ánh sáng giống như đến từ tất cả các
hướng.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:ambient-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:lighting-mode cho phép hoặc làm vô hiệu hóa việc sử
dụng ánh sáng trong cảnh ba chiều.
<xác định name="dr3d-scene-attlist" combine="interleave">
<optional>
<attribute name="dr3d:lighting-mode">
<ref name="boolean"/>
</attribute>
</optional>
</define>
179
Phần tử <dr3d:light> biểu diễn một mầu sáng nhạt trong một cảnh. Có thể
có một vài mầu sáng nhạt nhưng các ứng dụng chỉ có thể hỗ trợ một số hạn chế
trên mỗi cảnh và tối đa là 8 ánh sáng nhạt trên mỗi cảnh.
<xác định name="dr3d-light">
<element name="dr3d:light">
<ref name="dr3d-light-attlist"/>
<empty/>
</element>
</define>
Thuộc tính dr3d:direction quy định hướng mà trong đó ánh sáng nhạt đó
được phát ra.
<xác định name="dr3d-light-attlist" combine="interleave">
<attribute name="dr3d:direction">
<ref name="vector3D"/>
</attribute>
</define>
Thuộc tính dr3d:enabled quy định ánh sáng nhạt đó được phép hay không.
Nếu không có giá trị thuộc tính cho ánh sáng nhạt không được phép, thì nó
không tạo ra bất kỳ ánh sáng nhạt nào.
<xác định name="dr3d-light-attlist" combine="interleave">
<optional>
<attribute name="dr3d:enabled">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:specular quy định ánh sáng nhạt đó có gây ra một phản
chiếu trên các đối tượng hay không. Các ứng dụng có thể đánh giá thuộc tính
này chỉ đối với ánh sáng nhạt đầu tiên trong một cảnh.
<xác định name="dr3d-light-attlist" combine="interleave">
<optional>
<attribute name="dr3d:specular">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <dr3d:cube> biểu diễn một hình dạng khối ba chiều.
<xác định name="dr3d-cube">
<element name="dr3d:cube">
<ref name="dr3d-cube-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-layer-name-attlist"/>
<ref name="common-draw-style-name-attlist"/>
180
<ref name="common-dr3d-transform-attlist"/>
<empty/>
</element>
</define>
Các thuộc tính dr3d:min-edge và dr3d:max-edge quy định cạnh nhỏ nhất
và lớn nhất của hình khối trong một không gian 3D.
<xác định name="dr3d-cube-attlist" combine="interleave">
<optional>
<attribute name="dr3d:min-edge">
<ref name="vector3D"/>
</attribute>
</optional>
<optional>
<attribute name="dr3d:max-edge">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Phần tử <dr3d:sphere> biểu diễn một hình dạng đối tượng hình cầu ba
chiều.
<xác định name="dr3d-sphere">
<element name="dr3d:sphere">
<ref name="dr3d-sphere-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-layer-name-attlist"/>
<ref name="common-draw-style-name-attlist"/>
<ref name="common-dr3d-transform-attlist"/>
<empty/>
</element>
</define>
Thuộc tính dr3d:center xác định tâm của hình cầu trong một không gian
ba chiều.
<xác định name="dr3d-sphere-attlist" combine="interleave">
<optional>
<attribute name="dr3d:center">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:size xác định kích thước của hình cầu trong một không
gian ba chiều.
<xác định name="dr3d-sphere-attlist" combine="interleave">
<optional>
181
<attribute name="dr3d:size">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Phần tử <dr3d:extrude> biểu diễn một phần lồi của đối tượng 3D dựa trên
cơ sở một đa giác.
<xác định name="dr3d-extrude">
<element name="dr3d:extrude">
<ref name="common-draw-path-data-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-layer-name-attlist"/>
<ref name="common-draw-style-name-attlist"/>
<ref name="common-dr3d-transform-attlist"/>
<empty/>
</element>
</define>
Phần tử <dr3d:rotate> biểu diễn một hình dạng tròn xoay ba chiều dựa
trên cơ sở một đa giác.
<xác định name="dr3d-rotate">
<element name="dr3d:rotate">
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-path-data-attlist"/>
<ref name="common-draw-z-index-attlist"/>
<ref name="common-draw-id-attlist"/>
<ref name="common-draw-layer-name-attlist"/>
<ref name="common-draw-style-name-attlist"/>
<ref name="common-dr3d-transform-attlist"/>
<empty/>
</element>
</define>
9.5. Các hình dạng tự tạo của người sử dụng
Phần tử <draw:custom-shape> biểu diễn một hình dạng có khả năng biến
đổi ba chiều cho các hình phức tạp tự tạo của người dùng.
<xác định name="draw-custom-shape">
<element name="draw:custom-shape">
<ref name="draw-custom-shape-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>

182
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<ref name="draw-glue-point"/>
</zeroOrMore>
<ref name="draw-text"/>
<optional>
<ref name="draw-enhanced-geometry"/>
</optional>
</element>
</define>
Thuộc tính draw:engine tùy chọn quy định tên của một phương tiện biến
đổi ba chiều có thể được sử dụng để hoàn lại hình dạng của người sử dụng.
<xác định name="draw-custom-shape-attlist" combine="interleave">
<optional>
<attribute name="draw:engine">
<ref name="namespacedToken"/>
</attribute>
</optional>
</define>
Thuộc tính draw:data bao gồm dữ liệu cụ thể của phương tiện biến đổi ba
chiều mô tả hình học của hình dạng của người sử dụng. Thuộc tính này chỉ được
đánh giá nếu một phương tiện biến đổi ba chiều không mặc định được quy định
bởi thuộc tính draw:engine.
<xác định name="draw-custom-shape-attlist" combine="interleave">
<optional>
<attribute name="draw:data">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <draw:enhanced-geometry> xác định các đối tượng hình học
nâng cao cần sử dụng để tạo ra các hình vẽ.
<xác định name="draw-enhanced-geometry">
<element name="draw:enhanced-geometry">
<ref name="draw-enhanced-geometry-attlist"/>
<zeroOrMore>
<ref name="draw-equation"/>
</zeroOrMore>
<zeroOrMore>
<ref name="draw-handle"/>
</zeroOrMore>
</element>
</define>
183
Thuộc tính draw:type xác định tên của một kiểu hình dạng sử dụng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:type" a:defaultValue="non-primitive">
<ref name="custom-shape-type"/>
</attribute>
</optional>
</define>
<xác định name="custom-shape-type">
<choice>
<value>non-primitive</value>
<ref name="string"/>
</choice>
</define>
Thuộc tính svg:viewBox thiết lập một hệ tọa độ của người sử dụng bên
trong hệ tọa độ vật lý của hình dạng được quy định bởi các thuộc tính vị trí và
kích thước của nó.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="svg:viewBox">
<list>
<ref name="integer"/>
<ref name="integer"/>
<ref name="integer"/>
<ref name="integer"/>
</list>
</attribute>
</optional>
</define>
Các thuộc tính draw:mirror-vertical và draw:mirror-horizontal quy định
kiểu dạng hình học của hình dạng được phản chiếu gương thẳng đứng và gương
nằm ngang.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:mirror-vertical" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="draw:mirror-horizontal" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
184
Thuộc tính draw:text-rotate-angle quy định góc bằng văn bản trong hình
dạng của người sử dụng được quay bổ sung cho sự quay được chứa trong thuộc
tính draw:transform của hình dạng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:text-rotate-angle" a:defaultValue="0">
<ref name="double"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-allowed quy định hình dạng có khả năng được
hoàn lại như đối tượng đẩy ra.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-allowed" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:text-path-allowed quy định khả năng được hoàn lại của
đối tượng đường dẫn văn bản trong tài liệu.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:text-path-allowed" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:concentric-gradient-fill-allowed quy định khả năng được
hoàn lại với một độ dốc đồng tâm sử dụng hình dạng của đường dẫn do người sử
dụng xác định.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:concentric-gradient-fill-allowed"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion xác định nếu một sự đẩy ra được hiển thị.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion" a:defaultValue="false">
<ref name="boolean"/>
185
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-brightness quy định độ sáng của một cảnh.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-brightness" a:defaultValue="33%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-depth quy định chiều sâu của việc đẩy ra.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-depth" a:defaultValue="36pt 0">
<list>
<ref name="length"/>
<ref name="double"/>
</list>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-diffusion qui định tổng lượng khuếch tán được
phản chiếu bởi hình dạng đối tượng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-diffusion" a:defaultValue="0%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-number-of-line-segments quy định số các đoạn
đường thẳng nên được sử dụng để hiển thị các bề mặt cong.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-number-of-line-segments"
a:defaultValue="30">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-light-face quy định sự thay đổi ánh sáng của
các mặt đối tượng hình vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
186
<optional>
<attribute name="draw:extrusion-light-face" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-first-light-harsh quy định ánh sáng nhạt đầu
tiên của đối tượng hình vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-first-light-harsh"
a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-second-light-harsh attribute quy định ánh sáng
nhạt thứ hai của đối tượng hình vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-second-light-harsh"
a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-first-light-level quy định cường độ đối với ánh
sáng nhạt đầu tiên.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-first-light-level"
a:defaultValue="66%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-second-light-level quy định cường độ đối với
ánh sáng nhạt thứ hai.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-second-light-level"
a:defaultValue="66%">
<ref name="percent"/>
</attribute>
187
</optional>
</define>
Thuộc tính draw:extrusion-first-light-direction quy định hướng của ánh
sáng nhạt đầu tiên.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-first-light-direction"
a:defaultValue="(5 0 1)">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-second-light-direction quy định hướng của ánh
sáng nhạt thứ hai.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-second-light-direction"
a:defaultValue="(-5 0 1)">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-metal quy định sự hiển thị bề mặt của đối
tượng đẩy ra trông giống kim loại.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-metal" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:shade-mode xác định cách thức bố trí ánh sáng tính toán
cho các bề mặt được hoàn lại.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="dr3d:shade-mode" a:defaultValue="flat">
<choice>
<value>flat</value>
<value>phong</value>
<value>gouraud</value>
<value>draft</value>
</choice>
</attribute>
</optional>
188
</define>
Thuộc tính của draw:extrusion-rotation-angle quy định giá trị góc quay
của đối tượng hình vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-rotation-angle" a:defaultValue="0 0">
<list>
<ref name="double"/>
<ref name="double"/>
</list>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-rotation-center quy định vị trí tâm của việc
quay của các đối tượng hình vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-rotation-center">
<ref name="vector3D"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-shininess quy định sự bóng sáng của một đối
tượng theo gương.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-shininess" a:defaultValue="50%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-skew quy định mức độ nghiêng và góc
nghiêng của một đối tượng đẩy ra. Các thiết lập mặt nghiêng chỉ được áp dụng
nếu thuộc tính dr3d:projection có giá trị là song song.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-skew" a:defaultValue="50 45">
<list>
<ref name="double"/>
<ref name="double"/>
</list>
</attribute>
</optional>
</define>
189
Thuộc tính draw:extrusion-specularity quy định tính phản chiếu của một
đối tượng đẩy ra.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-specularity" a:defaultValue="0%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:projection quy định chế độ thực hiện phép chiếu là hình
phối cảnh hoặc song song.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="dr3d:projection" a:defaultValue="parallel">
<choice>
<value>parallel</value>
<value>perspective</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:extrusion-viewpoint quy định vị trí điểm quan sát của
người quan sát trong không gian 3D.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-viewpoint"
a:defaultValue="3.5cm -3.5cm 25cm">
<ref name="point3D"/>
</attribute>
</optional>
</define>
<xác định name="point3D">
<data type="string"/>
</define>
Thuộc tính draw:extrusion-origin quy định nguồn gốc của đối tượng trong
hộp giới hạn của hình dạng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-origin" a:defaultValue="0.5 -0.5">
<list>
<ref name="double"/>
<ref name="double"/>
</list>
</attribute>
190
</optional>
</define>
Thuộc tính draw:extrusion-color quy định mầu sắc của việc đẩy ra được
sử dụng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:extrusion-color" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:enhanced-path quy định một đường dẫn tương tự với
thuộc tính svg:d của phần tử <svg:path>.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:enhanced-path">
<ref name="string"/>
</attribute>
</optional>
</define>
Các thuộc tính draw:path-stretchpoint-x và draw:path-stretchpoint-y quy
định tọa độ điểm căng của một hình dạng sử dụng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:path-stretchpoint-x" a:defaultValue="0">
<ref name="double"/>
</attribute>
</optional>
<optional>
<attribute name="draw:path-stretchpoint-y" a:defaultValue="0">
<ref name="double"/>
</attribute>
</optional>
</define>
Thuộc tính draw:glue-point-leaving-directions qui định một danh sách các
góc xác định hướng của điểm gắn được tham chiếu của đối tượng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:glue-point-leaving-directions"/>
</optional>
</define>
Thuộc tính draw:text-path quy định một đường dẫn văn bản cần hiển thị
trên bản vẽ.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
191
<optional>
<attribute name="draw:text-path" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:text-path-scale quy định thang tỷ lệ của đường dẫn văn
bản cần sử dụng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:text-path-scale" a:defaultValue="path">
<choice>
<value>path</value>
<value>shape</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:text-path-same-letter-heights quy định toàn bộ các chữ
cái trong hình dạng của người sử dụng có cùng chiều cao.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:text-path-same-letter-heights"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:modifiers bao gồm danh sách các giá trị bổ nghĩa cho đối
tượng sử dụng.
<xác định name="draw-enhanced-geometry-attlist" combine="interleave">
<optional>
<attribute name="draw:modifiers">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <draw:equation> qui định đẳng thức toán học được tham chiếu
bởi các trình điều khiển, các vùng văn bản, các điểm gắn lại và các đường tăng
cường để tính toán các giá trị phụ thuộc vào các giá trị bổ nghĩa.
<xác định name="draw-equation">
<element name="draw:equation">
<ref name="draw-equation-attlist"/>
<empty/>
192
</element>
</define>
Phần tử <draw:handle> quy định một trình điều khiển tương tác đơn.
<xác định name="draw-handle">
<element name="draw:handle">
<ref name="draw-handle-attlist"/>
<empty/>
</element>
</define>
Thuộc tính draw:handle-mirror-vertical quy định vị trí gương thẳng đứng
của trình điều khiển được phản chiếu.
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-mirror-vertical" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-mirror-horizontal quy định vị trí gương nằm
ngang của trình điều khiển được phản chiếu.
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-mirror-horizontal" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-switched quy định các hướng của trình điều
khiển được trao đổi nếu chiều cao hình dạng cao hơn chiều rộng hình dạng.
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-switched" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-position quy định vị trí của trình điều khiển.
<xác định name="draw-handle-attlist" combine="interleave">
<attribute name="draw:handle-position">
<ref name="string"/>
</attribute>
</define>
Thuộc tính draw:handle-range-x-minimum quy định giá trị nhỏ nhất theo
chiều ngang của dải trình điều khiển có thể được di chuyển vào.
193
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-range-x-minimum">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-range-x-maximum quy định giá trị lớn nhất theo
phương ngang của dải trình điều khiển có thể dịch chuyển vào
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-range-x-maximum">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-range-y-minimum quy định giá trị nhỏ nhất theo
phương thẳng đứng của dải trình điều khiển có thể được dịch chuyển vào
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-range-y-minimum">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:handle-range-y-maximum quy định gia trị lớn nhất theo
phương thẳng đứng của dải trình điều khiển có thể được dịch chuyển vào.
<xác định name="draw-handle-attlist" combine="interleave">
<optional>
<attribute name="draw:handle-range-y-maximum">
<ref name="string"/>
</attribute>
</optional>
</define>
9.6. Hình dạng trình diễn
Hình dạng trình diễn là các hình dạng hình vẽ của hộp văn bản đặc biệt,
ảnh, đối tượng hoặc các hình nhỏ được chứa trong một cảnh trình diễn. Phần tử
<presentation-classes> qui định xếp loại trình diễn sử dụng.
<xác định name="presentation-shape-attlist" combine="interleave">
<optional>
<attribute name="presentation:class">
<ref name="presentation-classes"/>
</attribute>

194
</optional>
</define>
<xác định name="presentation-classes">
<choice>
<value>title</value>
<value>outline</value>
<value>subtitle</value>
<value>text</value>
<value>graphic</value>
<value>object</value>
<value>chart</value>
<value>table</value>
<value>orgchart</value>
<value>page</value>
<value>notes</value>
<value>handout</value>
<value>header</value>
<value>footer</value>
<value>date-time</value>
<value>page-number</value>
</choice>
</define>
Thuộc tính presentation:placeholder xác định một hình dạng là một trình
giữ chỗ hoặc một đối tượng trình diễn với nội dung hiện tại.
<xác định name="presentation-shape-attlist" combine="interleave">
<optional>
<attribute name="presentation:placeholder">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:user-transformed quy định kích thước và vị trí
hình vẽ do người sử dụng chuyển đổi dạng trình diễn tương ứng trên trang chủ.
<xác định name="presentation-shape-attlist" combine="interleave">
<optional>
<attribute name="presentation:user-transformed">
<ref name="boolean"/>
</attribute>
</optional>
</define>
9.7. Các hoạt ảnh trình diễn
Phần tử <presentation:animations> là một phần tử tùy chọn, chứa các hiệu
ứng hoạt ảnh sẽ sử dụng.

195
<xác định name="presentation-animations">
<element name="presentation:animations">
<zeroOrMore>
<choice>
<ref name="presentation-animation-elements"/>
<ref name="presentation-animation-group"/>
</choice>
</zeroOrMore>
</element>
</define>
<xác định name="presentation-animation-elements">
<choice>
<ref name="presentation-show-shape"/>
<ref name="presentation-show-text"/>
<ref name="presentation-hide-shape"/>
<ref name="presentation-hide-text"/>
<ref name="presentation-dim"/>
<ref name="presentation-play"/>
</choice>
</define>
Phần tử <presentation:sound> chứa tất cả các tham số hiệu ứng hoạt ảnh
hỗ trợ âm thanh sử dụng.
<xác định name="presentation-sound">
<element name="presentation:sound">
<ref name="presentation-sound-attlist"/>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<choice>
<value>simple</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
<choice>
<value>onRequest</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="xlink:show">
196
<choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <presentation:show-shape> quy định sự hiển thị của hình dạng sử
dụng trên trang tài liệu trình diễn.
<xác định name="presentation-show-shape">
<element name="presentation:show-shape">
<ref name="common-presentation-effect-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Thuộc tính draw:shape-id quy định chỉ số của hình dạng sử dụng.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<attribute name="draw:shape-id">
<ref name="IDREF"/>
</attribute>
</define>
Thuộc tính presentation:effect quy định kiểu hiệu ứng trình diễn.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:effect" a:defaultValue="none">
<ref name="presentationEffects"/>
</attribute>
</optional>
</define>
<xác định name="presentationEffects">
<choice>
<value>none</value>
<value>fade</value>
<value>move</value>
<value>stripes</value>
<value>open</value>
<value>close</value>
<value>dissolve</value>
<value>wavyline</value>
<value>random</value>
197
<value>lines</value>
<value>laser</value>
<value>appear</value>
<value>hide</value>
<value>move-short</value>
<value>checkerboard</value>
<value>rotate</value>
<value>stretch</value>
</choice>
</define>
Thuộc tính presentation:direction quy định hướng của hiệu ứng trình diễn.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:direction" a:defaultValue="none">
<ref name="presentationEffectDirections"/>
</attribute>
</optional>
</define>
<xác định name="presentationEffectDirections">
<choice>
<value>none</value>
<value>from-left</value>
<value>from-top</value>
<value>from-right</value>
<value>from-bottom</value>
<value>from-center</value>
<value>from-upper-left</value>
<value>from-upper-right</value>
<value>from-lower-left</value>
<value>from-lower-right</value>
<value>to-left</value>
<value>to-top</value>
<value>to-right</value>
<value>to-bottom</value>
<value>to-upper-left</value>
<value>to-upper-right</value>
<value>to-lower-right</value>
<value>to-lower-left</value>
<value>path</value>
<value>spiral-inward-left</value>
<value>spiral-inward-right</value>
<value>spiral-outward-left</value>
<value>spiral-outward-right</value>
<value>vertical</value>
198
<value>horizontal</value>
<value>to-center</value>
<value>theo chiều kim đồng hồ</value>
<value>counter-theo chiều kim đồng hồ</value>
</choice>
</define>
Thuộc tính presentation:speed quy định tốc độ của hiệu ứng trình diễn.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:speed" a:defaultValue="medium">
<ref name="presentationSpeeds"/>
</attribute>
</optional>
</define>
<xác định name="presentationSpeeds">
<choice>
<value>slow</value>
<value>medium</value>
<value>fast</value>
</choice>
</define>
Thuộc tính presentation:delay quy định độ trễ trước khi một hiệu ứng
trình diễn bắt đầu và sau khi hiệu ứng trước đó đã kết thúc.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:delay">
<ref name="duration"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:start-scale quy định kích thước bắt đầu của hình
dạng theo một tỷ lệ phần trăm của kích thước gốc của nó khi trình diễn.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:start-scale" a:defaultValue="100%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:path-id quy định chỉ số id đường dẫn tham chiếu
trong khoảng thời gian trình diễn.
<xác định name="common-presentation-effect-attlist" combine="interleave">
<optional>
<attribute name="presentation:path-id"/>
199
</optional>
</define>
Phần tử <presentation:show-text> quy định sự hiển thị của văn bản một
cách tự động trước khi hiệu ứng trình diễn được thực thi.
<xác định name="presentation-show-text">
<element name="presentation:show-text">
<ref name="common-presentation-effect-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Phần tử <presentation:hide-shape> quy định sự ẩn, hiện của hình dạng khi
trình diễn.
<xác định name="presentation-hide-shape">
<element name="presentation:hide-shape">
<ref name="common-presentation-effect-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Phần tử <presentation:hide-text> quy định việc ẩn đi của văn bản khi trình
diễn thực hiện.
<xác định name="presentation-hide-text">
<element name="presentation:hide-text">
<ref name="common-presentation-effect-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Phần tử <presentation:dim> quy định kích cỡ một hình dạng sử dụng
trong trình diễn.
<xác định name="presentation-dim">
<element name="presentation:dim">
<ref name="presentation-dim-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Phần tử <presentation:play> quy định bắt đầu chạy các hoạt ảnh của một
hình dạng trong trình diễn.
200
<xác định name="presentation-play">
<element name="presentation:play">
<ref name="presentation-play-attlist"/>
<empty/>
</element>
</define>
Phần tử <presentation:animation-group> quy định nhiều hiệu ứng hoạt
cảnh theo nhóm được xảy ra tại cùng thời điểm khi trình diễn.
<xác định name="presentation-animation-group">
<element name="presentation:animation-group">
<zeroOrMore>
<ref name="presentation-animation-elements"/>
</zeroOrMore>
</element>
</define>
Thuộc tính presentation:preset-sub-type quy định kiểu phụ của thiết lập
sẵn có được sử dụng để tạo ra các phần tử hoạt ảnh trong trình diễn.
<xác định name="common-anim-attlist" combine="interleave">
<optional>
<attribute name="presentation:preset-sub-type">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:preset-class quy định lớp phân loại của định dạng
sẵn có được sử dụng để tạo ra phần tử hoạt ảnh trong trình diễn.
<xác định name="common-anim-attlist" combine="interleave">
<optional>
<attribute name="presentation:preset-class" a:defaultValue="custom">
<choice>
<value>custom</value>
<value>entrance</value>
<value>exit</value>
<value>emphasis</value>
<value>motion-path</value>
<value>ole-action</value>
<value>media-call</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính presentation:master-element quy định yếu tố chủ đạo của một
phần tử hoạt cảnh trong trình diễn.
<xác định name="common-anim-attlist" combine="interleave">
201
<optional>
<attribute name="presentation:master-element">
<ref name="IDREF"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:group-id quy định một chỉ số ID cho nhóm đối
tượng hoạt ảnh trong trình diễn.
<xác định name="common-anim-attlist" combine="interleave">
<optional>
<attribute name="presentation:group-id">
<ref name="string"/>
</attribute>
</optional>
</define>
9.8. Các sự kiện trình diễn
Nhiều đối tượng trong một tài liệu trình diễn hỗ trợ các sự kiện trình diễn
đặc biệt. Thông dụng nhất là sự kiện thính giả, được khai báo như sau:
<xác định name="presentation-event-listener">
<element name="presentation:event-listener">
<ref name="presentation-event-listener-attlist"/>
<optional>
<ref name="presentation-sound"/>
</optional>
</element>
</define>
Thuộc tính script:event-name quy định tên của sự kiện.
<xác định name="presentation-event-listener-attlist" combine="interleave">
<attribute name="script:event-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính presentation:verb quy định sự thực thi sự kiện khi trình diễn.
<xác định name="presentation-event-listener-attlist" combine="interleave">
<optional>
<attribute name="presentation:verb">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
9.9. Các trường văn bản trình diễn
Phần tử <presentation:header> quy định hiển thị văn bản tiêu đề đầu
trang khi trình diễn thực hiện.
202
<xác định name="paragraph-content" combine="choice">
<element name="presentation:header">
<empty/>
</element>
</define>
Phần tử <presentation:footer> quy định hiển thị nội dung văn bản cuối
trang đã khai báo tại trường cuối trang khi trình diễn thực hiện.
<xác định name="paragraph-content" combine="choice">
<element name="presentation:footer">
<empty/>
</element>
</define>
Phần tử <presentation:date-time> quy định hiển thị các trường ngày tháng
và thời gian đã khai báo trong trường ngày tháng/thời gian khi trình diễn.
<xác định name="paragraph-content" combine="choice">
<element name="presentation:date-time">
<empty/>
</element>
</define>
9.10. Nội dung tài liệu trình diễn
Phần tử <presentation:header-decl> quy định văn bản của một trường đầu
trang khai báo khi trình diễn.
<xác định name="presentation-decl" combine="choice">
<element name="presentation:header-decl">
<ref name="presentation-header-decl-attlist"/>
<text/>
</element>
</define>
Thuộc tính Presentation:name quy định tên của khai báo đầu trang.
<xác định name="presentation-header-decl-attlist" combine="interleave">
<attribute name="presentation:name">
<ref name="string"/>
</attribute>
</define>
Phần tử <presentation:footer-decl> quy định văn bản của một trường cuối
trang khai báo khi trình diễn.
<xác định name="presentation-decl" combine="choice">
<element name="presentation:footer-decl">
<ref name="presentation-footer-decl-attlist"/>
<text/>
</element>
</define>
Thuộc tính presentation:name quy định tên của khai báo cuối trang.

203
<xác định name="presentation-footer-decl-attlist" combine="interleave">
<attribute name="presentation:name">
<ref name="string"/>
</attribute>
</define>
Phần tử <presentation:date-time-decl>quy định văn bản của một trường
ngày tháng, thời gian cần khai báo khi trình diễn.
<xác định name="presentation-decl" combine="choice">
<element name="presentation:date-time-decl">
<ref name="presentation-date-time-decl-attlist"/>
<text/>
</element>
</define>
Thuộc tính presentation:name quy định tên của khai báo ngày tháng, thời
gian.
<xác định name="presentation-date-time-decl-attlist" combine="interleave">
<attribute name="presentation:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính presentation:source quy định nguồn thông tin cho ngày tháng,
thời gian hiện tại hoặc nội dung cố định của khai báo được hiển thị.
<xác định name="presentation-date-time-decl-attlist" combine="interleave">
<attribute name="presentation:source">
<choice>
<value>fixed</value>
<value>current-date</value>
</choice>
</attribute>
</define>
Phần tử <presentation:settings> quy định các tham số hoạt động nếu tài
liệu được hiển thị trong một trình diễn.
<xác định name="presentation-settings">
<optional>
<element name="presentation:settings">
<ref name="presentation-settings-attlist"/>
<zeroOrMore>
<ref name="presentation-show"/>
</zeroOrMore>
</element>
</optional>
</define>
Thuộc tính presentation:start-page quy định tên của trang bắt đầu trình
diễn.
204
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:start-page">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:show quy định sự hiện thị được sử dụng cho trình
diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:show">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:full-screen xác định trình diễn được thực hiện
trong chế độ hiển thị hết màn hình hoặc một cửa sổ.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:full-screen" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:endless quy định sự chuyển động lặp lại không
xác định của một trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:endless" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:pause quy định khoảng thời gian tạm dừng đối
với việc hiển thị trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:pause">
<ref name="duration"/>
</attribute>
</optional>
</define>

205
Thuộc tính presentation:show-logo quy định một ứng dụng trình diễn có
hiện biểu tượng lôgô của nó trên màn hình khi hiển thị.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:show-logo" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:force-manual quy định việc xác định các đặc tính
của trang trình diễn không tự động mà đặt nó bằng tay.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:force-manual" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:mouse-visible quy định con trỏ chuột có hiện thị
hay không trong khoảng thời gian trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:mouse-visible" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:mouse-as-pen quy định con trỏ chuột được hiển
thị như một cây bút trong khoảng thời gian trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:mouse-as-pen" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:start-with-navigator quy định cửa sổ điều hướng
được hiển thị ban đầu trong khoảng trình diễn hay không.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:start-with-navigator"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
206
</optional>
</define>
Thuộc tính presentation:animations cho phép thực hiện hoặc làm vô hiệu
hóa việc thao tác các hoạt ảnh ảnh bitmap trong khoảng thời gian trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:animations" a:defaultValue="enabled">
<choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính presentation:transition-on-click cho phép thực hiện hoặc làm
vô hiệu hóa sự chuyển tiếp nội dung bằng một nhấp phím chuột trong khoảng
thời gian trình diễn.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:transition-on-click"
a:defaultValue="enabled">
<choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính presentation:stay-on-top quy định sự giữ nguyên cửa sổ trình
diễn được hiển thị trên đỉnh của các của sổ khác trong khoảng thời gian trình
diễn thực hiện.
<xác định name="presentation-settings-attlist" combine="interleave">
<optional>
<attribute name="presentation:stay-on-top" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính presentation:pages bao gồm một danh sách tên các trang được
phân tách bởi dấu phẩy sẽ được hiển thị theo thứ tự mà trong đó chúng được liệt
kê trong khoảng trình diễn.
<xác định name="presentation-show-attlist" combine="interleave">
<attribute name="presentation:pages"/>
</define>
207
10. Nội dung biểu đồ
10.1. Giới thiệu về tài liệu biểu đồ
Các tài liệu không đưa ra dữ liệu cho biểu đồ (Chart) gồm: Dữ liệu biểu
đồ được chứa trong một phần tử <table:table> bên trong phần tử <chart:chart>.
Các tài liệu đưa ra dữ liệu cho biểu đồ gồm: Dữ liệu số được chứa trong một tài
liệu gốc, trong một tài liệu văn bản hoặc bảng tính. Tài liệu biểu đồ được quy
định bởi thuộc tính table:cell-range-address của phần tử <chart:plot-area> và sẽ
được trình bày chi tiết ở phần sau.
10.2. Biểu đồ
Phần tử <chart:chart> biểu diễn một biểu đồ tổng thể, bao gồm các tiêu
đề, một chú giải và đối tượng minh họa dữ liệu.
<define name="chart-chart">
<element name="chart:chart">
<ref name="chart-chart-attlist"/>
<optional>
<ref name="chart-title"/>
</optional>
<optional>
<ref name="chart-subtitle"/>
</optional>
<optional>
<ref name="chart-footer"/>
</optional>
<optional>
<ref name="chart-legend"/>
</optional>
<ref name="chart-plot-area"/>
<optional>
<ref name="table-table"/>
</optional>
</element>
</define>
Thuộc tính chart:class quy định kiểu biểu đồ sử dụng.
<define name="chart-chart-attlist" combine="interleave">
<attribute name="chart:class">
<ref name="namespacedToken"/>
</attribute>
</define>
Các kiểu biểu đồ thông dụng đã được xác định trước gồm:
+ line – các điểm dữ liệu của mỗi dãy dữ liệu được kết nối thông qua các
đường thẳng.
+ area – vùng bên dưới một dãy dữ liệu được điền đầy và dãy dữ liệu bổ
sung được đặt vào ngăn xếp.
208
+ circle – một biểu đồ hình tròn được phân đoạn theo các tỷ trọng tương
đồi của các điểm dữ liệu.
+ ring – mỗi dãy dữ liệu được biểu diễn như các vòng tròn đồng tâm, với
mỗi vòng tròn được hoàn lại như thể nó là một phần của một biểu đồ đường tròn
của dãy đó.
+ scatter – một cặp dãy dữ liệu được sử dụng để xác minh các vị trí x và y
đối với mỗi điểm dữ liệu.
+ radar – một hình xuyên tâm của các điểm dữ liệu, mà ở đó giá trị của
mỗi điểm xác minh khoảng cách từ biểu đồ gốc. Các điểm dữ liệu của một dãy
được kết nối, vì vậy hình thành một đường đóng quanh tâm.
+ bar – mỗi điểm dữ liệu được miêu tả bởi một thanh mà độ dài của nó tỷ
lệ với giá trị dữ liệu.
+ stock – bốn dãy dữ liệu được giải nghĩa như các giá trị cung cấp mở,
nhỏ nhất, lớn nhất và đóng.
+ bubble – hai dãy đầu tiên trong ba dãy dữ liệu được giải nghĩa một trong các
vị trí trong một biểu đồ tán xạ, mà ở đây vùng của mỗi điểm dữ liệu có kích
thước liên quan đến giá trị trong dãy dữ liệu thứ ba.
+ surface –các điểm dữ liệu được giải nghĩa như dữ liệu trình bày thành
bảng, ở đây mỗi giá trị xác định một 'chiều cao' tại một vị trí trong khung cụ thể.
Đồ thị có thể ảo hóa các điểm này có sử dụng các mầu đối với các khoảng chiều
cao, việc tạo ra các dải mầu tương tự như các bản đồ địa lý.
+ gantt – một cặp dãy dữ liệu được sử dụng để xác minhcác vị trí bắt đầu
và kết thúc đối với các thanh ngang.
Thuộc tính chart:column-mapping và chart:row-mapping xác định danh
sách các hàng và cột sẽ cung cấp dữ liệu cho biểu đồ.
<define name="chart-chart-attlist" combine="interleave">
<optional>
<attribute name="chart:column-mapping">
<ref name="string"/>
</attribute>
</optional>
</define>
<define name="chart-chart-attlist" combine="interleave">
<optional>
<attribute name="chart:row-mapping">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính chart:style-name quy định tham chiếu một kiểu biểu đồ.
<define name="chart-chart-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
209
</attribute>
</optional>
</define>
10.3. Tiêu đề chính, tiêu đề nhỏ và phần cuối trang
Phần tử <chart:title> biểu diễn một đối tượng tiêu đề chính trong một tài
liệu biểu đồ. Phần tử này có thể bao gồm văn bản cố định hoặc nó có thể bao
gồm một phần tử <table:cell-address> để trỏ tới văn bản được hiển thị tiêu đề.
<define name="chart-title">
<element name="chart:title">
<ref name="chart-title-attlist"/>
<optional>
<ref name="text-p"/>
</optional>
</element>
</define>
Phần tử <table:cell-address> trỏ tới địa chỉ một ô của bảng mà nội dung
hiện thời của ô đó được hiển thị trong tiêu đề của biểu đồ.
<define name="chart-title-attlist" combine="interleave">
<optional>
<attribute name="table:cell-range">
<ref name="cellAddress"/>
</attribute>
</optional>
</define>
Thuộc tính chart:style-name quy định tên loại tiêu đề biểu đồ.
<define name="chart-title-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Phần tử <chart:subtitle> biểu diễn một tiêu đề phụ trong một biểu đồ. Cấu
trúc và thuộc tính của phần tử <chart:subtitle> cũng giống như của phần tử
<chart:title> nêu trên.
<define name="chart-subtitle">
<element name="chart:subtitle">
<ref name="chart-title-attlist"/>
<optional>
<ref name="text-p"/>
</optional>
</element>
</define>

210
Phần tử <chart:footer> biểu diễn một phần tiêu đề cuối trang dưới vùng
hình vẽ của biểu đồ. Các thuộc tính của phần tử này cũng tương tự như phần tử
<chart:title> nêu trên.
<define name="chart-footer">
<element name="chart:footer">
<ref name="chart-title-attlist"/>
<optional>
<ref name="text-p"/>
</optional>
</element>
</define>
10.4. Chú giải
Phần tử <chart:legend> xác định một chú giải có được hiển thị trong biểu
đồ hay không. Vị trí của chú giải đó có thể được quy định như một vị trí tương
đối hoặc như một ví trí tuyệt đối trên trang tài liệu.
<define name="chart-legend">
<element name="chart:legend">
<ref name="chart-legend-attlist"/>
<empty/>
</element>
</define>
Thuộc tính chart:legend-position quy định vị trí của chú giải trong vùng
hình vẽ và thuộc tính chart:legend-align sẽ xác định sự căn chỉnh của chú giải.
<define name="chart-legend-attlist" combine="interleave">
<choice>
<group>
<attribute name="chart:legend-position">
<value>start</value>
<value>end</value>
<value>top</value>
<value>bottom</value>
</choice>
</attribute>
<optional>
<attribute name="chart:legend-align">
<choice>
<value>center</value>
<value>end</value>
</choice>
</attribute>
</group>
<attribute name="chart:legend-position">
<choice>

211
<value>top-start</value>
<value>bottom-start</value>
<value>top-end</value>
<value>bottom-end</value>
</choice>
</attribute>
<empty/>
Thuộc tính style:legend-expansion xác định hướng mà trong đó chú giải
sẽ được mở rộng. Sự mở rộng chú giải theo chiều ngang và chiều dọc được qui
định theo tỷ lệ phù hợp với giá trí của thuộc tính style:legend-expansion-aspect-
ratio trong vùng hình vẽ biểu đồ.
<define name="chart-legend-attlist" combine="interleave">
<choice>
<attribute name="style:legend-expansion">
<choice>
<value>wide</value>
<value>high</value>
<value>balanced</value>
</choice>
</attribute>
<group>
<attribute name="style:legend-expansion">
<value>custom</value>
</attribute>
<attribute name="style:legend-expansion-aspect-ratio">
<ref name="double"/>
</attribute>
</group>
<empty/>
</choice>
</define>
Thuộc tính chart:style-name quy định tên của các đặc tính được áp dụng
cho đối tượng chú giải trong hình vẽ biểu đồ.
<define name="chart-legend-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.5. Vùng hình vẽ
Phần tử <chart:plot-area> quy định vùng đối tượng đồ họa biểu diễn dữ
liệu biểu đồ.

212
<define name="chart-plot-area">
<element name="chart:plot-area">
<ref name="chart-plot-area-attlist"/>
<zeroOrMore>
<ref name="dr3d-light"/>
</zeroOrMore>
<zeroOrMore>
<ref name="chart-axis"/>
</zeroOrMore>
<zeroOrMore>
<ref name="chart-series"/>
</zeroOrMore>
<optional>
<ref name="chart-stock-gain-marker"/>
</optional>
<optional>
<ref name="chart-stock-loss-marker"/>
</optional>
<optional>
<ref name="chart-stock-range-line"/>
</optional>
<optional>
<ref name="chart-wall"/>
</optional>
<optional>
<ref name="chart-floor"/>
</optional>
</element>
</define>
Vị trí và kích thước của vùng hình vẽ được xác định các thuộc tính định vị
và kích thước chung đối với các đối tượng hình vẽ.
<define name="chart-plot-area-attlist" combine="interleave">
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
</define>
Thuộc tính chart:style-name quy định tên kiểu biểu đồ được sử dụng cho
toàn bộ vùng hình vẽ biểu đồ.
<define name="chart-plot-area-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
213
Thuộc tính table:cell-range-address quy định địa chỉ dải ô dữ liệu sẽ sử
dụng cho biểu đồ.
<define name="chart-plot-area-attlist" combine="interleave">
<optional>
<attribute name="table:cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</define>
Nếu hàng hoặc cột đầu tiên hoặc cả hai bao gồm các nhãn, điều này được
khẳng định bởi thuộc tính Chart:data-source- has-labels.
<define name="chart-plot-area-attlist" combine="interleave">
<optional>
<attribute name="chart:data-source-has-labels" a:defaultValue="none">
<choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
10.6. Vách tường
Phần tử <chart:wall> quy định một vách (wall) của biểu đồ và có thể được
chứa trong phần tử <chart:plot-area>. Đối với các biểu đồ hai chiều, vách đo
khẩu độ toàn bộ vùng hình vẽ. Đối với các biểu đồ ba chiều, vách thường bao
gồm hai hình chữ nhật trực giao.
<define name="chart-wall">
<element name="chart:wall">
<ref name="chart-wall-attlist"/>
<empty/>
</element>
</define>
Các thuộc tính svg:width quy định chiều rộng của vách đối với các biểu
đồ ba chiều.
<define name="chart-wall-attlist" combine="interleave">
<optional>
<attribute name="svg:width">
<ref name="length"/>
</attribute>
</optional>
</define>

214
Thuộc tính chart:style-name quy định thông tin thêm về việc tạo tên kiểu
dáng biểu đồ.
<define name="chart-wall-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.7. Sàn
Phần tử <chart:floor> quy định sàn (floor) của biểu đồ và có thể được
chứa trong phần tử <chart:plot-area>. Đối với các biểu đồ ba chiều, phần tử
<chart:floor> có mặt để bổ sung cho phần tử <chart:wall>.
<define name="chart-floor">
<element name="chart:floor">
<ref name="chart-floor-attlist"/>
<empty/>
</element>
</define>
Thuộc tính svg:width có thể được sử dụng để thiết lập chiều rộng của sàn.
<define name="chart-floor-attlist" combine="interleave">
<optional>
<attribute name="svg:width">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính chart:style-name quy định thông tin thêm về việc tạo kiểu
dáng. Các đặc tính điền đầy và dự trữ có thể được áp dụng cho một sàn.
<define name="chart-floor-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.8. Trục tọa độ
Phần tử <chart:axis> bao gồm chủ yếu thông tin loại trục tọa độ của biểu
đồ, đặc biệt thông tin việc chọn thang tỷ lệ.
<define name="chart-axis">
<element name="chart:axis">
<ref name="chart-axis-attlist"/>
<optional>
215
<ref name="chart-title"/>
</optional>
<optional>
<ref name="chart-categories"/>
</optional>
<zeroOrMore>
<ref name="chart-grid"/>
</zeroOrMore>
</element>
</define>
Thuộc tính chart:dimension quy định về các chiều tọa độ mà trong đó biểu
đồ hiện thời được hiển thị. Nếu một trục tọa độ không được tham chiếu bởi một
dãy dữ liệu, nó trở thành một bản sao của một trục tọa độ đang tồn tại với cùng
chiều kích thước. Vị trí của một trục tọa độ trong một biểu đồ được xác định bởi
ứng dụng hoàn trả và phụ thuộc vào kiểu biểu đồ.
<define name="chart-axis-attlist" combine="interleave">
<attribute name="chart:dimension">
<choice>
<value>x</value>
<value>y</value>
<value>z</value>
</choice>
</attribute>
</define>
Thuộc tính chart:name có thể được sử dụng để ấn định một tên cho trục
tọa độ này, vì vậy nó có thể được tham chiều từ một dãy dữ liệu.
<define name="chart-axis-attlist" combine="interleave">
<optional>
<attribute name="chart:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính Chart:style-name có thể quy định một kiểu dáng dữ liệu được
sử dụng để định dạng các nhãn của trục tọa độ đó.
<define name="chart-axis-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Phần tử <chart:grid> qui định lưới tọa độ của biểu đồ và có thể được chứa
trong một phần tử <chart:axis>. Nó bổ sung một hệ khung cho trục tọa độ đó.
216
<define name="chart-grid">
<element name="chart:grid">
<ref name="chart-grid-attlist"/>
</element>
</define>
Thuộc tính chart:class quy định phân loại trục tọa độ biểu đồ chính yếu
hoặc thứ yếu được sử dụng. Nếu một khung lưới chính được áp dụng cho một
trục tọa độ, thì các nhãn kiểm tra chính yếu được mở rộng cho các đường khung
lưới. Nếu một khung lưới là thứ yếu, bất kỳ nhãn kiểm tra thứ yếu nào được ấn
định cho trục tọa độ được sử dụng.
<define name="chart-grid-attlist" combine="interleave">
<optional>
<attribute name="chart:class" a:defaultValue="major">
<choice>
<value>major</value>
<value>minor</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính chart:style-name quy định thông tin thêm về việc tạo kiểu
dáng, các đặc tính nét kẻ có thể được áp dụng cho các khung lưới, các đường
thẳng của khung lưới.
<define name="chart-grid-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.9. Dãy
Phần tử <chart:series> biểu diễn một dãy dữ liệu trong một biểu đồ.
<define name="chart-series">
<element name="chart:series">
<ref name="chart-series-attlist"/>
<zeroOrMore>
<ref name="chart-domain"/>
</zeroOrMore>
<optional>
<ref name="chart-mean-value"/>
</optional>
<optional>
<ref name="chart-regression-curve"/>

217
</optional>
<optional>
<ref name="chart-error-indicator"/>
</optional>
<zeroOrMore>
<ref name="chart-data-point"/>
</zeroOrMore>
</element>
</define>
Thuộc tính chart:values-cell-range-address cho phép một dải dữ liệu được
quy định các giá trị sẽ được biểu đồ hóa.
<define name="chart-series-attlist" combine="interleave">
<optional>
<attribute name="chart:values-cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</define>
Thuộc tính chart:label-cell-address cho phép một nhãn được cung cấp đối
với dãy ô dữ liệu.
<define name="chart-series-attlist" combine="interleave">
<optional>
<attribute name="chart:label-cell-address">
<ref name="cellAddress"/>
</attribute>
</optional>
</define>
Thuộc tính chart:class có thể được sử dụng để ấn định một kiểu biểu đồ
được sử dụng cho dữ liệu hoàn trả của phần tử <chart:series> này.
<define name="chart-series-attlist" combine="interleave">
<optional>
<attribute name="chart:class">
<ref name="namespacedToken"/>
</attribute>
</optional>
</define>
Thuộc tính chart:attached-axis có thể được sử dụng để ấn định dãy dữ liệu
cho một phần tử <chart:axis> sẽ gắn kèm.
<define name="chart-series-attlist" combine="interleave">
<optional>
<attribute name="chart:attached-axis">
<ref name="string"/>
</attribute>
</optional>
218
</define>
Thuộc tính chart:style-name quy định thông tin thêm về tạo kiểu dáng cho
trục tọa độ biểu đồ.
<define name="chart-series-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Phần tử <chart:domain> quy định các giá trị từ dải ô dữ liệu cho biểu đồ
tán xạ và biểu đồ bọt.
<define name="chart-domain">
<element name="chart:domain">
<optional>
<attribute name="table:cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</element>
</define>
10.10. Danh mục phân loại
Phần tử <chart:categories> biểu diễn dải các địa chỉ ô bao gồm các đoạn
chú thích đối với các danh mục phân loại được chứa trong mỗi dãy của biểu đồ.
<define name="chart-categories">
<element name="chart:categories">
<optional>
<attribute name="table:cell-range-address">
<ref name="cellRangeAddress"/>
</attribute>
</optional>
</element>
</define>
10.11. Điểm dữ liệu
Phần tử <chart:data-point> quy định biểu diễn một điểm dữ liệu đơn trong
một dãy dữ liệu biểu đồ.
<define name="chart-data-point">
<element name="chart:data-point">
<ref name="chart-data-point-attlist"/>
<empty/>
</element>
</define>

219
Thuộc tính chart:repeated quy định sự lặp lại một quá trình đơn giản hóa
khi có nhiều hơn một điểm dữ liệu liên tiếp có cùng các đặc tính.
<chart:series Chart:style-name="ch9">
<chart:data-point/>
<chart:data-point/>
<chart:data-point/>
<chart:data-point/>
</chart:series>

<chart:series Chart:style-name="ch9">
<chart:data-point Chart:repeated="4"/>
</chart:series>
<define name="chart-data-point-attlist" combine="interleave">
<optional>
<attribute name="chart:repeated">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính chart:style-name quy định tên tham chiếu một kiểu biểu đồ.
<define name="chart-data-point-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.12. Giá trị trung bình
Phần tử <chart:mean-value> quy định đặc tính định dạng của đường thẳng
giá trị trung bình được lưu trữ trong biểu đồ.
<define name="chart-mean-value">
<element name="chart:mean-value">
<ref name="chart-mean-value-attlist"/>
<empty/>
</element>
</define>
Thuộc tính chart:style-name quy định tên tham chiếu một kiểu biểu đồ
bao gồm các đặc tính định dạng đối với đường giá trị trung bình.
<define name="chart-mean-value-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>

220
</optional>
</define>
10.13. Chỉ báo lỗi
Phần tử <chart:error-indicator> quy định đặc tính định dạng của các chỉ
báo lỗi được lưu trữ trong các biểu đồ.
<define name="chart-error-indicator">
<element name="chart:error-indicator">
<ref name="chart-error-indicator-attlist"/>
<empty/>
</element>
</define>
Thuộc tính chart:style-name quy định tên tham chiếu một kiểu biểu đồ
bao gồm các đặc tính định dạng đối với chỉ báo lỗi.
<define name="chart-error-indicator-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
10.14. Đường cong hồi quy
Phần tử <chart:regression-curve> quy định đặc tính định dạng của các
đường thẳng hồi quy được lưu trữ trong các biểu đồ.
<define name="chart-regression-curve">
<element name="chart:regression-curve">
<ref name="chart-regression-curve-attlist"/>
<empty/>
</element>
</define>
Thuộc tính chart:style-name quy định tên tham chiếu một kiểu biểu đồ
kiểu hồi quy được quy định.
<define name="chart-regression-curve-attlist" combine="interleave">
<optional>
<attribute name="chart:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
11. Nội dung biểu mẫu
Một biểu mẫu là một phần tử chứa các điều khiển giao diện người sử
dụng mà một người sử dụng cần phải tương tác với. Các biểu mẫu được chứa
trong phần <office:forms> của một tài liệu XML. Phần tử này có thể bao gồm
221
một trình tự tùy ý của các phần tử <form:form> hoặc <xforms:model>. Chú ý
rằng các điều khiển luôn được khai báo bên trong một phần tử <form:form>,
trong khi một phần tử <xforms:model> chỉ bao gồm mô hình dữ liệu XForms.
Vì vậy, phần tử <office:forms> có thể chỉ bao gồm các phần tử <form:form> trừ
phần tử <xforms:model>, trong khi một <xforms:model> thông thường được
kèm theo bởi một phần tử <form:form> bổ sung.
<define name="office-forms">
<optional>
<element name="office:forms">
<ref name="office-forms-attlist"/>
<zeroOrMore>
<choice>
<ref name="form-form"/>
<ref name="xforms-model"/>
</choice>
</zeroOrMore>
</element>
</optional>
</define>
11.1. Biểu mẫu
Phần tử <form:form> biểu diễn một biểu mẫu giao diện người sử dụng và
xác định các nội dung và đặc tính của biểu mẫu. Phần tử này được chứa trong
một phần tử <office:forms> hoặc một phần tử <form:form>. Nó bao gồm các
điều khiển và các biểu mẫu con của biểu mẫu, một phần tử <form:properties>
mà xác định các đặc tính của biểu mẫu và một phần tử <office:events-listeners>
bao gồm các sự kiện đối với biểu mẫu.
<define name="form-form">
<element name="form:form">
<ref name="common-form-control-attlist"/>
<ref name="form-form-attlist"/>
<optional>
<ref name="form-properties"/>
</optional>
<optional>
<ref name="office-event-listeners"/>
</optional>
<zeroOrMore>
<choice>
<ref name="controls"/>
<ref name="form-form"/>
</choice>
</zeroOrMore>
<optional>

222
<ref name="form-connection-resource"/>
</optional>
</element>
</define>
Thuộc tính xlink:href biểu diễn IRI của việc xử lý các tác nhân đối với
biểu mẫu.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</optional>
</define>
Thuộc tính office:target-frame quy định khung đích của biểu mẫu.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="office:target-frame" a:defaultValue="_blank">
<ref name="targetFrameName"/>
</attribute>
</optional>
</define>
Thuộc tính form:method quy định phương pháp của HTTP sử dụng để đệ
trình dữ liệu trong biểu mẫu tới máy chủ.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:method" a:defaultValue="get">
<choice>
<value>get</value>
<value>post</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
223
Thuộc tính form:allow-deletes quy định các bản ghi dữ liệu có thể bị xóa
bỏ hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:allow-deletes" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:allow-inserts quy định các bản ghi dữ liệu mới có thể
được chèn hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:allow-inserts" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:allow-updates quy định các bản ghi dữ liệu có thể được
cập nhật hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:allow-updates" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:apply-filter quy định các bộ lọc có nên được áp dụng cho
biểu mẫu hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:apply-filter" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:command-type quy định kiểu lệnh để thực thi trên nguồn
dữ liệu. Giá trị của thuộc tính này có thể là một trong các giá trị sau đây:
• table: Câu lệnh bao gồm một tên bảng. biểu mẫu khôi phục tất cả
dữ liệu trong bảng.
• query: Câu lệnh bao gồm tên của query. biểu mẫu khôi phục và
thực thi câu truy vấn.
• command: Câu lệnh bao gồm một câu lệnh SQL. biểu mẫu thực thi
câu lệnh SQL.
224
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:command-type" a:defaultValue="command">
<choice>
<value>table</value>
<value>query</value>
<value>command</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính form:command quy định câu lệnh để thực thi trên nguồn dữ
liệu.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:command"/>
</optional>
</define>
Thuộc tính form:datasource quy định tên của một nguồn dữ liệu sử dụng
đối với biểu mẫu.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:datasource">
<choice>
<ref name="anyURI"/>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính form:master-fields được sử dụng cho các biểu mẫu dataware
được lồng nhau. Nó quy định các tên của các cột trong bộ kết quả được biểu
diễn bởi nội dung biểu mẫu chính.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:master-fields">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:detail-fields được sử dụng cho các biểu mẫu cơ sở dữ
liệu lồng nhau. Nó quy định các tên của các cột trong các biểu mẫu chi tiết liên
quan đến các cột trong biểu mẫu chính.
<define name="form-form-attlist" combine="interleave">
225
<optional>
<attribute name="form:detail-fields">
<ref name="string"/>
</attribute>
</optional>
</define>
Nếu giá trị của thuộc tính form:command-type là command, thì thuộc tính
forms:escape-processing quy định ứng dụng có xử lý câu lệnh trước khi chuyển
nó đến bộ điều khiển cơ sở dữ liệu hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:escape-processing" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:filter quy định một bộ lọc đối với các câu lệnh cho biểu
mẫu cơ sở.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:filter">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:ignore-result quy định có loại bỏ tất cả các kết quả đạt
được từ nguồn dữ liệu bên dưới hay không.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:ignore-result" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:navigation-mode quy định cách thức các bản ghi trong
một biểu mẫu cơ sở dữ liệu được điều hướng.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:navigation-mode">
<ref name="navigation"/>
</attribute>
</optional>
</define>
<define name="navigation">
226
<choice>
<value>none</value>
<value>current</value>
<value>parent</value>
</choice>
</define>
Thuộc tính form:order quy định một tiêu chí sắp xếp đối với các câu lệnh
trong biểu mẫu sử dụng.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:order">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:tab-cycle quy định cách thức ứng dụng phản ứng lại khi
người sử dụng nhấn phím TAB trong các điều khiển trong một biểu mẫu. Cách
hoạt động của ứng dụng có phụ thuộc vào biểu mẫu được giới hạn tới một nguồn
dữ liệu.
<define name="form-form-attlist" combine="interleave">
<optional>
<attribute name="form:tab-cycle">
<ref name="tab-cycles"/>
</attribute>
</optional>
</define>
<define name="tab-cycles">
<choice>
<value>records</value>
<value>current</value>
<value>page</value>
</choice>
</define>
Phần tử <form:connection-resource> quy định sự kết nối của cơ sở dữ liệu
nguồn bởi một liên kết ngoài xlink trong biểu mẫu sử dụng.
<define name="form-connection-resource">
<element name="form:connection-resource">
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<empty/>
</element>
</define>

227
11.2. Mô hình biểu mẫu mở rộng (XForms)
XForms được thiết kế để được nhúng trong một định dạng XML khác. Nó
bao gồm hai phần chính: lôgíc biểu mẫu cộng thêm dữ liệu biểu mẫu và các điều
khiển XForms.
<define name="xforms-model">
<element name="xforms:model">
<ref name="anyAttListOrElements"/>
</element>
</define>
11.3. Các điều khiển
Các điều khiển (control) được sử dụng để tương tác với các biểu mẫu.
Mỗi kiểm soát trong một biểu mẫu được định danh bởi một điều khiển.
Phần tử <form:text> xác định một điều khiển đối với việc hiển thị và nhập
văn bản trên biểu mẫu.
<define name="column-controls" combine="choice">
<element name="form:text">
<ref name="form-text-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="controls" combine="choice">
<ref name="column-controls"/>
</define>
<define name="form-text-attlist">
<ref name="form-control-attlist"/>
<ref name="common-current-value-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-convert-empty-attlist"/>
<ref name="common-data-field-attlist"/>
</define>
<define name="form-control-attlist">
<ref name="common-form-control-attlist"/>
<ref name="common-control-id-attlist"/>
<ref name="xforms-bind-attlist"/>
</define>
<define name="common-form-control-content">
<optional>
228
<ref name="form-properties"/>
</optional>
<optional>
<ref name="office-event-listeners"/>
</optional>
</define>
Phần tử <form:textarea> xác định một điều khiển đối với việc hiển thị và
nhập văn bản trên một vùng gồm nhiều dòng.
<define name="column-controls" combine="choice">
<element name="form:textarea">
<ref name="form-textarea-attlist"/>
<ref name="common-form-control-content"/>
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
<define name="form-textarea-attlist">
<ref name="form-control-attlist"/>
<ref name="common-current-value-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-convert-empty-attlist"/>
<ref name="common-data-field-attlist"/>
</define>
Phần tử <form:password> xác định một điều khiển mã khóa mật khẩu mà
một người sử dụng nhập vào trong biểu mẫu.
<define name="controls" combine="choice">
<element name="form:password">
<ref name="form-password-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-password-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
229
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-convert-empty-attlist"/>
</define>
Thuộc tính form:echo-char quy định ký tự mà biểu mẫu sử dụng để đánh
dấu văn bản mà một người sử dụng nhập vào trong một mật khẩu điều khiển.
<define name="form-password-attlist" combine="interleave">
<optional>
<attribute name="form:echo-char" a:defaultValue="*">
<ref name="character"/>
</attribute>
</optional>
</define>
Phần tử <form:file> xác định một điều khiển đối với việc lựa chọn một
tệp tin nhập vào trong biểu mẫu.
<define name="controls" combine="choice">
<element name="form:file">
<ref name="form-file-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-file-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-current-value-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
</define>
Phần tử <form:formatted-text> xác định một điều khiển đối với việc nhập
văn bản được định dạng và cho phép một định dạng nào đó trong cả nhập văn
bản vào và hiển thị.
<define name="column-controls" combine="choice">
<element name="form:formatted-text">
<ref name="form-formatted-text-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-current-value-attlist"/>
230
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-convert-empty-attlist"/>
<ref name="common-data-field-attlist"/>
</define>
Thuộc tính form:max-value quy định giá trị tối đa mà một người sử dụng
có thể nhập vào.
<define name="form-formatted-text-attlist" combine="interleave">
<optional>
<attribute name="form:max-value">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:min-value quy định giá trị tối thiểu mà một người sử
dụng có thể nhập vào.
<define name="form-formatted-text-attlist" combine="interleave">
<optional>
<attribute name="form:min-value">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:validation quy định văn bản mà người sử dụng nhập vào
có hợp lệ hay không trong khoảng thời gian nhập vào.
<define name="form-formatted-text-attlist" combine="interleave">
<optional>
<attribute name="form:validation" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <form:number> mô tả một điều khiển cho phép người sử dụng
nhập vào một số dấu phảy động.
<define name="column-controls" combine="choice">
<element name="form:number">
<ref name="form-number-attlist"/>
<ref name="common-numeric-control-attlist"/>
<ref name="common-form-control-content"/>
231
</element>
</define>
<define name="common-numeric-control-attlist">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-convert-empty-attlist"/>
<ref name="common-data-field-attlist"/>
</define>
Phần tử <form:fixed-text> mô tả một điều khiển gắn kèm thông tin bổ
sung cho các điều khiển hoặc chỉ đơn thuần hiển thị thông tin trong ứng dụng
cho văn bản cố định.
<define name="controls" combine="choice">
<element name="form:fixed-text">
<ref name="form-fixed-text-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-fixed-text-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="for"/>
<ref name="common-disabled-attlist"/>
<ref name="label"/>
<ref name="common-printable-attlist"/>
<ref name="common-title-attlist"/>
</define>
Phần tử <form:combobox> xác định một điều khiển cho phép việc hiển
thị và soạn thảo văn bản theo một danh sách của các giá trị có thể đối với văn
bản này.
<define name="column-controls" combine="choice">
<element name="form:combobox">
<ref name="form-combobox-attlist"/>
<ref name="common-form-control-content"/>
<zeroOrMore>
<ref name="form-item"/>
</zeroOrMore>
</element>
</define>
<define name="form-combobox-attlist" combine="interleave">
<ref name="form-control-attlist"/>
232
<ref name="common-current-value-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="dropdown"/>
<ref name="common-maxlength-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="size"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-convert-empty-attlist"/>
<ref name="common-data-field-attlist"/>
<ref name="list-source"/>
<ref name="list-source-type"/>
</define>
Thuộc tính form:auto-complete quy định khi người sử dụng nhập văn bản
vào trong hộp kết hợp phù hợp với một trong các mục danh sách trong hộp liên
kết đó, ứng dụng hoàn thành một cách tự động văn bản đối với người sử dụng.
<define name="form-combobox-attlist" combine="interleave">
<optional>
<attribute name="form:auto-complete">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <form:item> xác định một mục danh sách các đề mục đối với một
điều khiển hộp liên kết.
<define name="form-item">
<element name="form:item">
<ref name="form-item-attlist"/>
<text/>
</element>
</define>
<define name="form-item-attlist" combine="interleave">
<ref name="label"/>
</define>
Phần tử <form:listbox> xác định một điều khiển đầu vào cho phép một
người sử dụng lựa chọn một hay nhiều các mục từ một danh sách.
<define name="column-controls" combine="choice">
<element name="form:listbox">
<ref name="form-listbox-attlist"/>
<ref name="common-form-control-content"/>
<zeroOrMore>
<ref name="form-option"/>
233
</zeroOrMore>
</element>
</define>
<define name="form-listbox-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="dropdown"/>
<ref name="common-printable-attlist"/>
<ref name="size"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="bound-column"/>
<ref name="common-data-field-attlist"/>
<ref name="list-source"/>
<ref name="list-source-type"/>
</define>
Thuộc tính form:multiple xác minh một người sử dụng có thể lựa chọn
nhiều mục từ một hộp danh sách hay không.
<define name="form-listbox-attlist" combine="interleave">
<optional>
<attribute name="form:multiple" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:xforms-list-source cho phép tạo ra một cách động danh
sách các lựa chọn bằng việc nối kết nội dung danh sách vào XForms.
<define name="form-listbox-attlist" combine="interleave">
<optional>
<attribute name="form:xforms-list-source">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <form:option> xác định các mục danh sách đối với một điều
khiển hộp danh sách tùy chọn.
<define name="form-option">
<element name="form:option">
<ref name="form-option-attlist"/>
<text/>
</element>
</define>
<define name="form-option-attlist" combine="interleave">
<ref name="current-selected"/>
234
<ref name="selected"/>
<ref name="label"/>
<ref name="common-value-attlist"/>
</define>
Phần tử <form:button> xác định một nút bấm của điều khiển và khi được
ấn thường sẽ khởi tạo một hành động của điều khiển.
<define name="controls" combine="choice">
<element name="form:button">
<ref name="form-button-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-button-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="button-type"/>
<ref name="common-disabled-attlist"/>
<ref name="label"/>
<ref name="image-data"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="target-frame"/>
<ref name="target-location"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-form-relative-image-position-attlist"/>
</define>
Thuộc tính form:default-button xác định nút bấm mặc định trên biểu mẫu
hay không.
<define name="form-button-attlist" combine="interleave">
<optional>
<attribute name="form:default-button" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:toggle quy định một điều khiển nút bấm biểu mẫu, khi
nó được tác động thông qua chuột hoặc bàn phím thì các điều khiển sẽ kích hoạt.
<define name="form-button-attlist" combine="interleave">
<optional>
<attribute name="form:toggle" a:default-value="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
235
Thuộc tính form:focus-on-click quy định một điều khiển nút bấm biểu
mẫu được bắt tiêu điểm khi nó được kích chuột.
<define name="form-button-attlist" combine="interleave">
<optional>
<attribute name="form:focus-on-click">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:xforms-submission quy định một nút bấm được khởi tạo
của điều khiển.
<define name="form-button-attlist" combine="interleave">
<optional>
<attribute name="form:xforms-submission">
<ref name="string"/>
</attribute>
</optional>
</define>
Phần tử <form:image> xác định một điều khiển nút bấm đồ họa của điều
khiển.
<define name="controls" combine="choice">
<element name="form:image">
<ref name="form-image-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-image-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="button-type"/>
<ref name="common-disabled-attlist"/>
<ref name="image-data"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="target-frame"/>
<ref name="target-location"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
</define>
Phần tử <form:checkbox> xác định một điều khiển đánh dấu lựa chọn cho
việc kích hoạt của nó.
<define name="column-controls" combine="choice">
<element name="form:checkbox">
<ref name="form-checkbox-attlist"/>
<ref name="common-form-control-content"/>
236
</element>
</define>
<define name="form-checkbox-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="label"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-data-field-attlist"/>
<ref name="common-form-visual-effect-attlist"/>
<ref name="common-form-relative-image-position-attlist"/>
</define>
Phần tử <form:radio> mô tả các điều khiển hoạt động giống các hộp kiểm
tra khi nút bấm Radios chia sẻ cùng tên điều khiển thì chúng loại trừ lẫn nhau.
<define name="controls" combine="choice">
<element name="form:radio">
<ref name="form-radio-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-radio-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="current-selected"/>
<ref name="common-disabled-attlist"/>
<ref name="label"/>
<ref name="common-printable-attlist"/>
<ref name="selected"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
<ref name="common-data-field-attlist"/>
<ref name="common-form-visual-effect-attlist"/>
<ref name="common-form-relative-image-position-attlist"/>
</define>
Phần tử <form:frame> xác định một khung có thể được sử dụng để sắp
xếp các điều khiển trực quan. Phần tử này không cho giá trị và nó không cho
phép bất kỳ người sử dụng nào nhập.
<define name="controls" combine="choice">
<element name="form:frame">
<ref name="form-frame-attlist"/>
<ref name="common-form-control-content"/>
</element>
237
</define>
<define name="form-frame-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="for"/>
<ref name="label"/>
<ref name="common-printable-attlist"/>
<ref name="common-title-attlist"/>
</define>
Phần tử <form:image-frame> xác định một điều khiển đồ họa. Điều khiển
hiển thị một ảnh mà vị trí của nó được mô tả trong điều khiển.
<define name="controls" combine="choice">
<element name="form:image-frame">
<ref name="form-image-frame-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-image-frame-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="image-data"/>
<ref name="common-printable-attlist"/>
<ref name="common-readonly-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-data-field-attlist"/>
</define>
Phần tử <form:hidden> xác định một điều khiển bị ẩn không có một trình
diễn trực quan. Phần tử này thường được sử dụng như một phần chứa để tham
khảo.
<define name="controls" combine="choice">
<element name="form:hidden">
<ref name="form-hidden-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-hidden-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-value-attlist"/>
</define>
Phần tử <form:grid> xác định một điều khiển hiển thị dữ liệu bảng.
<define name="controls" combine="choice">
<element name="form:grid">
<ref name="form-grid-attlist"/>
<ref name="common-form-control-content"/>
238
<zeroOrMore>
<ref name="form-column"/>
</zeroOrMore>
</element>
</define>
<define name="form-grid-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
</define>
Phần tử <form:column> xác định một cột trong điều khiển khung lưới.
<define name="form-column">
<element name="form:column">
<ref name="form-column-attlist"/>
<oneOrMore>
<ref name="column-controls"/>
</oneOrMore>
</element>
</define>
<define name="form-column-attlist" combine="interleave">
<ref name="common-form-control-attlist"/>
<ref name="label"/>
<ref name="text-style-name"/>
</define>
Thuộc tính form:text-style-name quy định kiểu dáng đoạn văn bản được
áp dụng cho tất cả các điều khiển với cột.
<define name="text-style-name">
<optional>
<attribute name="form:text-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Phần tử <form:value-range> xác định một điều khiển cho phép người sử
dụng lựa chọn một giá trị từ một dải số liên tiếp. Các trình diễn có thể bao gồm
các thanh cuộn và các nút bấm tròn.
<define name="controls" combine="choice">
<element name="form:value-range">
<ref name="form-value-range-attlist"/>
<ref name="common-form-control-content"/>
</element>
</define>
239
<define name="form-value-range-attlist" combine="interleave">
<ref name="form-control-attlist"/>
<ref name="common-disabled-attlist"/>
<ref name="common-printable-attlist"/>
<ref name="common-tab-attlist"/>
<ref name="common-title-attlist"/>
<ref name="common-value-attlist"/>
</define>
Thuộc tính form:page-step-size quy định một trị số tăng mức hai được sử
dụng cho một điều khiển biểu diễn một giá trị.
<define name="form-value-range-attlist" combine="interleave">
<optional>
<attribute name="form:page-step-size">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính form:delay-for-repeat quy định một thời gian chờ được sử
dụng trước khi một nút bấm chuột được nhấn dẫn đến một hành động lặp lại.
<define name="form-value-range-attlist" combine="interleave">
<optional>
<attribute name="form:delay-for-repeat">
<ref name="duration"/>
</attribute>
</optional>
</define>
Thuộc tính form:orientation quy định sự định hướng của điều khiển có thể
theo chiều ngang hoặc chiều dọc.
<define name="form-value-range-attlist" combine="interleave">
<optional>
<attribute name="form:orientation">
<choice>
<value>horizontal</value>
<value>vertical</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <form:generic-control> xác định một trình giữ chỗ đối với một
điều khiển chung. Điều khiển chung có thể bao gồm mọi đặc tính và mọi sự
kiện.
<define name="controls" combine="choice">
<element name="form:generic-control">
<ref name="form-generic-control-attlist"/>
240
<ref name="common-form-control-content"/>
</element>
</define>
<define name="form-generic-control-attlist" combine="interleave">
<ref name="form-control-attlist"/>
</define>
11.4. Biểu mẫu chung và các thuộc tính chung
Thuộc tính form:name quy định tên của biểu mẫu chung hoặc phần tử
điều khiển. Điều này có thể được sử dụng để đưa ra một biểu mẫu hoặc phần tử
điều khiển chung đồng dạng quan trọng để tạo bộ điều khiển và đệ trình nọi
dung của điều khiển đó.
<define name="common-form-control-attlist" combine="interleave">
<optional>
<attribute name="form:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:control-implementation xác định kiểu thực thi lệnh
chung của điều khiển.
<define name="common-form-control-attlist" combine="interleave">
<optional>
<attribute name="form:control-implementation">
<ref name="namespacedToken"/>
</attribute>
</optional>
</define>
Bất kỳ điều khiển nào cũng có thể được nối kết với một biểu mẫu XForms
bằng việc sử dụng thuộc tính xforms:bind. Mội điều khiển được nối kết như vậy
sẽ đọc và ghi dữ liệu của nó theo phần tử nối kết thích hợp.
<define name="xforms-bind-attlist">
<optional>
<attribute name="xforms:bind">
<ref name="string"/>
</attribute>
</optional>
</define>
11.5. Các thuộc tính điều khiển chung
Thuộc tính form:button-type quy định kiểu của một nút điều khiển.
<define name="types">
<choice>
<value>submit</value>
<value>reset</value>
241
<value>push</value>
<value>url</value>
</choice>
</define>
<define name="button-type">
<optional>
<attribute name="form:button-type" a:defaultValue="push">
<ref name="types"/>
</attribute>
</optional>
</define>
Tất cả các điều khiển loại trừ, các điều khiển ẩn có một trình diễn trực
quan trong tài liệu máy chủ. Vì vậy, chúng cần một vị trí tuyệt đối hoặc tương
đối, việc mô tả vị trí trong tài liệu. Vị trí đó được biểu diễn bởi một hình dạng
bao gồm một tham chiếu tới phần tử điều khiển trong phần tử biểu mẫu.
Thuộc tính form:id được sử dụng để định danh duy nhất một phần tử điều
khiển. Tất cả điều khiển không được ẩn phải có một thuộc tính như vậy kết hợp
với nó, mà lần lượt có thể được sử dụng để tham chiếu điều khiển. Thuộc tính
này được hỗ trợ đối với các phần tử sau đây:
<define name="common-control-id-attlist">
<attribute name="form:id">
<ref name="ID"/>
</attribute>
</define>
Thuộc tính form:current-selected xác minh trạng thái hiện thời của một
nút bấm Radio hoặc phần tử tùy chọn. Thuộc tính này được hỗ trợ đối với các
phần tử sau đây:
<define name="current-selected">
<optional>
<attribute name="form:current-selected" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:value quy định giá trị mặc định của một điều khiển đầu
vào. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="common-value-attlist">
<optional>
<attribute name="form:value">
<ref name="string"/>
</attribute>
</optional>
</define>

242
Thuộc tính form:current-value quy định trạng thái hiện tại của một điều
khiển đầu vào. Nó ghi đè giá trị của một thuộc tính forms:value, nếu một thuộc
tính có mặt. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="common-current-value-attlist">
<optional>
<attribute name="form:current-value">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:disabled quy định một điều khiển có thể chấp nhận đầu
vào của người sử dụng hay không. Thuộc tính này được hỗ trợ đối với các phần
tử sau đây:
<define name="common-disabled-attlist">
<optional>
<attribute name="form:disabled" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:dropdown quy định danh sách trong một hộp kết hợp
hoặc hộp danh sách luôn được hiện hoặc chỉ được hiện khi người sử dụng nhắp
nút bấm sổ xuống. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="dropdown">
<optional>
<attribute name="form:dropdown" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:for quy định các chỉ số ID của các điều khiển mà với
phần tử điều khiển được lập nhãn. Thuộc tính này được hỗ trợ đối với các phần
tử sau đây:
<define name="for">
<optional>
<attribute name="form:for">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:image-data liên kết điều khiển tệp tin bên ngoài cho dữ
liệu ảnh. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="image-data">
<optional>
243
<attribute name="form:image-data">
<ref name="anyURI"/>
</attribute>
</optional>
</define>
Thuộc tính form:label bao gồm một nhãn đối với một điều khiển như là
một nút bấm Radio hoặc hộp kiểm tra. Thuộc tính này được hỗ trợ đối với các
phần tử sau đây:
<define name="label">
<optional>
<attribute name="form:label">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:max-length quy định độ dài của số ký tự tối đa mà một
người sử dụng có thể nhập vào trong một điều khiển đầu vào. Thuộc tính này
được hỗ trợ đối với các phần tử sau đây:
<define name="common-maxlength-attlist">
<optional>
<attribute name="form:max-length">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính form:printable quy định một điều khiển có được in hay không
khi một người sử dụng in tài liệu mà trong đó điều khiển được chứa . Thuộc tính
này được hỗ trợ đối với các phần tử sau đây:
<define name="common-printable-attlist">
<optional>
<attribute name="form:printable" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:readonly quy định một người sử dụng có thể sửa đổi giá
trị của một điều khiển hay không. Thuộc tính này được hỗ trợ đối với các phần
tử sau đây:
<define name="common-readonly-attlist">
<optional>
<attribute name="form:readonly" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
244
</define>
Thuộc tính form:selected quy định trạng thái mặc định của một nút bấm
Radio hoặc tùy chọn. Khi điều khiển được khởi tạo, nó trong trạng thái mặc định
được quy định bởi thuộc tính này. Thuộc tính này được hỗ trợ đối với các phần
tử sau đây:
<define name="selected">
<optional>
<attribute name="form:selected" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:size quy định số hàng được hiện tại một thời điểm trong
một danh sách hộp kết hợp hoặc một danh sách hộp danh sách. Thuộc tính này
được hỗ trợ đối với các phần tử sau đây:
<define name="size">
<optional>
<attribute name="form:size">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính form:tab-index quy định thứ tự điều hướng tab của một điều
khiển trong một biểu mẫu. Thứ tự tab là thứ tự mà trong đó các điều khiển được
cho trước trọng tâm khi một người sử dụng đánh dấu đường biểu mẫu có sử
dụng phím TAB trên bàn phím. Thứ tự tab có thể bao gồm các phần tử được
lồng trong các phần tử khác. Thuộc tính này được hỗ trợ đối với các phần tử sau
đây:
<define name="common-tab-attlist" combine="interleave">
<optional>
<attribute name="form:tab-index" a:defaultValue="0">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính form:tab-stop quy định điểm dừng của một điều khiển có được
chứa trong thứ tự điều hướng tab. Thuộc tính này được hỗ trợ đối với các phần
tử sau đây:
<define name="common-tab-attlist" combine="interleave">
<optional>
<attribute name="form:tab-stop" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
245
</define>
Thuộc tính office:target-frame quy định điều khiển đường liên kết khung
đích của vùng. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="target-frame">
<optional>
<attribute name="office:target-frame" a:defaultValue="_blank">
<ref name="targetFrameName"/>
</attribute>
</optional>
</define>
Thuộc tính xlink:href quy định URL được tải nếu một nút được nhấp.
Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="target-location">
<optional>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
</optional>
</define>
Thuộc tính form:title bao gồm thông tin bổ sung về tên tiêu đề của một
điều khiển.
<define name="common-title-attlist">
<optional>
<attribute name="form:title"/>
</optional>
</define>
Thuộc tính form:visual-effect quy định một hiệu ứng tác động trực quan
tới một điều khiển. Thuộc tính này được hỗ trợ đối với các phần tử sau đây:
<define name="common-form-visual-effect-attlist" combine="interleave">
<optional>
<attribute name="form:visual-effect">
<choice>
<value>flat</value>
<value>3d</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính form:image-position và form:image-align cùng quy định vị trí
của một ảnh được hiển thị trong một điều khiển biểu mẫu, liên quan đến văn bản
của nhãn. Các thuộc tính forms:image-position và form:image-align được hỗ trợ
đối với các phần tử sau đây:
<define name="common-form-relative-image-position-attlist"
combine="interleave">
246
<choice>
<optional>
<attribute name="form:image-position" a:defaultValue="center">
<value>center</value>
</attribute>
</optional>
<group>
<attribute name="form:image-position">
<choice>
<value>start</value>
<value>end</value>
<value>top</value>
<value>bottom</value>
</choice>
</attribute>
<optional>
<attribute name="form:image-align" a:defaultValue="center">
<choice>
<value>start</value>
<value>center</value>
<value>end</value>
</choice>
</attribute>
</optional>
</group>
</choice>
</define>
Thuộc tính form:bound-column quy định các giá trị cột của nguồn danh
sách bộ kết quả được sử dụng để điền đầy các giá trị dữ liệu. Thuộc tính này
được hỗ trợ đối với phần tử <form:listbox>.
<define name="bound-column">
<optional>
<attribute name="form:bound-column">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:convert-empty-to-null quy định giá trị rỗng cho các giá
trị hiện thời của điều khiển và được đánh giá như giá trị NULL. Thuộc tính này
là quan trọng đối với các điều khiển data-aware để xác minh các giá trị nào lưu
trữ đối với trường cơ sở dữ liệu được nối kết. Thuộc tính này được hỗ trợ đối
với các phần tử sau đây:
<define name="common-convert-empty-attlist">
<optional>
247
<attribute name="form:convert-empty-to-null" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính form:data-field quy định tên của một cột bộ kết quả. Bộ kết
quả được xác minh bởi biểu mẫu mà điều khiển thuộc vào. Thuộc tính này được
hỗ trợ đối với các phần tử sau đây:
<define name="common-data-field-attlist">
<optional>
<attribute name="form:data-field">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:list-source quy định nguồn được sử dụng để lưu trú danh
sách trong một hộp danh sách hoặc hộp kết hợp.
<define name="list-source">
<optional>
<attribute name="form:list-source">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính form:list-source-type quy định kiểu nguồn dữ liệu được sử
dụng để lưu trú dữ liệu danh sách trong một hộp danh sách hoặc hộp kết hợp.
<define name="list-source-type">
<optional>
<attribute name="form:list-source-type">
<choice>
<value>table</value>
<value>query</value>
<value>sql</value>
<value>sql-pass-through</value>
<value>value-list</value>
<value>table-fields</value>
</choice>
</attribute>
</optional>
</define>
11.6. Sự kiện thính giả
HTML xác định một danh sách của các sự kiện tiêu chuẩn đối với các
điều khiển. Các sự kiện này được biểu diễn bởi các thuộc tính được kết hợp với

248
các phần tử điều khiển. Trong định dạng tệp XML của ứng dụng văn phòng, các
sự kiện này và mọi sự kiện bổ sung được xác định bởi thành phần ứng dụng
được lưu trữ như các phần tử trong một phần tử <office:event-listeners>.
11.7. Các đặc tính
Phần tử <form:properties> bao gồm các phần tử đặc tính của điều khiển.
<define name="form-property" combine="choice">
<element name="form:property">
<ref name="form-property-name"/>
<ref name="form-property-value-and-type-attlist"/>
</element>
</define>
Thuộc tính form:property-name quy định tên của một phần tử đặc tính.
<define name="form-property-name" combine="interleave">
<attribute name="form:property-name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính office:value-type quy định kiểu được biểu diễn bởi kiểu giá trị.
<define name="form-property-value-and-type-attlist" combine="interleave">
<choice>
<ref name="common-value-and-type-attlist"/>
<attribute name="office:value-type">
<value>void</value>
</attribute>
</choice>
</define>
Phần tử <form:list-property> quy định danh sách các đặc tính giá trị sử
dụng đối với điều khiển.
<define name="form-property-type-and-value-list">
<choice>
<group>
<attribute name="office:value-type">
<value>float</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:value">
<ref name="double"/>
</attribute>
</element>
</zeroOrMore>
</group>
<group>

249
<attribute name="office:value-type">
<value>percentage</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:value">
<ref name="double"/>
</attribute>
</element>
</zeroOrMore>
</group>
<group>
<attribute name="office:value-type">
<value>currency</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:value">
<ref name="double"/>
</attribute>
<optional>
<attribute name="office:currency">
<ref name="string"/>
</attribute>
</optional>
</element>
</zeroOrMore>
</group>
<group>
<attribute name="office:value-type">
<value>date</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:date-value">
<ref name="dateOrDateTime"/>
</attribute>
</element>
</zeroOrMore>
</group>
<group>
<attribute name="office:value-type">
<value>time</value>
</attribute>
250
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:time-value">
<ref name="duration"/>
</attribute>
</element>
</zeroOrMore>
</group>
<group>
<attribute name="office:value-type">
<value>boolean</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:boolean-value">
<ref name="boolean"/>
</attribute>
</element>
</zeroOrMore>
</group>
<group>
<attribute name="office:value-type">
<value>string</value>
</attribute>
<zeroOrMore>
<element name="form:list-value">
<attribute name="office:string-value">
<ref name="string"/>
</attribute>
</element>
</zeroOrMore>
</group>
<attribute name="office:value-type">
<value>void</value>
</attribute>
</choice>
</define>
12. Nội dung diễn giải chung
Thông thường trong các tệp tin tài liệu theo chuẩn ODF có các khai báo
diễn giải về tài liệu tạo lập, nội sung chi tiết được trình bày dưới đây.
12.1. Khai báo diễn giải
Phần tử <office:annotation> quy định một diễn giải của tài liệu. Văn bản
của diễn giải được chứa trong các phần tử <text:p> và <text:list>.
251
<define name="office-annotation">
<element name="office:annotation">
<ref name="office-annotation-attlist"/>
<ref name="draw-caption-attlist"/>
<ref name="common-draw-position-attlist"/>
<ref name="common-draw-size-attlist"/>
<ref name="common-draw-shape-with-text-and-styles-attlist"/>
<optional>
<ref name="dc-creator"/>
</optional>
<optional>
<ref name="dc-date"/>
</optional>
<optional>
<ref name="meta-date-string"/>
</optional>
<zeroOrMore>
<choice>
<ref name="text-p"/>
<ref name="text-list"/>
</choice>
</zeroOrMore>
</element>
</define>
Thuộc tính office:display quy định diễn giải có hiện thị hay không.
<define name="office-annotation-attlist" combine="interleave">
<optional>
<attribute name="office:display">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Ngoài ra, các thuộc tính sau đây có thể được gắn với phần tử
<office:annotation> để tác động đến cách thức nó được hiển thị trong điều khiển
như: svg:x, svg:y, svg:width, svg:height, draw:caption-point-x, draw:caption-
point-y, draw:corner-radius, table:end-cell-address, table:end-x, table:end-y,
text:anchor-type, text:anchor-page-number, draw:layer, draw:style-name,
draw:text-style-name, draw:transform, draw:name, draw:z-index và draw:id,
meta:date-string ... Cách khai báo các thuộc tính này đã trình bày ở trên.
12.2. Định dạng số
Các thuộc tính style:num-prefix và style:num-suffix quy định phần hiển
thị trước và sau dữ liệu số. Nếu tiền tố và hậu tố không bao gồm các ký tự chữ
số, một thuộc tính định dạng [XSLT] có thể được tạo từ các thuộc tính tài liệu

252
mở bằng việc nối vào các giá trị của các thuộc tính style:num-prefix, style:num-
format và style:num-suffix thì khai báo:
<define name="common-num-format-prefix-suffix-attlist"
combine="interleave">
<optional>
<attribute name="style:num-prefix">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="style:num-suffix">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính style:num-format quy định định dạng của dữ liệu số trong tài
liệu theo cùng cách thức như thuộc tính định dạng.
<define name="common-num-format-attlist" combine="interleave">
<choice>
<attribute name="style:num-format">
<choice>
<value>1</value>
<value>i</value>
<value>I</value>
<ref name="string"/>
<empty/>
</choice>
</attribute>
<group>
<attribute name="style:num-format">
<choice>
<value>a</value>
<value>A</value>
</choice>
</attribute>
<ref name="style-num-letter-sync-attlist"/>
</group>
<empty/>
</choice>
</define>
12.3 Siêu dữ liệu theo dõi thay đổi

253
Siêu dữ liệu đối với việc theo dõi thay đổi được chứa bên trong một phần
tử <office:change-info>. Nó bao gồm tác giả và ngày tháng tạo ra của một thay
đổi được theo dõi, cũng như một bình luận tùy chọn.
<define name="office-change-info">
<element name="office:change-info">
<ref name="dc-creator"/>
<ref name="dc-date"/>
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</element>
</define>
12.4 Bảng người nghe sự kiện
Nhiều đối tượng như các điều khiển, ảnh, các hộp văn bản hoặc toàn bộ
một tài liệu hỗ trợ các sự kiện.
<define name="office-event-listeners">
<element name="office:event-listeners">
<zeroOrMore>
<choice>
<ref name="script-event-listener"/>
<ref name="presentation-event-listener"/>
</choice>
</zeroOrMore>
</element>
</define>
Phần tử <script:event-listener> nối kết một sự kiện đến một macro.
<define name="script-event-listener" combine="interleave">
<element name="script:event-listener">
<ref name="script-event-listener-attlist"/>
<empty/>
</element>
</define>
Thuộc tính script:event-name quy định tên của sự kiện. Do các sự kiện
sẵn có, các tên của chúng và ý nghĩa của chúng là ứng dụng và ngôn ngữ tập
lệnh phụ thuộc, tên nên được đặt trước bởi một tiền tố tên miền, vì vậy tên miền
tương ứng cùng với tên sự kiện có thể được sử dụng để định danh ngữ nghĩa của
sự kiện.
<define name="script-event-listener-attlist" combine="interleave">
<attribute name="script:event-name">
<ref name="string"/>
</attribute>
</define>

254
Thuộc tính script:language quy định ngôn ngữ tập lệnh mà trong đó macro
hoặc tập lệnh được kết hợp với sự kiện được ghi.
<define name="script-event-listener-attlist" combine="interleave">
<attribute name="script:language">
<ref name="string"/>
</attribute>
</define>
Mã macro nên được gọi là đối với sự kiện có thể là cũng được quy định
bởi một IRI trong ký pháp [XLink] hoặc một tên đơn giản được quy định bởi
một thuộc tính script:macro-name. Nếu một XLink được sử dụng, IRI có thể có
một giao thức tùy ý, đối với trường hợp một mã mã hóa tên của một tên thư viện
macro cùng với tên macro được xác định trong thư viện này.
<define name="script-event-listener-attlist" combine="interleave">
<choice>
<attribute name="script:macro-name">
<ref name="string"/>
</attribute>
<group>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</group>
</choice>
</define>
12.5 Nội dung toán học
Nội dung toán học được biểu diễn theo chuẩn MathML 2.0 đã công bố.
<define name="math-math">
<element name="math:math">
<ref name="mathMarkup"/>
</element>
</define>
<define name="mathMarkup">
<zeroOrMore>

255
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<element>
<anyName/>
<ref name="mathMarkup"/>
</element>
</choice>
</zeroOrMore>
</define>
12.6. Các kết nối động DDE
Một kết nối trao đổi dữ liệu động (DDE) bao gồm các tham số đối với ứng dụng
đích DDE, một tên tệp hoặc một chuỗi lệnh. Một Kết nối DDE cũng lấy một
tham số quy định rằng nó sẽ được cập nhật một cách tự động hoặc chỉ khi người
sử dụng yêu cầu. Mọi kết nối DDE phải được đặt tên.
<define name="text-dde-connection-decl">
<element name="text:dde-connection-decl">
<ref name="text-dde-connection-decl-attlist"/>
<ref name="common-dde-connection-decl-attlist"/>
</element>
</define>
Thuộc tính office:name quy định tên bởi kết nối đó sẽ được tham chiếu tới
các ứng dụng.
<define name="text-dde-connection-decl-attlist" combine="interleave">
<attribute name="office:name">
<ref name="string"/>
</attribute>
</define>
Thuộc tính office:dde-application quy định tên của ứng dụng đích sử dụng
đối với kết nối DDE trong tài liệu.
<define name="common-dde-connection-decl-attlist" combine="interleave">
<attribute name="office:dde-application">
<ref name="string"/>
</attribute>
</define>
Thuộc tính office:dde-topic quy định tên của chủ đề sử dụng đối với kết
nối DDE.
<define name="common-dde-connection-decl-attlist" combine="interleave">
<attribute name="office:dde-topic">
<ref name="string"/>
</attribute>

256
</define>
Thuộc tính office:dde-item quy định các mục thông tin mà ứng dụng đích
kết nối sử dụng.
<define name="common-dde-connection-decl-attlist" combine="interleave">
<attribute name="office:dde-item">
<ref name="string"/>
</attribute>
</define>
Thuộc tính text:automatic-update quy định việc tự động cập nhật dữ liệu
trong liên kết kết nối DDE khi có yêu cầu của người sử dụng.
<define name="common-dde-connection-decl-attlist" combine="interleave">
<optional>
<attribute name="office:automatic-update" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <table:dde-link> luôn đi kèm theo phần tử <office:dde- source>
để quy định kết nối sử dụng dữ liệu của nguồn DDE.
<define name="table-dde-link">
<element name="table:dde-link">
<ref name="office-dde-source"/>
<ref name="table-table"/>
</element>
</define>
Thuộc tính office:name quy định tên của kết nối có thể được tham chiếu
trong nội dung chung.
<define name="office-dde-source-attlist" combine="interleave">
<optional>
<attribute name="office:name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính office:conversion-mode quy định chế độ làm việc mà từ đó
nguồn DDE chuyển đổi dữ liệu của nó sang các ứng dụng.
<define name="office-dde-source-attlist" combine="interleave">
<optional>
<attribute name="office:conversion-mode"
a:defaultValue="into-default-style-data-style">
<choice>
<value>into-default-style-data-style</value>
<value>into-english-number</value>
<value>keep-text</value>
257
</choice>
</attribute>
</optional>
</define>
13. Các hoạt ảnh SMIL
13.1. Các thành phần cơ bản của hoạt ảnh
Phần tử <anim:animate> khai báo cho ứng dụng về hoạt cảnh và hoạt
động giống phần tử <smil:animate> của chuẩn [SMIL20].
<define name="animation-element" combine="choice">
<element name="anim:animate">
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-named-target-attlist"/>
<ref name="common-anim-values-attlist"/>
<ref name="common-anim-spline-mode-attlist"/>
<ref name="common-spline-anim-value-attlist"/>
<ref name="common-repeat-timing-attlist"/>
<ref name="common-fill-timing-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
</element>
</define>
Phần tử <anim:set> hoạt động giống phần tử <smil:set> của [SMIL20].
<define name="animation-element" combine="choice">
<element name="anim:set">
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-named-target-attlist"/>
<ref name="common-anim-set-values-attlist"/>
<ref name="common-fill-timing-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
</element>
</define>
Phần tử <anim:animateMotion> hoạt động như phần tử [SVG]
<svg:animateMotion>.
<define name="animation-element" combine="choice">
<element name="anim:animateMotion">
<ref name="anim-animate-motion-attlist"/>
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-named-target-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
<ref name="common-anim-values-attlist"/>
<ref name="common-fill-timing-attlist"/>
<ref name="common-spline-anim-value-attlist"/>
</element>
</define>
258
Thuộc tính svg:path có thể được sử dụng để quy định một đường dẫn dọc
theo mà phần tử được tạo hoạt ảnh.
<define name="anim-animate-motion-attlist" combine="interleave">
<optional>
<attribute name="svg:path">
<ref name="pathData"/>
</attribute>
</optional>
</define>
Thuộc tính svg:origin có thể được sử dụng để quy định một nguồn gốc
của hoạt cảnh.
<define name="anim-animate-motion-attlist" combine="interleave">
<optional>
<attribute name="svg:origin">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:calcMode được sử dụng để quy định chế độ nội suy trong
tính toán của hoạt cảnh.
<define name="anim-animate-motion-attlist" combine="interleave">
<optional>
<attribute name="smil:calcMode" a:defaultValue="paced">
<choice>
<value>discrete</value>
<value>linear</value>
<value>paced</value>
<value>spline</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <anim:animateColor> qui định màu hoạt cảnh.
<define name="animation-element" combine="choice">
<element name="anim:animateColor">
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-named-target-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
<ref name="common-anim-values-attlist"/>
<ref name="common-anim-spline-mode-attlist"/>
<ref name="common-spline-anim-value-attlist"/>
<ref name="anim-animate-color-attlist"/>
<ref name="common-fill-timing-attlist"/>
</element>
259
</define>
Thuộc tính anim:color-interpolation quy định khoảng mầu được sử dụng
cho phép nội suy mầu của hoạt cảnh.
<define name="anim-animate-color-attlist" combine="interleave">
<optional>
<attribute name="anim:color-interpolation" a:defaultValue="rgb">
<choice>
<value>rgb</value>
<value>hsl</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính anim:color-interpolation-direction quy định hướng được sử
dụng cho phép nội suy mầu của hoạt cảnh.
<define name="anim-animate-color-attlist" combine="interleave">
<optional>
<attribute name="anim:color-interpolation-direction"
a:defaultValue="clockwise">
<choice>
<value>clockwise</value>
<value>counter-clockwise</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <anim:animateTransform> qui định sự chuyển đổi hoạt cảnh.
<define name="animation-element" combine="choice">
<element name="anim:animateTransform">
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-named-target-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
<ref name="common-anim-values-attlist"/>
<ref name="anim-animate-transform-attlist"/>
<ref name="common-fill-timing-attlist"/>
</element>
</define>
Thuộc tính svg:type được sử dụng để quy định kiểu biến đổi hoạt cảnh.
<define name="anim-animate-transform-attlist" combine="interleave">
<attribute name="svg:type">
<choice>
<value>translate</value>
<value>scale</value>
<value>rotate</value>
260
<value>skewX</value>
<value>skewY</value>
</choice>
</attribute>
</define>
Phần tử <anim:transitionFilter> quy định bộ lọc truyền dữ liệu của hoạt
cảnh sử dụng.
<define name="animation-element" combine="choice">
<element name="anim:transitionFilter">
<ref name="common-anim-target-attlist"/>
<ref name="common-anim-add-accum-attlist"/>
<ref name="common-anim-values-attlist"/>
<ref name="common-anim-spline-mode-attlist "/>
<ref name="anim-transition-filter-attlist"/>
<ref name="common-fill-timing-attlist"/>
</element>
</define>
Thuộc tính smil:type được sử dụng để quy định kiểu chuyển tiếp hoặc
nhóm dữ liệu của hoạt cảnh.
<define name="anim-transition-filter-attlist" combine="interleave">
<attribute name="smil:type">
<ref name="string"/>
</attribute>
</define>
Thuộc tính smil:subtype được sử dụng để quy định kiểu phụ cho chuyển
tiếp hoặc nhóm dữ liệu của hoạt cảnh.
<define name="anim-transition-filter-attlist" combine="interleave">
<optional>
<attribute name="smil:subtype">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:direction được sử dụng để quy định hướng chuyển tiếp
của hoạt cảnh sử dụng.
<define name="anim-transition-filter-attlist" combine="interleave">
<optional>
<attribute name="smil:direction" a:defaultValue="forward">
<choice>
<value>forward</value>
<value>reverse</value>
</choice>
</attribute>
</optional>
261
</define>
Thuộc tính smil:fadeColor được sử dụng để quy định mầu phai chuyển
tiếp đối với các chuyển tiếp tạo ra việc sử dụng của một mầu bắt đầu và kết thúc.
<define name="anim-transition-filter-attlist" combine="interleave">
<optional>
<attribute name="smil:fadeColor">
<choice>
<value>forward</value>
<value>reverse</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:mode được sử dụng để quy định chế độ của phần tử được
hoạt ảnh sẽ chuyển tiếp vào hoặc ra.
<define name="anim-transition-filter-attlist" combine="interleave">
<optional>
<attribute name="smil:mode" a:defaultValue="in">
<choice>
<value>in</value>
<value>out</value>
</choice>
</attribute>
</optional>
</define>
13.2 Các thuộc tính mô hình hoạt ảnh
Mô hình hoạt ảnh sử dụng cùng các khái niệm và cú pháp được quy định
trong chuẩn [SMIL20].
13.3 Các thuộc tính hoạt ảnh chung
Thuộc tính anim:id xác định một ID được sử dụng để định danh phần tử
bên trong một tài liệu.
<define name="common-anim-attlist" combine="interleave">
<optional>
<attribute name="anim:id">
<ref name="ID"/>
</attribute>
</optional>
</define>
Thuộc tính smil:targetElement được sử dụng để quy định phần tử đích
được hoạt ảnh.
<define name="common-anim-target-attlist" combine="interleave">
<optional>
<attribute name="smil:targetElement">
262
<ref name="IDREF"/>
</attribute>
</optional>
</define>
Thuộc tính smil:attributeName được sử dụng để quy định một thuộc tính
đích theo tên.
<define name="common-anim-named-target-attlist" combine="interleave">
<attribute name="smil:attributeName">
<ref name="string"/>
</attribute>
</define>
Thuộc tính anim:sub-item quy định một danh mục phụ tùy chọn của phần
tử đích. Các giá trị có thể đối với phần tử này phụ thuộc vào kiểu tài liệu và kiểu
phần tử đích.
<define name="common-anim-target-attlist" combine="interleave">
<optional>
<attribute name="anim:sub-item">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:values quy định các giá trị được sử dụng cho hoạt ảnh
phần tử đích.
<define name="common-anim-values-attlist" combine="interleave">
<optional>
<attribute name="smil:values">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:calcMode được sử dụng để quy định chế độ tính toán nội
suy của chức năng hoạt ảnh.
<define name="common-anim-spline-mode-attlist" combine="interleave">
<optional>
<attribute name="smil:calcMode" a:defaultValue="discrete">
<choice>
<value>discrete</value>
<value>linear</value>
<value>paced</value>
<value>spline</value>
</choice>
</attribute>
</optional>
</define>
263
Thuộc tính smil:keyTimes quy định khóa thời gian nhịp của hoạt ảnh.
<define name="common-spline-anim-value-attlist" combine="interleave">
<optional>
<attribute name="smil:keyTimes">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:keySplines quy định một khóa cho hàm bậc ba Bézier mà
theo đo các điều khiển nhịp bên trong thực hiện.
<define name="common-spline-anim-value-attlist" combine="interleave">
<optional>
<attribute name="smil:keySplines">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:accumulate quy định tổng của chức năng hoạt ảnh.
<define name="common-anim-add-accum-attlist" combine="interleave">
<optional>
<attribute name="smil:accumulate">
<choice>
<value>none</value>
<value>sum</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:additive quy định cộng thêm của chức năng hoạt ảnh.
<define name="common-anim-add-accum-attlist" combine="interleave">
<optional>
<attribute name="smil:additive">
<choice>
<value>replace</value>
<value>sum</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính anim:formula quy định một công thức tính toán được sử dụng
như chức năng hoạt ảnh.
identifier = '$' | 'pi'
function = 'abs'|'sqrt'|'sin'|'cos'|'tan'|'atan'|'acos'|'asin'|'exp'|'log'
binary_function = 'min'|'max'
264
basic_expression = number | identifier |
function '(' additive_expression ')' |
binary_function
'(' additive_expression ',' additive_expression ')' |
'(' additive_expression ')'
unary_expression =
'-' basic_expression |
basic_expression
multiplicative_expression =
unary_expression
( ( '*' unary_expression )* |
( '/' unary_expression )* )
additive_expression =
multiplicative_expression
( ( '+' multiplicative_expression )* |
( '-' multiplicative_expression )* )
Nếu một thuộc tính anim:formula được cho trước, thì nó ghi đè các thuộc
tính smil:values, smil:to, smil:from và smil:by như được quy định trong phần
tiếp theo.
<define name="common-anim-values-attlist" combine="interleave">
<optional>
<attribute name="anim:formula">
<ref name="string"/>
</attribute>
</optional>
</define>
13.4 Tính thời gian hoạt ảnh
Tính thời gian hoạt ảnh sử dụng cùng các khái niệm và cú pháp được quy
định trong [SMIL20]. Thuộc tính smil:begin được sử dụng để quy định thời gian
bắt đầu của một phần tử hoạt cảnh.
<define name="common-begin-end-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:begin">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:end được sử dụng để quy định thời gian kết thúc của một
phần tử hoạt cảnh.
<define name="common-begin-end-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:end">
<ref name="string"/>

265
</attribute>
</optional>
</define>
Thuộc tính smil:dur sử dụng để quy định khoảng thời gian thực hiện hoạt
cảnh của một phần tử.
<define name="common-dur-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:dur">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính smil:endsync sử dụng để điều khiển điểm kết thúc của các
khoảng thời gian đồng bộ hoạt cảnh.
<define name="common-endsync-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:endsync">
<choice>
<value>first</value>
<value>last</value>
<value>all</value>
<value>media</value>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính smil:repeatCount và smil:repeatDur quy định số lượng và
khoảng thời gian hoạt động của các hoạt cảnh được lặp lại.
<define name="common-repeat-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:repeatDur">
<ref name="string"/>
</attribute>
<attribute name="smil:repeatCount">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính smil:fill quy định cách hoạt động của một phần tử sau khi một
hoạt ảnh được hoàn thành.
<define name="common-fill-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:fill">
<choice>
266
<value>remove</value>
<value>freeze</value>
<value>hold</value>
<value>auto</value>
<value>default</value>
<value>transition</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:fillDefault quy định giá trị về kiểu cách hoạt động mặc
định đối với thuộc tính smil:fill.
<define name="common-fill-default-attlist" combine="interleave">
<optional>
<attribute name="smil:fillDefault">
<choice>
<value>remove</value>
<value>freeze</value>
<value>hold</value>
<value>transition</value>
<value>auto</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:restart sử dụng để quy định kiểu cách bắt đầu lại của một
phần tử hoạt cảnh.
<define name="common-restart-timing-attlist" combine="interleave">
<optional>
<attribute name="smil:restart" a:defaultValue="default">
<choice>
<value>never</value>
<value>always</value>
<value>whenNotActive</value>
<value>default</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:restartDefault sử dụng để quy định cách bắt đầu lại mặc
định của một phần tử hoạt cảnh.
<define name="common-restart-default-attlist" combine="interleave">
<optional>
267
<attribute name="smil:restartDefault" a:defaultValue="inherit">
<choice>
<value>never</value>
<value>always</value>
<value>whenNotActive</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính smil:accelerate sử dụng để quy định cho việc tăng tốc nhanh
hơn của phần tử hoạt cảnh.
<define name="common-time-manip-attlist" combine="interleave">
<optional>
<attribute name="smil:accelerate" a:defaultValue="0.0">
<ref name="double"/>
</attribute>
</optional>
</define>
Thuộc tính smil:decelerate sử dụng để quy định sự giảm tốc đơn giản của
phần tử hoạt cảnh.
<define name="common-time-manip-attlist" combine="interleave">
<optional>
<attribute name="smil:decelerate" a:defaultValue="0.0">
<ref name="double"/>
</attribute>
</optional>
</define>
Thuộc tính smil:autoreverse sử dụng để quy định việc phát lại tự động
theo chiều nghịch đảo các hoạt cảnh.
<define name="common-time-manip-attlist" combine="interleave">
<optional>
<attribute name="smil:autoReverse" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <anim:par> xác định các hoạt cảnh thực hiện trong một thời gian
song song với nhau.
<define name="animation-element" combine="choice">
<element name="anim:par">
<ref name="common-anim-attlist"/>
<ref name="common-timing-attlist"/>
<ref name="common-endsync-timing-attlist"/>
268
<zeroOrMore>
<ref name="animation-element"/>
</zeroOrMore>
</element>
</define>
<define name="common-basic-timing-attlist" combine="interleave">
<ref name="common-begin-end-timing-attlist"/>
<ref name="common-dur-timing-attlist"/>
<ref name="common-repeat-timing-attlist"/>
</define>
<define name="common-timing-attlist" combine="interleave">
<ref name="common-basic-timing-attlist"/>
<ref name="common-restart-timing-attlist"/>
<ref name="common-restart-default-attlist"/>
<ref name="common-fill-timing-attlist"/>
<ref name="common-fill-default-attlist"/>
<ref name="common-time-manip-attlist"/>
</define>
Phần tử <anim:seq> xác định một tuần tự cho các phần tử hoạt cảnh theo
thời gian.
<define name="animation-element" combine="choice">
<element name="anim:seq">
<ref name="common-anim-attlist"/>
<ref name="common-endsync-timing-attlist"/>
<ref name="common-timing-attlist"/>
</element>
</define>
Phần tử <anim:iterate> xác định một phần chứa thời gian song song. Khác
với một phần tử <anim:par> là phần tử <anim:iterate> không quy định các hiệu
ứng đối với chính phần tử đích của nó. Thay cho điều này, nó lặp lại qua các
phần tử con có thể của phần tử đích và thực thi toàn bộ các hiệu ứng con của nó
với phần tử con của phần tử đích như là đích.
<define name="animation-element" combine="choice">
<element name="anim:iterate">
<ref name="common-anim-attlist"/>
<ref name="anin-iterate-attlist"/>
<ref name="common-timing-attlist"/>
<ref name="common-endsync-timing-attlist"/>
<zeroOrMore>
<ref name="animation-element"/>
</zeroOrMore>
</element>
</define>

269
Thuộc tính smil:targetElement quy định phần tử đích cho các phần tử con
của nó mà các hiệu ứng hoạt cảnh được áp dụng.
<define name="anin-iterate-attlist" combine="interleave">
<optional>
<attribute name="smil:targetElement">
<ref name="IDREF"/>
</attribute>
</optional>
</define>
Thuộc tính anim:iterate-type quy định cách thức hoạt cảnh lặp lại, các giá
trị của nó có thể phụ thuộc vào kiểu tài liệu và kiểu phần tử đích.
<define name="anin-iterate-attlist" combine="interleave">
<optional>
<attribute name="anim:iterate-type">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính anim:iterate-interval quy định khoảng cách thời gian hay còn
gọi là độ trễ giữa sự thực thi của các hiệu ứng con của phần tử này.
<define name="anin-iterate-attlist" combine="interleave">
<optional>
<attribute name="anim:iterate-interval">
<ref name="duration"/>
</attribute>
</optional>
</define>
13.5. Các phần tử đa phương tiện
Phần tử <anim:audio> cho phép việc phát lại của các luồng âm thanh
trong khoảng thời gian trình diễn.
<define name="animation-element" combine="choice">
<element name="anim:audio">
<ref name="common-anim-attlist"/>
<ref name="anim-audio-attlist"/>
<ref name="common-basic-timing-attlist"/>
</element>
</define>
Thuộc tính xlink:href quy định IRI của luồng âm thanh theo điều khiển
kết nối ở bên ngoài ứng dụng.
<define name="anim-audio-attlist" combine="interleave">
<optional>
<attribute name="xlink:href">
<ref name="anyURI"/>

270
</attribute>
</optional>
</define>
Thuộc tính anim:audio-level quy định âm lượng trong khoảng thời gian
phát lại. Giá trị của nó là 0 (không nghe thấy) hoặc 1 (âm lượng nghe được).
<define name="anim-audio-attlist" combine="interleave">
<optional>
<attribute name="anim:audio-level">
<ref name="double"/>
</attribute>
</optional>
</define>
13.6 Các phần tử đặc biệt
Phần tử <anim:command> được sử dụng để gửi các lệnh chung đến ứng
dụng trong khoảng thời gian trình diễn. Các kiểu lệnh sẵn có và các tham số của
nó phụ thuộc vào kiểu tài liệu và kiểu của phần tử đích.
<define name="animation-element" combine="choice">
<element name="anim:command">
<ref name="common-anim-attlist"/>
<ref name="anim-command-attlist"/>
<ref name="common-begin-end-timing-attlist"/>
<ref name="common-anim-target-attlist"/>
<zeroOrMore>
<element name="anim:param">
<attribute name="anim:name"/>
<attribute name="anim:value"/>
</element>
</zeroOrMore>
</element>
</define>
14. Kiểu dáng
Nhiều đối tượng trong một tài liệu văn phòng có các đặc tính định dạng.
Một đặc tính định dạng chi phối sự trình bày trực quan của đối tượng nhưng nó
không ảnh hưởng đến nội dung hoặc cấu trúc của tài liệu.
14.1. Các phần tử kiểu dáng
Phần tử <style:style> cho phép khai báo một số họ kiểu dáng giống nhau
về mặt cấu trúc trong tài liệu.
<define name="style-style">
<element name="style:style">
<ref name="style-style-attlist"/>
<ref name="style-style-content"/>
<zeroOrMore>
271
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
Thuộc tính style:name nhận dạng tên của kiểu dáng. Thuộc tính này được
kết hợp với thuộc tính style:family nhận dạng duy nhất một họ kiểu dáng. Các
phần tử <office:styles>, <office:automatic-styles> và <office:master-styles> mỗi
phần tử không được chứa hai kiểu dáng cùng họ và cùng tên.
<define name="style-style-attlist" combine="interleave">
<attribute name="style:name">
<ref name="styleName"/>
</attribute>
</define>
Thuộc tính style:display-name chỉ định tên của kiểu dáng khi nó phải xuất
hiện trên giao diện người dùng.
<define name="style-style-attlist" combine="interleave">
<optional>
<attribute name="style:display-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính style:parent-style-name chỉ định tên của kiểu dáng mẹ. Nếu
một kiểu dáng mẹ không được xác định thì sẽ sử dụng một kiểu dáng mẹ mặc
định được xác định bởi ứng dụng.
<define name="style-style-attlist" combine="interleave">
<optional>
<attribute name="style:parent-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính style:next-style-name chỉ định kiểu dáng được sử dụng cho
đoạn văn bản kế tiếp nếu như một tín hiệu ngắt đoạn được chèn vào trong giao
diện người dùng. Theo mặc định, kiểu dáng hiện hành được dùng như kiểu dáng
kế tiếp.
<define name="style-style-attlist" combine="interleave">
<optional>
<attribute name="style:next-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>

272
Thuộc tính style:auto-update xác định việc các kiểu dáng có được tự động
cập nhật hay không khi mà các đặc tính định dạng của một đối tượng có kiểu
dáng được gán cho nó thay đổi.
<define name="style-style-attlist" combine="interleave">
<optional>
<attribute name="style:auto-update" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <style:map> quy định sự sắp xếp cho kiểu dáng trong một bản đồ
của ứng dụng. Nếu một kiểu dáng chứa những sự sắp xếp như vậy, nó được gọi
là một kiểu dáng có điều kiện.
<define name="style-map">
<element name="style:map">
<ref name="style-map-attlist"/>
<empty/>
</element>
</define>
Thuộc tính style:condition quy định điều kiện trong đó một lược đồ kiểu
dáng nên được sử dụng.
<define name="style-map-attlist" combine="interleave">
<attribute name="style:condition">
<ref name="string"/>
</attribute>
</define>
Thuộc tính style:apply-style-name quy định tên kiểu dáng sử dụng khi
điều kiện được xác định bởi thuộc tính style:condition là đúng.
<define name="style-map-attlist" combine="interleave">
<attribute name="style:apply-style-name">
<ref name="styleNameRef"/>
</attribute>
</define>
Thuộc tính style:base-cell-address quy định ô cơ sở cho các địa chỉ tương
đối trong các công thức. Thuộc tính này chỉ áp dụng cho các kiểu dáng ô trong
đó điều kiện chứa một công thức. Trị số của thuộc tính này phải là một địa chỉ ô
tuyệt đối có một tên bảng.
<define name="style-map-attlist" combine="interleave">
<optional>
<attribute name="style:base-cell-address">
<ref name="cellAddress"/>
</attribute>
</optional>
</define>
273
14.2. Các kiểu dáng mặc định
Một kiểu dáng mặc định quy định các giá trị của đặc tính định dạng mặc
định cho một họ kiểu dáng nhất định. Những mặc định này được sử dụng nếu
như một đặc tính định dạng không được xác định bởi một kiểu dáng tự động
hoặc một kiểu dáng bình thường. Các kiểu dáng mặc định được đại diện bởi
phần tử <style:default-style>. Thuộc tính duy nhất được hỗ trợ cho phần tử này
là style:family.
<define name="style-default-style">
<element name="style:default-style">
<ref name="style-style-content"/>
</element>
</define>
14.3. Dàn trang
Thuộc tính <style:page-layout> quy định các đặc tính vật lý của một trang
tài liệu. Phần tử này chứa một phần tử <style:page-layout-properties> quy định
các đặc trưng định dạng của trang cũng như đặc trưng của các phần tiêu đề đầu
trang (headers) và phần tiêu đề cuối trang (footers).
<define name="style-page-layout">
<element name="style:page-layout">
<ref name="style-page-layout-attlist"/>
<optional>
<ref name="style-page-layout-properties"/>
</optional>
<optional>
<ref name="style-header-style"/>
</optional>
<optional>
<ref name="style-footer-style"/>
</optional>
</element>
</define>
Thuộc tính style:name quy định tên của dàn trang.
<define name="style-page-layout-attlist" combine="interleave">
<attribute name="style:name">
<ref name="styleName"/>
</attribute>
</define>
Thuộc tính style:page-usage quy định loại định dạng trang tài liệu sử dụng
sẽ tạo ra theo quy trình tự động.
<define name="style-page-layout-attlist" combine="interleave">
<optional>
<attribute name="style:page-usage" a:defaultValue="all">
<choice>
274
<value>all</value>
<value>left</value>
<value>right</value>
<value>mirrored</value>
</choice>
</attribute>
</optional>
</define>
14.4. Trang chủ
Phần tử <style:master-page> được sử dụng để xác định các trang chủ đạo
như là những nền phụ thông thường dùng cho các trang họa tiết. Mỗi trang họa
tiết ở đây được liên kết trực tiếp với một trang chủ đạo, nó được quy định bởi
thuộc tính draw:master-page-name của kiểu dáng trang họa tiết.
<define name="style-master-page">
<element name="style:master-page">
<ref name="style-master-page-attlist"/>
<optional>
<ref name="style-header"/>
<optional>
<ref name="style-header-left"/>
</optional>
</optional>
<optional>
<ref name="style-footer"/>
<optional>
<ref name="style-footer-left"/>
</optional>
</optional>
<optional>
<ref name="office-forms"/>
</optional>
<zeroOrMore>
<ref name="style-style"/>
</zeroOrMore>
<zeroOrMore>
<ref name="shape"/>
</zeroOrMore>
<optional>
<ref name="presentation-notes"/>
</optional>
</element>
</define>

275
Thuộc tính style:name quy định tên của một trang chủ đạo. Mỗi trang chủ
đạo được tham chiếu bằng việc sử dụng tên trang. Thuộc tính này là bắt buộc và
tên được xác định phải là duy nhất.
<define name="style-master-page-attlist" combine="interleave">
<attribute name="style:name">
<ref name="styleName"/>
</attribute>
</define>
Thuộc tính style:display-name quy định tên trang chủ khi nó hiện thị
trong giao diện người dùng. Trái lại với chính tên của kiểu dáng, tên này có thể
chứa các đặc tính tùy ý. Nếu như thuộc tính này không có, tên hiện thị tương
đương với tên kiểu dáng.
<define name="style-master-page-attlist" combine="interleave">
<optional>
<attribute name="style:display-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính style:page-layout-name quy định tên cho một cách trình bày
trang trong đó có kích thước, đường viền và định hướng của trang chủ đạo.
<define name="style-master-page-attlist" combine="interleave">
<attribute name="style:page-layout-name">
<ref name="styleNameRef"/>
</attribute>
</define>
Các phần tử <style:header> và <style:footer> chứa nội dung của các đầu
trang và chân trang. Thuộc tính style:display quy định việc đầu trang và chân
trang có được hiển thị hay không.
<define name="common-style-header-footer-attlist" combine="interleave">
<optional>
<attribute name="style:display" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các phần tử miền <style:region-left>, <style:region-center> và
<style:region-right> quy định vùng hiển thị nội dung trong miền đầu trang hoặc
chân trang được hiển thị theo căn lề trái, căn giữa hoặc căn lề phải.
<define name="style-region-left">
<element name="style:region-left">
<ref name="region-content"/>
</element>
</define>
276
<define name="style-region-center">
<element name="style:region-center">
<ref name="region-content"/>
</element>
</define>
<define name="style-region-right">
<element name="style:region-right">
<ref name="region-content"/>
</element>
</define>
<define name="region-content">
<zeroOrMore>
<ref name="text-p"/>
</zeroOrMore>
</define>
Phần tử <presentation:notes> quy định kiểu cách chú thích và thường chỉ
được hỗ trợ bởi các ứng dụng dạng tài liệu trình bày, trong đó mỗi trang chủ đạo
cũng như mỗi trang họa tiết trong một bản trình bày có thể có một trang chú
thích bản trình bày bổ sung.
<define name="presentation-notes">
<element name="presentation:notes">
<ref name="common-presentation-header-footer-attlist"/>
<ref name="presentation-notes-attlist"/>
<zeroOrMore>
<ref name="shape"/>
</zeroOrMore>
</element>
</define>
Thuộc tính style:page-layout-name quy định tên một kiểu dàn trang có
chứa các kích thước, đường viền và hướng của trang các lưu ý.
<define name="presentation-notes-attlist" combine="interleave">
<optional>
<attribute name="style:page-layout-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:style-name gán một thuộc tính định dạng bổ sung cho
một trang các chú thích bằng việc gán cho một kiểu dáng trang họa tiết. Thuộc
tính này không bắt buộc.
<define name="presentation-notes-attlist" combine="interleave">
<optional>
<attribute name="draw:style-name">
<ref name="styleNameRef"/>
277
</attribute>
</optional>
</define>
14.5. Các khuôn mẫu dạng bảng
Một khuôn mẫu dạng bảng là một tập hợp các đặc tính định dạng, như các
đường viền, màu nền và các đặc tính văn bản có thể được áp dụng cho một bảng
biểu khi tạo nó.
<define name="table-table-template">
<element name="table:table-template">
<ref name="table-table-template-attlist"/>
<optional>
<ref name="table-first-row"/>
</optional>
<optional>
<ref name="table-last-row"/>
</optional>
<optional>
<ref name="table-first-column"/>
</optional>
<optional>
<ref name="table-last-column"/>
</optional>
<choice>
<ref name="table-body"/>
<group>
<ref name="table-even-rows"/>
<ref name="table-odd-rows"/>
</group>
<group>
<ref name="table-even-columns"/>
<ref name="table-odd-columns"/>
</group>
</choice>
</element>
</define>
Các thuộc tính table:first-row-start-column, table:first-row-end-column,
table:last-row-start-column và table:last-row-end-column quy định các ô ở bốn
góc của bảng có cùng kiểu dáng với dòng hoặc cột của nó nằm hay không.
<define name="table-table-template-attlist" combine="interleave">
<attribute name="text:first-row-start-column">
<ref name="rowOrCol"/>
</attribute>
</define>

278
<define name="table-table-template-attlist" combine="interleave">
<attribute name="text:first-row-end-column">
<ref name="rowOrCol"/>
</attribute>
</define>
<define name="table-table-template-attlist" combine="interleave">
<attribute name="text:last-row-start-column">
<ref name="rowOrCol"/>
</attribute>
</define>
<define name="table-table-template-attlist" combine="interleave">
<attribute name="text:last-row-end-column">
<ref name="rowOrCol"/>
</attribute>
</define>
<define name="rowOrCol">
<choice>
<value>row</value>
<value>column</value>
</choice>
</define>
Các phần tử <table:first-row> và <table:last-row> quy định kiểu dáng của
ô sẽ được áp dụng cho dòng đầu tiên và dòng cuối cùng của một bảng. Các
phần tử <table:first-col> và <table:last-col> thực hiện tương tự cho cột đầu tiên
và cuối cùng của bảng.
<define name="table-first-row">
<element name="table:first-row">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-last-row">
<element name="table:last-row">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-first-column">
<element name="table:first-column">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-last-column">
279
<element name="table:last-column">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-body">
<element name="table:body">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-even-rows">
<element name="table:even-rows">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-odd-rows">
<element name="table:odd-rows">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-even-columns">
<element name="table:even-columns">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="table-odd-columns">
<element name="table:odd-columns">
<ref name="common-table-template-attlist"/>
<empty/>
</element>
</define>
<define name="common-table-template-attlist" combine="interleave">
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</define>
14.6. Khai báo bề mặt phông chữ
Những khai báo bề mặt phông chữ hỗ trợ cho các thuộc tính và phần tử
phông chữ mô tả trong chuẩn [SVG].

280
<define name="style-font-face-attlist" combine="interleave">
<optional>
<attribute name="svg:font-family">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="svg:font-style">
<ref name="fontStyle"/>
</attribute>
</optional>
<optional>
<attribute name="svg:font-variant">
<ref name="fontVariant"/>
</attribute>
</optional>
<optional>
<attribute name="svg:font-weight">
<ref name="fontWeight"/>
</attribute>
</optional>
<optional>
<attribute name="svg:font-stretch">
<choice>
<value>normal</value>
<value>ultra-condensed</value>
<value>extra-condensed</value>
<value>condensed</value>
<value>semi-condensed</value>
<value>semi-expanded</value>
<value>expanded</value>
<value>extra-expanded</value>
<value>ultra-expanded</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="svg:font-size">
<ref name="positiveLength"/>
</attribute>
</optional>
<optional>
<attribute name="svg:unicode-range"/>
</optional>
281
<optional>
<attribute name="svg:units-per-em">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:panose-1"/>
</optional>
<optional>
<attribute name="svg:stemv">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:stemh">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:slope">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:cap-height">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:x-height">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:accent-height">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:ascent">
<ref name="integer"/>
</attribute>
</optional>
<optional>
282
<attribute name="svg:descent">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:widths"/>
</optional>
<optional>
<attribute name="svg:bbox"/>
</optional>
<optional>
<attribute name="svg:ideographic">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:alphabetic">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:mathematical">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:hanging">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:v-ideographic">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:v-alphabetic">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:v-mathematical">
<ref name="integer"/>
</attribute>
283
</optional>
<optional>
<attribute name="svg:v-hanging">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:underline-position">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:underline-thickness">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:strikethrough-position">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:strikethrough-thickness">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:overline-position">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="svg:overline-thickness">
<ref name="integer"/>
</attribute>
</optional>
</define>
<define name="svg-font-face-src">
<element name="svg:font-face-src">
<oneOrMore>
<choice>
<ref name="svg-font-face-uri"/>
<ref name="svg-font-face-name"/>
</choice>
284
</oneOrMore>
</element>
</define>
<define name="svg-font-face-uri">
<element name="svg:font-face-uri">
<ref name="common-svg-font-face-xlink-attlist"/>
<zeroOrMore>
<ref name="svg-font-face-format"/>
</zeroOrMore>
</element>
</define>
<define name="svg-font-face-format">
<element name="svg:font-face-format">
<optional>
<attribute name="svg:string"/>
</optional>
<empty/>
</element>
</define>
<define name="svg-font-face-name">
<element name="svg:font-face-name">
<optional>
<attribute name="name"/>
</optional>
<empty/>
</element>
</define>
<define name="svg-definition-src">
<element name="svg:definition-src">
<ref name="common-svg-font-face-xlink-attlist"/>
<empty/>
</element>
</define>
<define name="common-svg-font-face-xlink-attlist" combine="interleave">
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onRequest">
285
<value>onRequest</value>
</attribute>
</optional>
</define>
Thuộc tính style:name quy định tên duy nhất của khai báo phông chữ.
<define name="style-font-face-attlist" combine="interleave">
<attribute name="style:name">
<ref name="string"/>
</attribute>
</define>
Các thuộc tính style:font-adornments quy định những công cụ trang trí,
như chữ đậm hoặc nghiêng có thể được sử dụng để định vị một phông chữ thêm
vào họ co chữ đã chọn.
<define name="style-font-face-attlist" combine="interleave">
<optional>
<attribute name="style:font-adornments">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính style:font-family-generic quy định một tên họ phông chữ có
đặc điểm chung.
<define name="style-font-face-attlist" combine="interleave">
<optional>
<attribute name="style:font-family-generic">
<ref name="fontFamilyGeneric"/>
</attribute>
</optional>
</define>
Thuộc tính style:font-pitch quy định liệu một phông chữ có đồ rông cố
định hay thay đổi.
<define name="style-font-face-attlist" combine="interleave">
<optional>
<attribute name="style:font-pitch">
<ref name="fontPitch"/>
</attribute>
</optional>
</define>
Thuộc tính style:font-charset quy định bộ ký tự của một phông chữ.
<define name="style-font-face-attlist" combine="interleave">
<optional>
<attribute name="style:font-charset">
<ref name="textEncoding"/>
</attribute>
286
</optional>
</define>
14.7. Kiểu dáng dữ liệu
Phần tử <number:number-style> mô tả kiểu dáng các số thập phân. Các
phần tử này mô tả định dạng hiển thị của số. Các phần tử có thể được các phần
tử <number:text> đứng trước hoặc sau, những phần tử chứa văn bản bổ sung bất
kỳ được hiển thị trước hoặc sau số.
<define name="number-number-style">
<element name="number:number-style">
<ref name="common-data-style-attlist"/>
<optional>
<ref name="style-text-properties"/>
</optional>
<optional>
<ref name="number-text"/>
</optional>
<optional>
<ref name="any-number"/>
<optional>
<ref name="number-text"/>
</optional>
</optional>
<zeroOrMore>
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
<define name="any-number">
<choice>
<ref name="number-number"/>
<ref name="number-scientific-number"/>
<ref name="number-fraction"/>
</choice>
</define>
Phần tử <number:number> quy định các đặc tính hiển thị cho một chữ số
thập phân.
<define name="number-number">
<element name="number:number">
<ref name="number-number-attlist"/>
<ref name="common-decimal-places-attlist"/>
<ref name="common-number-attlist"/>
<zeroOrMore>
<ref name="number-embedded-text"/>

287
</zeroOrMore>
</element>
</define>
Thuộc tính number:display-factor quy định một thừa số theo đó, mỗi số
được chia tỷ lệ trước khi hiển thị.
<define name="number-number-attlist" combine="interleave">
<optional>
<attribute name="number:display-factor" a:defaultValue="1">
<ref name="double"/>
</attribute>
</optional>
</define>
Phần tử <number:embedded-text> quy định văn bản được hiển thị ở một
vị trí cụ thể trong một số.
<define name="number-embedded-text">
<element name="number:embedded-text">
<ref name="number-embedded-text-attlist"/>
<text/>
</element>
</define>
Thuộc tính number:position xác định vị trí nơi xuất hiện văn bản.
<define name="number-embedded-text-attlist" combine="interleave">
<attribute name="number:position">
<ref name="integer"/>
</attribute>
</define>
Phần tử <number:scientific-number> quy định các đặk tính hiển thị cho
một kiểu dáng số mà cần được hiển thị trong định dạng mang tính khoa học.
<define name="number-scientific-number">
<element name="number:scientific-number">
<ref name="number-scientific-number-attlist"/>
<ref name="common-decimal-places-attlist"/>
<ref name="common-number-attlist"/>
<empty/>
</element>
</define>
Thuộc tính number:min-exponent-digits chỉ định số tối thiểu của các con
số để dùng để trình bày một số mũ.
<define name="number-scientific-number-attlist" combine="interleave">
<optional>
<attribute name="number:min-exponent-digits">
<ref name="integer"/>
</attribute>
</optional>
288
</define>
Phần tử <number:fraction> chỉ định các đặc tính hiển thị cho một kiểu
dáng số có thể được trình bày dưới dạng một phân số.
<define name="number-fraction">
<element name="number:fraction">
<ref name="number-fraction-attlist"/>
<ref name="common-number-attlist"/>
<empty/>
</element>
</define>
Thuộc tính number:min-numerator-digits quy định các chữ số tối thiểu
của các con số dùng để trình bày tử số trong một phân số.
<define name="number-fraction-attlist" combine="interleave">
<optional>
<attribute name="number:min-numerator-digits">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính number:min-denominator-digits chỉ định chữ số tối thiểu của
các số dùng để trình bày mẫu số của một phân số.
<define name="number-fraction-attlist" combine="interleave">
<optional>
<attribute name="number:min-denominator-digits">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính number:denominator-value quy định rõ giá trị nguyên được
dùng làm mẫu số của một phân số. Nếu thuộc tính này không hiện hữu, ứng
dụng có thể chọn một giá trị mẫu số tùy ý.
<define name="number-fraction-attlist" combine="interleave">
<optional>
<attribute name="number:denominator-value">
<ref name="integer"/>
</attribute>
</optional>
</define>
Phần tử <number:currency-style> mô tả kiểu dáng cho các giá trị tiền tệ.
<define name="number-currency-style">
<element name="number:currency-style">
<ref name="common-data-style-attlist"/>
<ref name="common-auto-reorder-attlist"/>
<optional>
289
<ref name="style-text-properties"/>
</optional>
<optional>
<ref name="number-text"/>
</optional>
<optional>
<choice>
<group>
<ref name="number-and-text"/>
<optional>
<ref name="currency-symbol-and-text"/>
</optional>
</group>
<group>
<ref name="currency-symbol-and-text"/>
<optional>
<ref name="number-and-text"/>
</optional>
</group>
</choice>
</optional>
<zeroOrMore>
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
<define name="currency-symbol-and-text">
<ref name="number-currency-symbol"/>
<optional>
<ref name="number-text"/>
</optional>
</define>
<define name="number-and-text">
<ref name="number-number"/>
<optional>
<ref name="number-text"/>
</optional>
</define>
Phần tử <number:currency-symbol> xác định liệu có một biểu tượng tiền
tệ được trình bày trong một kiểu dáng tiền tệ hay không.
<define name="number-currency-symbol">
<element name="number:currency-symbol">
<ref name="number-currency-symbol-attlist"/>
<text/>
290
</element>
</define>
Các thuộc tính number:language và number:country có thể được sử dụng
để xác định rõ ngôn ngữ và quốc gia của biểu tượng tiền tệ.
<define name="number-currency-symbol-attlist" combine="interleave">
<optional>
<attribute name="number:language">
<ref name="languageCode"/>
</attribute>
</optional>
<optional>
<attribute name="number:country">
<ref name="countryCode"/>
</attribute>
</optional>
</define>
Phần tử <number:percentage-style> mô tả kiểu dáng cho các giá trị của tỷ
lệ phần trăm. Phần tử này có thể chứa một phần tử <number:number>, nó mô tả
định dạng trình bày cho tỷ lệ phần trăm.
<define name="number-percentage-style">
<element name="number:percentage-style">
<ref name="common-data-style-attlist"/>
<optional>
<ref name="style-text-properties"/>
</optional>
<optional>
<ref name="number-text"/>
</optional>
<optional>
<ref name="number-and-text"/>
</optional>
<zeroOrMore>
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
Phần tử <number:date-style> mô tả kiểu dáng cho các giá trị ngày tháng.
<define name="number-date-style">
<element name="number:date-style">
<ref name="common-data-style-attlist"/>
<ref name="common-auto-reorder-attlist"/>
<ref name="common-format-source-attlist"/>
<optional>
<ref name="style-text-properties"/>
291
</optional>
<!-- This DTD does not reflect the fact that some elements must not -->
<!-- occur more than once. -->
<optional>
<ref name="number-text"/>
</optional>
<oneOrMore>
<ref name="any-date"/>
<optional>
<ref name="number-text"/>
</optional>
</oneOrMore>
<zeroOrMore>
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
<define name="any-date">
<choice>
<ref name="number-day"/>
<ref name="number-month"/>
<ref name="number-year"/>
<ref name="number-era"/>
<ref name="number-day-of-week"/>
<ref name="number-week-of-year"/>
<ref name="number-quarter"/>
<ref name="number-hours"/>
<ref name="number-am-pm"/>
<ref name="number-minutes"/>
<ref name="number-seconds"/>
</choice>
</define>
Phần tử <number:day> xác định rõ ngày của tháng trong một tháng.
<define name="number-day">
<element name="number:day">
<ref name="number-day-attlist"/>
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Phần tử <number:month> xác định rõ tháng trong một năm.
<define name="number-month">
<element name="number:month">
<ref name="number-month-attlist"/>
292
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Thuộc tính number:textual xác định liệu tên hay số của một tháng được
trình bày trong phần tử tháng của một ngày tháng.
<define name="number-month-attlist" combine="interleave">
<optional>
<attribute name="number:textual" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <number:year> xác định rõ năm trong ứng dụng
<define name="number-year">
<element name="number:year">
<ref name="number-year-attlist"/>
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Phần tử <number:era> xác định rõ kỷ nguyên trong đó năm được kể đến.
<define name="number-era">
<element name="number:era">
<ref name="number-era-attlist"/>
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Phần tử <number:day-of-week> xác định rõ ngày của tuần trong một ngày
tháng.
<define name="number-day-of-week">
<element name="number:day-of-week">
<ref name="number-day-of-week-attlist"/>
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Phần tử <number:week-of-year> xác định rõ tuần của năm trong ngày
tháng.
<define name="number-week-of-year">
<element name="number:week-of-year">
<ref name="common-calendar-attlist"/>
<empty/>
293
</element>
</define>
Phần tử <number:quarter> xác định rõ quý của năm trong ngày tháng.
<define name="number-quarter">
<element name="number:quarter">
<ref name="number-quarter-attlist"/>
<ref name="common-calendar-attlist"/>
<empty/>
</element>
</define>
Phần tử <number:time-style> mô tả kiểu dáng cho các giá trị về thời gian.
<define name="number-time-style">
<element name="number:time-style">
<ref name="number-time-style-attlist"/>
<ref name="common-data-style-attlist"/>
<ref name="common-format-source-attlist"/>
<optional>
<ref name="style-text-properties"/>
</optional>
<!-- This DTD does not reflect the fact that some elements must not -->
<!-- occur more than once. -->
<optional>
<ref name="number-text"/>
</optional>
<oneOrMore>
<ref name="any-time"/>
<optional>
<ref name="number-text"/>
</optional>
</oneOrMore>
<zeroOrMore>
<ref name="style-map"/>
</zeroOrMore>
</element>
</define>
<define name="any-time">
<choice>
<ref name="number-hours"/>
<ref name="number-am-pm"/>
<ref name="number-minutes"/>
<ref name="number-seconds"/>
</choice>
</define>

294
Thuộc tính number:calendar định rõ hệ thống lịch được dùng để trích các
phần của một ngày.
<define name="common-calendar-attlist" combine="interleave">
<optional>
<attribute name="number:calendar">
<choice>
<value>gregorian</value>
<value>gengou</value>
<value>ROC</value>
<value>hanja_yoil</value>
<value>hanja</value>
<value>hijri</value>
<value>jewish</value>
<value>buddhist</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
14.8 Các kiểu dáng văn bản
Phần tử <style:text> quy định các kiểu dáng văn bản (Text styles) cho các
có họ văn bản sử dụng. Chúng có thể được sử dụng trong phạm vi tất cả các loại
trình ứng dụng nhằm xác định rõ các đặc tính định dạng cho một đoạn văn bản.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>text</value>
</attribute>
<optional>
<ref name="style-text-properties"/>
</optional>
</group>
</define>
Phần tử <style-paragraph-properties> quy định các đặc tính định dạng cho
các đoạn văn bản của tài liệu.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>paragraph</value>
</attribute>
<optional>
<ref name="style-paragraph-properties"/>
</optional>

295
<optional>
<ref name="style-text-properties"/>
</optional>
</group>
</define>
Phần tử <style-section-propertie> quy định các đặc tính định dạng cho
một khúc văn bản.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>section</value>
</attribute>
<optional>
<ref name="style-section-properties"/>
</optional>
</group>
</define>
Kiểu dáng ruby xác định rõ văn bản ruby được hiển thị có liên quan đến
văn bản cơ sở như thế nào. Nó được biểu diễn bằng một phần tử <style:style> họ
của nó là ruby.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>ruby</value>
</attribute>
<optional>
<ref name="style-ruby-properties"/>
</optional>
</group>
</define>
14.9 Các kiểu dáng văn bản nâng cao
Các kiểu dáng văn bản nâng cao (Enhanced text styles) thường được sử
dụng trong tài liệu để đánh số dòng, ghi chú, tiểu sử...
Phần tử <text:linenumbering-configuration> sẽ xác định cấu hình đáng số
theo dòng trong phạm vi phần tử <office:styles> của tài liệu.
<define name="text-linenumbering-configuration">
<element name="text:linenumbering-configuration">
<ref name="text-linenumbering-configuration-attlist"/>
<optional>
<ref name="text-linenumbering-separator"/>
</optional>
</element>
</define>

296
Thuộc tính text:number-lines kiển soát việc các dòng có được đánh số
hay không.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:number-lines" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:style-name quy định rõ kiểu dáng văn bản cho tất cả các
số của dòng.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính text:increment xác định số gia tăng của việc đánh số dòng
trong tài liệu.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:increment">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính text:position xác định vị trí của việc đánh số dòng và được in
trên lề trái, lề phải, lề bên trong hay lề bên ngoài.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:number-position" a:defaultValue="left">
<choice>
<value>left</value>
<value>rigth</value>
<value>inner</value>
<value>outer</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính text:offset xác định khoảng cách giữa các số của dòng và lề.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
297
<attribute name="text:offset">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Thuộc tính text:count-empty-lines xác định việc đánh số dòng trống có
được tính đến trong khi đếm dòng hay không.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:count-empty-lines" a:defaultValue="true">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:count-in-text-boxes xác định việc văn bản trong hộp ký tự
có được tính đến trong khi đếm dòng hay không.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:count-in-text-boxes" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:restart-on-page xác định việc đếm dòng có được tái thiết
lập lại từ số 1 ở đầu từng trang.
<define name="text-linenumbering-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:restart-on-page" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Phần tử <text:linenumbering-separator> quy định việc ngăn cách trong
đánh số dòng và văn bản được hiển thị với các dấu ngăn cách.
<define name="text-linenumbering-separator">
<element name="text:linenumbering-separator">
<optional>
<attribute name="text:increment">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
<text/>
</element>
</define>
298
Thuộc tính text:citation-style xác định rõ kiểu dáng văn bản sử dụng cho
việc trích dẫn tài liệu tại chân trang trong phạm vi từng trang tài liệu.
<define name="text-notes-configuration-content" combine="interleave">
<optional>
<attribute name="text:citation-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính text:citation-body-style-name xác định rõ kiểu dáng văn bản
sử dụng cho phần trích dẫn chân trang trong dòng văn bản.
<define name="text-notes-configuration-content" combine="interleave">
<optional>
<attribute name="text:citation-body-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính start:value xác định rõ giá trị tại đó việc đánh số ghi chú tại
phần chân trang bắt đầu.
<define name="text-notes-configuration-content" combine="interleave">
<optional>
<attribute name="text:start-value">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính text:start-numbering-at xác định rõ việc các số ghi chú tại
phần chân trang bắt đầu bằng một số mới ở đầu tài liệu hoặc ở đầu mỗi chương
hoặc mỗi trang.
<define name="text-notes-configuration-content" combine="interleave">
<optional>
<attribute name="text:start-numbering-at">
<choice>
<value>document</value>
<value>chapter</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính text:footnotes-position xác định một trong số các vị trí cho các
phần ghi chú tại chân trang tài liệu.
<define name="text-notes-configuration-content" combine="interleave">
299
<optional>
<attribute name="text:footnotes-position">
<choice>
<value>text</value>
<value>page</value>
<value>section</value>
<value>document</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <text:bibliography-configuration> xác định cấu hình thư mục
được chứa kiểu dáng của tài liệu khi đánh số ghi chú. Nó chứa các thông tin về
cách các mục nhập được hiển thị theo dòng và cách chúng được hiển thị theo
mục lục thư mục.
<define name="text-bibliography-configuration">
<element name="text:bibliography-configuration">
<ref name="text-bibliography-configuration-attlist"/>
<zeroOrMore>
<ref name="text-sort-key"/>
</zeroOrMore>
</element>
</define>
Các thuộc tính text:prefix and text:suffix xác định một chuỗi ký tự được
hiển thị trước và sau một cái tên ngắn hoặc số của mục nhập thư mục nếu nó
xuất hiện trên thân của tài liệu khi đánh số ghi chú.
<define name="text-bibliography-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:prefix">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="text:suffix">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính text:sort-by-position xác định rõ việc sắp xếp theo vị trí, liệu
các mục nhập của thư mục có được hiển thị theo thứ tự vị trí của chúng trong tài
liệu hay không, hay theo việc lựa chọn tùy ý các trường của mục nhập.
<define name="text-bibliography-configuration-attlist" combine="interleave">
<optional>
<attribute name="text:sort-by-position" a:defaultValue="true">
300
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="fo:language">
<ref name="languageCode"/>
</attribute>
</optional>
<optional>
<attribute name="fo:country">
<ref name="countryCode"/>
</attribute>
</optional>
<optional>
<attribute name="text:sort-algorithm">
<ref name="string"/>
</attribute>
</optional>
</define>
14.10. Kiểu dáng danh sách
Phần tử <text:list-style> xác định các kiểu dáng quy định các đặc tính
dạng thức cho các danh sách và chứa một tập hợp các phần tử kiểu dáng cho
mỗi mức của danh sách sử dụng. Nếu không có khai báo về kiểu dáng mức danh
sách phù hợp tồn tại, thì sử dụng kiểu dáng mặc định.
<define name="text-list-style">
<element name="text:list-style">
<ref name="text-list-style-attr"/>
<zeroOrMore>
<ref name="text-list-style-content"/>
</zeroOrMore>
</element>
</define>
Thuộc tính style:name định rõ tên của kiểu dáng danh sách.
<define name="text-list-style-attr" combine="interleave">
<attribute name="style:name">
<ref name="styleName"/>
</attribute>
</define>
Thuộc tính style:display-name xác định rõ tên của kiểu dáng danh sách
khi nó xuất hiện trên giao diện người dùng.
<define name="text-list-style-attr" combine="interleave">
<optional>
<attribute name="style:display-name">

301
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính text:consecutive-numbering quy định việc kiểu dáng danh
sách sử dụng cách đánh số liên tục cho tất cả các mức danh sách hay không hoặc
liệu mỗi mức danh sách có bắt đầu lại việc đánh dấu hay không.
<define name="text-list-style-attr" combine="interleave">
<optional>
<attribute name="text:consecutive-numbering" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:level quy định các mức của kiểu dáng danh sách số.
<define name="text-list-level-style-attr">
<attribute name="text:level">
<ref name="positiveInteger"/>
</attribute>
</define>
Thuộc tính text:style-name quy định tên của kiểu dáng ký tự dùng để định
dạng số của dang sách.
<define name="text-list-level-style-number-attr" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính style:num-format quy định định dạng số của kiểu dáng danh
sách sử dụng.
<define name="text-list-level-style-number-attr" combine="interleave">
<ref name="common-num-format-attlist"/>
<ref name="common-num-format-prefix-suffix-attlist"/>
</define>
Thuộc tính text:display-levels quy định tên các mức kiểu dáng danh sách
mà các số của chúng được hiện thị tại mức hiện hành.
<define name="text-list-level-style-number-attr" combine="interleave">
<optional>
<attribute name="text:display-levels" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
302
Thuộc tính text:start-value quy định số đầu tiên của hạng mục danh sách
của mức hiện hành.
<define name="text-list-level-style-number-attr" combine="interleave">
<optional>
<attribute name="text:start-value" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Phần tử <text:list-level-style-bullet> qui định mức và kiểu đánh số hoặc
dàn nội dung đoạn văn bản.
<define name="text-list-style-content" combine="choice">
<element name="text:list-level-style-bullet">
<ref name="text-list-level-style-attr"/>
<ref name="text-list-level-style-bullet-attr"/>
<optional>
<ref name="style-list-level-properties"/>
</optional>
<optional>
<ref name="style-text-properties"/>
</optional>
</element>
</define>
Thuộc tính text:style-name quy định tên của kiểu dáng ký tự dùng để định
dạng chấm đậm của danh sách.
<define name="text-list-level-style-bullet-attr" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
<define name="text-list-style-content" combine="choice">
<element name="text:list-level-style-image">
<ref name="text-list-level-style-attr"/>
<optional>
<ref name="style-list-level-properties"/>
</optional>
</element>
</define>
14.11. Kiểu dáng bố cục
Kiểu dáng bố cục là một danh sách được áp dụng cho tất cả các trang
trong phạm vi tài liệu văn bản.

303
Phần tử <text:outline-style> quy định kiểu dáng bố cục trang tài liệu. Nó
có thể chỉ được chứa trong phạm vi phần tử <office:styles>.
<define name="text-outline-style">
<element name="text:outline-style">
<oneOrMore>
<ref name="text-outline-level-style"/>
</oneOrMore>
</element>
</define>
Phần tử <text:outline-level-style> quy định kiểu dáng cho mỗi mức bố
cục. Phần tử này chỉ được chứa trong các phần tử <text:outline-style>.
<define name="text-outline-level-style">
<element name="text:outline-level-style">
<ref name="text-outline-level-style-attlist"/>
<optional>
<ref name="style-list-level-properties"/>
</optional>
<optional>
<ref name="style-text-properties"/>
</optional>
</element>
</define>
Thuộc tính text:level quy định mức của kiểu dáng bố cục văn bản.
<define name="text-outline-level-style-attlist" combine="interleave">
<attribute name="text:level">
<ref name="positiveInteger"/>
</attribute>
</define>
Thuộc tính text:style-name quy định tên của kiểu dáng ký tự dùng để định
dạng số của đầu trang.
<define name="text-outline-level-style-attlist" combine="interleave">
<optional>
<attribute name="text:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính text:display-levels quy định các mức hiển thị mà số của chúng
được hiển thị ở mức hiện hành.
<define name="text-outline-level-style-attlist" combine="interleave">
<optional>
<attribute name="text:display-levels" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
304
</optional>
</define>
Thuộc tính text:start-value quy định giá trị số đầu tiên trong bố cục trang
của mức hiện hành.
<define name="text-outline-level-style-attlist" combine="interleave">
<optional>
<attribute name="text:start-value" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
14.12. Các kiểu dáng bảng
Các kiểu dáng bảng <style:table> có thể được sử dụng trong phạm vi toàn
bộ các loại ứng dụng để xác định các đặc tính định dạng cho bảng.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>table</value>
</attribute>
<optional>
<ref name="style-table-properties"/>
</optional>
</group>
</define>
Các kiểu dáng cột của bảng <style-table-column> có thể được sử dụng
trong phạm vi toàn bộ các loại ứng dụng để xác định đặc tính định dạng cho các
cột của bảng.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>table-column</value>
</attribute>
<optional>
<ref name="style-table-column-properties"/>
</optional>
</group>
</define>
Các kiểu dáng dòng của bảng <style-table-row> có thể được sử dụng
trong phạm vi toàn bộ các loại ứng dụng để xác định đặc tính định dạng cho các
dòng của bảng.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">

305
<value>table-row</value>
</attribute>
<optional>
<ref name="style-table-row-properties"/>
</optional>
</group>
</define>
Các kiểu dáng ô của bảng <style-table-cell> có thể được sử dụng trong
phạm vi toàn bộ các loại ứng dụng để xác định đặc tính định dạng cho các ô của
bảng.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>table-cell</value>
</attribute>
<optional>
<ref name="style-table-cell-properties"/>
</optional>
<optional>
<ref name="style-paragraph-properties"/>
</optional>
<optional>
<ref name="style-text-properties"/>
</optional>
</group>
</define>
14.13. Các kiểu dáng đồ họa
Các kiểu dáng đồ họa (graphic style) <style-graphic-propertie> được sử
dụng trong các tài liệu bản vẽ hoặc trình diễn.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<choice>
<value>graphic</value>
<value>presentation</value>
</choice>
</attribute>
<optional>
<ref name="style-graphic-properties"/>
</optional>
<optional>
<ref name="style-paragraph-properties"/>
</optional>

306
<optional>
<ref name="style-text-properties"/>
</optional>
</group>
</define>
<define name="style-graphic-properties">
<element name="style:graphic-properties">
<ref name="style-graphic-properties-content"/>
</element>
</define>
<define name="style-graphic-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-graphic-properties-content-strict">
<ref name="style-graphic-properties-attlist"/>
<ref name="style-graphic-fill-properties-attlist"/>
<ref name="style-graphic-properties-elements"/>
</define>
<define name=" style-graphic-properties-elements">
<empty/>
</define>
Trong các ứng dụng của bản trình bày, kiểu dáng trang họa tiết có thể
chứa thêm các đặc tính của trang trình bày.
<define name="style-style-content" combine="choice">
<group>
<attribute name="style:family">
<value>drawing-page</value>
</attribute>
<optional>
<ref name="style-drawing-page-properties"/>
</optional>
</group>
</define>
<define name="style-drawing-page-properties">
<element name="style:drawing-page-properties">
<ref name="style-drawing-page-properties-content"/>
</element>
</define>
<define name="style-drawing-page-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-drawing-page-properties-content-strict">
<ref name="style-graphic-fill-properties-attlist"/>
<ref name="style-drawing-page-properties-attlist"/>
307
<ref name="style-drawing-page-properties-elements"/>
</define>
14.14. Các phần tử kiểu dáng đồ họa nâng cao
Các phần tử kiểu dáng đồ họa nâng cao (Enhanced graphic style elements)
được sử dụng trong tài liệu để khai báo các đối tượng đồ họa nâng cao và chúng
không được sử dụng như những kiểu dáng tự động, nghĩa là chúng phải được
định vị trong mục <office:styles> của một tài liệu.
Phần tử <draw:gradient> xác định một gradient để điền đầy đối tượng họa
tiết. Các Gradient không sẵn có như các kiểu dáng tự động.
<define name="draw-gradient">
<element name="draw:gradient">
<ref name="common-draw-gradient-attlist"/>
<ref name="draw-gradient-attlist"/>
<empty/>
</element>
</define>
Thuộc tính draw:name xác định tên và chỉ nhận dạng một gradient ở bên
trong một phần tử <office:styles> .
<define name="common-draw-gradient-attlist" combine="interleave">
<optional>
<attribute name="draw:name">
<ref name="styleName"/>
</attribute>
</optional>
</define>
Thuộc tính draw:display-name xác định tên hiển thị của một gradient khi
nó xuất hiện trên giao diện người dùng.
<define name="common-draw-gradient-attlist" combine="interleave">
<optional>
<attribute name="draw:display-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:style quy định kiểu dáng của gradient. Các kiểu dáng của
gradient mà một ứng dụng văn phòng phải hỗ trợ là linear, axial, radial,
ellipsoid, square và rectangular.
<define name="common-draw-gradient-attlist" combine="interleave">
<attribute name="draw:style">
<ref name="gradient-style"/>
</attribute>
</define>
<define name="gradient-style">

308
<choice>
<value>linear</value>
<value>axial</value>
<value>radial</value>
<value>ellipsoid</value>
<value>square</value>
<value>rectangular</value>
</choice>
</define>
Các thuộc tính draw:start-intensity và draw:end-intensity quy định cường
độ của màu bắt đầu và màu chấm dứt của gradient bằng các giá trị %. Các thuộc
tính này là không bắt buộc. Nếu như các thuộc tính không được xác định, màu
được sử dụng với màu của chính nó, nghĩa là ở cường độ 100%.
<define name="draw-gradient-attlist" combine="interleave">
<optional>
<attribute name="draw:start-intensity">
<ref name="percent"/>
</attribute>
</optional>
<optional>
<attribute name="draw:end-intensity">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:angle quy định một góc quay quanh trục tại chỗ mà các
giá trị của gradient được đưa vào.
<define name="common-draw-gradient-attlist" combine="interleave">
<optional>
<attribute name="draw:angle">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính draw:border quy định một giá trị % được dùng để làm co dãn
đường viền được điền đầy chỉ bằng màu bắt đầu hoặc màu chấm dứt.
<define name="common-draw-gradient-attlist" combine="interleave">
<optional>
<attribute name="draw:border">
<ref name="percent"/>
</attribute>
</optional>
</define>

309
Các gradient SVG được tham chiếu theo tên sử dụng của thuộc tính
draw:fill-gradient-name trong phạm vi một kiểu dáng đồ họa. Các gradient SVG
không thể được tham chiếu bởi một thuộc tính draw:opacity-name. Kết quả của
việc tham chiếu gradient SVG có thuộc tính draw:fill- gradient-name và một
gradient về độ chắn sáng có thuộc tính a draw:opacity-name không chỉ rõ cùng
lúc.
<define name="common-svg-gradient-attlist" combine="interleave">
<attribute name="draw:name">
<ref name="styleName"/>
</attribute>
</define>
Phần tử <draw:hatch> xác định một kiểu dáng tô mầu bằng đường gạch
bóng cho các đối tượng đồ họa. Đường gạch bóng là một kiểu đường thẳng đơn
giản được lặp lại trong khu vực điền đầy.
<define name="draw-hatch">
<element name="draw:hatch">
<ref name="draw-hatch-attlist"/>
<empty/>
</element>
</define>
Thuộc tính draw:name xác định tên và nhận dạng duy nhất một kiểu dáng
đường gạch bóng bên trong một phần tử <office:styles>.
<define name="draw-hatch-attlist" combine="interleave">
<attribute name="draw:name">
<ref name="styleName"/>
</attribute>
</define>
Thuộc tính draw:display-name chỉ định tên của kiểu dáng đường gạch
bóng khi nó xuất hiện trên giao diện người dùng.
<define name="draw-hatch-attlist" combine="interleave">
<optional>
<attribute name="draw:display-name">
<ref name="string"/>
</attribute>
</optional>
</define>
Thuộc tính draw:style chỉ định kiểu dáng của đường gạch bóng. Đường
gạch bóng có thể có một trong ba kiểu dáng sau: single, double, hoặc triple.
<define name="draw-hatch-attlist" combine="interleave">
<attribute name="draw:style">
<choice>
<value>single</value>
<value>double</value>
<value>triple</value>
310
</choice>
</attribute>
</define>
Thuộc tính draw:color chỉ định màu sắc của các đường gạch bóng.
<define name="draw-hatch-attlist" combine="interleave">
<optional>
<attribute name="draw:color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính draw:distance chỉ định khoảng cách giữa 2 đường gạch bóng.
<define name="draw-hatch-attlist" combine="interleave">
<optional>
<attribute name="draw:distance">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:rotation chỉ định góc quay của các đường gạch bóng.
<define name="draw-hatch-attlist" combine="interleave">
<optional>
<attribute name="draw:rotation">
<ref name="integer"/>
</attribute>
</optional>
</define>
Phần tử <draw:fill-image> chỉ định một liên kết tới một nguồn ảnh kiểu
chấm điểm (bitmap) để tô mầu. Phần tử này thường đi theo sau khai báo đặc tả
XLink trong tài liệu.
<define name="draw-fill-image">
<element name="draw:fill-image">
<ref name="draw-fill-image-attlist"/>
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
<optional>
<attribute name="xlink:type" a:defaultValue="simple">
<choice>
<value>simple</value>
</choice>
</attribute>
</optional>
<optional>
311
<attribute name="xlink:show" a:defaultValue="embed">
<choice>
<value>embed</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="xlink:actuate" a:defaultValue="onLoad">
<choice>
<value>onLoad</value>
</choice>
</attribute>
</optional>
<empty/>
</element>
</define>
Phần tử <draw:marker> đại diện cho một vạch dấu, nó được dùng để để
vẽ các đa giác tại các điểm đầu và cuối của nét vẽ
<define name="draw-marker">
<element name="draw:marker">
<ref name="draw-marker-attlist"/>
<ref name="common-draw-viewbox-attlist"/>
<ref name="common-draw-path-data-attlist"/>
<empty/>
</element>
</define>
Phần tử <style:presentation-page-layout> là một tư liệu chứa các trình giữ
chỗ, nó xác định một tập hợp các đối tượng trình bày rỗng. Các trình giữ chỗ
này được sử dụng như những template để tạo ra các đối tượng trình bày mới và
để đánh dấu kích thước và vị trí của một đối tượng nếu như kiểu dáng trang trình
bày của một trang họa tiết bị thay đổi.
<define name="style-presentation-page-layout">
<element name="style:presentation-page-layout">
<attribute name="style:name">
<ref name="styleName"/>
</attribute>
<optional>
<attribute name="style:display-name">
<ref name="string"/>
</attribute>
</optional>
<zeroOrMore>
<ref name="presentation-placeholder"/>
</zeroOrMore>
</element>

312
</define>
Phần tử <presentation:placeholder> chỉ định trình giữa chỗ cho các đối
tượng trình bày.
<define name="presentation-placeholder">
<element name="presentation:placeholder">
<attribute name="presentation:object">
<ref name="presentation-classes"/>
</attribute>
<attribute name="svg:x">
<choice>
<ref name="coordinate"/>
<ref name="percent"/>
</choice>
</attribute>
<attribute name="svg:y">
<choice>
<ref name="coordinate"/>
<ref name="percent"/>
</choice>
</attribute>
<attribute name="svg:width">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
<attribute name="svg:height">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
<empty/>
</element>
</define>
15. Các đặc tính định dạng
Một tài liệu có thể bao gồm vài phần tử kiểu dáng. Để thu được một tập
chung của các đặc tính định dạng, tất cả các đặc tính định dạng được chứa trong
các phần tử đặc tính định dạng trong đặc tả kỹ thuật của tài liệu.
15.1. Các đặc tính định dạng đơn giản và phức tạp
Phần lớn các đặc tính định dạng là đơn giản và có thể được biểu diễn như
các thuộc tính của các phần tử đặc tính định dạng. Khi có thể, các thuộc tính
[XSL] hoặc các thuộc tính từ các đặc tả khác được sử dụng để trình bày các đặc

313
tính định dạng. Trong tiêu chuẩn này, tiền tố tên miền fo được sử dụng đối với
các đặc tính XSL, đó là các đặc tính là các phần của tên miền XSL. Trong ứng
dụng văn phòng, thường có các đặc tính định dạng không được quy định độc lập
với các đặc tính định dạng khác. Nếu trường hợp này xảy ra, và nếu một vài đặc
tính của các đặc tính được yêu cầu bị thiếu, thì ứng dụng thừa nhận các giá trị
mặc định hợp lý.
Nếu một đặc tính định dạng quá phức tạp để được biểu diễn bởi các thuộc
tính XML, nó được biểu diễn bởi một phần tử XML. Mỗi đặc tính như vậy được
biểu diễn bởi một kiểu phần tử của chính nó.
<style:paragraph-properties>
<style:tab-stops>
<style:tab-stop style:position="2cm"/>
<style:tab-stop style:position="4cm"/>
</style:tab-stops>
</style:paragraph-properties>
Các thuộc tính và phần tử định dạng do người dùng định nghĩa là các
phần tử và thuộc tính tùy ý bên trong các phần tử <style:*-properties>.
<define name="style-properties-content">
<ref name="anyAttListOrElements"/>
</define>
15.2. Các đặc tính định dạng bố trí trang
Các đặc tính được mô tả trong phần này có thể được chứa trong các bố trí
trang của kiểu dáng. Chúng được chứa trong một phần tử <style:page-layout-
properties> và bao gồm:
• Kích thước trang
• Định dạng số hiệu trang
• Khay giấy
• Định hướng in
• Các lề trang
• Đường viền
• Độ rộng dòng kẻ đường viền
• Đệm
• Bóng
• Nền
• Các cột
• Chứng thực
• In
• Thứ tự trang in
• Số hiệu trang đầu tiên
• Co dãn
• Căn bảng giữa
• Chiều cao lớn nhất của ghi chú cuối trang
• Phân tách ghi chú cuối trang
<define name="style-page-layout-properties">

314
<element name="style:page-layout-properties">
<ref name="style-page-layout-properties-content"/>
</element>
</define>
<define name="style-page-layout-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-page-layout-properties-content-strict">
<ref name="style-page-layout-properties-attlist"/>
<ref name="style-page-layout-properties-elements"/>
</define>
Các thuộc tính fo:page-width và fo:page-height quy định kích thước tự
nhiên của trang. Thuộc tính fo:page-width phải tương ứng với định hướng của
trang. Ví dụ, nếu một trang được in theo phương thẳng đứng, thì thuộc tính
fo:page-width quy định chiều rộng của phía trang ngắn hơn. Nếu trang được in
theo phương ngang, thì thuộc tính fo:page-width quy định chiều rộng của phía
trang dài hơn.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:page-width">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="fo:page-height">
<ref name="length"/>
</attribute>
</optional>
</define>
Các thuộc tính style:num-format, style:num-prefix và style:num-suffix
quy định một định dạng số mặc định đối với các kiểu dáng trang, mà được sử
dụng để hiển thị các số trang trong phần đầu trang và phần chân trang.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<ref name="common-num-format-attlist"/>
</optional>
<ref name="common-num-format-prefix-suffix-attlist"/>
</define>
Thuộc tính style:paper-tray-name quy định khay giấy để sử dụng khi in tài
liệu. Các tên được ấn định cho các khay máy in phụ thuộc vào máy in. Nếu giá
trị của thuộc tính này là mặc định, thì khay mặc định được quy định trong các
thiết lập cấu hình máy in được sử dụng.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:paper-tray-name">

315
<choice>
<value>default</value>
<ref name="string"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính style:print-orientation quy định định hướng của trang được in.
Giá trị của thuộc tính này có thể là portrait hoặc landscape.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:print-orientation">
<choice>
<value>portrait</value>
<value>landscape</value>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính fo:margin, fo:margin-top, fo:margin-bottom, fo:margin-left
và fo:margin-right quy định kích thước của các lề trang.
<define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
<ref name="common-vertical-margin-attlist"/>
<ref name="common-margin-attlist"/>
</define>
Các thuộc tính fo:border, fo:border-top, fo:border-bottom, fo:border-left
và fo:border-right quy định các đặc tính đường viền của trang.
<define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-border-attlist"/>
<ref name="common-border-line-width-attlist"/>
<ref name="common-padding-attlist"/>
<ref name="common-shadow-attlist"/>
</define>
Thuộc tính fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của trang và kiểu ảnh nền sử dụng.
<define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
Phần tử <style:columns> quy định nếu trang bao gồm các cột.
<define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-columns"/>

316
</define>
Thuộc tính style:register-truth-ref-style-name quy định việc tham chiếu
một kiểu dáng đoạn đăng ký. Khoảng cách dòng được quy định của kiểu dáng
đoạn được sử dụng như tham chiếu khoảng cách dòng đối với tất cả các đoạn mà
có tính năng chứng thực bộ đăng ký được cho phép.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:register-truth-ref-style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính style:print quy định các thành phần trong một tài liệu bảng
tính để in.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:print">
<list>
<zeroOrMore>
<choice>
<value>headers</value>
<value>grid</value>
<value>annotations</value>
<value>objects</value>
<value>charts</value>
<value>drawings</value>
<value>formulas</value>
<value>zero-values</value>
</choice>
</zeroOrMore>
</list>
</attribute>
</optional>
</define>
Thuộc tính style:print-page-order quy định thứ tự mà trong đó dữ liệu
trong một bảng tính được đánh số và được in khi dữ liệu không vừa trên một
trang được in.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:print-page-order">
<choice>
<value>ttb</value>
<value>ltr</value>
</choice>
</attribute>

317
</optional>
</define>
Thuộc tính style:first-page-number quy định số hiệu của trang đầu tiên
của một văn bản hoặc tài liệu đồ họa hoặc đối với trang đầu tiên của một bảng
trong một tài liệu bảng tính.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:first-page-number">
<choice>
<ref name="positiveInteger"/>
<value>continue</value>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính style:scale-to và style:scale-to-pages quy định cách ứng
dụng nên chia thang đo các tài liệu bảng tính để in. Thuộc tính style:scale-to quy
định tài liệu chia thang đo đến một giá trị phần trăm, ở đây 100% bằng không
chia tỷ lệ. Khi sử dụng thuộc tính này, tất cả các trang được mở rộng hoặc được
giảm kích thước trong khi in.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:scale-to">
<ref name="percent"/>
</attribute>
</optional>
<optional>
<attribute name="style:scale-to-pages">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính style:table-centering quy định cách ứng dụng nên căn giữa
bảng trên trang. Thuộc tính này chỉ áp dụng cho các tài liệu bảng tính.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:table-centering">
<choice>
<value>horizontal</value>
<value>vertical</value>
<value>both</value>
<value>none</value>
</choice>
</attribute>
</optional>

318
</define>
Thuộc tính style:footnote-max-height quy định chiều cao khoảng trống tối
đa trên trang mà một chân trang có thể chiếm trên trang tài liệu.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:footnote-max-height">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:writing-mode quy định chế độ ghi được sử dụng bởi tất
cả các đoạn xuất hiện trên trang.
<define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist"/>
</define>
Phần tử <style:footnote-sep> mô tả kiểu dáng đường kẻ phân tách vùng
chân trang với vùng thân văn bản trên một trang.
<define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-footnote-sep"/>
</define>
<define name="style-footnote-sep">
<optional>
<element name="style:footnote-sep">
<ref name="style-footnote-sep-attlist"/>
<empty/>
</element>
</optional>
</define>
<define name="style-footnote-sep-attlist" combine="interleave">
<optional>
<attribute name="style:width">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="style:rel-width">
<ref name="percent"/>
</attribute>
</optional>
<optional>
<attribute name="style:color">
<ref name="color"/>
</attribute>
</optional>
<optional>

319
<attribute name="style:line-style">
<ref name="lineStyle"/>
</attribute>
</optional>
<optional>
<attribute name="style:adjustment" a:defaultValue="left">
<choice>
<value>left</value>
<value>center</value>
<value>right</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="style:distance-before-sep">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="style:distance-after-sep">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-mode xác định sự bố trí các khung lưới trên
trang tài liệu.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-mode">
<choice>
<value>none</value>
<value>line</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-base-height quy định chiều cao được dùng
trong các dòng của khung lưới bố trí cơ bản đối với văn bản không phải mầu
hồng.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-base-height">
<ref name="length"/>
</attribute>

320
</optional>
</define>
Thuộc tính style:layout-grid-ruby-height quy định chiều cao được dùng
trong các dòng của khung lưới bố trí đối với văn bản mầu hồng.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-ruby-height">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-lines quy định số các dòng kẻ của khung lưới
bố trí trên mối trang. Số các dòng được hiển thị thực tế có thể nhỏ hơn được quy
đinh nếu trang không có đủ khoảng trống để hiển thị số các dòng được quy đinh
cùng với chiều cao dòng kẻ.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-lines">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-color quy định mầu của khung lưới bố trí
dòng kẻ đường viền.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-ruby-below quy định văn bản mầu hồng được
hiển thị bên trên hoặc bên dưới văn bản cơ sở.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-ruby-below">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-ruby-print quy định khung lưới bố trí dòng
kẻ đường viền được in.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-print">

321
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính style:layout-grid-ruby-print quy định khung lưới bố trí dòng
kẻ đường viền được hiển thị và in ra.
<define name="style-page-layout-properties-attlist" combine="interleave">
<optional>
<attribute name="style:layout-grid-display">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.3. Các đặc tính định dạng tiêu đề đầu trang và cuối trang
Các đặc tính của thuộc tính svg:height và fo:min-height quy định một
chiều cao cố định hoặc chiều cao nhỏ nhất đối với phần tiêu đề đầu trang hoặc
cuối trang trong tài liệu.
<define name="style-header-footer-properties-attlist" combine="interleave">
<optional>
<attribute name="svg:height">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="fo:min-height">
<ref name="length"/>
</attribute>
</optional>
</define>
Các thuộc tính fo:margin, fo:margin-top, fo:margin-bottom, fo:margin-
left và fo:margin-right quy định kích thước của các lề đầu trang và chân trang.
<define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
<ref name="common-vertical-margin-attlist"/>
<ref name="common-margin-attlist"/>
</define>
Các thuộc tính fo:border, fo:border-top, fo:border-bottom, fo:border-left
và fo:border-right quy định các đặc tính đường viền của phần đầu trang và phần
chân trang.
<define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-border-attlist"/>
<ref name="common-border-line-width-attlist"/>
<ref name="common-padding-attlist"/>
</define>

322
Thuộc tính nền fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của đầu trang hoặc cuối trang.
<define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-header-footer-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
Thuộc tính bóng style:shadow quy định kiểu dáng soi bóng của phần đầu
trang và phần chân trang.
<define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist"/>
</define>
Thuộc tính style:dynamic-spacing quy định khoảng trống động của đầu
trang hoặc cuối trang có gia tăng vào trong khoảng cách giữa thân trang và đầu
trang hoặc cuối trang trước khi chiều cao của thân trang trở nên nhỏ hơn hay
không.
<define name="style-header-footer-attlist" combine="interleave">
<optional>
<attribute name="style:dynamic-spacing">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.4 Các đặc tính định dạng văn bản
Các đặc tính được mô tả trong phần này có thể được chứa trong các kiểu
dáng văn bản như các kiểu dáng đoạn hoặc các kiểu dáng ô và chúng được chứa
trong một phần tử <style:text-properties>.
<define name="style-text-properties">
<element name="style:text-properties">
<ref name="style-text-properties-content"/>
</element>
</define>
<define name="style-text-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-text-properties-content-strict">
<ref name="style-text-properties-attlist"/>
<ref name="style-text-properties-elements"/>
</define>
<define name="style-text-properties-elements">
<empty/>
</define>

323
Sử dụng đặc tính fo:font-variant để chuyển đổi tùy chọn để hiển thị văn
bản khi tắt hoặc bật các chữ cái được viết hoa.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:font-variant">
<ref name="fontVariant"/>
</attribute>
</optional>
</define>
<define name="fontVariant">
<choice>
<value>normal</value>
<value>small-caps</value>
</choice>
</define>
Sử dụng đặc tính fo:text-transform để mô tả các phép biến đổi văn bản
sang chữ hoa, chữ thường và in hoa.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:text-transform">
<choice>
<value>none</value>
<value>lowercase</value>
<value>uppercase</value>
<value>capitalize</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:color để quy định mầu cận cảnh của văn bản.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:color">
<ref name="color"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:use-window-font-color để quy định mầu phông của
cửa sổ có nên được sử dụng như mầu cận cảnh đối với mầu nền sáng và mầu
trắng đối với mầu nền đen hay không.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:use-window-font-color">
<ref name="boolean"/>
</attribute>

324
</optional>
</define>
Sử dụng đặc tính style:text-outline để quy định hiển thị một phân cảnh
của văn bản hoặc chính văn bản đó.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-outline">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-line-through-type để quy định văn bản là được
kẻ từ đầu đến cuối, và nếu vậy, một đường thẳng đơn hoặc đôi được sử dụng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-line-through-type">
<ref name="lineType"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-line-through-width để quy định chiều rộng của
một đường thẳng xuyên suốt.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-line-through-width">
<ref name="lineWidth"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-line-through-color để quy định mầu được sử
dụng cho văn bản trên một đường thẳng xuyên suốt.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-line-through-color">
<choice>
<value>font-color</value>
<ref name="color"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính style:text-line-through-text quy định văn bản hiển thị trên
đường thẳng xuyên suốt và chỉ được đánh giá nếu chuỗi giá trị của thuộc tính
style:text-line-through-style khác không.
<define name="style-text-properties-attlist" combine="interleave">

325
<optional>
<attribute name="style:text-line-through-text">
<ref name="string"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính định dạng style:text-position để quy định văn bản được
định vị bên trên hoặc bên dưới vạch ranh giới và để quy định chiều cao phông
chữ tương ứng được sử dụng đối với văn bản này.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-position">
<list>
<choice>
<ref name="percent"/>
<value>super</value>
<value>sub</value>
</choice>
<optional>
<ref name="percent"/>
</optional>
</list>
</attribute>
</optional>
</define>
Sử dụng các đặc tính style:font-name, style:font-name-asian và style:font-
name-complex để gán một phông chữ cho văn bản. Các giá trị của các thuộc tính
này từ tên của một phông chữ được khai báo bởi một phần tử <style:font-face>
trong phần tử <office:font-face-decls>.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-name">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-name-asian">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-name-complex">
<ref name="string"/>
</attribute>
</optional>

326
</define>
Sử dụng các đặc tính style:font-family-generic, style:font-family-generic-
asian và style:font-family-generic-complex để quy định một tên họ phông chữ
khái quát. Các đặc tính này được bỏ qua nếu không có đặc tính fo:font-family
tương ứng được gắn kèm với cùng phần tử các đặc tính.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-family-generic">
<ref name="fontFamilyGeneric"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-family-generic-asian">
<ref name="fontFamilyGeneric"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-family-generic-complex">
<ref name="fontFamilyGeneric"/>
</attribute>
</optional>
</define>
<define name="fontFamilyGeneric">
<choice>
<value>roman</value>
<value>swiss</value>
<value>modern</value>
<value>decorative</value>
<value>script</value>
<value>system</value>
</choice>
</define>
Sử dụng các đặc tính style:font-style-name, style:font-style-name-asian và
style:font-style-name-complex để quy định một tên kiểu dáng phông chữ. Các
đặc tính này được bỏ qua nếu không có đặc tính fo:font-family tương ứng được
gắn kèm với cùng phần tử các đặc tính.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-style-name">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-style-name-asian">
<ref name="string"/>

327
</attribute>
</optional>
<optional>
<attribute name="style:font-style-name-complex">
<ref name="string"/>
</attribute>
</optional>
</define>
Sử dụng các đặc tính style:font-pitch, style:font-pitch và style:font-pitch-
complex để quy định một phông chữ có một độ rộng cố định hoặc biến đổi. Các
đặc tính này được bỏ qua nếu không có đặc tính fo:font-family tương ứng được
gắn kèm với cùng phần tử các đặc tính.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-pitch">
<ref name="fontPitch"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-pitch-asian">
<ref name="fontPitch"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-pitch-complex">
<ref name="fontPitch"/>
</attribute>
</optional>
</define>
<define name="fontPitch">
<choice>
<value>fixed</value>
<value>variable</value>
</choice>
</define>
Sử dụng các đặc tính style:font-charset, style:font-charset-asian và
style:font-charset- complex để quy định bộ ký tự của một phông chữ.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-charset">
<ref name="textEncoding"/>
</attribute>
</optional>
</define>
<define name="textEncoding">

328
<data type="string">
<param name="pattern">[A-Za-z][A-Za-z0-9._\-]*</param>
</data>
</define>
Sử dụng các đặc tính fo:font-size, style:font-size-asian và style:font-size-
complex để quy định kích thước của phông chữ.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:font-size">
<choice>
<ref name="positiveLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
<optional>
<attribute name="style:font-size-asian">
<choice>
<ref name="positiveLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
<optional>
<attribute name="style:font-size-complex">
<choice>
<ref name="positiveLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:font-size-rel, style:font-size-rel-asian và style:font-
size- rel-complex để quy định một Kích thước phông chữ tương đối thay đổi.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-size-rel">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-size-rel-asian">
<ref name="length"/>
</attribute>
</optional>

329
<optional>
<attribute name="style:font-size-rel-complex">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:script-type có thể được sử dụng để quy định các thuộc
tính dựa trên tập lệnh (như fo:font-family, style:font-family-asian, style:font-
family-complex) kích hoạt hiện thời đối với một văn bản. Thuộc tính nên được
đánh giá bởi các ứng dụng không hỗ trợ các kiểu tập lệnh để chọn các đặc tính
dựa trên tập lệnh chính xác. Ứng dụng hỗ trợ các kiểu tập lệnh cũng có thể đánh
giá thuộc tính và ghi đè kiểu tập lệnh chúng đánh giá đối với một ký tự nào đó,
nhưng chúng không bắt buộc.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:script-type">
<choice>
<value>latin</value>
<value>asian</value>
<value>complex</value>
<value>ignore</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:letter-spacing để quy định số lượng khoảng trắng giữa
các chữ cái. Giá trị của đặc tính này có thể là normal hoặc nó có thể quy định
một chiếu dài.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:letter-spacing">
<choice>
<ref name="length"/>
<value>normal</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:language, fo:language-asian và fo:language-
complex để quy định ngôn ngữ của văn bản.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:language">
<ref name="languageCode"/>
</attribute>

330
</optional>
<optional>
<attribute name="style:language-asian">
<ref name="languageCode"/>
</attribute>
</optional>
<optional>
<attribute name="style:language-complex">
<ref name="languageCode"/>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:country, style:country-asian và style:country-
complex để quy định mã quốc gia của tài liệu nếu cần.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:country">
<ref name="countryCode"/>
</attribute>
</optional>
<optional>
<attribute name="style:country-asian">
<ref name="countryCode"/>
</attribute>
</optional>
<optional>
<attribute name="style:country-complex">
<ref name="countryCode"/>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:font-style, style:font-style-asian và style:font-
style-complex để quy định sử dụng bề mặt phông chữ thường hoặc nghiêng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:font-style">
<ref name="fontStyle"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-style-asian">
<ref name="fontStyle"/>
</attribute>
</optional>
<optional>

331
<attribute name="style:font-style-complex">
<ref name="fontStyle"/>
</attribute>
</optional>
</define>
<define name="fontStyle">
<choice>
<value>normal</value>
<value>italic</value>
<value>oblique</value>
</choice>
</define>
Sử dụng đặc tính style:font-relief để quy định phông chữ đó nên được rập
nổi, in sâu hoặc bình thường.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-relief">
<choice>
<value>none</value>
<value>embossed</value>
<value>engraved</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:text-shadow để quy định kiểu dáng soi bóng văn bản
sử dụng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:text-shadow">
<ref name="shadowType"/>
</attribute>
</optional>
</define>
<define name="shadowType">
<choice>
<value>none</value>
<!-- The following string phải match an XSL shadow decl -->
<ref name="string"/>
</choice>
</define>
Sử dụng đặc tính style:text-underline-type để quy định văn bản được gạch
dưới và nếu vậy, một đường thẳng đơn hoặc đôi được sử dụng để gạch dưới.
<define name="style-text-properties-attlist" combine="interleave">
<optional>

332
<attribute name="style:text-underline-type">
<ref name="lineType"/>
</attribute>
</optional>
</define>
<define name="lineType">
<choice>
<value>none</value>
<value>single</value>
<value>double</value>
</choice>
</define>
Sử dụng đặc tính style:text-underline-style để quy định nếu và cách văn
bản được gạch dưới. Giá trị của đặc tính này là kiểu dáng gạch dưới đối với văn
bản, ví dụ, single, dotted, dash.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-underline-style">
<ref name="lineStyle"/>
</attribute>
</optional>
</define>
<define name="lineStyle">
<choice>
<value>none</value>
<value>solid</value>
<value>dotted</value>
<value>dash</value>
<value>long-dash</value>
<value>dot-dash</value>
<value>dot-dot-dash</value>
<value>wave</value>
</choice>
</define>
Sử dụng đặc tính style:text-underline-width quy định chiều rộng của một
đường gạch dưới của văn bản.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-underline-width">
<ref name="lineWidth"/>
</attribute>
</optional>
</define>
<define name="lineWidth">
<choice>

333
<value>auto</value>
<value>normal</value>
<value>bold</value>
<value>thin</value>
<value>dash</value>
<value>medium</value>
<value>thick</value>
<ref name="positiveInteger"/>
<ref name="percent"/>
<ref name="positiveLength"/>
</choice>
</define>
Sử dụng đặc tính style:text-underline-color để quy định mầu được sử
dụng cho văn bản gạch dưới.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-underline-color">
<choice>
<value>font-color</value>
<ref name="color"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:font-weight, style:font-weight-asian và style:font-
weight-complex để quy định trọng lượng của phông chữ.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:font-weight">
<ref name="fontWeight"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-weight-asian">
<ref name="fontWeight"/>
</attribute>
</optional>
<optional>
<attribute name="style:font-weight-complex">
<ref name="fontWeight"/>
</attribute>
</optional>
</define>
<define name="fontWeight">
<choice>

334
<value>normal</value>
<value>bold</value>
<value>100</value>
<value>200</value>
<value>300</value>
<value>400</value>
<value>500</value>
<value>600</value>
<value>700</value>
<value>800</value>
<value>900</value>
</choice>
</define>
Sử dụng đặc tính style:text-underline-mode để quy định chế độ làm việc
gạch dưới được áp dụng cho các từ hoặc cho các phần của văn bản.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-underline-mode">
<ref name="lineMode"/>
</attribute>
</optional>
</define>
<define name="lineMode">
<choice>
<value>continuous</value>
<value>skip-white-space</value>
</choice>
</define>
Sử dụng đặc tính style:letter-kerning để cho phép hoặc làm vô hiệu hóa
việc co kéo giữa các ký tự.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:letter-kerning">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-blinking để quy định văn bản có nhấp nháy
hay không.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-blinking">
<ref name="boolean"/>
</attribute>
</optional>

335
</define>
Sử dụng đặc tính fo:background-color để quy định mầu nền áp dụng cho
các ký tự.
<define name="style-text-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
Sử dụng đặc tính style:text-combine để kết nối các ký tự vì vậy chúng
được hiển thị trong hai dòng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-combine">
<choice>
<value>none</value>
<value>letters</value>
<value>lines</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng hai đặc tính style:text-combine-start-char và style:text-combine-
end-char để quy định một ký tự bắt đầu và kết thúc được hiển thị trước và sau
một phần văn bản mà đặc tính style:text-combine của nó có một giá trị dòng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-combine-start-char">
<ref name="character"/>
</attribute>
</optional>
<optional>
<attribute name="style:text-combine-end-char">
<ref name="character"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-emphasize để nhấn mạnh thứ tự chữ cái của
văn bản trong các tài liệu.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-emphasize">
<choice>
<value>none</value>
<list>
<choice>
<value>none</value>
<value>accent</value>

336
<value>dot</value>
<value>circle</value>
<value>disc</value>
</choice>
<choice>
<value>above</value>
<value>below</value>
</choice>
</list>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:text-scale để giảm hoặc tăng chiều rộng của văn
bản bằng việc co dãn chiều rộng phông chữ.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-scale">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính style:text-rotation-angle quy định một góc mà văn bản được
quay. Giá trị của thuộc tính này có thể là 0, 90 hoặc 270. Mọi góc khác sẽ được
làm tròn đến giá trị gần nhất có thể khi sử dụng.
<define name="style-text-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-rotation-angle">
<ref name="integer"/>
</attribute>
</optional>
</define>
15.5. Các đặc tính định dạng đoạn văn bản
Các đặc tính được mô tả trong phần này có thể được chứa trong các kiểu
dáng đoạn chứa trong một phần tử <style:paragraph-properties> để mô tả các
đặc tính định dạng đoạn văn bản.
<define name="style-paragraph-properties">
<element name="style:paragraph-properties">
<ref name="style-paragraph-properties-content"/>
</element>
</define>
<define name="style-paragraph-properties-content">
<ref name="style-properties-content"/>
</define>

337
<define name="style-paragraph-properties-content-strict">
<ref name="style-paragraph-properties-attlist"/>
<ref name="style-paragraph-properties-elements"/>
</define>
Sử dụng đặc tính fo:line-height để quy định một chiều cao dòng cố định
cũng như một chiếu dài hoặc một tỷ lệ phần trăm liên quan đến ký tự cao nhất
trong một dòng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:line-height">
<choice>
<value>normal</value>
<ref name="nonNegativeLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:line-height-at-least để quy định một chiều cao tối
thiểu của dòng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:line-height-at-least">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính style:line-spacing để quy định một khoảng cách cố định
giữa hai dòng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:line-spacing">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:font-independent-line-spacing quy định khoảng cách
dòng độc lập với phông chữ được sử dụng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-independent-line-spacing">
<ref name="boolean"/>
</attribute>
</optional>
</define>

338
Sử dụng đặc tính fo:text-align để quy định cách thức căn lề văn bản trong
các đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-text-align"/>
</define>
<define name="common-text-align">
<optional>
<attribute name="fo:text-align">
<choice>
<value>start</value>
<value>end</value>
<value>left</value>
<value>right</value>
<value>center</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:text-align-last để quy định cách căn lề dòng cuối cùng
của một đoạn đã được điều chỉnh.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:text-align-last">
<choice>
<value>start</value>
<value>center</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:keep-together để kiểm soát các dòng kẻ của một đoạn
nên được giữ cùng nhau trên cùng trang hoặc cột hoặc các ngắt được cho phép
trong đoạn văn bản.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:keep-together">
<choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>

339
Sử dụng đặc tính fo:orphans để quy định con số tối thiểu các dòng được
yêu cầu tại đáy của một trang để tránh các dòng mồ côi của đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:orphans">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Sử dụng phần tử dừng tab <style:tab-stops> để quy định các xác định
điểm dừng tab sử dụng trong đoạn văn bản.
<define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-tab-stops"/>
</define>
<define name="style-tab-stops">
<optional>
<element name="style:tab-stops">
<zeroOrMore>
<ref name="style-tab-stop"/>
</zeroOrMore>
</element>
</optional>
</define>
<define name="style-tab-stop">
<element name="style:tab-stop">
<ref name="style-tab-stop-attlist"/>
<empty/>
</element>
</define>
Thuộc tính style:leader-text-style quy định một kiểu dáng văn bản được
áp dụng cho một trang dẫn chính nguyên bản. Nó không được áp dụng cho các
dòng dẫn trang. Nếu thuộc tính xuất hiện trong một kiểu dáng tự động, nó có thể
tham chiếu đến một kiểu dáng văn bản tự động hoặc một kiểu dáng chung.
<define name="style-tab-stop-attlist" combine="interleave">
<optional>
<attribute name="style:leader-text-style">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính style:tab-stop-distance quy định khoảng cách giữa điểm dừng
tab mặc định.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:tab-stop-distance">

340
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Sử dụng <style:drop-cap> để quy định ký tự đầu tiên hoặc nhiều ký tự của
một đoạn được hiển thị theo một phông chữ lớn hơn.
<define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-drop-cap"/>
</define>
<define name="style-drop-cap">
<optional>
<element name="style:drop-cap">
<ref name="style-drop-cap-attlist"/>
<empty/>
</element>
</optional>
</define>
Thuộc tính style:lines quy định số các dòng mà các ký tự được dốc ngược
nên chạy vòng.
<define name="style-drop-cap-attlist" combine="interleave">
<optional>
<attribute name="style:lines" a:defaultValue="1">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Thuộc tính style:distance quy định khoảng cách giữa các ký tự được dốc
ngược cuối cùng và ký tự được dốc ngược đầu tiên của các ký tự còn lại của mỗi
dòng.
<define name="style-drop-cap-attlist" combine="interleave">
<optional>
<attribute name="style:distance" a:defaultValue="0cm">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính style:style-name quy định kiểu dáng văn bản áp dụng cho các
ký tự được dốc ngược.
<define name="style-drop-cap-attlist" combine="interleave">
<optional>
<attribute name="style:style-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>

341
Sử dụng các đặc tính fo:margin-left và fo:margin-right để quy định lề trái
và lề phải cho một đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
</define>
<define name="common-horizontal-margin-attlist">
<optional>
<attribute name="fo:margin-left">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
Sử dụng đặc tính fo:text-indent để quy định định dạng thụt lề dương hoặc
âm đối với dòng đầu tiên của một đoạn. Đặc tính fo:text-indent phải được sử
dụng cùng với các đặc tính fo:margin-left và fo:margin-right.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:text-indent">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng style:auto-text-indent để quy định tự động định dạng dòng đầu
tiên của một đoạn được thụt lề bởi một giá trị đó dựa trên cơ sở kích thước
phông chữ hiện thời.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:auto-text-indent">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:margin-top và fo:margin-bottom để quy định các
lề ở đỉnh và đáy cho các đoạn đã chọn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-vertical-margin-attlist"/>
</define>
<define name="common-vertical-margin-attlist">
<optional>
<attribute name="fo:margin-top">
<choice>

342
<ref name="nonNegativeLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
<optional>
<attribute name="fo:margin-bottom">
<choice>
<ref name="nonNegativeLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:margin để quy định kiểu cách định dạng cho phần
đỉnh, đáy, lề trái và lề phải cho các đoạn một cách đồng thời.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-margin-attlist"/>
</define>
<define name="common-margin-attlist">
<optional>
<attribute name="fo:margin">
<choice>
<ref name="nonNegativeLength"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng các đặc tính fo:break-before và fo:break-after để thông báo việc
chèn một trang hoặc một cột ngắt dòng trước hoặc sau một đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-break-attlist"/>
</define>
<define name="common-break-attlist">
<optional>
<attribute name="fo:break-before">
<choice>
<value>auto</value>
<value>column</value>
<value>page</value>
</choice>
</attribute>
</optional>
<optional>

343
<attribute name="fo:break-after">
<choice>
<value>auto</value>
<value>column</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:background-color để quy định mầu nền của một đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="common-background-color-attlist">
<optional>
<attribute name="fo:background-color">
<choice>
<value>transparent</value>
<ref name="color"/>
</choice>
</attribute>
</optional>
</define>
Sử dụng <style:background-image> để quy định một ảnh nền cho một
đoạn văn bản.
<define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
<define name="style-background-image">
<optional>
<element name="style:background-image">
<ref name="style-background-image-attlist"/>
<choice>
<ref name="common-draw-data-attlist"/>
<ref name="office-binary-data"/>
<empty/>
</choice>
</element>
</optional>
</define>
Sử dụng các đặc tính đường viền fo:border, fo:border-top, fo:border-
bottom, fo:border- left và fo:border-right để quy định các đặc tính đường viền
cho các đoạn văn bản.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-border-attlist"/>

344
</define>
<define name="common-border-attlist">
<optional>
<attribute name="fo:border">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="fo:border-top">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="fo:border-bottom">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="fo:border-left">
<ref name="string"/>
</attribute>
</optional>
<optional>
<attribute name="fo:border-right">
<ref name="string"/>
</attribute>
</optional>
</define>
Nếu kiểu dáng đường kẻ đối với một đường viền là double, sử dụng các
đặc tính đường của đường viền style:border-line- width, style:border-line-width-
top, style:border-line-width-bottom, style:border-line-width-left và style:border-
line-width-right cho từng đặc tính quy định chiều rộng của các đường kẻ bên
trong và bên ngoài và khoảng cách giữa chúng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist"/>
</define>
<define name="common-border-line-width-attlist">
<optional>
<attribute name="style:border-line-width">
<ref name="borderWidths"/>
</attribute>
</optional>
<optional>
<attribute name="style:border-line-width-top">
<ref name="borderWidths"/>

345
</attribute>
</optional>
<optional>
<attribute name="style:border-line-width-bottom">
<ref name="borderWidths"/>
</attribute>
</optional>
<optional>
<attribute name="style:border-line-width-left">
<ref name="borderWidths"/>
</attribute>
</optional>
<optional>
<attribute name="style:border-line-width-right">
<ref name="borderWidths"/>
</attribute>
</optional>
</define>
<define name="borderWidths">
<list>
<ref name="positiveLength"/>
<ref name="positiveLength"/>
<ref name="positiveLength"/>
</list>
</define>
Sử dụng các đặc tính đệm fo:padding, fo:padding-top, fo:padding-bottom,
fo:padding-left và fo:padding-right để quy định khoảng cách quanh một đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-padding-attlist"/>
</define>
<define name="common-padding-attlist">
<optional>
<attribute name="fo:padding">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="fo:padding-top">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="fo:padding-bottom">
<ref name="nonNegativeLength"/>
</attribute>

346
</optional>
<optional>
<attribute name="fo:padding-left">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="fo:padding-right">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Sử dụng style:shadow để quy định một hiệu ứng bóng đối với đoạn.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist"/>
</define>
<define name="common-shadow-attlist">
<optional>
<attribute name="style:shadow">
<ref name="shadowType"/>
</attribute>
</optional>
</define>
Sử dụng đặc tính fo:keep-with-next để quy định có duy trì đoạn hiện tại
và đoạn tiếp theo trên cùng một trang hoặc trong một cột sau khi ngắt được chèn
vào hay không.
<define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-keep-with-next-attlist"/>
</define>
<define name="common-keep-with-next-attlist">
<optional>
<attribute name="fo:keep-with-next">
<choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính text:number-lines kiểm soát các dòng có được đánh số hay
không.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="text:number-lines" a:defaultValue="false">
<ref name="boolean"/>

347
</attribute>
</optional>
</define>
Thuộc tính text:line-number quy định một giá trị bắt đầu mới đối với việc
đánh số dòng trong đoạn văn bản.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="text:line-number">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Sử dụng style:text-autospace để quy định tự động bổ sung khoảng trắng
giữa văn bản phức tạp.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-autospace">
<choice>
<value>none</value>
<value>ideograph-alpha</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng style:line-break để chọn việc thiết lập các quy tắc ngắt dòng để
sử dụng đối với văn bản.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:line-break">
<choice>
<value>normal</value>
<value>strict</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính style:vertical-align quy định vị trí căn lề theo chiều dọc của
một ký tự. Theo mặc định các ký tự được căn chỉnh theo đường cơ sở của
chúng.
<define name="style-paragraph-properties-attlist" combine="interleave">
<optional>
<attribute name="style:vertical-align" a:defaultValue="auto">
<choice>
<value>top</value>
<value>middle</value>

348
<value>bottom</value>
<value>auto</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính nền fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của phần đoạn.
<define name="style-section-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-section-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
Các thuộc tính của các lề fo:margin-left và fo:margin-right quy định kích
thước của các lề của phần đoạn.
<define name="style-section-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
</define>
15.6. Các đặc tính định dạng văn bản mầu hồng
Các đặc tính được mô tả trong phần này có thể được sử dụng trong các
kiểu dáng văn bản mầu hồng. Chúng được chứa trong một phần tử <style:ruby-
properties> .
<define name="style-ruby-properties">
<element name="style:ruby-properties">
<ref name="style-ruby-properties-content"/>
</element>
</define>
<define name="style-ruby-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-ruby-properties-content-strict">
<ref name="style-ruby-properties-attlist"/>
<ref name="style-ruby-properties-elements"/>
</define>
<define name="style-ruby-properties-elements">
<empty/>
</define>
Đặc tính style:ruby-position quy định vị trí của văn bản mầu hồng liên
quan đến cơ sở mầu hồng.
<define name="style-ruby-properties-attlist" combine="interleave">
<optional>
<attribute name="style:ruby-position">
<choice>

349
<value>above</value>
<value>below</value>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:ruby-align quy định sự căn chỉnh của văn bản mầu hồng
liên quan đến cơ sở mầu hồng.
<define name="style-ruby-properties-attlist" combine="interleave">
<optional>
<attribute name="style:ruby-align">
<choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>distribute-letter</value>
<value>distribute-space</value>
</choice>
</attribute>
</optional>
</define>
15.7. Các đặc tính định dạng của phần đoạn
Các đặc tính được mô tả trong phần này có thể được sử dụng trong các
kiểu dáng phần đoạn. Chúng được chứa trong một phần tử <style:section-
properties>.
<define name="style-section-properties">
<element name="style:section-properties">
<ref name="style-section-properties-content"/>
</element>
</define>
<define name="style-section-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-section-properties-content-strict">
<ref name="style-section-properties-attlist"/>
<ref name="style-section-properties-elements"/>
</define>
Thuộc tính nền fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của phần đoạn.
<define name="style-section-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-section-properties-elements" combine="interleave">
<ref name="style-background-image"/>

350
</define>
Các thuộc tính của các lề fo:margin-left và fo:margin-right quy định kích
thước của các lề của phần đoạn.
<define name="style-section-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
</define>
Phần tử <style:columns> có thể bao gồm một phần tử <style:column-sep>
mô tả đường phân tách giữa các cột.
<define name="style-section-properties-elements" combine="interleave">
<ref name="style-columns"/>
</define>
<define name="style-columns">
<optional>
<element name="style:columns">
<ref name="style-columns-attlist"/>
<optional>
<ref name="style-column-sep"/>
</optional>
<zeroOrMore>
<ref name="style-column"/>
</zeroOrMore>
</element>
</optional>
</define>
Thuộc tính fo:columns-count quy định số các cột trong một phần đoạn.
<define name="style-columns-attlist" combine="interleave">
<attribute name="fo:column-count">
<ref name="positiveInteger"/>
</attribute>
</define>
Phần tử <style:column-sep> quy định đường phân tách để sử dụng giữa
các cột. Phần tử này có thể được chứa trong một phần tử <style:columns> để
quy định kiểu dòng phân tách sử dụng giữa các cột.
<define name="style-column-sep">
<element name="style:column-sep">
<ref name="style-column-sep-attlist"/>
</element>
</define>
Sử dụng thuộc tính style:style để quy định kiểu dáng đường thẳng của
đường phân tách cột.
<define name="style-column-sep-attlist" combine="interleave">
<optional>
<attribute name="style:style" a:defaultValue="solid">
<choice>
<value>none</value>
351
<value>solid</value>
<value>dotted</value>
<value>dashed</value>
<value>dot-dashed</value>
</choice>
</attribute>
</optional>
</define>
Sử dụng thuộc tính style:width để quy định chiều rộng của đường phân
tách cột.
<define name="style-column-sep-attlist" combine="interleave">
<attribute name="style:width">
<ref name="length"/>
</attribute>
</define>
Sử dụng thuộc tính style:height để quy định chiều cao của đường phân
tách cột. Giá trị của thuộc tính này là một tỷ lệ phần trăm liên quan đến chiều
cao của vùng có cột.
<define name="style-column-sep-attlist" combine="interleave">
<optional>
<attribute name="style:height" a:defaultValue="100%">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính text:dont-balance-text-columns quy định nội dung cột văn bản
có nên được phân bố bằng nhau trên tất cả các cột văn bản hay không.
<define name="style-section-properties-attlist" combine="interleave">
<optional>
<attribute name="text:dont-balance-text-columns">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.8. Các đặc tính định dạng bảng
Các đặc tính được mô tả trong phần này có thể được chứa trong các kiểu
dáng bảng. Chúng được chứa trong một phần tử <style:table-properties>.
<define name="style-table-properties">
<element name="style:table-properties">
<ref name="style-table-properties-content"/>
</element>
</define>
<define name="style-table-properties-content">
<ref name="style-properties-content"/>

352
</define>
<define name="style-table-properties-content-strict">
<ref name="style-table-properties-attlist"/>
<ref name="style-table-properties-elements"/>
</define>
Đặc tính fo:keep-with-next quy định một bảng cùng tồn tại với đoạn văn
bản theo sau nó.
<define name="style-table-properties-attlist" combine="interleave">
<ref name="common-keep-with-next-attlist"/>
</define>
Đặc tính style:may-break-between-rows quy định rằng ngắt trang có thể
xảy ra bên trong một bảng.
<define name="style-table-properties-attlist" combine="interleave">
<optional>
<attribute name="style:may-break-between-rows">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính style:writing-mode quy định chế độ ghi được sử dụng đối với
bảng.
<define name="style-table-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist"/>
</define>
Thuộc tính table:display quy định việc bảng có được hiển thị hay không.
<define name="style-table-properties-attlist" combine="interleave">
<optional>
<attribute name="table:display">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.9. Các đặc tính định dạng cột
Các đặc tính được mô tả trong phần này có thể được bao hàm trong các
kiểu dáng cột của bảng. Chúng được chứa trong một phần tử <style:table-
column-properties>.
<define name="style-table-column-properties">
<element name="style:table-column-properties">
<ref name="style-table-column-properties-content"/>
</element>
</define>
<define name="style-table-column-properties-content">
<ref name="style-properties-content"/>
</define>

353
<define name="style-table-column-properties-content-strict">
<ref name="style-table-column-properties-attlist"/>
<ref name="style-table-column-properties-elements"/>
</define>
<define name="style-table-column-properties-elements">
<empty/>
</define>
Thuộc tính style:use-optimal-column-width quy định rằng chiều rộng cột
phải được tự động tính lại nếu như một số nội dung trong cột thay đổi.
<define name="style-table-column-properties-attlist" combine="interleave">
<optional>
<attribute name="style:use-optimal-column-width">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các đặc tính fo:break-before và fo:break-after chèn một dấu ngắt trang
hoặc ngắt cột trước hoặc sau một cột của bảng. Xem phần 15.5.22 về phần giải
nghĩa đầy đủ các đặc tính này.
<define name="style-table-column-properties-attlist" combine="interleave">
<ref name="common-break-attlist"/>
</define>
15.10. Các đặc tính định dạng dòng của bảng
Các đặc tính được mô tả trong phần này có thể được bao hàm trong các
kiểu dáng cột bảng. Chúng được chứa trong một phần tử <style:table-column-
properties>.
<define name="style-table-row-properties">
<element name="style:table-row-properties">
<ref name="style-table-row-properties-content"/>
</element>
</define>
<define name="style-table-row-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-table-row-properties-content-strict">
<ref name="style-table-row-properties-attlist"/>
<ref name="style-table-row-properties-elements"/>
</define>
Các đặc tính style:row-height và style:min-row-height quy định chiều cao
của một dòng bảng. Theo mặc định, chiều cao dòng là chiều cao của mục cao
nhất trong dòng.
<define name="style-table-row-properties-attlist" combine="interleave">
<optional>
<attribute name="style:row-height">

354
<ref name="positiveLength"/>
</attribute>
</optional>
<optional>
<attribute name="style:min-row-height">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Thuộc tính style:use-optimal-row-height quy định rằng chiều cao dòng
phải được tự động tính lại nếu như một số nội dung trong dòng thay đổi.
<define name="style-table-row-properties-attlist" combine="interleave">
<optional>
<attribute name="style:use-optimal-row-height">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính nền fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của bảng.
<define name="style-table-row-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-table-row-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
Sử dụng đặc tính fo:keep-together để kiểm soát việc liệu các nội dung của
một ô bảng có được giữ liên tục trên cùng một trang hoặc cùng một cột hay
không (nếu giá trị đó là always), hoặc liệu các dấu ngắt có được phép trong
phạm vi ô hay không (nếu giá trị đó là auto).
<define name="style-table-row-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:keep-together">
<choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>
15.11. Các đặc tính định dạng ô trong bảng
Các đặc tính được mô tả trong phần này có thể được bao hàm trong các
kiểu dáng ô trong bảng. Chúng được chứa trong một phần tử <style:table-
column-properties>.

355
<define name="style-table-cell-properties">
<element name="style:table-cell-properties">
<ref name="style-table-cell-properties-content"/>
</element>
</define>
<define name="style-table-cell-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-table-cell-properties-content-strict">
<ref name="style-table-cell-properties-attlist"/>
<ref name="style-table-cell-properties-elements"/>
</define>
Đặc tính canh chỉnh theo chiều dọc style:vertical-align được sử dụng để
quy định việc cănh chỉnh theo chiều dọc của văn bản trong một ô trong bảng.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:vertical-align">
<choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>automatic</value>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:text-align-source quy định nguồn của đặc tính canh lề văn
bản. Nếu giá trị của thuộc tính này là fix, thì sử dụng giá trị của đặc tính fo:text-
align. Nếu giá trị đó là value-type, thì việc canh lề văn bản phụ thuộc vào loại
giá trị (value-type)của ô.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:text-align-source">
<choice>
<value>fix</value>
<value>value-type</value>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:direction quy định hướng của các ký tự trong một ô. Hướng
thông dụng nhất là từ trái sang phải.
<define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-style-direction-attlist"/>
</define>
356
<define name="common-style-direction-attlist">
<optional>
<attribute name="style:direction">
<choice>
<value>ltr</value>
<value>ttb</value>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:glyph-orientation-vertical quy định hướng nét chạm thẳng
đứng. Đặc tính này quy định một góc hoặc một chế độ tự động. Góc hợp lý duy
nhất bằng 0, nó vô hiệu hóa tính năng này.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:glyph-orientation-vertical">
<choice>
<value>auto</value>
<value>0</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính nền fo:background-color và phần tử nền <style:background-
image> quy định các đặc tính nền của ô trong bảng.
<define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist"/>
</define>
<define name="style-table-cell-properties-elements" combine="interleave">
<ref name="style-background-image"/>
</define>
Các thuộc tính độ rộng dòng kẻ đường viền style:border-line-width,
style:border-line-width- top, style:border-line-width-bottom, style:border-line-
width-left và style:border-line-width-right quy định các đặc tính của dòng kẻ
đường viền của trang.
<define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist"/>
</define>
Đặc tính style:rotation-angle quy định góc xoay của nội dung trong ô tính
bằng độ.
<define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-rotation-angle-attlist"/>
</define>
<define name="common-rotation-angle-attlist">
<optional>
357
<attribute name="style:rotation-angle">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Đặc tính style:rotation-align quy định cách canh lề biên của văn bản trong
một ô sau khi xoay.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:rotation-align">
<choice>
<value>none</value>
<value>bottom</value>
<value>top</value>
<value>center</value>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:cell-protect quy định cách bảo vệ một ô.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:cell-protect">
<choice>
<value>none</value>
<value>hidden-and-protected</value>
<list>
<oneOrMore>
<choice>
<value>protected</value>
<value>formula-hidden</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
Đặc tính style:print-content quy định nội dung trong ô có được in hay
không.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:print-content">
<ref name="boolean"/>
</attribute>
358
</optional>
</define>
Thuộc tính style:decimal-places quy định số số ký tự thập phân tối đa
được hiển thị nếu như các chữ số được định dạng bởi một kiểu dữ liệu mà bản
thân nó không có sự sắp đặt số chữ số thập phân.
Đặc tính style:repeat-content quy định nội dung của một ô có được hiển
thị mỗi khi có dấu cách trong hướng ghi của ô. Chỉ những văn bản đầy đủ mới
được hiển thị. Đặc tính này không có tác dụng đối với phần nội dung của ô có
chứa một ngắt dòng. Đặc tính này là đối với trường hợp được dùng để “điền
đầy” một ô của bảng với các ký tự "-" hoặc "x" để không dữ liệu nào có thể
được nhập vào.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:repeat-content">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Đặc tính style:shrink-to-fit quy định việc nội dung của một ô, nếu cần
thiết có co lại cho vừa vào trong ô hay không. Co lại có nghĩa là kích thước
phông chữ của ô nhỏ đi, để sao cho toàn bộ văn bản vừa vặn vào trong ô. Đặc
tính không có tác dụng trên các ô trong đó nội dung của ô đã vừa vặn vào trong
ô rồi.
<define name="style-table-cell-properties-attlist" combine="interleave">
<optional>
<attribute name="style:shrink-to-fit">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.12. Đặc tính kiểu dáng mức danh sách
Các đặc tính được mô tả trong phần này có thể được chứa trong các phần
tử mức kiểu danh sách khác nhau. Chúng được chứa trong một phần tử
<style:list-level-properties>.
<define name="style-list-level-properties">
<element name="style:list-level-properties">
<ref name="style-list-level-properties-content"/>
</element>
</define>
<define name="style-list-level-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-list-level-properties-content-strict">
<ref name="style-list-level-properties-attlist"/>

359
<ref name="style-list-level-properties-elements"/>
</define>
<define name="style-list-level-properties-elements">
<empty/>
</define>
Thuộc tính text:space-before quy định khoảng trống phía trước chữ số đối
với tất cả các đoạn văn ở mức này. Nếu một đoạn văn có lề trái lớn hơn 0, vị trí
thực tế của hộp nhãn danh sách là độ rộng của lề trái cộng với giá trị thụt vào
khi bắt đầu. Thuộc tính này có thể được kết hợp với một phần tử đặt vị trí mục
có chứa một phần tử <text:list- level-style-*>.
<define name="style-list-level-properties-attlist" combine="interleave">
<optional>
<attribute name="text:space-before">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Thuộc tính text:min-label-width quy định độ rộng tối thiểu của một chữ
số. Thuộc tính này có thể cc]ợ kết hợp với một phần tử thiết lập mục (item set
element) được chứa trong một phần tử <text:list- level-style-*>.
<define name="style-list-level-properties-attlist" combine="interleave">
<optional>
<attribute name="text:min-label-width">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Thuộc tinh text:min-label-distance quy định khoảng cách tối thiểu giữa số
và văn bản của một mục danh sách. Thuộc tính này có thể được kết hợp với một
phần tử thiết lập mục được chứa trong một phần tử <text:list- level-style-*>.
<define name="style-list-level-properties-attlist" combine="interleave">
<optional>
<attribute name="text:min-label-distance">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Thuộc tính style:font-name quy định tên của một phông chữ được sử dụng
để hiển thị một ký tự dấu chấm đầu hàng.
<define name="style-list-level-properties-attlist" combine="interleave">
<optional>
<attribute name="style:font-name">
<ref name="string"/>
</attribute>
</optional>
360
</define>
15.13 Các đặc tính của vạch
Các đặc tính dưới đây của vạch (stroke properties) được sử dụng để xác
định các đặc điểm của đường đối tượng họa tiết. Các đặc tính của vạc có thể
dùng được cho các đối tượng họa tiết được chứa trong tất cả các loại ứng dụng.
• Kiểu dáng
• Nét
• Độ rộng
• Màu sắc
• Vạch dấu bắt đầu
• Vạch dấu kết thúc
• Độ rộng vạch dấu bắt đầu
• Độ rộng vạch dấu kết thúc
• Tâm vạch dấu khởi động
• Tâm vạch dấu kết thúc
• Độ chắn sáng
• Liên kết
Thuộc tính draw:stroke quy định kiểu dáng của vạch trên đối tượng hiện
hành. Giá trị none có nghĩa là không có vạch nào được vẽ, và giá trị solid có
nghĩa là một vạch đặc được vẽ. Nếu giá trị đó là dash, vạch được tham chiếu bởi
thuộc tính draw:stroke-dash được vẽ.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:stroke">
<choice>
<value>none</value>
<value>dash</value>
<value>solid</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:stroke-dash quy định kiểu dáng của nét gạch ngang sử
dụng cho vạch.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:stroke-dash">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:stroke-dash-names quy định một danh sách các kiểu
dáng gạch ngang được sử dụng cho vạch bổ sung cho phần nét gạch ngang được
quy đinh bởi thuộc tính draw:stroke-dash.

361
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:stroke-dash-names">
<ref name="styleNameRefs"/>
</attribute>
</optional>
</define>
Thuộc tính svg:stroke-width quy định chiều rộng của stroke trên đối
tượng hiền hành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="svg:stroke-width">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính svg:stroke-color quy định mầu của stroke trên đối tượng hiện
hành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="svg:stroke-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính draw:marker-start quy định một vạch dấu đầu dòng, đó là một
đường dẫn có thể được nối với điểm bắt đầu của một vạch.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-start">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:marker-end quy định một vạch dấu kết thúc vạch, đó là
một đường dẫn có thể được nối với điểm kết thúc của một vạch.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-end">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
15.13.8 Độ rộng của vạch dấu bắt đâu (Start Marker Width)

362
Thuộc tính draw:marker-start-width quy định chiều rộng của vạch dấu tại
điểm bắt đầu của vạch.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-start-width">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:marker-end-width quy định chiều rộng của vạch dấu tại
điểm kết thúc của vạch.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-end-width">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:marker-start-center quy định một vạch dấu bắt đầu có
được đặt vào giữa khi bắt đầu một vạch hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-start-center">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:marker-end-center quy định một vạch dấu kết thúc có
được đặt vào giữa hay không khi kết thúc một stroke.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:marker-end-center">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính svg:stroke-opacity quy định độ đục của một vạch. Giá trị của
thuộc tính này có thể là một số giữa 0 (trong suốt) và 1 (đục hoàn toàn) hoặc
một số tỷ lệ phần trăm.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="svg:stroke-opacity">
<choice>
<data type="double">
<param name="minInclusive">0</param>
363
<param name="maxInclusive">1</param>
</data>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:stroke-linejoin quy định hình dáng tại góc của các đường
dẫn hoặc các hình dạng của vectơ khác, khi góc của đường dẫn hoặc hình dạng
của vectơ này được stroked. Các giá trị tương tự như đối với thuộc tính stroke-
linejoin của [SVG], chỉ trừ thuộc tính thêm vào cho các giá trị được hỗ trợ bởi
SVG có thể có giá trị middle, điều này có nghĩa là sử dụng giá trị trung bình
giữa các liên kết.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:stroke-linejoin">
<choice>
<value>miter</value>
<value>round</value>
<value>bevel</value>
<value>middle</value>
<value>none</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
15.14. Đặc tính tô kín đối tượng
Thuộc tính draw:fill quy định kiểu dáng tô kín đối với một đối tượng đồ
họa. Các đối tượng đồ họa không khép kín sẽ không được nối kín.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill">
<choice>
<value>none</value>
<value>solid</value>
<value>bitmap</value>
<value>gradient</value>
<value>hatch</value>
</choice>
</attribute>
</optional>
</define>

364
Thuộc tính draw:fill-color quy định mầu của phần phủ đối với một đối
tượng đồ họa.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính draw:secondary-fill-color quy định màu phủ thứ cấp cho đối
tượng đồ họa.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:secondary-fill-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính draw:fill-gradient-name quy định một kiểu dáng gradient được
sử dụng để tô kín các đối tượng đồ họa.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill-gradient-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:fill-hatch-name quy định kiểu dáng của đường gạch
bóng được sử dụng cho việc tô kín đối tượng.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill-hatch-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:fill-hatch-solid quy định nền của một đường gạch bóng
là đặc hay trong suốt khi tô kín đối tượng.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill-hatch-solid">
<ref name="boolean"/>
</attribute>
</optional>
</define>
365
Thuộc tính draw:fill-image-name quy định một ảnh phủ được sử dụng để
phủ kín đối tượng.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fill-image-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:opacity-name quy định một độ dốc của độ chắn sáng nó
xác định độ chắn sáng đối với khu vực phủ của một đối tượng đồ họa.
Giá trị của thuộc tính này ghi đè lên thuộc tính draw:opacity.
<define name="style-graphic-fill-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:opacity-name">
<ref name="styleNameRef"/>
</attribute>
</optional>
</define>
Thuộc tính draw:symbol-color xác định mầu được sử dụng để vẽ các biểu
tượng trên đối tượng họa tiết.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:symbol-color">
<ref name="color"/>
</attribute>
</optional>
</define>
15.15. Các đặc tính văn bản hoạt ảnh
Các đối tượng họa tiết chứa văn bản và các hộp văn bản có thể có các đặc
tính hoạt ảnh tùy chọn.
Thuộc tính text:animation quy định loại hoạt ảnh được sử dụng đối với
văn bản lựa chọn.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation">
<choice>
<value>none</value>
<value>scroll</value>
<value>alternate</value>
<value>slide</value>
</choice>
</attribute>
</optional>

366
</define>
Thuộc tính text:animation-direction quy định hướng cuộn của văn bản
hoạt ảnh.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation-direction">
<choice>
<value>left</value>
<value>right</value>
<value>up</value>
<value>down</value>
</choice>
</attribute>
</optional>
</define>
Nếu thuộc tính text:animation-start-inside này là true, văn bản sẽ bắt đầu
việc hoạt ảnh của nó ở bên trong khung. Nếu thuộc tính là false, văn bản chỉ bắt
đầu việc hoạt ảnh của nó ở bên ngoài khung của hình chữ nhật.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation-start-inside">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính text:animation-repeat quy định số lần lặp lại hoạt ảnh. Nếu giá
trị của thuộc tính là 0, hoạt ảnh sẽ được lặp lại vô hạn định.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation-repeat">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính text:animation-delay quy định một độ trễ về thời gian trước
khi hoạt ảnh được bắt đầu.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation-delay">
<ref name="duration"/>
</attribute>
</optional>
</define>
Thuộc tính text:animation-steps quy định khoảng cách các bước mà văn
bản được dịch chuyển trong mỗi bước cuộn.
367
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="text:animation-steps">
<ref name="length"/>
</attribute>
</optional>
</define>
15.16. Các đặc tính căn chỉnh văn bản
Các thuộc tính draw:auto-grow-width và draw:auto-grow-height quy định
liệu đối tượng họa tiết có tự động tăng chiều rộng và chiều cao hay không nếu
như thêm văn bản vào đó. Các thuộc tính này thường chỉ được ước lượng đối
với các hộp văn bản.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:auto-grow-width">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="draw:auto-grow-height">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:fit-to-size quy định việc có làm giãn nội dung văn bản
của một đối tượng hoạt tiết để phủ đầy toàn bộ đối tượng họa tiết này hay
không. Nếu giá trị của thuộc tính là true, nội dung của văn bản sẽ được làm giãn.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fit-to-size">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:fit-to-contour quy định việc có làm giãn nội dung văn
bản của một đối tượng hoạt tiết để phủ đầy đường viền của đối tượng họa tiết
này hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:fit-to-contour">
<ref name="boolean"/>
</attribute>
</optional>
</define>

368
Thuộc tính draw:textarea-vertical-align quy định việc canh chỉnh theo
chiều thẳng đứng của vùng văn bản bên trong một hình.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:textarea-vertical-align">
<choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:textarea-horizontal-align quy định việc canh chỉnh theo
chiều ngang của vùng văn bản ở bên trong một hình.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:textarea-horizontal-align">
<choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính fo:wrap-option quy định nếu như văn bản trong một hình được
ngắt xuống dòng trong khung hình.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:wrap-option">
<choice>
<value>no-wrap</value>
<value>wrap</value>
</choice>
</attribute>
</optional>
</define>
Phần tử <text:list-style> quy định một danh sách kiểu dáng liệt kê áp dụng
cho các đoạn được chứa trong một hộp văn bản. Mặc dùng kiểu dáng liệt kê có
tên, nhưng nó không được hiển thị trên giao diện người dùng, dù cho kiểu dáng
đồ họa chứa nó là kiểu dáng chung.
<define name="style-graphic-properties-elements" combine="interleave">
369
<optional>
<ref name="text-list-style"/>
</optional>
</define>
15.17. Các đặc tính về màu sắc
Các đối tượng họa tiết mà hiển thị một ảnh bitmap có thể có các đặc tính
tùy chọn điều chỉnh màu sắc của ảnh bitmap. Các đặc tính này sẵn có đối với
các đối tượng họa tiết được chứa trong tất cả các loại ứng dụng.
Thuộc tính draw:color-mode tác động đến việc hiển thị của các màu sắc
từ một bitmap nguồn hoặc đồ họa.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:color-mode">
<choice>
<value>greyscale</value>
<value>mono</value>
<value>watermark</value>
<value>standard</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:color-inversion quy định các màu trong hình đồ họa có
được đảo hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:color-inversion">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:luminance quy định một giá trị theo tỷ lệ phần trăm được
đánh dấu tác động đến độ chói hiển thị của một ảnh bitmap hoặc của một đồ họa
mành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:luminance">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:contrast quy định một giá trị phần trăm được đánh dấu
tác động đến độ tương phản hiển thị của một ảnh bitmap hoặc của một đồ họa
mành.

370
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:contrast">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:gamma quy định một giá trị tác động đến gamma hiểm
thị của một ảnh bitmap hoặc một đồ họa mành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:gamma">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:red quy định một giá trị phần trăm được đánh dấu có tác
động đến việc hiển thị của vùng màu đỏ của một ảnh bitmap hoặc một đồ họa
mành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:red">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:green quy định quy định một giá trị phần trăm được đánh
dấu có tác động đến việc hiển thị của vùng màu xanh lá cây của một ảnh bitmap
hoặc một đồ họa mành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:green">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính draw:blue quy định một giá trị phần trăm được đánh dấu có
tác động đến việc hiển thị của vùng màu xanh da trời của một ảnh bitmap hoặc
một đồ họa mành.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:blue">
<ref name="percent"/>
</attribute>
</optional>
371
</define>
Thuộc tính draw:image-opacity điều chỉnh độ đục (độ chắn sáng) của một
ảnh. Giá trị có thể thuộc khoảng giữa từ 0% đến 100%.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:image-opacity">
<ref name="percent"/>
</attribute>
</optional>
</define>
15.18. Các đặc tính bóng đối tượng
Thuộc tính draw:shadow quy định có thể hoặc không thể nhìn thấy được
một bóng của đối tượng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:shadow">
<choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính draw:shadow-offset-x và draw:shadow-offset-y được sử
dụng để biểu diễn một bóng theo các trục tọa độ.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:shadow-offset-x">
<ref name="length"/>
</attribute>
</optional>
<optional>
<attribute name="draw:shadow-offset-y">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:shadow-color quy định mầu mà trong đó bóng đối tượng
được biểu diễn.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:shadow-color">
<ref name="color"/>
</attribute>

372
</optional>
</define>
Thuộc tính draw:shadow-opacity quy định độ chắn sáng mà trong đó bóng
đối tượng được biểu diễn. Giá trị của thuộc tính này một giá trị phần trăm.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:shadow-opacity">
<ref name="percent"/>
</attribute>
</optional>
</define>
15.19. Các đặc tính nối
Đối với các bộ nối chuẩn, các thuộc tính draw:start-line-spacing-
horizontal và draw:start-line-spacing-vertical làm tăng chiều dài của dòng theo
chiều ngang và chiều thẳng đứng từ phần bắt đầu dòng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:start-line-spacing-horizontal">
<ref name="distance"/>
</attribute>
</optional>
<optional>
<attribute name="draw:start-line-spacing-vertical">
<ref name="distance"/>
</attribute>
</optional>
</define>
Đối với các bộ nối chuẩn, các thuộc tính draw:end-line-spacing-horizontal
và draw:end-line-spacing-vertical làm tăng chiều dài của dòng theo chiều ngang
và chiều thẳng đứng từ phần kết thúc dòng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:end-line-spacing-horizontal">
<ref name="distance"/>
</attribute>
</optional>
<optional>
<attribute name="draw:end-line-spacing-vertical">
<ref name="distance"/>
</attribute>
</optional>
</define>
15.20. Các đặc tính số đo

373
Thuộc tính draw:line-distance quy định khoảng cách từ các điểm tham
khảo đến đường đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:line-distance">
<ref name="distance"/>
</attribute>
</optional>
</define>
Thuộc tính draw:guide-overhang quy định chiều dài mà dòng hướng dẫn
được vẽ sau khi chúng đi qua đường đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:guide-overhang">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:guide-distance quy định khoảng cách giữa các điểm
tham khảo và điểm bắt đầu của các đường hướng dẫn.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:guide-distance">
<ref name="distance"/>
</attribute>
</optional>
</define>
Thuộc tính draw:start-guide quy định một độ dài được thêm vào chiều dài
của dòng hướng dẫn từ điểm tham khảo đầu tiên đến đường đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:start-guide">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:end-guide quy định một độ dài được thêm vào chiều dài
của dòng hướng dẫn từ điểm tham khảo thứ hai đến đường đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:end-guide">
<ref name="length"/>
</attribute>
</optional>
</define>
374
Thuộc tính draw:placing quy định đường đo được biểu diễn ở phía dưới
hay phía trên của cạnh được xác định bởi hai điểm tham khảo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:placing">
<choice>
<value>below</value>
<value>above</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:parallel quy định số liệu đo được hiển thị song song hay
vuông góc với đường tham khảo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:parallel">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các thuộc tính draw:measure-align và draw:measure-vertical-align xác
định việc canh chỉnh theo chiều ngang hay chiều dọc của số liệu đo có liên quan
đến đường tham khảo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:measure-align">
<choice>
<value>automatic</value>
<value>left-outside</value>
<value>inside</value>
<value>right-outside</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="draw:measure-vertical-align">
<choice>
<value>automatic</value>
<value>above</value>
<value>below</value>
<value>center</value>
</choice>
</attribute>
</optional>
375
</define>
Thuộc tính draw:unit quy định đơn vị được dùng trong việc thể hiện số
liệu đo của một đối tượng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:unit">
<choice>
<value>automatic</value>
<value>mm</value>
<value>cm</value>
<value>m</value>
<value>km</value>
<value>pt</value>
<value>pc</value>
<value>inch</value>
<value>ft</value>
<value>mi</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:show-unit quy định việc hiển thị của đơn vị đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:show-unit">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính draw:decimal-places quy định số ký tự thập phân được sử
dụng đối với số liệu đo.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:decimal-places">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
15.21. Các đặc tính của đoạn chú thích
Thuộc tính draw:caption-type quy định kiểu dạng hình học dòng của một
đoạn chú thích.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-type">

376
<choice>
<value>straight-line</value>
<value>angled-line</value>
<value>angled-connector-line</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-angle-type quy định góc của dòng đoạn chú
thích là cố định hay là tự do.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-angle-type">
<choice>
<value>fixed</value>
<value>free</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-angle quy định góc hiển thị của dòng của đoạn
chú thích.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-angle">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-gap quy định khoảng cách giữa vùng văn bản
của đoạn chú thích và điểm bắt đầu của dòng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-gap">
<ref name="distance"/>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-escape-direction quy định hướng hiển thị đối với
dòng của một đoạn chú thích.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-escape-direction">
<choice>
<value>horizontal</value>
377
<value>vertical</value>
<value>auto</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-line-length quy định độ dài của dòng chú thích.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-line-length">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính draw:caption-fit-line-length quy định sự co giãn dòng chú
thích trong một độ dài hợp lý đã xác định.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:caption-fit-line-length">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.22. Các đặc tính của hình học 3D
Thuộc tính dr3d:horizontal-segments được sử dụng để quy định số các
phân đoạn theo chiều ngang được sử dụng để tạo ra hình học 3D. Các trình ứng
dụng điển hình hỗ trợ các giá trị từ 2 đến 256.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:horizontal-segments">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:vertical-segments được sử dụng để quy định số các phân
đoạn theo chiều thẳng đứng được sử dụng để tạo ra hình học 3D. Các trình ứng
dụng điển hình hỗ trợ các giá trị từ 2 đến 256.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:vertical-segments">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>

378
Thuộc tính dr3d:edge-rounding được sử dụng để quy định kích thước của
một vùng tại các cạnh của hình học được sử dụng để làn tròn các cạnh.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:edge-rounding">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:edge-rounding-mode quy định cách tạo ra các cạnh được
làm thành tròn.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:edge-rounding-mode">
<choice>
<value>correct</value>
<value>attractive</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:back-scale quy định tỷ lệ của hình nền đối với đối tượng
lồi 3D.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:back-scale">
<ref name="percent"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:depth quy định chiều sâu của đối tượng 3D thể hiện.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:depth">
<ref name="length"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:backface-culling cho phép hoặc vô hiệu hóa việc lựa
chọn mặt sau của đối tượng thể hiện.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:backface-culling">
<choice>
<value>enabled</value>
379
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:close-front quy định một mặt trước kín sẽ được tạo ra
hay không cho đối tượng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:close-front">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:close-back quy định một mặt sau kín sẽ được tạo ra hay
không cho đối tượng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:close-back">
<ref name="boolean"/>
</attribute>
</optional>
</define>
15.23. Các đặc tính chiếu sáng 3D
Thuộc tính dr3d:lighting-mode xác định thuật toán về chiếu sáng được sử
dụng để biểu diễn các đối tượng 3D tương ứng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:lighting-mode">
<choice>
<value>standard</value>
<value>double-sided</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:normals-kind quy định cách thiết lập thông thường đối
với việc tạo chiếu sáng cho đối tượng (generated lighting).
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:normals-kind">
<choice>
<value>object</value>
<value>flat</value>

380
<value>sphere</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:normals-direction được sử dụng để đảo ngược vị trí các
sự bố trí chiếu sáng thông thường được tạo ra.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:normals-direction">
<choice>
<value>normal</value>
<value>inverse</value>
</choice>
</attribute>
</optional>
</define>
15.24. Các đặc tính của kết cấu 3D
Thuộc tính dr3d:texture-generation-mode-x và thuộc tính dr3d:texture-
generation-mode-y quy định cách tạo ra các tọa độ của kết cấu.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:texture-generation-mode-x">
<choice>
<value>object</value>
<value>parallel</value>
<value>sphere</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="dr3d:texture-generation-mode-y">
<choice>
<value>object</value>
<value>parallel</value>
<value>sphere</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:texture-kind được sử dụng để lựa chọn loại kết cấu thay
đổi về độ chói, độ đậm hay màu sắc của hình.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>

381
<attribute name="dr3d:texture-kind">
<choice>
<value>luminance</value>
<value>intesity</value>
<value>color</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:texture-filter được sử dụng to cho phép hoặc vô hiệu hóa
việc lọc của kết cấu.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:texture-filter">
<choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính dr3d:normals-direction được sử dụng để quy định cách thức
điều chỉnh kết cấu theo hướng xác định.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:texture-mode">
<choice>
<value>replace</value>
<value>modulate</value>
<value>blend</value>
</choice>
</attribute>
</optional>
</define>
15.25. Các đặc tính về vật liệu đối tượng 3D
Các thuộc tính dr3d:ambient-color, dr3d:emissive-color, dr3d:specular-
color và dr3d:diffuse-color quy định bốn màu chúng xác định đặc điểm một vật
liệu tạo đối tượng 3D.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:ambient-color">
<ref name="color"/>
</attribute>
</optional>

382
<optional>
<attribute name="dr3d:emissive-color">
<ref name="color"/>
</attribute>
</optional>
<optional>
<attribute name="dr3d:specular-color">
<ref name="color"/>
</attribute>
</optional>
<optional>
<attribute name="dr3d:diffuse-color">
<ref name="color"/>
</attribute>
</optional>
</define>
Thuộc tính dr3d:shininess quy định độ bóng của vật liệu được sử dụng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:shininess">
<ref name="percent"/>
</attribute>
</optional>
</define>
15.26. Các đặc tính bóng đối tượng 3D
Thuộc tính dr3d:shadow cho phép hoặc không cho phép tạo ra một hình
bóng ba chiều cho một đối tượng 3D.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="dr3d:shadow">
<choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
15.27. Các đặc tính định dạng khung
Thuộc tính fo:min-width quy định độ rộng tối thiểu của khung sử dụng.
<define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-draw-rel-size-attlist"/>
<optional>
<attribute name="fo:min-width">

383
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Thuộc tính fo:min-height quy định chiều cao tối thiểu của khung sử dụng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:min-height">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Các thuộc tính fo:max-width và fo:max-height quy định một chiều cao và
độ rộng tối đa cho khung sử dụng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="fo:max-height">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
<optional>
<attribute name="fo:max-width">
<choice>
<ref name="length"/>
<ref name="percent"/>
</choice>
</attribute>
</optional>
</define>
Các đặc tính fo:margin-left và fo:margin-right xác định lề trái và lề phải
thiết lập trong một khung.
<define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist"/>
</define>
Các đặc tính fo:margin-top và fo:margin-bottom xác định lề trên và lề
dưới thiết lập trong một khung.
384
<define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-vertical-margin-attlist"/>
</define>
Thuộc tính style:print-content quy định nội dung của một khung có được
in hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="style:print-content">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính style:protect quy định nội dung, kích thước hoặc vị trí của một
khung có được bảo vệ hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="style:protect">
<choice>
<value>none</value>
<list>
<oneOrMore>
<choice>
<value>content</value>
<value>position</value>
<value>size</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
15.28. Các đặc tính định dạng khung động
Thuộc tính draw:display-scrollbar quy định thanh cuốn ngang và thanh
cuốn dọc có được hiển thị hay không. Thuộc tính này có thể chỉ được ấn định
cho các kiểu dáng tự động.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:frame-display-scrollbar">
<ref name="boolean"/>
</attribute>
</optional>
</define>

385
Thuộc tính draw:display-border quy định một đường viền có được hiển
thị trên khung động hay không.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:frame-display-border">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các thuộc tính draw:margin-horizontal và draw:margin-vertical quy định
các lề ngang và lề dọc giữa đường viền và nội dung của khung động. Nếu các
thuộc tính này không được quy định, thì sử dụng các lề trang mặc định.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:frame-margin-horizontal">
<ref name="nonNegativePixelLength"/>
</attribute>
</optional>
<optional>
<attribute name="draw:frame-margin-vertical">
<ref name="nonNegativePixelLength"/>
</attribute>
</optional>
</define>
<define name="nonNegativePixelLength">
<data type="string">
<param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)</param>
</data>
</define>
Các thuộc tính draw:visible-area-left, draw:visible-area-top, draw:visible-
area- width và draw:visible-area-height quy định một vùng hiện rõ mặc định mà
đối tượng lựa chọn sử dụng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:visible-area-left">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="draw:visible-area-top">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="draw:visible-area-width">
386
<ref name="positiveLength"/>
</attribute>
</optional>
<optional>
<attribute name="draw:visible-area-height">
<ref name="positiveLength"/>
</attribute>
</optional>
</define>
Thuộc tính draw:ole-draw-aspect quy định xu hướng được sử dụng để
hiển thị các đối tượng OLE được nhúng.
<define name="style-graphic-properties-attlist" combine="interleave">
<optional>
<attribute name="draw:ole-draw-aspect">
<ref name="nonNegativeInteger"/>
</attribute>
</optional>
</define>
15.29. Các đặc tính định dạng đồ thị
Các đặc tính được mô tả trong phần này có thể được áp dụng cho tất cả
các đồ thị. Chúng có thể được sử dụng trong các kiểu dáng đồ thị và được chứa
trong một phần tử <style:chart-properties>.
<define name="style-chart-properties">
<element name="style:chart-properties">
<ref name="style-chart-properties-content"/>
</element>
</define>
<define name="style-chart-properties-content">
<ref name="style-properties-content"/>
</define>
<define name="style-chart-properties-content-strict">
<ref name="style-chart-properties-attlist"/>
<ref name="style-chart-properties-elements"/>
</define>
<define name="style-chart-properties-elements">
<empty/>
</define>
Đặc tính chart:scale-text được sử dụng để quy định rằng tất cả các đối
tượng văn bản trong đồ thị phải được co dãn bất cứ khi nào kích thước của biểu
đồ thay đổi. Để có thể co dãn, thì thiết lập giá trị của thuộc tính này đến true.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:scale-text" a:defaultValue="true">
<ref name="boolean"/>

387
</attribute>
</optional>
</define>
15.30. Các đặc tính kiểu phụ của đồ thị
Đặc tính chart:three-dimensional quy định việc đồ thị có được hiển thị
như một ảnh 3D hay không.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:three-dimensional">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Đặc tính chart:deep quy định việc hiển thị chiều sâu của đồ thị 3D.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:deep">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính chart:symbol-type xác định một biểu tượng có được sử dụng
hay không, và biểu tượng đó là loại đã được định trước hay không, một ảnh và
liệu trình ứng dụng có tự do tự động chọn một trong số tập hợp các loại biểu
tượng đã được định trước hay không.
<define name="style-chart-properties-attlist" combine="interleave">
<choice>
<attribute name="chart:symbol-type">
<value>none</value>
</attribute>
<attribute name="chart:symbol-type">
<value>automatic</value>
</attribute>
<group>
<attribute name="chart:symbol-type">
<value>named-symbol</value>
</attribute>
<attribute name="chart:symbol-name">
<choice>
<value>square</value>
<value>diamond</value>
<value>arrow-down</value>
<value>arrow-up</value>
<value>arrow-right</value>

388
<value>arrow-left</value>
<value>bow-tie</value>
<value>hourglass</value>
<value>circle</value>
<value>star</value>
<value>x</value>
<value>plus</value>
<value>asterisk</value>
<value>horizontal-bar</value>
<value>vertical-bar</value>
</choice>
</attribute>
</group>
<group>
<attribute name="chart:symbol-type">
<value>image</value>
</attribute>
<element name="chart:symbol-image">
<attribute name="xlink:href">
<ref name="anyURI"/>
</attribute>
</element>
</group>
<empty/>
</choice>
</define>
Chiều rộng và chiều cao của mỗi biểu tượng có thể được thiết lập bằng
việc sử dụng thuộc tính chart:symbol-width và chart:symbol-length.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:symbol-width">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
<optional>
<attribute name="chart:symbol-height">
<ref name="nonNegativeLength"/>
</attribute>
</optional>
</define>
Các đặc tính chart:vertical và chart:connect-bars chỉ dành cho biểu đồ
thanh. Đặc tính chart:vertical xác định thanh sẽ được định hướng theo chiều
ngang hay chiều dọc.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
389
<attribute name="chart:vertical" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:connect-bars" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Với các biểu đồ thanh, các đặc tính chart:gap-width và chart:overlap có
thể được sử dụng để quy định kích thước và khoảng cách tương đối của các
thanh. Thuộc tính chart:gap-width chứa độ rộng tương đối của khe hở giữa các
thanh đứng cạnh nhau. Thuộc tính chart:overlap xác định số thanh trong cùng
category overlap. Cả hai đặc tính đều là số tỷ lệ phần trăm nguyên.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:gap-width">
<ref name="integer"/>
</attribute>
</optional>
<optional>
<attribute name="chart:overlap">
<ref name="integer"/>
</attribute>
</optional>
</define>
Thuộc tính chart:japanese-candle-stick phân biệt giữa hai hiển thị biểu
diễn này. Ví dụ: Một biểu đồ chứng khoán theo kiểu Japanese-candle-stick (bên
trái) và một biểu đồ chứng khoán theo mặc định (bên phải).
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:japanese-candle-stick"
a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính chart:solid-type quy định cách thức biểu diễn thanh trong các
biểu đồ thanh ba chiều.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:solid-type" a:defaultValue="cuboid">
390
<choice>
<value>cuboid</value>
<value>cylinder</value>
<value>cone</value>
<value>pyramid</value>
</choice>
</attribute>
</optional>
</define>
Thuộc tính chart:stacked tạo nên các thanh trong biểu đồ thanh được xếp
chồng lên đỉnh của mỗi thanh khác, thay vì xếp cạnh nhau.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:stacked" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="chart:percentage" a:defaultValue="false">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính chart:link-data-style-to-source chỉ có thể được sử dụng trong
các tài liệu dạng biểu đồ nằm trong một tài liệu cung cấp dữ liệu cho biểu đồ.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:link-data-style-to-source">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Thuộc tính tùy chọn chart:axis-logarithmic có thể được sử dụng để tạo ra
sự chia tỷ lệ loga trên một trục. Theo mặc định, sử dụng chia tỷ lệ tương ứng.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:logarithmic">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các đặc tính chart:minimum, chart:maximum quy định thiết lập các giá trị
chia tỷ lệ tổi thiểu và tối đa của một trục; chart:origin – xác định gốc của trục đồ
thị; chart:interval-major, chart:interval-minor-divisor – thiết lập khoảng cách tối
đa và khoảng cách tối thiểu cho các gạch hoặc dấu phân chia trên trục.
391
chart:interval-major xác định giá trị khoảng cách. Khoảng cách tối thiểu được
xác định bởi việc phân chia giá trị chart:interval-major bằng chart:interval-
minor-divisor.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:maximum">
<ref name="double"/>
</attribute>
</optional>
<optional>
<attribute name="chart:minimum">
<ref name="double"/>
</attribute>
</optional>
<optional>
<attribute name="chart:origin">
<ref name="double"/>
</attribute>
</optional>
<optional>
<attribute name="chart:interval-major">
<ref name="double"/>
</attribute>
</optional>
<optional>
<attribute name="chart:interval-minor">
<ref name="positiveInteger"/>
</attribute>
</optional>
</define>
Các đặc tính về dấu phân thời được sử dụng để quy định sự có mặt của
các dấu phân thời tại một trục. Các dấu lớn được vẽ cho khoảng tối đa mà
khoảng này có thể được quy định bởi thuộc tính chart:axis- interval-major. Các
dấu phân thời nhỏ hơn chỉ thuộc tính chart:axis-interval-minor. Các dấu bên
trong được vẽ hướng vào bên trong của khu vực vẽ chấm, đó là hướng về bên
phải đối với một trục hiển thị về phía bên trái của khu vực vẽ chấm và hướng về
phía bên trái đối với một trục được hiển thị bên phải của khu vực vẽ chấm. Ở
phía ngoài điểm dấu về hướng đối diện. Nếu các hai đặc tính đều được quy định
thì một dấu phân thời được vẽ gạch ngang trục.
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:tick-marks-major-inner">
<ref name="boolean"/>
</attribute>
</optional>
392
<optional>
<attribute name="chart:tick-marks-major-outer">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="chart:tick-marks-minor-inner">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="chart:tick-marks-minor-outer">
<ref name="boolean"/>
</attribute>
</optional>
</define>
Các thuộc tính sau mô tả cách biểu diễn các nhãn của trục: chart:display-
label xác định việc các liệu các nhãn có được hiển thị hay không. Nếu chart:text-
overlap được đặt là true, các nhãn có thể chồng lấp. text:line-break xác định việc
các đường nhãn có thể bị ngắt thành nhiều đường hay không. Thuộc tính
chart:label-arrangement cho phép các nhãn được sắp xếp hoặc là side-by-side
(tức là; tất cả các nhãn bắt đầu trên một đường) hoặc so le (tức là; các nhãn được
phân bố đến hai đường, với mỗi nhãn khác bắt đầu trên cùng một đường).
<define name="style-chart-properties-attlist" combine="interleave">
<optional>
<attribute name="chart:display-label">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="chart:text-overlap">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="text:line-break">
<ref name="boolean"/>
</attribute>
</optional>
<optional>
<attribute name="chart:label-arrangement"
a:defaultValue="side-by-side">
<choice>
<value>side-by-side</value>
<value>stagger-even</value>
393
<value>stagger-odd</value>
</choice>
</attribute>
</optional>
</define>
16. Các kiểu dữ liệu và định nghĩa lược đồ
16.1. Các kiểu dữ liệu cơ bản
Các kiểu dữ liệu cơ bản (data type) của lược đồ W3C được định nghĩa
trong định dạng chuẩn ODF như sau:
- Xâu ký tự (string)
<define name="string">
<data type="string"/>
</define>
- Ngày (date)
<define name="date">
<data type="date"/>
</define>
- Thời gian (time)
<define name="time">
<data type="time"/>
</define>
- Ngày giờ (dateTime)
<define name="dateTime">
<data type="dateTime"/>
</define>
- Khoảng (duration)
<define name="duration">
<data type="duration"/>
</define>
Số nguyên (interger)
<define name="integer">
<data type="integer"/>
</define>
- Số nguyên không âm (nonNegativeInteger)
<define name="nonNegativeInteger">
<data type="nonNegativeInteger"/>
</define>
- Số nguyên dương (positiveInteger)
<define name="positiveInteger">
<data type="positiveInteger"/>
</define>
- Số thực độ chính xác gấp đôi (double)
<define name="double">
<data type="double"/>
394
</define>
- Cổng phản hồi đa năng bất kỳ (anyURI)
<define name="anyURI">
<data type="anyURI"/>
</define>
- Số nhị phân cơ sở 64 (base64Binary)
<define name="base64Binary">
<data type="base64Binary"/>
</define>
- Chỉ số xác định (ID)
<define name="ID">
<data type="ID"/>
</define>
- Chỉ số xác định tham khảo (IDREF)
<define name="IDREF">
<data type="IDREF"/>
</define>
Ngoài ra, các kiểu dữ liệu tùy chỉnh (thường là sự chuyên môn hóa của
các kiểu dữ liệu của lược đồ W3C) được xác định như sau:
+ boolean: Một giá trị boolean có thể có cả giá trị true hoặc false.
+ dateOrDateTime: Một giá trị dateOrDateTime về cơ bản là một giá trị
giá trị ngày tháng và thời gian với một thành phần thời gian tùy chọn. Nói cách
khác, nó có thể bao gồm một giá trị ngày tháng hoặc một giá trị ngày tháng và
thời gian.
+ timeOrDateTime: Một giá trị timeOrDateTime về cơ bản là một giá trị
ngày tháng và thời gian với một thành phần ngày tháng tùy chọn. Nói cách khác,
nó có thể bao gồm một giá trị thời gian hoặc một giá trị ngày tháng và thời gian.
+ language: Một ngôn ngữ là một kiểu dữ liệu ngôn ngữ giống như của
lược đồ W3C, loại trừ các giá trị được mô tả bởi [RFC3066] hơn là bởi
[RFC1766].
+ countryCode: Một countryCode là một mã nước phù hợp với
[RFC3066], như được quy định trong [XSL].
+ languageCode: Một languageCode là một mã ngôn ngữ phù hợp với
[RFC3066], như được quy định trong [XSL].
+ character: Một giá trị ký tự là một chuỗi với chỉ một ký tự.
+ length: Một chiều dài vật lý (dương hoặc âm), bao gồm độ lớn và đơn
vị, phù hợp với [XSL]. Các chiều dài hợp lệ là “2.54cm” hoặc “1 inch”. Một số
không có đơn vị không phải là chiều dài hợp lệ, ví dụ: “3.2”. Việc hỗ trợ các giá
trị ảnh điểm là tùy chọn.
+ nonNegativeLength: Giống như chiều dài, ngoại trừ rằng giá trị đó phải
là 0 hoặc dương.
+ positiveLength: Giống như chiều dài, ngoại trừ rằng giá trị đó phải là
dương.
+ percent: Các giá trị phần trăm (Dương hoặc âm) phù hợp với [XSL], ví
dụ: “40%”.
395
+ relativeLength: Chiều dài tương đồi là một số nguyên dương, được theo
sau bởi một ký tự .
+ coordinate: Giống như chiều dài, ngoại trừ rằng chiều dài vật lý biểu thị
một điểm nào đó.
+ distance: Giống như chiều dài, ngoại trừ rằng chiều dài vật lý đo lường
khoảng cách giữa các điểm.
+ color: Một mầu RGB phù hợp với [XSL], đó là một mầu RGB trong ký
pháp “#rrggbb”, ở đây rr, gg và bb là các chữ số cơ số 16.
+ styleName: Một NCName như được quy định trong [xmlschema-2] đó
là tên của một kiểu dáng.
+ styleNameRef: Một NCName như được quy định trong [xmlschema-2]
đó là tên của một kiểu dáng được tham chiếu hoặc một giá trị rỗng.
+ styleNames: Một danh sách được phân tách bởi dấu cách trắng của các
NCName như được quy định trong [xmlschema-2] đó là các tên của các kiểu
dáng.
+ variableName: Một chuỗi quy định tên của một biến
+ formula: Một chuỗi bao gồm một công thức. Các công thức không có
một cú pháp xác định trước, nhưng nên bắt đầu với một tiền tố tên miền quy
định cú pháp được sử dụng trong công thức đó.
+ valueType: Một danh sách của các kiểu giá trị được hỗ trợ đối với các
giá trị chung nào đó, như “string” hoặc “date”.
+ targetFrameName: Tên của một khung đích phù hợp với [HTML4].
+ points: Một trình tự của các điểm. Các điểm là các tọa độ hai số nguyên
được phân tách bởi dấu phẩy. Các điểm được phân tách bởi dấu cách trắng.
+ pathData: Dữ liệu đường dẫn như được mô tả của [SVG].
+ vector3D: Một véc tơ 3-phần tử được biểu diễn bởi các toạn độ x,y,z
dấu phẩy động. Các tọa độ đó được bao quanh giữa các dấu ngoặc đơn và các
tọa độ đó được chú thích theo thứ tự x, y và z, được phân tách bởi dấu cách
trắng. Nếu giá trị này biểu diễn một véc tơ thông thường thì nó nên được chuẩn
hóa.
Các kiểu dữ liệu này được định nghĩa Relax-NG như sau:
<define name="boolean">
<choice>
<value>true</value>
<value>false</value>
</choice>
</define>
<define name="dateOrDateTime">
<choice>
<data type="date"/>
<data type="dateTime"/>
</choice>
</define>
<define name="timeOrDateTime">
<choice>
396
<data type="time"/>
<data type="dateTime"/>
</choice>
</define>
<define name="language">
<data type="token">
<param name="pattern">[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*</param>
</data>
</define>
<define name="countryCode">
<data type="token">
<param name="pattern">[A-Za-z0-9]{1,8}</param>
</data>
</define>
<define name="languageCode">
<data type="token">
<param name="pattern">[A-Za-z]{1,8}</param>
</data>
</define>
<define name="character">
<data type="string">
<param name="length">1</param>
</data>
</define>
<define name="length">
<data type="string">
<param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|
(pt)|(pc)|(px))</param>
</data>
</define>
<define name="nonNegativeLength">
<data type="string">
<param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|
(pc)|(px))</param>
</data>
</define>
<define name="positiveLength">
<data type="string">
<!-- A zero value is not allowed here -->
<param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|
(pc)|(px))</param>
</data>
</define>
<define name="percent">
<data type="string">
397
<param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</param>
</data>
</define>
<define name="relativeLength">
<data type="string">
<param name="pattern">[0-9]+\*</param>
</data>
</define>
<define name="coordinate">
<ref name="length"/>
</define>
<define name="distance">
<ref name="length"/>
</define>
<define name="color">
<data type="string">
<param name="pattern">#[0-9a-fA-F]{6}</param>
</data>
</define>
<define name="styleName">
<data type="NCName"/>
</define>
<define name="styleNameRef">
<choice>
<data type="NCName"/>
<empty/>
</choice>
</define>
<define name="styleNameRefs">
<list>
<zeroOrMore>
<data type="NCName"/>
</zeroOrMore>
</list>
</define>
<define name="variableName">
<data type="string"/>
</define>
<define name="formula">
<!-- A formula should start with a namespace prefix, -->
<!-- but has no restrictions-->
<data type="string"/>
</define>
<define name="targetFrameName">
<choice>
398
<value>_self</value>
<value>_blank</value>
<value>_parent</value>
<value>_top</value>
<ref name="string"/>
</choice>
</define>
<define name="valueType">
<choice>
<value>float</value>
<value>time</value>
<value>date</value>
<value>percentage</value>
<value>currency</value>
<value>boolean</value>
<value>string</value>
</choice>
</define>
<define name="points">
<data type="string">
<param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</param>
</data>
</define>
<define name="pathData">
<data type="string"/>
</define>
<define name="vector3D">
<data type="string">
<param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-
9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)</param>
</data>
</define>
<define name="namespacedToken">
<data type="string">
<param name="pattern">[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+</param>
</data>
</define>
16.2 Các định nghĩa khác
Để cung cấp cho tính có thể mở rộng của định dạng, sự bao gồm của nội
dung tùy chỉnh được cho phép trên nhiều trường hợp. Các định nghĩa sau đây
cho phép đối với sự bao gồm của các phần tử và thuộc tính tùy ý (với các mô
hình nội dung tùy ý).
<define name="anyAttListOrElements">
<zeroOrMore>

399
<attribute>
<anyName/>
<text/>
</attribute>
</zeroOrMore>
<ref name="anyElements"/>
</define>
<define name="anyElements">
<zeroOrMore>
<element>
<anyName/>
<mixed>
<ref name="anyAttListOrElements"/>
</mixed>
</element>
</zeroOrMore>
</define>
16.3. Hậu tố lược đồ nới lỏng
Hậu tố lược đồ nới lỏng (Relax-NG schema suffix) có cấu trúc như sau:
Relax-NG Schema
© 2002-2007 OASIS Open
© 1999-2007 Sun Microsystems, Inc.
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"

400
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0">
<define name="office-process-content">
<optional>
<attribute name="office:process-content" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
17. Cấu trúc đóng gói dữ liệu theo chuẩn ODF
17.1 Giới thiệu chung
Chuẩn XML không có hỗ trợ tự nhiên đối với các đối tượng nhị phân như
các ảnh, các đối tượng nhúng hoặc các kiểu môi trường khác và do các tệp XML
không nén có thể rất lớn, cho nên ODF đã sử dụng một tệp tin đóng gói để lưu
trữ nội dung XML của một tài liệu cùng với dữ liệu nhị phân tương ứng của nó
để nén một cách tùy chọn nội dung XML đó. Gói dữ liệu này là một tệp ZIP tiêu
chuẩn, mà cấu trúc của nó được đề cập dưới đây. Thông tin về các tệp được
chứa trong gói đó được lưu trữ trong một tệp XML được gọi là tệp bản kê. Tệp
bản kê luôn được lưu trữ tại tên đường dẫn META-INF/manifest.xml. Các thông
tin chính được lưu trữ trong bản kê đó như sau:
• Một danh sách của toàn bộ các tệp trong gói đó.
• Kiểu môi trường của mỗi tệp trong gói đó.
• Nếu một tệp được lưu trữ trong gói đó được mật mã hóa, thì thông tin đó
được yêu cầu giả mật mã hóa tệp được lưu trữ trong bản kê đó.
17.2 Cấu trúc tệp tin zip
Một tệp ZIP bắt đầu cùng với một trình tự các tệp, mỗi tệp trong các tệp
có thể được nén hoặc được lưu trữ theo định dạng thô. mỗi tệp có một tiêu đề
nội bộ ngay lập tức trước dữ liệu của nó, gồm hầu hết thông tin về tệp đó, bao
gồm các tem thời gian, phương pháp nén và tên tệp. Các nội dung tệp được nén
đó theo sau ngay lập tức, và được kết thúc bởi một bộ miêu tả dữ liệu tùy chọn.
Bộ miêu tả dữ liệu đó gồm CRC và kích thước được nén của tệp đó, thường
không sẵn có khi ghi tiêu đề tệp nội bộ. Nếu các chi tiết nàyđược chứa, bộ miêu
tả dữ liệu đó có thể được bỏ. Mỗi tệp trong kho trữ đwocj bố trí tuần tự theo
định dạng này, được theo sau bởi một thư mục chính tại cuối của kho trữ Zip.
Thư mục chính là một tập accs mục nhập thư mục liền kề nhau, mỗi mục nhập
gồm toàn bộ thông tin trong tiêu đề tệp nộibooj, bổ sung thêm như các thuộc
tính và bình luận của tệp. Quan trọng nhất, thư mục chính gồm các con trỏ tới vị
trí của mỗi tệp trong kho trữ, tạo ra sự điều hướng của tệp Zip nhanh chóng và
dễ dàng.
17.3 Mật mã hóa
Quá trình mật mã hóa tiến hành theo các giai đoạn sau đây: Một bản tóm
lược 20-byte SHA1 mật khẩu được nhập của người sử dụng được tạo ra và được

401
chuyển tới thành phần gói đó và thành phần gói đó khởi tạo một bộ tạo số ngẫu
nhiên với thời điểm hiện tại. Bộ tạo số ngẫu nhiên được sử dụng để tạo véc tơ
khởi tạo 8-byte và 16-byte phù hợp cho mỗi tệp. Bộ tạo này được sử dụng cùng
với bản tóm lược SHA1 20-byte của mật khẩu để tạo ra một khóa duy nhất 128-
bit cho mỗi tệp. Thuật toán được sử dụng để tạo ra khóa đó là PBKDF2 có sử
dụng HMAC-SHA-1 (xem [RFC2898]) cùng với một đếm phép lặp 1024. Khóa
tạo ra được sử dụng cùng với véc tơ khởi tạo để tạo mật mã tệp đó sử dụng thuật
toán Blowfish theo chế độ phản hồi mật mã (CFB). Mỗi tệp được mật mã hóa
được nén trước khi được mật mã hóa. Để cho phép các nội dung của tệp gói
được kiểm tra, điều cần thiết cho các tệp được mật mã hóa đánh dấu hiệu cờ
'STORED' hơn là 'DEFLATED'. Khi các mục nhập là 'STORED' thì kích thước
của chúng phải bằng kích thước được nén, cần thiết lưu trữ kích thước chưa nén
trên bản kê đó. Kích thước được nén đó được lưu trữ trong cả bản ghi tiêu đề tệp
nội bộ và thư mục chính của tệp Zip đó.
17.4. Luồng dữ liệu kiểu MIME
Nếu một kiểu MIME đối với một tài liệu tạo ra việc sử dụng các gói đang
tồn tại, thì gói đó nên gồm một luồng dữ liệu được gọi là "mimetype". Luồng
này nên là luồng đầu tiên của tệp zip của gói đó, nó không nên được nén, và nó
không nên sử dụng một 'trường thêm' trong tiêu đề của nó. Mục đích là để cho
phép các tệp được gói được định danh thông qua các cơ chế 'số hiệu ảo', như
tiện ích tệp/ảo của Unix. Nếu một tệp ZIP gồm một luồng tại điểm bắt đầu tệp
chưa nén đó, và không có dữ liệu thêm trong tiêu đề đó, thì tên luồng đó và nội
dung luồng đó có thể được tìm thấy tại các vị trí cố định. Cụ thể hơn, sẽ tìm:
• một chuỗi 'PK' tại vị trí 0 của tất cả các tệp zip
• một chuỗi 'mimetype' tại vị trí 30 của toàn bộ các tệp góinhư vậy
• chính mimetype đó tại vị trí 38 của một gói như vậy.
17.5. Cách sử dụng các IRI trong các gói
Trong một tệp mà được chứa trong một gói, các IRI liên quan được sử
dụng để tham chiếu các tệp nhỏ khác của gói đó, nhưng cũng có thể được sử
dụng để tham chiếu các tệp trong hệ thống tệp đó. Các hạn chế sau đây tồn tại
đối với các IRI được sử dụng trong một gói:
• chỉ các tệp con trong cùng gói có thể được tham chiếu.
• các IRI tham chiếu một tệp con của một gói phải tương đối, và chúng
không phải chứa các đường dẫn không nằm trong gói đó. Điều này có nghĩa đặc
biệt là các tệp con của một gói không phải được tham chiếu bởi một IRI tuyệt
đối.
• tệp con của một gói không thể được tham chiếu từ ngoài gói đó, ví dụ từ
tệp hệ thống tệp đó hoặc mọt gói khác.
Một tham chiếu đường dẫn liên quan xuất hiện trong một tệp được chứa trong
một gói phải được xử lý như nó nên được xử lý nếu toàn bộ gói đó giải nén nén
vào trong một thư mục tại vị trí hiện tại. IRI cơ sở đối với việc xử lý các tham
chiếu đường dẫn tương đối được sử dụng để thu được tệp (giải nén) gồm tham
chiếu đường dẫn tương đối đó. Toàn bộ các loại tham chiếu IRI khác, có tên bắt

402
đầu với một giao thức (như http:), một thẩm quyền (như là: //) hoặc một đường
dẫn tuyệt đối (như là: /) không cần bất kỳ việc xử lý đặc biệt nào. Điều này có
nghĩa đặc biệt là các đường dẫn tuyệt đối không tham chiếu các tệp bên trong
gói, nhưng trong lớp gói đó được chứa trong, ví dụ hệ thống tệp đó. Các tham
chiếu IRI trong một gói có thể để lại gói đó, nhưng chỉ một lần chúng để lại gói
đó, chúng không bao giờ có thể hoàn lại gói đó hoặc một gói khác.
17.6. Ảnh duyệt trước
Một trình diễn duyệt trước của một tài liệu nên được tạo mặc định khi tệp
đó được lưu. Nó nên là trình diễn của trang đầu tiên, bảng đầu tiên, v..v. của tài
liệu đó. Khả năng tái sử dụng tối đa của các ảnh duyệt trước phải được tạo mà
không có bất kỳ hiệu ứng nào, các khung hoặc các đường viền xung quanh. Các
hiệu ứng như vâyh có thể ảnh hưởng với các hiệu ứng được thêm cho các duyệt
trước do hệ thống dò tệp khác nhau hoặc có thể không mong muốn tại tất cả các
trường hợp sử dụng nào đó. Ảnh duyệt trước đó phải được lưu tại
“thumbnail.png” trong thư mục riêng có tên “Thumbnails”. Thư mục
“Thumbnails” không nhận kiểu môi trường trong tệp manifest.xml, do nó không
là một phần thực của tài liệu đó. Các tệp được mật mã hóa nhằm không thể đọc
được đối với những người sử dụng trái phép đó là vì sao một ảnh duyệt trước
đối với các tệp như vậy không được tạo ra. Thay cho việc lưu một ảnh duyệt
trướccủa trang đầu tiên của một trình diễn thay thế không phụ thuộc vào nội
dungcuar tài liệu đóđược lưu cho các tệp được mật mã hóa là cho tệp được mật
mã hóa tương ứng rõ ràng. Để phù hợp tiêu chuẩn quản lý ảnh duyệt trước
(TMS) tại www.freedesktop.org, các ảnh duyệt trước phải được lưu ở 24bit, ảnh
PNG phi-kết hợp với tính trong suốt alpha đầy đủ. Kích thước yêu cầu đối với
các ảnh duyệt trước là điểm ảnh 128x128 pixel.
17.7. Tệp tin bản kê
Các phần tử và thuộc tính trong tệp bản kê này trong tên miền:
urn:oasis:names:tc:opendocument:xmlns:manifest:1.0. Lược đồ XML quy chuẩn
đối với các tệp bản kê của OpenDocument được nhúng trong tiêu chuẩn này. Nó
có thể đạt được từ tài liệu đặc tả này bằng việc rằng buộc tất cả các phân đoạn
lược đồ được chứa trong chương này. Toàn bộ các phân đoạn lược đồ có mầu
nền xám và số hiệu dòng.
Phần tử gốc được gọi là bản kê. Phần tử gốc gồm một thuộc tính cố định
quy định tên miền như được mô tả ở trên và nhiều phần tử <manifest:file-entry>,
mỗi phần tử mô tả một tệp đơn lẻ trong gói đó.
Hậu tố lược đồ Relax-NG quy chuẩn được tóm tắt như sau:
<?xml version="1.0" encoding="UTF-8"?>
<!--
OASIS OpenDocument v1.0 (Second Edition)
Committee Specification1, 19 Jul 2006
Relax-NG Manifest Schema
$Id$
© 2002-2005 OASIS Open

403
© 1999-2005 Sun Microsystems, Inc.
-->
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
<define name="manifest">
<element name="manifest:manifest">
<oneOrMore>
<ref name="file-entry"/>
</oneOrMore>
</element>
</define>
<start>
<choice>
<ref name="manifest"/>
</choice>
</start>
Phần tử <manifest:file-entry> biểu diễn một tệp đơn lẻ trong gói và lưu
trữ vị trí các tệp trong gói đó, kiểu mime của tệp đó và dữ liệu được yêu cầu tùy
ý để giải mật mã tệp này. Các thư mục chỉ nhận các mục nhập của
<manifest:file-entry> nếu chúng kế thừa về ngữ nghĩa. Một thư mục để quản trị
hoặc cho mục đích tiện lợi, như một thư mục gồm các tệp ảnh khác nhau, không
nhận một mục nhập trong tệp bản kê đó.
<define name="file-entry">
<element name="manifest:file-entry">
<ref name="file-entry-attlist"/>
<optional>
<ref name="encryption-data"/>
</optional>
</element>
</define>
Các thuật tính kết hợp với một phần tử <manifest:file-entry> là:
• Đường dẫn đầy đủ
• Kích thước
• Kiểu môi trường
Thuộc tính manifest:full-path mô tả vị trí của tệp đó trong gói.
<define name="file-entry-attlist" combine="interleave">
<attribute name="manifest:full-path">
<data type="string"/>
</attribute>
</define>
Thuộc tính manifest:size chỉ có mặt nếu tệp đó được lưu trữ trong một
định dạng được mật mã hóa. Thuộc tính này chỉ được sử dụng đối với các tệp
được mật mã hóa.

404
<define name="file-entry-attlist" combine="interleave">
<optional>
<attribute name="manifest:size">
<data type="nonNegativeInteger"/>
</attribute>
</optional>
</define>
Thuộc tính manifest:media-type quy định kiểu mime của tệp được quy
định. Đối với một danh sách đầy đủ các kiểu mime xem http://www.isi.edu/in-
notes/iana/assignments/media-types/media-types.
<define name="file-entry-attlist" combine="interleave">
<attribute name="manifest:media-type">
<data type="string"/>
</attribute>
</define>
Phần tử <manifest:encryption-data> gồm toàn bộ thông tin được yêu cầu
để giải mật mã tệp đó.
<define name="encryption-data">
<element name="manifest:encryption-data">
<ref name="encryption-data-attlist"/>
<ref name="algorithm"/>
<ref name="key-derivation"/>
</element>
</define>
Thuộc tính manifest:checksum-type quy định tên của thuật toán của bản
tóm lược có thể được sử dụng để kiểm tra tính chính xác của mật khẩu. Hiện tại,
chỉ hỗ trợ thuật toán của bản tóm lược là SHA1.
<define name="encryption-data-attlist" combine="interleave">
<attribute name="manifest:checksum-type">
<data type="string"/>
</attribute>
</define>
Thuộc tính manifest:checksum quy định bản tóm lược theo mã hóa
BASE64 (như được xác định trong [RFC2045]) có thể được sử dụng để phát
hiện tính chính xác của mật khẩu như được quy định trong thuộc tính
manifest:checksum-type.
<define name="encryption-data-attlist" combine="interleave">
<attribute name="manifest:checksum">
<data type="base64Binary"/>
</attribute>
</define>
Phần tử <manifest:algorithm> gồm thông tin về thuật toán được sử dụng
để tạo mật mã dữ liệu đó.
<define name="algorithm">
<element name="manifest:algorithm">

405
<ref name="algorithm-attlist"/>
<empty/>
</element>
</define>
Thuộc tính manifest:algorithm-name quy định tên của thuật toán được sử
dụng để tạo mật mã tệp đó, và cũng quy định chế độ mà trong đó thuật toán này
được sử dụng.
<define name="algorithm-attlist" combine="interleave">
<attribute name="manifest:algorithm-name">
<data type="string"/>
</attribute>
</define>
Thuộc tính manifest:initialisation-vector quy định 8 bytes được sử dụng
như một véc tơ khởi tạo cho chùm mật mã. Véc tơ khởi tạo là một trình tự chuỗi
nhị phân 8 byte và được mã hóa theo BASE64 khi được ghi vào tệp bản kê.
<define name="algorithm-attlist" combine="interleave">
<attribute name="manifest:initialisation-vector">
<data type="base64Binary"/>
</attribute>
</define>
Phần tử <manifest:key-derivation> gồm thông tin đã được sử dụng để tạo
ra khóa mật mã hóa đối với tệp này từ mật khẩu được quy định của người sử
dụng.
<define name="key-derivation">
<element name="manifest:key-derivation">
<ref name="key-derivation-attlist"/>
<empty/>
</element>
</define>
Thuộc tính manifest:key-derivation-name quy định tên của thuật toán
được sử dụng để tạo ra tên đó. Tại thời điểm này, các gói chỉ hỗ trợ việc sử dụng
phương pháp tạo khóa PBKDF2.
<define name="key-derivation-attlist" combine="interleave">
<attribute name="manifest:key-derivation-name">
<data type="string"/>
</attribute>
</define>
Thuộc tính manifest:salt quy định trình tự chuỗi 16-byte được sử dụng
như 'salt' bởi thuật toán tạo khóa.
<define name="key-derivation-attlist" combine="interleave">
<attribute name="manifest:salt">
<data type="base64Binary"/>
</attribute>
</define>

406
Thuộc tính manifest:iteration-count quy định số lần lặp được sử dụng bởi
thuật toán tạo khóa để tạo ra khóa đó.
<define name="key-derivation-attlist" combine="interleave">
<attribute name="manifest:iteration-count">
<data type="nonNegativeInteger"/>
</attribute>
</define>
Relax-NG Schema
© 2002-2007 OASIS Open
© 1999-2007 Sun Microsystems, Inc.
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0">
- <define name="office-process-content">
- <optional>
- <attribute name="office:process-content" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <start>
- <choice>
<ref name="office-document" />
<ref name="office-document-content" />
<ref name="office-document-styles" />
<ref name="office-document-meta" />
<ref name="office-document-settings" />
</choice>
</start>
- <define name="office-document">
- <element name="office:document">
<ref name="office-document-attrs" />
<ref name="office-document-common-attrs" />
<ref name="office-meta" />
<ref name="office-settings" />
<ref name="office-scripts" />
<ref name="office-font-face-decls" />
<ref name="office-styles" />
<ref name="office-automatic-styles" />
<ref name="office-master-styles" />
<ref name="office-body" />
</element>
</define>
- <define name="office-document-content">
- <element name="office:document-content">
<ref name="office-document-common-attrs" />
<ref name="office-scripts" />
<ref name="office-font-face-decls" />
<ref name="office-automatic-styles" />
<ref name="office-body" />
</element>
</define>
- <define name="office-document-styles">
- <element name="office:document-styles">
<ref name="office-document-common-attrs" />
<ref name="office-font-face-decls" />
<ref name="office-styles" />
<ref name="office-automatic-styles" />
<ref name="office-master-styles" />
</element>
</define>
- <define name="office-document-meta">
- <element name="office:document-meta">
<ref name="office-document-common-attrs" />
<ref name="office-meta" />
</element>
</define>
- <define name="office-document-settings">
- <element name="office:document-settings">
<ref name="office-document-common-attrs" />
<ref name="office-settings" />
</element>
</define>
- <define name="office-document-common-attrs" combine="interleave">
- <optional>
- <attribute name="office:version">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="office-document-attrs" combine="interleave">
- <attribute name="office:mimetype">
<ref name="string" />
</attribute>
</define>
- <define name="office-meta">
- <optional>
- <element name="office:meta">
<ref name="office-meta-content" />
</element>
</optional>
</define>
- <define name="office-meta-content">
<ref name="anyElements" />
</define>
- <define name="office-meta-content-strict">
- <zeroOrMore>
<ref name="office-meta-data" />
</zeroOrMore>
</define>
- <define name="office-body">
- <element name="office:body">
<ref name="office-body-content" />
</element>
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:text">
<ref name="office-text-attlist" />
<ref name="office-text-content-prelude" />
- <zeroOrMore>
<ref name="office-text-content-main" />
</zeroOrMore>
<ref name="office-text-content-epilogue" />
</element>
</define>
- <define name="office-text-content-prelude">
<ref name="office-forms" />
<ref name="text-tracked-changes" />
<ref name="text-decls" />
<ref name="table-decls" />
</define>
- <define name="office-text-content-main">
- <choice>
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
- <group>
<ref name="text-page-sequence" />
- <zeroOrMore>
- <choice>
<ref name="draw-a" />
<ref name="shape" />
</choice>
</zeroOrMore>
</group>
</choice>
</define>
- <define name="text-content">
- <choice>
<ref name="text-h" />
<ref name="text-p" />
<ref name="text-list" />
<ref name="text-numbered-paragraph" />
<ref name="table-table" />
<ref name="draw-a" />
<ref name="text-section" />
<ref name="text-soft-page-break" />
<ref name="text-table-of-content" />
<ref name="text-illustration-index" />
<ref name="text-table-index" />
<ref name="text-object-index" />
<ref name="text-user-index" />
<ref name="text-alphabetical-index" />
<ref name="text-bibliography" />
<ref name="shape" />
<ref name="change-marks" />
</choice>
</define>
- <define name="office-text-content-epilogue">
<ref name="table-functions" />
</define>
- <define name="office-text-attlist" combine="interleave">
- <optional>
- <attribute name="text:global" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="office-text-attlist" combine="interleave">
- <optional>
- <attribute name="text:use-soft-page-breaks" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:drawing">
<ref name="office-drawing-attlist" />
<ref name="office-drawing-content-prelude" />
<ref name="office-drawing-content-main" />
<ref name="office-drawing-content-epilogue" />
</element>
</define>
- <define name="office-drawing-attlist">
<empty />
</define>
- <define name="office-drawing-content-prelude">
<ref name="text-decls" />
<ref name="table-decls" />
</define>
- <define name="office-drawing-content-main">
- <zeroOrMore>
<ref name="draw-page" />
</zeroOrMore>
</define>
- <define name="office-drawing-content-epilogue">
<ref name="table-functions" />
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:presentation">
<ref name="office-presentation-attlist" />
<ref name="office-presentation-content-prelude" />
<ref name="office-presentation-content-main" />
<ref name="office-presentation-content-epilogue" />
</element>
</define>
- <define name="office-presentation-attlist">
<empty />
</define>
- <define name="office-presentation-content-prelude">
<ref name="text-decls" />
<ref name="table-decls" />
<ref name="presentation-decls" />
</define>
- <define name="office-presentation-content-main">
- <zeroOrMore>
<ref name="draw-page" />
</zeroOrMore>
</define>
- <define name="office-presentation-content-epilogue">
<ref name="presentation-settings" />
<ref name="table-functions" />
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:spreadsheet">
<ref name="office-spreadsheet-attlist" />
<ref name="office-spreadsheet-content-prelude" />
<ref name="office-spreadsheet-content-main" />
<ref name="office-spreadsheet-content-epilogue" />
</element>
</define>
- <define name="office-spreadsheet-content-prelude">
- <optional>
<ref name="table-tracked-changes" />
</optional>
<ref name="text-decls" />
<ref name="table-decls" />
</define>
- <define name="table-decls">
- <optional>
<ref name="table-calculation-settings" />
</optional>
- <optional>
<ref name="table-content-validations" />
</optional>
- <optional>
<ref name="table-label-ranges" />
</optional>
</define>
- <define name="office-spreadsheet-content-main">
- <zeroOrMore>
<ref name="table-table" />
</zeroOrMore>
</define>
- <define name="office-spreadsheet-content-epilogue">
<ref name="table-functions" />
</define>
- <define name="table-functions">
- <optional>
<ref name="table-named-expressions" />
</optional>
- <optional>
<ref name="table-database-ranges" />
</optional>
- <optional>
<ref name="table-data-pilot-tables" />
</optional>
- <optional>
<ref name="table-consolidation" />
</optional>
- <optional>
<ref name="table-dde-links" />
</optional>
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:chart">
<ref name="office-chart-attlist" />
<ref name="office-chart-content-prelude" />
<ref name="office-chart-content-main" />
<ref name="office-chart-content-epilogue" />
</element>
</define>
- <define name="office-chart-attlist">
<empty />
</define>
- <define name="office-chart-content-prelude">
<ref name="text-decls" />
<ref name="table-decls" />
</define>
- <define name="office-chart-content-main">
<ref name="chart-chart" />
</define>
- <define name="office-chart-content-epilogue">
<ref name="table-functions" />
</define>
- <define name="office-body-content" combine="choice">
- <element name="office:image">
<ref name="office-image-attlist" />
<ref name="office-image-content-prelude" />
<ref name="office-image-content-main" />
<ref name="office-image-content-epilogue" />
</element>
</define>
- <define name="office-image-attlist">
<empty />
</define>
- <define name="office-image-content-prelude">
<empty />
</define>
- <define name="office-image-content-main">
<ref name="draw-frame" />
</define>
- <define name="office-image-content-epilogue">
<empty />
</define>
- <define name="office-settings">
- <optional>
- <element name="office:settings">
- <oneOrMore>
<ref name="config-config-item-set" />
</oneOrMore>
</element>
</optional>
</define>
- <define name="config-config-item-set">
- <element name="config:config-item-set">
<ref name="config-config-item-set-attlist" />
<ref name="config-items" />
</element>
</define>
- <define name="config-items">
- <oneOrMore>
- <choice>
<ref name="config-config-item" />
<ref name="config-config-item-set" />
<ref name="config-config-item-map-named" />
<ref name="config-config-item-map-indexed" />
</choice>
</oneOrMore>
</define>
- <define name="config-config-item-set-attlist" combine="interleave">
- <attribute name="config:name">
<ref name="string" />
</attribute>
</define>
- <define name="config-config-item">
- <element name="config:config-item">
<ref name="config-config-item-attlist" />
<text />
</element>
</define>
- <define name="config-config-item-attlist" combine="interleave">
- <attribute name="config:name">
<ref name="string" />
</attribute>
</define>
- <define name="config-config-item-attlist" combine="interleave">
- <attribute name="config:type">
- <choice>
<value>boolean</value>
<value>short</value>
<value>int</value>
<value>long</value>
<value>double</value>
<value>string</value>
<value>datetime</value>
<value>base64Binary</value>
</choice>
</attribute>
</define>
- <define name="config-config-item-map-indexed">
- <element name="config:config-item-map-indexed">
<ref name="config-config-item-map-indexed-attlist" />
- <oneOrMore>
<ref name="config-config-item-map-entry" />
</oneOrMore>
</element>
</define>
- <define name="config-config-item-map-indexed-attlist"
combine="interleave">
- <attribute name="config:name">
<ref name="string" />
</attribute>
</define>
- <define name="config-config-item-map-entry">
- <element name="config:config-item-map-entry">
<ref name="config-config-item-map-entry-attlist" />
<ref name="config-items" />
</element>
</define>
- <define name="config-config-item-map-entry-attlist" combine="interleave">
- <optional>
- <attribute name="config:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="config-config-item-map-named">
- <element name="config:config-item-map-named">
<ref name="config-config-item-map-named-attlist" />
- <oneOrMore>
<ref name="config-config-item-map-entry" />
</oneOrMore>
</element>
</define>
- <define name="config-config-item-map-named-attlist" combine="interleave">
- <attribute name="config:name">
<ref name="string" />
</attribute>
</define>
- <define name="office-scripts">
- <optional>
- <element name="office:scripts">
- <zeroOrMore>
<ref name="office-script" />
</zeroOrMore>
- <optional>
<ref name="office-event-listeners" />
</optional>
</element>
</optional>
</define>
- <define name="office-script">
- <element name="office:script">
<ref name="office-script-attlist" />
- <mixed>
<ref name="anyElements" />
</mixed>
</element>
</define>
- <define name="office-script-attlist">
- <attribute name="script:language">
<ref name="string" />
</attribute>
</define>
- <define name="office-font-face-decls">
- <optional>
- <element name="office:font-face-decls">
- <zeroOrMore>
<ref name="style-font-face" />
</zeroOrMore>
</element>
</optional>
</define>
- <define name="office-styles">
- <optional>
- <element name="office:styles">
- <interleave>
<ref name="styles" />
- <zeroOrMore>
<ref name="style-default-style" />
</zeroOrMore>
- <optional>
<ref name="text-outline-style" />
</optional>
- <zeroOrMore>
<ref name="text-notes-configuration" />
</zeroOrMore>
- <optional>
<ref name="text-bibliography-configuration" />
</optional>
- <optional>
<ref name="text-linenumbering-configuration" />
</optional>
- <zeroOrMore>
<ref name="draw-gradient" />
</zeroOrMore>
- <zeroOrMore>
<ref name="svg-linearGradient" />
</zeroOrMore>
- <zeroOrMore>
<ref name="svg-radialGradient" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-hatch" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-fill-image" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-marker" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-stroke-dash" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-opacity" />
</zeroOrMore>
- <zeroOrMore>
<ref name="style-presentation-page-layout" />
</zeroOrMore>
</interleave>
</element>
</optional>
</define>
- <define name="office-automatic-styles">
- <optional>
- <element name="office:automatic-styles">
- <interleave>
<ref name="styles" />
- <zeroOrMore>
<ref name="style-page-layout" />
</zeroOrMore>
</interleave>
</element>
</optional>
</define>
- <define name="office-master-styles">
- <optional>
- <element name="office:master-styles">
- <interleave>
- <zeroOrMore>
<ref name="style-master-page" />
</zeroOrMore>
- <optional>
<ref name="style-handout-master" />
</optional>
- <optional>
<ref name="draw-layer-set" />
</optional>
</interleave>
</element>
</optional>
</define>
- <define name="styles">
- <interleave>
- <zeroOrMore>
<ref name="style-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="text-list-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-number-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-currency-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-percentage-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-date-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-time-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-boolean-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="number-text-style" />
</zeroOrMore>
</interleave>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:generator">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="dc:title">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="dc:description">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="dc:subject">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:keyword">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:initial-creator">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
<ref name="dc-creator" />
</define>
- <define name="dc-creator">
- <element name="dc:creator">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:printed-by">
<ref name="string" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:creation-date">
<ref name="dateTime" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
<ref name="dc-date" />
</define>
- <define name="dc-date">
- <element name="dc:date">
<ref name="dateTime" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:print-date">
<ref name="dateTime" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:template">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:title">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:date">
<ref name="dateTime" />
</attribute>
</optional>
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:auto-reload">
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show" a:defaultValue="replace">
<value>replace</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onLoad">
<value>onLoad</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:delay">
<ref name="duration" />
</attribute>
</optional>
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:hyperlink-behaviour">
- <optional>
- <attribute name="office:target-frame-name">
<ref name="targetFrameName" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show">
- <choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="dc:language">
<ref name="language" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:editing-cycles">
<ref name="nonNegativeInteger" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:editing-duration">
<ref name="duration" />
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:document-statistic">
- <optional>
- <attribute name="meta:page-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:table-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:draw-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:image-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:ole-object-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:object-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:paragraph-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:word-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:character-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="frame-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="sentence-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="syllable-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="non-whitespace-character-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:row-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="meta:cell-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</element>
</define>
- <define name="office-meta-data" combine="choice">
- <element name="meta:user-defined">
- <attribute name="meta:name">
<ref name="string" />
</attribute>
- <choice>
- <group>
- <attribute name="meta:value-type">
<value>float</value>
</attribute>
<ref name="double" />
</group>
- <group>
- <attribute name="meta:value-type">
<value>date</value>
</attribute>
<ref name="dateOrDateTime" />
</group>
- <group>
- <attribute name="meta:value-type">
<value>time</value>
</attribute>
<ref name="duration" />
</group>
- <group>
- <attribute name="meta:value-type">
<value>boolean</value>
</attribute>
<ref name="boolean" />
</group>
- <group>
- <attribute name="meta:value-type">
<value>string</value>
</attribute>
<ref name="string" />
</group>
<text />
</choice>
</element>
</define>
- <define name="text-h">
- <element name="text:h">
<ref name="heading-attrs" />
<ref name="paragraph-attrs" />
- <optional>
<ref name="text-number" />
</optional>
- <zeroOrMore>
<ref name="paragraph-content" />
</zeroOrMore>
</element>
</define>
- <define name="heading-attrs" combine="interleave">
- <attribute name="text:outline-level">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="heading-attrs" combine="interleave">
- <optional>
- <attribute name="text:restart-numbering" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="heading-attrs" combine="interleave">
- <optional>
- <attribute name="text:start-value">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="heading-attrs" combine="interleave">
- <optional>
- <attribute name="text:is-list-header" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-number">
- <element name="text:number">
<ref name="string" />
</element>
</define>
- <define name="text-p">
- <element name="text:p">
<ref name="paragraph-attrs" />
- <zeroOrMore>
<ref name="paragraph-content" />
</zeroOrMore>
</element>
</define>
- <define name="paragraph-attrs">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <optional>
- <attribute name="text:class-names">
<ref name="styleNameRefs" />
</attribute>
</optional>
- <optional>
- <attribute name="text:cond-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="paragraph-attrs" combine="interleave">
- <optional>
<ref name="text-id" />
</optional>
</define>
- <define name="text-page-sequence">
- <element name="text:page-sequence">
- <oneOrMore>
<ref name="text-page" />
</oneOrMore>
</element>
</define>
- <define name="text-page">
- <element name="text:page">
<ref name="text-page-attlist" />
<empty />
</element>
</define>
- <define name="text-page-attlist">
- <attribute name="text:master-page-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-list">
- <element name="text:list">
<ref name="text-list-attr" />
- <optional>
<ref name="text-list-header" />
</optional>
- <zeroOrMore>
<ref name="text-list-item" />
</zeroOrMore>
</element>
</define>
- <define name="text-list-attr" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-list-attr" combine="interleave">
- <optional>
- <attribute name="text:continue-numbering">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-list-item">
- <element name="text:list-item">
<ref name="text-list-item-attr" />
<ref name="text-list-item-content" />
</element>
</define>
- <define name="text-list-item-content">
- <optional>
<ref name="text-number" />
</optional>
- <zeroOrMore>
- <choice>
<ref name="text-p" />
<ref name="text-h" />
<ref name="text-list" />
<ref name="text-soft-page-break" />
</choice>
</zeroOrMore>
</define>
- <define name="text-list-item-attr" combine="interleave">
- <optional>
- <attribute name="text:start-value">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="text-list-header">
- <element name="text:list-header">
<ref name="text-list-item-content" />
</element>
</define>
- <define name="text-numbered-paragraph">
- <element name="text:numbered-paragraph">
<ref name="text-numbered-paragraph-attr" />
- <optional>
<ref name="text-number" />
</optional>
- <choice>
<ref name="text-p" />
<ref name="text-h" />
</choice>
</element>
</define>
- <define name="text-numbered-paragraph-attr" combine="interleave">
- <optional>
- <attribute name="text:level" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="text-numbered-paragraph-attr" combine="interleave">
<ref name="text-list-attr" />
</define>
- <define name="text-numbered-paragraph-attr" combine="interleave">
<ref name="text-list-item-attr" />
</define>
- <define name="text-section">
- <element name="text:section">
<ref name="text-section-attr" />
- <choice>
<ref name="text-section-source" />
<ref name="text-section-source-dde" />
<empty />
</choice>
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
</element>
</define>
- <define name="text-section-attr" combine="interleave">
<ref name="sectionAttr" />
</define>
- <define name="sectionAttr" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="sectionAttr" combine="interleave">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</define>
- <define name="sectionAttr" combine="interleave">
- <optional>
- <attribute name="text:protected">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="sectionAttr" combine="interleave">
- <optional>
- <attribute name="text:protection-key">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-section-attr" combine="interleave">
- <choice>
- <attribute name="text:display">
- <choice>
<value>true</value>
<value>none</value>
</choice>
</attribute>
- <group>
- <attribute name="text:display">
<value>condition</value>
</attribute>
- <attribute name="text:condition">
<ref name="string" />
</attribute>
</group>
<empty />
</choice>
</define>
- <define name="text-section-source">
- <element name="text:section-source">
<ref name="text-section-source-attr" />
</element>
</define>
- <define name="text-section-source-attr" combine="interleave">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show" a:defaultValue="embed">
<value>embed</value>
</attribute>
</optional>
</optional>
</define>
- <define name="text-section-source-attr" combine="interleave">
- <optional>
- <attribute name="text:section-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-section-source-attr" combine="interleave">
- <optional>
- <attribute name="text:filter-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-section-source-dde">
<ref name="office-dde-source" />
</define>
- <define name="text-tracked-changes">
- <optional>
- <element name="text:tracked-changes">
<ref name="text-tracked-changes-attr" />
- <zeroOrMore>
<ref name="text-changed-region" />
</zeroOrMore>
</element>
</optional>
</define>
- <define name="text-tracked-changes-attr" combine="interleave">
- <optional>
- <attribute name="text:track-changes" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-changed-region">
- <element name="text:changed-region">
<ref name="text-changed-region-attr" />
<ref name="text-changed-region-content" />
</element>
</define>
- <define name="text-changed-region-attr" combine="interleave">
- <attribute name="text:id">
<ref name="ID" />
</attribute>
</define>
- <define name="text-changed-region-content" combine="choice">
- <element name="text:insertion">
<ref name="office-change-info" />
</element>
</define>
- <define name="text-changed-region-content" combine="choice">
- <element name="text:deletion">
<ref name="office-change-info" />
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
</element>
</define>
- <define name="text-changed-region-content" combine="choice">
- <element name="text:format-change">
<ref name="office-change-info" />
</element>
</define>
- <define name="change-marks">
- <choice>
- <element name="text:change">
<ref name="change-mark-attr" />
</element>
- <element name="text:change-start">
<ref name="change-mark-attr" />
</element>
- <element name="text:change-end">
<ref name="change-mark-attr" />
</element>
</choice>
</define>
- <define name="change-mark-attr">
- <attribute name="text:change-id">
<ref name="IDREF" />
</attribute>
</define>
- <define name="text-soft-page-break">
- <element name="text:soft-page-break">
<empty />
</element>
</define>
- <define name="text-decls">
- <optional>
- <element name="text:variable-decls">
- <zeroOrMore>
<ref name="text-variable-decl" />
</zeroOrMore>
</element>
</optional>
- <optional>
- <element name="text:sequence-decls">
- <zeroOrMore>
<ref name="text-sequence-decl" />
</zeroOrMore>
</element>
</optional>
- <optional>
- <element name="text:user-field-decls">
- <zeroOrMore>
<ref name="text-user-field-decl" />
</zeroOrMore>
</element>
</optional>
- <optional>
- <element name="text:dde-connection-decls">
- <zeroOrMore>
<ref name="text-dde-connection-decl" />
</zeroOrMore>
</element>
</optional>
- <optional>
<ref name="text-alphabetical-index-auto-mark-file" />
</optional>
</define>
- <define name="paragraph-content" combine="choice">
<text />
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:s">
- <optional>
- <attribute name="text:c">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:tab">
<ref name="text-tab-attr" />
</element>
</define>
- <define name="text-tab-attr">
- <optional>
- <attribute name="text:tab-ref">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:line-break">
<empty />
</element>
</define>
- <define name="paragraph-content" combine="choice">
<ref name="text-soft-page-break" />
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:span">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <optional>
- <attribute name="text:class-names">
<ref name="styleNameRefs" />
</attribute>
</optional>
- <zeroOrMore>
<ref name="paragraph-content" />
</zeroOrMore>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:a">
<ref name="text-a-attlist" />
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="paragraph-content" />
</zeroOrMore>
</element>
</define>
- <define name="text-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:title">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-a-attlist" combine="interleave">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</define>
- <define name="text-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:target-frame-name">
<ref name="targetFrameName" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show">
- <choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-a-attlist" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <optional>
- <attribute name="text:visited-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <choice>
- <element name="text:bookmark">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
- <element name="text:bookmark-start">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
- <element name="text:bookmark-end">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
</choice>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:reference-mark">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <choice>
- <element name="text:reference-mark-start">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
- <element name="text:reference-mark-end">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</element>
</choice>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:note">
<ref name="text-note-class" />
- <optional>
- <attribute name="text:id">
<ref name="string" />
</attribute>
</optional>
- <element name="text:note-citation">
- <optional>
- <attribute name="text:label">
<ref name="string" />
</attribute>
</optional>
<text />
</element>
- <element name="text:note-body">
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
</element>
</element>
</define>
- <define name="text-note-class">
- <attribute name="text:note-class">
- <choice>
<value>footnote</value>
<value>endnote</value>
</choice>
</attribute>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:ruby">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <element name="text:ruby-base">
<ref name="paragraph-content" />
</element>
- <element name="text:ruby-text">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
<text />
</element>
</element>
</define>
- <define name="paragraph-content" combine="choice">
<ref name="office-annotation" />
</define>
- <define name="paragraph-content" combine="choice">
<ref name="change-marks" />
</define>
- <define name="paragraph-content" combine="choice">
- <choice>
<ref name="shape" />
<ref name="draw-a" />
</choice>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:date">
<ref name="text-date-attlist" />
<text />
</element>
</define>
- <define name="text-date-attlist" combine="interleave">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
</define>
- <define name="text-date-attlist" combine="interleave">
- <optional>
- <attribute name="text:date-value">
<ref name="dateOrDateTime" />
</attribute>
</optional>
</define>
- <define name="text-date-attlist" combine="interleave">
- <optional>
- <attribute name="text:date-adjust">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:time">
<ref name="text-time-attlist" />
<text />
</element>
</define>
- <define name="text-time-attlist" combine="interleave">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
</define>
- <define name="text-time-attlist" combine="interleave">
- <optional>
- <attribute name="text:time-value">
<ref name="timeOrDateTime" />
</attribute>
</optional>
</define>
- <define name="text-time-attlist" combine="interleave">
- <optional>
- <attribute name="text:time-adjust">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:page-number">
<ref name="text-page-number-attlist" />
<text />
</element>
</define>
- <define name="text-page-number-attlist" combine="interleave">
- <interleave>
<ref name="common-field-num-format-attlist" />
<ref name="common-field-fixed-attlist" />
</interleave>
</define>
- <define name="text-page-number-attlist" combine="interleave">
- <optional>
- <attribute name="text:page-adjust">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="text-page-number-attlist" combine="interleave">
- <optional>
- <attribute name="text:select-page">
- <choice>
<value>previous</value>
<value>current</value>
<value>next</value>
</choice>
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:page-continuation">
<ref name="text-page-continuation-attlist" />
<text />
</element>
</define>
- <define name="text-page-continuation-attlist" combine="interleave">
- <attribute name="text:select-page">
- <choice>
<value>previous</value>
<value>next</value>
</choice>
</attribute>
</define>
- <define name="text-page-continuation-attlist" combine="interleave">
- <optional>
- <attribute name="text:string-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-firstname">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-lastname">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-initials">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-title">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-position">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-email">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-phone-private">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-fax">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-company">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-phone-work">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-street">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-city">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-postal-code">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-country">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sender-state-or-province">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:author-name">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:author-initials">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:chapter">
<ref name="text-chapter-attlist" />
<text />
</element>
</define>
- <define name="text-chapter-attlist" combine="interleave">
- <attribute name="text:display">
- <choice>
<value>name</value>
<value>number</value>
<value>number-and-name</value>
<value>plain-number-and-name</value>
<value>plain-number</value>
</choice>
</attribute>
</define>
- <define name="text-chapter-attlist" combine="interleave">
- <attribute name="text:outline-level">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:file-name">
<ref name="text-file-name-attlist" />
<text />
</element>
</define>
- <define name="text-file-name-attlist" combine="interleave">
- <optional>
- <attribute name="text:display">
- <choice>
<value>full</value>
<value>path</value>
<value>name</value>
<value>name-and-extension</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-file-name-attlist" combine="interleave">
<ref name="common-field-fixed-attlist" />
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:template-name">
<ref name="text-template-name-attlist" />
<text />
</element>
</define>
- <define name="text-template-name-attlist">
- <optional>
- <attribute name="text:display">
- <choice>
<value>full</value>
<value>path</value>
<value>name</value>
<value>name-and-extension</value>
<value>area</value>
<value>title</value>
</choice>
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sheet-name">
<text />
</element>
</define>
- <define name="text-variable-decl">
- <element name="text:variable-decl">
<ref name="common-field-name-attlist" />
<ref name="common-value-type-attlist" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:variable-set">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-formula-attlist" />
<ref name="common-value-and-type-attlist" />
<ref name="common-field-display-value-none-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:variable-get">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-display-value-formula-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:variable-input">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-description-attlist" />
<ref name="common-value-type-attlist" />
<ref name="common-field-display-value-none-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="text-user-field-decl">
- <element name="text:user-field-decl">
<ref name="common-field-name-attlist" />
- <optional>
<ref name="common-field-formula-attlist" />
</optional>
<ref name="common-value-and-type-attlist" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-field-get">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-display-value-formula-none-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-field-input">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-description-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="text-sequence-decl">
- <element name="text:sequence-decl">
<ref name="text-sequence-decl-attlist" />
</element>
</define>
- <define name="text-sequence-decl-attlist" combine="interleave">
<ref name="common-field-name-attlist" />
</define>
- <define name="text-sequence-decl-attlist" combine="interleave">
- <attribute name="text:display-outline-level">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="text-sequence-decl-attlist" combine="interleave">
- <optional>
- <attribute name="text:separation-character">
<ref name="character" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sequence">
- <interleave>
<ref name="common-field-name-attlist" />
<ref name="common-field-formula-attlist" />
<ref name="common-field-num-format-attlist" />
<ref name="text-sequence-ref-name" />
</interleave>
<text />
</element>
</define>
- <define name="text-sequence-ref-name">
- <optional>
- <attribute name="text:ref-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:expression">
- <interleave>
<ref name="common-field-formula-attlist" />
- <optional>
<ref name="common-value-and-type-attlist" />
</optional>
<ref name="common-field-display-value-formula-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:text-input">
<ref name="common-field-description-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:initial-creator">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:creation-date">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:date-value">
<ref name="dateOrDateTime" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:creation-time">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:time-value">
<ref name="timeOrDateTime" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:description">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-defined">
- <interleave>
<ref name="common-field-fixed-attlist" />
- <attribute name="text:name">
<ref name="string" />
</attribute>
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="office:value">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="office:date-value">
<ref name="dateOrDateTime" />
</attribute>
</optional>
- <optional>
- <attribute name="office:time-value">
<ref name="duration" />
</attribute>
</optional>
- <optional>
- <attribute name="office:boolean-value">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="office:string-value">
<ref name="string" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:print-time">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:time-value">
<ref name="time" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:print-date">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:date-value">
<ref name="date" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:printed-by">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:title">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:subject">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:keywords">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:editing-cycles">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:editing-duration">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:duration">
<ref name="duration" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:modification-time">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:time-value">
<ref name="time" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:modification-date">
- <interleave>
<ref name="common-field-fixed-attlist" />
<ref name="common-field-data-style-name-attlist" />
- <optional>
- <attribute name="text:date-value">
<ref name="date" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:creator">
<ref name="common-field-fixed-attlist" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element>
- <choice>
<name>text:page-count</name>
<name>text:paragraph-count</name>
<name>text:word-count</name>
<name>text:character-count</name>
<name>text:table-count</name>
<name>text:image-count</name>
<name>text:object-count</name>
</choice>
<ref name="common-field-num-format-attlist" />
<text />
</element>
</define>
- <define name="common-field-database-table">
<ref name="common-field-database-table-attlist" />
<ref name="common-field-database-name" />
</define>
- <define name="common-field-database-name" combine="choice">
- <optional>
- <attribute name="text:database-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-field-database-name" combine="choice">
<ref name="form-connection-resource" />
</define>
- <define name="common-field-database-table-attlist" combine="interleave">
- <attribute name="text:table-name">
<ref name="string" />
</attribute>
</define>
- <define name="common-field-database-table-attlist" combine="interleave">
- <optional>
- <attribute name="text:table-type">
- <choice>
<value>table</value>
<value>query</value>
<value>command</value>
</choice>
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:database-display">
<ref name="text-database-display-attlist" />
<text />
</element>
</define>
- <define name="text-database-display-attlist" combine="interleave">
<ref name="common-field-database-table" />
</define>
- <define name="text-database-display-attlist" combine="interleave">
<ref name="common-field-data-style-name-attlist" />
</define>
- <define name="text-database-display-attlist" combine="interleave">
- <attribute name="text:column-name">
<ref name="string" />
</attribute>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:database-next">
<ref name="text-database-next-attlist" />
</element>
</define>
- <define name="text-database-next-attlist" combine="interleave">
<ref name="common-field-database-table" />
</define>
- <define name="text-database-next-attlist" combine="interleave">
- <optional>
- <attribute name="text:condition">
<ref name="formula" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:database-row-select">
<ref name="text-database-row-select-attlist" />
</element>
</define>
- <define name="text-database-row-select-attlist" combine="interleave">
<ref name="common-field-database-table" />
</define>
- <define name="text-database-row-select-attlist" combine="interleave">
- <optional>
- <attribute name="text:condition">
<ref name="formula" />
</attribute>
</optional>
</define>
- <define name="text-database-row-select-attlist" combine="interleave">
- <optional>
- <attribute name="text:row-number">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:database-row-number">
- <interleave>
<ref name="common-field-database-table" />
<ref name="common-field-num-format-attlist" />
- <optional>
- <attribute name="text:value">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</interleave>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:database-name">
<ref name="common-field-database-table" />
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:page-variable-set">
<ref name="text-set-page-variable-attlist" />
<text />
</element>
</define>
- <define name="text-set-page-variable-attlist" combine="interleave">
- <optional>
- <attribute name="text:active">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-set-page-variable-attlist" combine="interleave">
- <optional>
- <attribute name="text:page-adjust">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:page-variable-get">
<ref name="text-get-page-variable-attlist" />
<text />
</element>
</define>
- <define name="text-get-page-variable-attlist" combine="interleave">
<ref name="common-field-num-format-attlist" />
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:placeholder">
<ref name="text-placeholder-attlist" />
<text />
</element>
</define>
- <define name="text-placeholder-attlist" combine="interleave">
- <attribute name="text:placeholder-type">
- <choice>
<value>text</value>
<value>table</value>
<value>text-box</value>
<value>image</value>
<value>object</value>
</choice>
</attribute>
</define>
- <define name="text-placeholder-attlist" combine="interleave">
<ref name="common-field-description-attlist" />
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:conditional-text">
<ref name="text-conditional-text-attlist" />
<text />
</element>
</define>
- <define name="text-conditional-text-attlist" combine="interleave">
- <attribute name="text:condition">
<ref name="formula" />
</attribute>
</define>
- <define name="text-conditional-text-attlist" combine="interleave">
- <attribute name="text:string-value-if-true">
<ref name="string" />
</attribute>
</define>
- <define name="text-conditional-text-attlist" combine="interleave">
- <attribute name="text:string-value-if-false">
<ref name="string" />
</attribute>
</define>
- <define name="text-conditional-text-attlist" combine="interleave">
- <optional>
- <attribute name="text:current-value">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:hidden-text">
<ref name="text-hidden-text-attlist" />
<text />
</element>
</define>
- <define name="text-hidden-text-attlist" combine="interleave">
- <attribute name="text:condition">
<ref name="formula" />
</attribute>
</define>
- <define name="text-hidden-text-attlist" combine="interleave">
- <attribute name="text:string-value">
<ref name="string" />
</attribute>
</define>
- <define name="text-hidden-text-attlist" combine="interleave">
- <optional>
- <attribute name="text:is-hidden">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element>
- <choice>
<name>text:reference-ref</name>
<name>text:bookmark-ref</name>
</choice>
- <interleave>
<ref name="text-common-ref-content" />
<ref name="text-ref-content" />
</interleave>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:note-ref">
- <interleave>
<ref name="text-common-ref-content" />
<ref name="text-note-ref-content" />
<ref name="text-ref-content" />
</interleave>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:sequence-ref">
- <interleave>
<ref name="text-common-ref-content" />
<ref name="text-sequence-ref-content" />
</interleave>
</element>
</define>
- <define name="text-common-ref-content" combine="interleave">
<text />
</define>
- <define name="text-common-ref-content" combine="interleave">
- <optional>
- <attribute name="text:ref-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-note-ref-content" combine="interleave">
<ref name="text-note-class" />
</define>
- <define name="text-ref-content" combine="interleave">
- <optional>
- <attribute name="text:reference-format">
- <choice>
<value>page</value>
<value>chapter</value>
<value>direction</value>
<value>text</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-sequence-ref-content" combine="interleave">
- <optional>
- <attribute name="text:reference-format">
- <choice>
<value>page</value>
<value>chapter</value>
<value>direction</value>
<value>text</value>
<value>category-and-value</value>
<value>caption</value>
<value>value</value>
</choice>
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:script">
- <interleave>
- <choice>
- <group>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
</group>
<text />
</choice>
- <optional>
- <attribute name="script:language">
<ref name="string" />
</attribute>
</optional>
</interleave>
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:execute-macro">
- <optional>
- <attribute name="text:name">
<ref name="string" />
</attribute>
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:hidden-paragraph">
<ref name="text-hidden-paragraph-attlist" />
<text />
</element>
</define>
- <define name="text-hidden-paragraph-attlist" combine="interleave">
- <attribute name="text:condition">
<ref name="formula" />
</attribute>
</define>
- <define name="text-hidden-paragraph-attlist" combine="interleave">
- <optional>
- <attribute name="text:is-hidden">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:dde-connection">
- <attribute name="text:connection-name">
<ref name="string" />
</attribute>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:measure">
- <attribute name="text:kind">
- <choice>
<value>value</value>
<value>unit</value>
<value>gap</value>
</choice>
</attribute>
<text />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:table-formula">
- <interleave>
<ref name="common-field-formula-attlist" />
<ref name="common-field-display-value-formula-attlist" />
<ref name="common-field-data-style-name-attlist" />
</interleave>
<text />
</element>
</define>
- <define name="common-value-type-attlist">
- <attribute name="office:value-type">
<ref name="valueType" />
</attribute>
</define>
- <define name="common-value-and-type-attlist">
- <choice>
- <group>
- <attribute name="office:value-type">
<value>float</value>
</attribute>
- <attribute name="office:value">
<ref name="double" />
</attribute>
</group>
- <group>
- <attribute name="office:value-type">
<value>percentage</value>
</attribute>
- <attribute name="office:value">
<ref name="double" />
</attribute>
</group>
- <group>
- <attribute name="office:value-type">
<value>currency</value>
</attribute>
- <attribute name="office:value">
<ref name="double" />
</attribute>
- <optional>
- <attribute name="office:currency">
<ref name="string" />
</attribute>
</optional>
</group>
- <group>
- <attribute name="office:value-type">
<value>date</value>
</attribute>
- <attribute name="office:date-value">
<ref name="dateOrDateTime" />
</attribute>
</group>
- <group>
- <attribute name="office:value-type">
<value>time</value>
</attribute>
- <attribute name="office:time-value">
<ref name="duration" />
</attribute>
</group>
- <group>
- <attribute name="office:value-type">
<value>boolean</value>
</attribute>
- <attribute name="office:boolean-value">
<ref name="boolean" />
</attribute>
</group>
- <group>
- <attribute name="office:value-type">
<value>string</value>
</attribute>
- <optional>
- <attribute name="office:string-value">
<ref name="string" />
</attribute>
</optional>
</group>
</choice>
</define>
- <define name="common-field-fixed-attlist">
- <optional>
- <attribute name="text:fixed">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-field-name-attlist">
- <attribute name="text:name">
<ref name="variableName" />
</attribute>
</define>
- <define name="common-field-description-attlist">
- <optional>
- <attribute name="text:description">
<text />
</attribute>
</optional>
</define>
- <define name="common-field-display-value-none-attlist">
- <optional>
- <attribute name="text:display">
- <choice>
<value>value</value>
<value>none</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-field-display-value-formula-none-attlist">
- <optional>
- <attribute name="text:display">
- <choice>
<value>value</value>
<value>formula</value>
<value>none</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-field-display-value-formula-attlist">
- <optional>
- <attribute name="text:display">
- <choice>
<value>value</value>
<value>formula</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-field-formula-attlist">
- <optional>
- <attribute name="text:formula">
<ref name="formula" />
</attribute>
</optional>
</define>
- <define name="common-field-data-style-name-attlist">
- <optional>
- <attribute name="style:data-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="common-field-num-format-attlist">
- <optional>
<ref name="common-num-format-attlist" />
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:toc-mark-start">
<ref name="text-toc-mark-start-attrs" />
</element>
</define>
- <define name="text-toc-mark-start-attrs">
<ref name="text-id" />
<ref name="text-outline-level" />
</define>
- <define name="text-outline-level">
- <optional>
- <attribute name="text:outline-level">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="text-id">
- <attribute name="text:id">
<ref name="string" />
</attribute>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:toc-mark-end">
<ref name="text-id" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:toc-mark">
- <attribute name="text:string-value">
<ref name="string" />
</attribute>
<ref name="text-outline-level" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-index-mark-start">
<ref name="text-id" />
<ref name="text-outline-level" />
<ref name="text-index-name" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-index-mark-end">
<ref name="text-id" />
<ref name="text-outline-level" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:user-index-mark">
- <attribute name="text:string-value">
<ref name="string" />
</attribute>
<ref name="text-outline-level" />
<ref name="text-index-name" />
</element>
</define>
- <define name="text-index-name">
- <attribute name="text:index-name">
<ref name="string" />
</attribute>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:alphabetical-index-mark-start">
<ref name="text-id" />
<ref name="text-alphabetical-index-mark-attrs" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:alphabetical-index-mark-end">
<ref name="text-id" />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:alphabetical-index-mark">
- <attribute name="text:string-value">
<ref name="string" />
</attribute>
<ref name="text-alphabetical-index-mark-attrs" />
</element>
</define>
- <define name="text-alphabetical-index-mark-attrs" combine="interleave">
- <optional>
- <attribute name="text:key1">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="text:key2">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-mark-attrs" combine="interleave">
- <optional>
- <attribute name="text:string-value-phonetic">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="text:key1-phonetic">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="text:key2-phonetic">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-mark-attrs" combine="interleave">
- <optional>
- <attribute name="text:main-entry" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="text:bibliography-mark">
- <attribute name="text:bibliography-type">
<ref name="text-bibliography-types" />
</attribute>
- <zeroOrMore>
- <attribute>
- <choice>
<name>text:identifier</name>
<name>text:address</name>
<name>text:annote</name>
<name>text:author</name>
<name>text:booktitle</name>
<name>text:chapter</name>
<name>text:edition</name>
<name>text:editor</name>
<name>text:howpublished</name>
<name>text:institution</name>
<name>text:journal</name>
<name>text:month</name>
<name>text:note</name>
<name>text:number</name>
<name>text:organizations</name>
<name>text:pages</name>
<name>text:publisher</name>
<name>text:school</name>
<name>text:series</name>
<name>text:title</name>
<name>text:report-type</name>
<name>text:volume</name>
<name>text:year</name>
<name>text:url</name>
<name>text:custom1</name>
<name>text:custom2</name>
<name>text:custom3</name>
<name>text:custom4</name>
<name>text:custom5</name>
<name>text:isbn</name>
<name>text:issn</name>
</choice>
<ref name="string" />
</attribute>
</zeroOrMore>
<text />
</element>
</define>
- <define name="text-bibliography-types">
- <choice>
<value>article</value>
<value>book</value>
<value>booklet</value>
<value>conference</value>
<value>custom1</value>
<value>custom2</value>
<value>custom3</value>
<value>custom4</value>
<value>custom5</value>
<value>email</value>
<value>inbook</value>
<value>incollection</value>
<value>inproceedings</value>
<value>journal</value>
<value>manual</value>
<value>mastersthesis</value>
<value>misc</value>
<value>phdthesis</value>
<value>proceedings</value>
<value>techreport</value>
<value>unpublished</value>
<value>www</value>
</choice>
</define>
- <define name="text-index-body">
- <element name="text:index-body">
- <zeroOrMore>
<ref name="index-content-main" />
</zeroOrMore>
</element>
</define>
- <define name="index-content-main">
- <choice>
<ref name="text-content" />
<ref name="text-index-title" />
</choice>
</define>
- <define name="text-index-title">
- <element name="text:index-title">
<ref name="sectionAttr" />
- <zeroOrMore>
<ref name="index-content-main" />
</zeroOrMore>
</element>
</define>
- <define name="text-table-of-content">
- <element name="text:table-of-content">
<ref name="sectionAttr" />
<ref name="text-table-of-content-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-table-of-content-source">
- <element name="text:table-of-content-source">
<ref name="text-table-of-content-source-attlist" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <zeroOrMore>
<ref name="text-table-of-content-entry-template" />
</zeroOrMore>
- <zeroOrMore>
<ref name="text-index-source-styles" />
</zeroOrMore>
</element>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:outline-level">
- <choice>
<ref name="positiveInteger" />
</choice>
</attribute>
</optional>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:use-outline-level" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:use-index-marks">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:use-index-source-styles">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:index-scope">
- <choice>
<value>document</value>
<value>chapter</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-table-of-content-source-attlist" combine="interleave">
- <optional>
- <attribute name="text:relative-tab-stop-position">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-table-of-content-entry-template">
- <element name="text:table-of-content-entry-template">
<ref name="text-table-of-content-entry-template-attlist" />
- <zeroOrMore>
<ref name="text-table-of-content-children" />
</zeroOrMore>
</element>
</define>
- <define name="text-table-of-content-children">
- <choice>
<ref name="text-index-entry-chapter" />
<ref name="text-index-entry-page-number" />
<ref name="text-index-entry-text" />
<ref name="text-index-entry-span" />
<ref name="text-index-entry-tab-stop" />
<ref name="text-index-entry-link-start" />
<ref name="text-index-entry-link-end" />
</choice>
</define>
- <define name="text-table-of-content-entry-template-attlist"
combine="interleave">
- <attribute name="text:outline-level">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="text-table-of-content-entry-template-attlist"
combine="interleave">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-illustration-index">
- <element name="text:illustration-index">
<ref name="sectionAttr" />
<ref name="text-illustration-index-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-illustration-index-source">
- <element name="text:illustration-index-source">
<ref name="text-illustration-index-source-attrs" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <optional>
<ref name="text-illustration-index-entry-template" />
</optional>
</element>
</define>
- <define name="text-illustration-index-source-attrs" combine="interleave">
<ref name="text-index-scope-attr" />
</define>
- <define name="text-index-scope-attr">
- <optional>
- <attribute name="text:index-scope" a:defaultValue="document">
- <choice>
<value>document</value>
<value>chapter</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-illustration-index-source-attrs" combine="interleave">
<ref name="text-relative-tab-stop-position-attr" />
</define>
- <define name="text-relative-tab-stop-position-attr">
- <optional>
- <attribute name="text:relative-tab-stop-position" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-illustration-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-caption" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-illustration-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:caption-sequence-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-illustration-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:caption-sequence-format">
- <choice>
<value>text</value>
<value>category-and-value</value>
<value>caption</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-illustration-index-entry-template">
- <element name="text:illustration-index-entry-template">
<ref name="text-illustration-index-entry-content" />
</element>
</define>
- <define name="text-illustration-index-entry-content">
<ref name="text-illustration-index-entry-template-attrs" />
- <zeroOrMore>
- <choice>
<ref name="text-index-entry-page-number" />
<ref name="text-index-entry-text" />
<ref name="text-index-entry-span" />
<ref name="text-index-entry-tab-stop" />
</choice>
</zeroOrMore>
</define>
- <define name="text-illustration-index-entry-template-attrs">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-table-index">
- <element name="text:table-index">
<ref name="sectionAttr" />
<ref name="text-table-index-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-table-index-source">
- <element name="text:table-index-source">
<ref name="text-illustration-index-source-attrs" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <optional>
<ref name="text-table-index-entry-template" />
</optional>
</element>
</define>
- <define name="text-table-index-entry-template">
- <element name="text:table-index-entry-template">
<ref name="text-illustration-index-entry-content" />
</element>
</define>
- <define name="text-object-index">
- <element name="text:object-index">
<ref name="sectionAttr" />
<ref name="text-object-index-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-object-index-source">
- <element name="text:object-index-source">
<ref name="text-object-index-source-attrs" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <optional>
<ref name="text-object-index-entry-template" />
</optional>
</element>
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
<ref name="text-index-scope-attr" />
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
<ref name="text-relative-tab-stop-position-attr" />
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-spreadsheet-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-math-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-draw-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-chart-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-object-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-other-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-object-index-entry-template">
- <element name="text:object-index-entry-template">
<ref name="text-illustration-index-entry-content" />
</element>
</define>
- <define name="text-user-index">
- <element name="text:user-index">
<ref name="sectionAttr" />
<ref name="text-user-index-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-user-index-source">
- <element name="text:user-index-source">
<ref name="text-user-index-source-attr" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <zeroOrMore>
<ref name="text-user-index-entry-template" />
</zeroOrMore>
- <zeroOrMore>
<ref name="text-index-source-styles" />
</zeroOrMore>
</element>
</define>
- <define name="text-user-index-source-attr" combine="interleave">
<ref name="text-index-scope-attr" />
<ref name="text-relative-tab-stop-position-attr" />
- <attribute name="text:index-name">
<ref name="string" />
</attribute>
</define>
- <define name="text-user-index-source-attr" combine="interleave">
- <optional>
- <attribute name="text:use-index-marks" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:use-graphics" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:use-tables" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:use-floating-frames" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:use-objects" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-user-index-source-attr" combine="interleave">
- <optional>
- <attribute name="text:copy-outline-levels" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-user-index-entry-template">
- <element name="text:user-index-entry-template">
<ref name="text-user-index-entry-template-attrs" />
- <zeroOrMore>
- <choice>
<ref name="text-index-entry-chapter" />
<ref name="text-index-entry-page-number" />
<ref name="text-index-entry-text" />
<ref name="text-index-entry-span" />
<ref name="text-index-entry-tab-stop" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="text-user-index-entry-template-attrs" combine="interleave">
- <attribute name="text:outline-level">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="text-user-index-entry-template-attrs" combine="interleave">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-alphabetical-index">
- <element name="text:alphabetical-index">
<ref name="sectionAttr" />
<ref name="text-alphabetical-index-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-alphabetical-index-source">
- <element name="text:alphabetical-index-source">
<ref name="text-alphabetical-index-source-attrs" />
- <optional>
<ref name="text-index-title-template" />
</optional>
- <zeroOrMore>
<ref name="text-alphabetical-index-entry-template" />
</zeroOrMore>
</element>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
<ref name="text-index-scope-attr" />
<ref name="text-relative-tab-stop-position-attr" />
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:ignore-case" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:main-entry-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:alphabetical-separators" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:combine-entries" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:combine-entries-with-dash" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:combine-entries-with-pp" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:use-keys-as-entries" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:capitalize-entries" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:comma-separated" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="fo:language">
<ref name="languageCode" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="fo:country">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-source-attrs" combine="interleave">
- <optional>
- <attribute name="text:sort-algorithm">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-alphabetical-index-auto-mark-file">
- <element name="text:alphabetical-index-auto-mark-file">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
</element>
</define>
- <define name="text-alphabetical-index-entry-template">
- <element name="text:alphabetical-index-entry-template">
<ref name="text-alphabetical-index-entry-template-attrs" />
- <zeroOrMore>
- <choice>
<ref name="text-index-entry-chapter" />
<ref name="text-index-entry-page-number" />
<ref name="text-index-entry-text" />
<ref name="text-index-entry-span" />
<ref name="text-index-entry-tab-stop" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="text-alphabetical-index-entry-template-attrs"
combine="interleave">
- <attribute name="text:outline-level">
- <choice>
<value>1</value>
<value>2</value>
<value>3</value>
<value>separator</value>
</choice>
</attribute>
</define>
- <define name="text-alphabetical-index-entry-template-attrs"
combine="interleave">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-bibliography">
- <element name="text:bibliography">
<ref name="sectionAttr" />
<ref name="text-bibliography-source" />
<ref name="text-index-body" />
</element>
</define>
- <define name="text-bibliography-source">
- <element name="text:bibliography-source">
- <optional>
<ref name="text-index-title-template" />
</optional>
- <zeroOrMore>
<ref name="text-bibliography-entry-template" />
</zeroOrMore>
</element>
</define>
- <define name="text-bibliography-entry-template">
- <element name="text:bibliography-entry-template">
<ref name="text-bibliography-entry-template-attrs" />
- <zeroOrMore>
- <choice>
<ref name="text-index-entry-span" />
<ref name="text-index-entry-tab-stop" />
<ref name="text-index-entry-bibliography" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="text-bibliography-entry-template-attrs" combine="interleave">
- <attribute name="text:bibliography-type">
<ref name="text-bibliography-types" />
</attribute>
</define>
- <define name="text-bibliography-entry-template-attrs" combine="interleave">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="text-index-source-styles">
- <element name="text:index-source-styles">
- <attribute name="text:outline-level">
<ref name="positiveInteger" />
</attribute>
- <zeroOrMore>
<ref name="text-index-source-style" />
</zeroOrMore>
</element>
</define>
- <define name="text-index-source-style">
- <element name="text:index-source-style">
- <attribute name="text:style-name">
<ref name="styleName" />
</attribute>
<empty />
</element>
</define>
- <define name="text-index-title-template">
- <element name="text:index-title-template">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
<text />
</element>
</define>
- <define name="text-index-entry-chapter">
- <element name="text:index-entry-chapter">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
<ref name="text-index-entry-chapter-attrs" />
</element>
</define>
- <define name="text-index-entry-chapter-attrs">
- <optional>
- <attribute name="text:display" a:defaultValue="number">
- <choice>
<value>name</value>
<value>number</value>
<value>number-and-name</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-index-entry-text">
- <element name="text:index-entry-text">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</element>
</define>
- <define name="text-index-entry-page-number">
- <element name="text:index-entry-page-number">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</element>
</define>
- <define name="text-index-entry-span">
- <element name="text:index-entry-span">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
<text />
</element>
</define>
- <define name="text-index-entry-bibliography">
- <element name="text:index-entry-bibliography">
<ref name="text-index-entry-bibliography-attrs" />
</element>
</define>
- <define name="text-index-entry-bibliography-attrs" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-index-entry-bibliography-attrs" combine="interleave">
- <attribute name="text:bibliography-data-field">
- <choice>
<value>address</value>
<value>annote</value>
<value>author</value>
<value>bibliography-type</value>
<value>booktitle</value>
<value>chapter</value>
<value>custom1</value>
<value>custom2</value>
<value>custom3</value>
<value>custom4</value>
<value>custom5</value>
<value>edition</value>
<value>editor</value>
<value>howpublished</value>
<value>identifier</value>
<value>institution</value>
<value>isbn</value>
<value>issn</value>
<value>journal</value>
<value>month</value>
<value>note</value>
<value>number</value>
<value>organizations</value>
<value>pages</value>
<value>publisher</value>
<value>report-type</value>
<value>school</value>
<value>series</value>
<value>title</value>
<value>url</value>
<value>volume</value>
<value>year</value>
</choice>
</attribute>
</define>
- <define name="text-index-entry-tab-stop">
- <element name="text:index-entry-tab-stop">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
<ref name="text-index-entry-tab-stop-attrs" />
</element>
</define>
- <define name="text-index-entry-tab-stop-attrs" combine="interleave">
- <optional>
- <attribute name="style:leader-char">
<ref name="character" />
</attribute>
</optional>
</define>
- <define name="text-index-entry-tab-stop-attrs" combine="interleave">
- <choice>
- <attribute name="style:type">
<value>right</value>
</attribute>
- <group>
- <attribute name="style:type">
<value>left</value>
</attribute>
- <attribute name="style:position">
<ref name="length" />
</attribute>
</group>
</choice>
</define>
- <define name="text-index-entry-link-start">
- <element name="text:index-entry-link-start">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</element>
</define>
- <define name="text-index-entry-link-end">
- <element name="text:index-entry-link-end">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</element>
</define>
- <define name="table-table">
- <element name="table:table">
<ref name="table-table-attlist" />
- <optional>
<ref name="table-table-source" />
</optional>
- <optional>
<ref name="office-dde-source" />
</optional>
- <optional>
<ref name="table-scenario" />
</optional>
- <optional>
<ref name="office-forms" />
</optional>
- <optional>
<ref name="table-shapes" />
</optional>
<ref name="table-columns-and-groups" />
<ref name="table-rows-and-groups" />
</element>
</define>
- <define name="table-columns-and-groups">
- <oneOrMore>
- <choice>
<ref name="table-table-column-group" />
<ref name="table-columns-no-group" />
</choice>
</oneOrMore>
</define>
- <define name="table-columns-no-group">
- <choice>
- <group>
<ref name="table-columns" />
- <optional>
<ref name="table-table-header-columns" />
- <optional>
<ref name="table-columns" />
</optional>
</optional>
</group>
- <group>
<ref name="table-table-header-columns" />
- <optional>
<ref name="table-columns" />
</optional>
</group>
</choice>
</define>
- <define name="table-columns">
- <choice>
<ref name="table-table-columns" />
- <oneOrMore>
<ref name="table-table-column" />
</oneOrMore>
</choice>
</define>
- <define name="table-rows-and-groups">
- <oneOrMore>
- <choice>
<ref name="table-table-row-group" />
<ref name="table-rows-no-group" />
</choice>
</oneOrMore>
</define>
- <define name="table-rows-no-group">
- <choice>
- <group>
<ref name="table-rows" />
- <optional>
<ref name="table-table-header-rows" />
- <optional>
<ref name="table-rows" />
</optional>
</optional>
</group>
- <group>
<ref name="table-table-header-rows" />
- <optional>
<ref name="table-rows" />
</optional>
</group>
</choice>
</define>
- <define name="table-rows">
- <choice>
<ref name="table-table-rows" />
- <oneOrMore>
- <optional>
<ref name="text-soft-page-break" />
</optional>
<ref name="table-table-row" />
</oneOrMore>
</choice>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:protected" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="table:protection-key">
<text />
</attribute>
</optional>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:print" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:print-ranges">
<ref name="cellRangeAddressList" />
</attribute>
</optional>
</define>
- <define name="table-table-row">
- <element name="table:table-row">
<ref name="table-table-row-attlist" />
- <oneOrMore>
- <choice>
<ref name="table-table-cell" />
<ref name="table-covered-table-cell" />
</choice>
</oneOrMore>
</element>
</define>
- <define name="table-table-row-attlist" combine="interleave">
- <optional>
- <attribute name="table:number-rows-repeated" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-table-row-attlist" combine="interleave">
- <optional>
- <attribute name="table:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-row-attlist" combine="interleave">
- <optional>
- <attribute name="table:default-cell-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-row-attlist" combine="interleave">
- <optional>
- <attribute name="table:visibility" a:defaultValue="visible">
<ref name="table-visibility-value" />
</attribute>
</optional>
</define>
- <define name="table-visibility-value">
- <choice>
<value>visible</value>
<value>collapse</value>
<value>filter</value>
</choice>
</define>
- <define name="table-table-cell">
- <element name="table:table-cell">
<ref name="table-table-cell-attlist" />
<ref name="table-table-cell-attlist-extra" />
<ref name="table-table-cell-content" />
</element>
</define>
- <define name="table-covered-table-cell">
- <element name="table:covered-table-cell">
<ref name="table-table-cell-attlist" />
<ref name="table-table-cell-content" />
</element>
</define>
- <define name="table-table-cell-content">
- <optional>
<ref name="table-cell-range-source" />
</optional>
- <optional>
<ref name="office-annotation" />
</optional>
- <optional>
<ref name="table-detective" />
</optional>
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:number-columns-repeated" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist-extra" combine="interleave">
- <optional>
- <attribute name="table:number-columns-spanned" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="table:number-rows-spanned" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:content-validation-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:formula">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist-extra" combine="interleave">
- <optional>
- <attribute name="table:number-matrix-columns-spanned">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="table:number-matrix-rows-spanned">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
<ref name="common-value-and-type-attlist" />
</optional>
</define>
- <define name="table-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:protect" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-table-column">
- <element name="table:table-column">
<ref name="table-table-column-attlist" />
<empty />
</element>
</define>
- <define name="table-table-column-attlist" combine="interleave">
- <optional>
- <attribute name="table:number-columns-repeated" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-table-column-attlist" combine="interleave">
- <optional>
- <attribute name="table:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-column-attlist" combine="interleave">
- <optional>
- <attribute name="table:visibility" a:defaultValue="visible">
<ref name="table-visibility-value" />
</attribute>
</optional>
</define>
- <define name="table-table-column-attlist" combine="interleave">
- <optional>
- <attribute name="table:default-cell-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-header-columns">
- <element name="table:table-header-columns">
- <oneOrMore>
<ref name="table-table-column" />
</oneOrMore>
</element>
</define>
- <define name="table-table-columns">
- <element name="table:table-columns">
- <oneOrMore>
<ref name="table-table-column" />
</oneOrMore>
</element>
</define>
- <define name="table-table-column-group">
- <element name="table:table-column-group">
<ref name="table-table-column-group-attlist" />
<ref name="table-columns-and-groups" />
</element>
</define>
- <define name="table-table-column-group-attlist" combine="interleave">
- <optional>
- <attribute name="table:display" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-table-header-rows">
- <element name="table:table-header-rows">
- <oneOrMore>
- <optional>
<ref name="text-soft-page-break" />
</optional>
<ref name="table-table-row" />
</oneOrMore>
</element>
</define>
- <define name="table-table-rows">
- <element name="table:table-rows">
- <oneOrMore>
- <optional>
<ref name="text-soft-page-break" />
</optional>
<ref name="table-table-row" />
</oneOrMore>
</element>
</define>
- <define name="table-table-row-group">
- <element name="table:table-row-group">
<ref name="table-table-row-group-attlist" />
<ref name="table-rows-and-groups" />
</element>
</define>
- <define name="table-table-row-group-attlist" combine="interleave">
- <optional>
- <attribute name="table:display" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:is-sub-table" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="cellAddress">
- <data type="string">
<param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+</param>
</data>
</define>
- <define name="cellRangeAddress">
- <data type="string">
<param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\.
']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?</param>
</data>
</define>
- <define name="cellRangeAddressList">
- <!--
Value is a space separated list of "cellRangeAddress" patterns
-->
<data type="string" />
</define>
- <define name="table-table-source">
- <element name="table:table-source">
<ref name="table-table-source-attlist" />
<ref name="table-linked-source-attlist" />
<empty />
</element>
</define>
- <define name="table-table-source-attlist" combine="interleave">
- <optional>
- <attribute name="table:mode" a:defaultValue="copy-all">
- <choice>
<value>copy-all</value>
<value>copy-results-only</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-table-source-attlist" combine="interleave">
- <optional>
- <attribute name="table:table-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-linked-source-attlist" combine="interleave">
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</define>
- <define name="table-linked-source-attlist" combine="interleave">
- <optional>
- <attribute name="table:filter-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-linked-source-attlist" combine="interleave">
- <optional>
- <attribute name="table:filter-options">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-linked-source-attlist" combine="interleave">
- <optional>
- <attribute name="table:refresh-delay">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="table-scenario">
- <element name="table:scenario">
<ref name="table-scenario-attlist" />
<empty />
</element>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <attribute name="table:scenario-ranges">
<ref name="cellRangeAddressList" />
</attribute>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <attribute name="table:is-active">
<ref name="boolean" />
</attribute>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:display-border" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:border-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:copy-back" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:copy-styles" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:copy-formulas" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:comment">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-scenario-attlist" combine="interleave">
- <optional>
- <attribute name="table:protected">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-shapes">
- <element name="table:shapes">
- <oneOrMore>
<ref name="shape" />
</oneOrMore>
</element>
</define>
- <define name="table-cell-range-source">
- <element name="table:cell-range-source">
<ref name="table-table-cell-range-source-attlist" />
<ref name="table-linked-source-attlist" />
<empty />
</element>
</define>
- <define name="table-table-cell-range-source-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-table-cell-range-source-attlist" combine="interleave">
- <attribute name="table:last-column-spanned">
<ref name="positiveInteger" />
</attribute>
- <attribute name="table:last-row-spanned">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="table-detective">
- <element name="table:detective">
- <zeroOrMore>
<ref name="table-highlighted-range" />
</zeroOrMore>
- <zeroOrMore>
<ref name="table-operation" />
</zeroOrMore>
</element>
</define>
- <define name="table-operation">
- <element name="table:operation">
<ref name="table-operation-attlist" />
<empty />
</element>
</define>
- <define name="table-operation-attlist" combine="interleave">
- <attribute name="table:name">
- <choice>
<value>trace-dependents</value>
<value>remove-dependents</value>
<value>trace-precedents</value>
<value>remove-precedents</value>
<value>trace-errors</value>
</choice>
</attribute>
</define>
- <define name="table-operation-attlist" combine="interleave">
- <attribute name="table:index">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-highlighted-range">
- <element name="table:highlighted-range">
- <choice>
- <group>
<ref name="table-highlighted-range-attlist" />
</group>
- <group>
<ref name="table-highlighted-range-attlist-invalid" />
</group>
</choice>
<empty />
</element>
</define>
- <define name="table-highlighted-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="table-highlighted-range-attlist" combine="interleave">
- <attribute name="table:direction">
- <choice>
<value>from-another-table</value>
<value>to-another-table</value>
<value>from-same-table</value>
</choice>
</attribute>
</define>
- <define name="table-highlighted-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:contains-error" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-highlighted-range-attlist-invalid" combine="interleave">
- <attribute name="table:marked-invalid">
<ref name="boolean" />
</attribute>
</define>
- <define name="office-spreadsheet-attlist" combine="interleave">
- <optional>
- <attribute name="table:structure-protected" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="table:protection-key">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-calculation-settings">
- <element name="table:calculation-settings">
<ref name="table-calculation-setting-attlist" />
- <optional>
<ref name="table-null-date" />
</optional>
- <optional>
<ref name="table-iteration" />
</optional>
</element>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:case-sensitive" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:precision-as-shown" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:search-criteria-must-apply-to-whole-cell"
a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:automatic-find-labels" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:use-regular-expressions" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-calculation-setting-attlist" combine="interleave">
- <optional>
- <attribute name="table:null-year" a:defaultValue="1930">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-null-date">
- <element name="table:null-date">
- <optional>
- <attribute name="table:value-type" a:defaultValue="date">
<ref name="valueType" />
</attribute>
</optional>
- <optional>
- <attribute name="table:date-value" a:defaultValue="1899-12-30">
<ref name="date" />
</attribute>
</optional>
<empty />
</element>
</define>
- <define name="table-iteration">
- <element name="table:iteration">
- <optional>
- <attribute name="table:status" a:defaultValue="disable">
- <choice>
<value>enable</value>
<value>disable</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="table:steps" a:defaultValue="100">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="table:maximum-difference" a:defaultValue="0.001">
<ref name="double" />
</attribute>
</optional>
<empty />
</element>
</define>
- <define name="table-content-validations">
- <element name="table:content-validations">
- <oneOrMore>
<ref name="table-content-validation" />
</oneOrMore>
</element>
</define>
- <define name="table-content-validation">
- <element name="table:content-validation">
<ref name="table-validation-attlist" />
- <optional>
<ref name="table-help-message" />
</optional>
- <optional>
- <choice>
<ref name="table-error-message" />
- <group>
<ref name="table-error-macro" />
- <optional>
<ref name="office-event-listeners" />
</optional>
</group>
</choice>
</optional>
</element>
</define>
- <define name="table-validation-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-validation-attlist" combine="interleave">
- <optional>
- <attribute name="table:condition">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-validation-attlist" combine="interleave">
- <optional>
- <attribute name="table:base-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="table-validation-attlist" combine="interleave">
- <optional>
- <attribute name="table:allow-empty-cell" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-validation-attlist" combine="interleave">
- <optional>
- <attribute name="table:display-list" a:defaultValue="unsorted">
- <choice>
<value>none</value>
<value>unsorted</value>
<value>sort-ascending</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-help-message">
- <element name="table:help-message">
- <optional>
- <attribute name="table:title">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="table:display" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</element>
</define>
- <define name="table-error-message">
- <element name="table:error-message">
- <optional>
- <attribute name="table:title">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="table:display" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="table:message-type" a:defaultValue="stop">
- <choice>
<value>stop</value>
<value>warning</value>
<value>information</value>
</choice>
</attribute>
</optional>
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</element>
</define>
- <define name="table-error-macro">
- <element name="table:error-macro">
- <optional>
- <attribute name="table:execute" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</element>
</define>
- <define name="table-label-ranges">
- <element name="table:label-ranges">
- <zeroOrMore>
<ref name="table-label-range" />
</zeroOrMore>
</element>
</define>
- <define name="table-label-range">
- <element name="table:label-range">
<ref name="table-label-range-attlist" />
<empty />
</element>
</define>
- <define name="table-label-range-attlist" combine="interleave">
- <attribute name="table:label-cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</define>
- <define name="table-label-range-attlist" combine="interleave">
- <attribute name="table:data-cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</define>
- <define name="table-label-range-attlist" combine="interleave">
- <attribute name="table:orientation">
- <choice>
<value>column</value>
<value>row</value>
</choice>
</attribute>
</define>
- <define name="table-named-expressions">
- <element name="table:named-expressions">
- <zeroOrMore>
- <choice>
<ref name="table-named-range" />
<ref name="table-named-expression" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="table-named-range">
- <element name="table:named-range">
<ref name="table-named-range-attlist" />
<empty />
</element>
</define>
- <define name="table-named-range-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
- <optional>
- <attribute name="table:base-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
- <optional>
- <attribute name="table:range-usable-as" a:defaultValue="none">
- <choice>
<value>none</value>
- <list>
- <oneOrMore>
- <choice>
<value>print-range</value>
<value>filter</value>
<value>repeat-row</value>
<value>repeat-column</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="table-named-expression">
- <element name="table:named-expression">
<ref name="table-named-expression-attlist" />
<empty />
</element>
</define>
- <define name="table-named-expression-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
- <attribute name="table:expression">
<ref name="string" />
</attribute>
- <optional>
- <attribute name="table:base-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="table-database-ranges">
- <element name="table:database-ranges">
- <zeroOrMore>
<ref name="table-database-range" />
</zeroOrMore>
</element>
</define>
- <define name="table-database-range">
- <element name="table:database-range">
<ref name="table-database-range-attlist" />
- <optional>
- <choice>
<ref name="table-database-source-sql" />
<ref name="table-database-source-table" />
<ref name="table-database-source-query" />
</choice>
</optional>
- <optional>
<ref name="table-filter" />
</optional>
- <optional>
<ref name="table-sort" />
</optional>
- <optional>
<ref name="table-subtotal-rules" />
</optional>
</element>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:is-selection" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:on-update-keep-styles" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:on-update-keep-size" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:has-persistent-data" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:orientation" a:defaultValue="row">
- <choice>
<value>column</value>
<value>row</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:contains-header" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:display-filter-buttons" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <attribute name="table:target-range-address">
<ref name="cellRangeAddress" />
</attribute>
</define>
- <define name="table-database-range-attlist" combine="interleave">
- <optional>
- <attribute name="table:refresh-delay">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-source-sql">
- <element name="table:database-source-sql">
<ref name="table-database-source-sql-attlist" />
<empty />
</element>
</define>
- <define name="table-database-source-sql-attlist" combine="interleave">
- <attribute name="table:database-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-database-source-sql-attlist" combine="interleave">
- <attribute name="table:sql-statement">
<ref name="string" />
</attribute>
</define>
- <define name="table-database-source-sql-attlist" combine="interleave">
- <optional>
- <attribute name="table:parse-sql-statement" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-database-source-query">
- <element name="table:database-source-table">
<ref name="table-database-source-table-attlist" />
<empty />
</element>
</define>
- <define name="table-database-source-table-attlist" combine="interleave">
- <attribute name="table:database-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-database-source-table-attlist" combine="interleave">
- <attribute name="table:database-table-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-database-source-table">
- <element name="table:database-source-query">
<ref name="table-database-source-query-attlist" />
<empty />
</element>
</define>
- <define name="table-database-source-query-attlist" combine="interleave">
- <attribute name="table:database-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-database-source-query-attlist" combine="interleave">
- <attribute name="table:query-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-sort">
- <element name="table:sort">
<ref name="table-sort-attlist" />
- <oneOrMore>
<ref name="table-sort-by" />
</oneOrMore>
</element>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:bind-styles-to-content" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:target-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:language">
<ref name="languageCode" />
</attribute>
</optional>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:country">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="table-sort-attlist" combine="interleave">
- <optional>
- <attribute name="table:algorithm">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-sort-by">
- <element name="table:sort-by">
<ref name="table-sort-by-attlist" />
<empty />
</element>
</define>
- <define name="table-sort-by-attlist" combine="interleave">
- <attribute name="table:field-number">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-sort-by-attlist" combine="interleave">
- <optional>
- <attribute name="table:data-type" a:defaultValue="automatic">
- <choice>
<value>text</value>
<value>number</value>
<value>automatic</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="table-sort-by-attlist" combine="interleave">
- <optional>
- <attribute name="table:order" a:defaultValue="ascending">
- <choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-subtotal-rules">
- <element name="table:subtotal-rules">
<ref name="table-subtotal-rules-attlist" />
- <optional>
<ref name="table-sort-groups" />
</optional>
- <zeroOrMore>
<ref name="table-subtotal-rule" />
</zeroOrMore>
</element>
</define>
- <define name="table-subtotal-rules-attlist" combine="interleave">
- <optional>
- <attribute name="table:bind-styles-to-content" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-subtotal-rules-attlist" combine="interleave">
- <optional>
- <attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-subtotal-rules-attlist" combine="interleave">
- <optional>
- <attribute name="table:page-breaks-on-group-change"
a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-sort-groups">
- <element name="table:sort-groups">
<ref name="table-sort-groups-attlist" />
<empty />
</element>
</define>
- <define name="table-sort-groups-attlist" combine="interleave">
- <optional>
- <attribute name="table:data-type" a:defaultValue="automatic">
- <choice>
<value>text</value>
<value>number</value>
<value>automatic</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="table-sort-groups-attlist" combine="interleave">
- <optional>
- <attribute name="table:order" a:defaultValue="ascending">
- <choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-subtotal-rule">
- <element name="table:subtotal-rule">
<ref name="table-subtotal-rule-attlist" />
- <zeroOrMore>
<ref name="table-subtotal-field" />
</zeroOrMore>
</element>
</define>
- <define name="table-subtotal-rule-attlist" combine="interleave">
- <attribute name="table:group-by-field-number">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-subtotal-field">
- <element name="table:subtotal-field">
<ref name="table-subtotal-field-attlist" />
<empty />
</element>
</define>
- <define name="table-subtotal-field-attlist" combine="interleave">
- <attribute name="table:field-number">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-subtotal-field-attlist" combine="interleave">
- <attribute name="table:function">
- <choice>
<value>auto</value>
<value>average</value>
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
<value>varp</value>
<ref name="string" />
</choice>
</attribute>
</define>
- <define name="table-filter">
- <element name="table:filter">
<ref name="table-filter-attlist" />
- <choice>
<ref name="table-filter-condition" />
<ref name="table-filter-and" />
<ref name="table-filter-or" />
</choice>
</element>
</define>
- <define name="table-filter-attlist" combine="interleave">
- <optional>
- <attribute name="table:target-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="table-filter-attlist" combine="interleave">
- <optional>
- <attribute name="table:condition-source" a:defaultValue="self">
- <choice>
<value>self</value>
<value>cell-range</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-filter-attlist" combine="interleave">
- <optional>
- <attribute name="table:condition-source-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="table-filter-attlist" combine="interleave">
- <optional>
- <attribute name="table:display-duplicates" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-filter-and">
- <element name="table:filter-and">
- <oneOrMore>
- <choice>
<ref name="table-filter-or" />
<ref name="table-filter-condition" />
</choice>
</oneOrMore>
</element>
</define>
- <define name="table-filter-or">
- <element name="table:filter-or">
- <oneOrMore>
- <choice>
<ref name="table-filter-and" />
<ref name="table-filter-condition" />
</choice>
</oneOrMore>
</element>
</define>
- <define name="table-filter-condition">
- <element name="table:filter-condition">
<ref name="table-filter-condition-attlist" />
<empty />
</element>
</define>
- <define name="table-filter-condition-attlist" combine="interleave">
- <attribute name="table:field-number">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-filter-condition-attlist" combine="interleave">
- <attribute name="table:value">
<ref name="string" />
</attribute>
</define>
- <define name="table-filter-condition-attlist" combine="interleave">
- <attribute name="table:operator">
<ref name="string" />
</attribute>
</define>
- <define name="table-filter-condition-attlist" combine="interleave">
- <optional>
- <attribute name="table:case-sensitive" a:defaultValue="false">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-filter-condition-attlist" combine="interleave">
- <optional>
- <attribute name="table:data-type" a:defaultValue="text">
- <choice>
<value>text</value>
<value>number</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-data-pilot-tables">
- <element name="table:data-pilot-tables">
- <zeroOrMore>
<ref name="table-data-pilot-table" />
</zeroOrMore>
</element>
</define>
- <define name="table-data-pilot-table">
- <element name="table:data-pilot-table">
<ref name="table-data-pilot-table-attlist" />
- <optional>
- <choice>
<ref name="table-database-source-sql" />
<ref name="table-database-source-table" />
<ref name="table-database-source-query" />
<ref name="table-source-service" />
<ref name="table-source-cell-range" />
</choice>
</optional>
- <oneOrMore>
<ref name="table-data-pilot-field" />
</oneOrMore>
</element>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:application-data">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:grand-total" a:defaultValue="both">
- <choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:ignore-empty-rows" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:identify-categories" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <attribute name="table:target-range-address">
<ref name="cellRangeAddress" />
</attribute>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:buttons">
<ref name="cellRangeAddressList" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:show-filter-button" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-table-attlist" combine="interleave">
- <optional>
- <attribute name="table:drill-down-on-double-click" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-source-cell-range">
- <element name="table:source-cell-range">
<ref name="table-source-cell-range-attlist" />
- <optional>
<ref name="table-filter" />
</optional>
</element>
</define>
- <define name="table-source-cell-range-attlist" combine="interleave">
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</define>
- <define name="table-source-service">
- <element name="table:source-service">
<ref name="table-source-service-attlist" />
<empty />
</element>
</define>
- <define name="table-source-service-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-source-service-attlist" combine="interleave">
- <attribute name="table:source-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-source-service-attlist" combine="interleave">
- <attribute name="table:object-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-source-service-attlist" combine="interleave">
- <optional>
- <attribute name="table:user-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-source-service-attlist" combine="interleave">
- <optional>
- <attribute name="table:password">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-field">
- <element name="table:data-pilot-field">
<ref name="table-data-pilot-field-attlist" />
- <optional>
<ref name="table-data-pilot-level" />
</optional>
- <optional>
<ref name="table-data-pilot-field-reference" />
</optional>
- <optional>
<ref name="table-data-pilot-groups" />
</optional>
</element>
</define>
- <define name="table-data-pilot-field-attlist" combine="interleave">
- <attribute name="table:source-field-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-field-attlist" combine="interleave">
- <choice>
- <attribute name="table:orientation">
- <choice>
<value>row</value>
<value>column</value>
<value>data</value>
<value>hidden</value>
</choice>
</attribute>
- <group>
- <attribute name="table:orientation">
<value>page</value>
</attribute>
- <attribute name="table:selected-page">
<ref name="string" />
</attribute>
</group>
</choice>
</define>
- <define name="table-data-pilot-field-attlist" combine="interleave">
- <optional>
- <attribute name="table:is-data-layout-field" a:defaultValue="false">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-field-attlist" combine="interleave">
- <optional>
- <attribute name="table:function">
- <choice>
<value>auto</value>
<value>average</value>
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
<value>varp</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="table-data-pilot-field-attlist" combine="interleave">
- <optional>
- <attribute name="table:used-hierarchy" a:defaultValue="-1">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-level">
- <element name="table:data-pilot-level">
<ref name="table-data-pilot-level-attlist" />
- <optional>
<ref name="table-data-pilot-subtotals" />
</optional>
- <optional>
<ref name="table-data-pilot-members" />
</optional>
- <optional>
<ref name="table-data-pilot-display-info" />
</optional>
- <optional>
<ref name="table-data-pilot-sort-info" />
</optional>
- <optional>
<ref name="table-data-pilot-layout-info" />
</optional>
</element>
</define>
- <define name="table-data-pilot-level-attlist" combine="interleave">
- <optional>
- <attribute name="table:show-empty">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-subtotals">
- <element name="table:data-pilot-subtotals">
- <zeroOrMore>
<ref name="table-data-pilot-subtotal" />
</zeroOrMore>
</element>
</define>
- <define name="table-data-pilot-subtotal">
- <element name="table:data-pilot-subtotal">
<ref name="table-data-pilot-subtotal-attlist" />
<empty />
</element>
</define>
- <define name="table-data-pilot-subtotal-attlist" combine="interleave">
- <attribute name="table:function">
- <choice>
<value>auto</value>
<value>average</value>
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
<value>varp</value>
<ref name="string" />
</choice>
</attribute>
</define>
- <define name="table-data-pilot-members">
- <element name="table:data-pilot-members">
- <zeroOrMore>
<ref name="table-data-pilot-member" />
</zeroOrMore>
</element>
</define>
- <define name="table-data-pilot-member">
- <element name="table:data-pilot-member">
<ref name="table-data-pilot-member-attlist" />
<empty />
</element>
</define>
- <define name="table-data-pilot-member-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-member-attlist" combine="interleave">
- <optional>
- <attribute name="table:display">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-member-attlist" combine="interleave">
- <optional>
- <attribute name="table:show-details">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-data-pilot-display-info">
- <element name="table:data-pilot-display-info">
<ref name="table-data-pilot-display-info-attlist" />
<empty />
</element>
</define>
- <define name="table-data-pilot-display-info-attlist" combine="interleave">
- <attribute name="table:enabled">
<ref name="boolean" />
</attribute>
</define>
- <define name="table-data-pilot-display-info-attlist" combine="interleave">
- <attribute name="table:data-field">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-display-info-attlist" combine="interleave">
- <attribute name="table:member-count">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="table-data-pilot-display-info-attlist" combine="interleave">
- <attribute name="table:display-member-mode">
- <choice>
<value>from-top</value>
<value>from-bottom</value>
</choice>
</attribute>
</define>
- <define name="table-data-pilot-sort-info">
- <element name="table:data-pilot-sort-info">
<ref name="table-data-pilot-sort-info-attlist" />
<empty />
</element>
</define>
- <define name="table-data-pilot-sort-info-attlist" combine="interleave">
- <choice>
- <group>
- <attribute name="table:sort-mode">
<value>data</value>
</attribute>
- <attribute name="table:data-field">
<ref name="string" />
</attribute>
</group>
- <attribute name="table:sort-mode">
- <choice>
<value>none</value>
<value>manual</value>
<value>name</value>
</choice>
</attribute>
</choice>
</define>
- <define name="table-data-pilot-sort-info-attlist" combine="interleave">
- <attribute name="table:order">
- <choice>
<value>ascending</value>
<value>descending</value>
</choice>
</attribute>
</define>
- <define name="table-data-pilot-layout-info">
- <element name="table:data-pilot-layout-info">
<ref name="table-data-pilot-layout-info-attlist" />
<empty />
</element>
</define>
- <define name="table-data-pilot-layout-info-attlist" combine="interleave">
- <attribute name="table:layout-mode">
- <choice>
<value>tabular-layout</value>
<value>outline-subtotals-top</value>
<value>outline-subtotals-bottom</value>
</choice>
</attribute>
</define>
- <define name="table-data-pilot-layout-info-attlist" combine="interleave">
- <attribute name="table:add-empty-lines">
<ref name="boolean" />
</attribute>
</define>
- <define name="table-data-pilot-field-reference">
- <element name="table:data-pilot-field-reference">
<ref name="table-data-pilot-field-reference-attlist" />
</element>
</define>
- <define name="table-data-pilot-field-reference-attlist" combine="interleave">
- <attribute name="table:field-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-field-reference-attlist" combine="interleave">
- <choice>
- <group>
- <attribute name="table:member-type">
<value>named</value>
</attribute>
- <attribute name="table:member-name">
<ref name="string" />
</attribute>
</group>
- <attribute name="table:member-type">
- <choice>
<value>previous</value>
<value>next</value>
</choice>
</attribute>
</choice>
</define>
- <define name="table-data-pilot-field-reference-attlist" combine="interleave">
- <attribute name="table:type">
- <choice>
<value>none</value>
<value>member-difference</value>
<value>member-percentage</value>
<value>member-percentage-difference</value>
<value>running-total</value>
<value>row-percentage</value>
<value>column-percentage</value>
<value>total-percentage</value>
<value>index</value>
</choice>
</attribute>
</define>
- <define name="table-data-pilot-groups">
- <element name="table:data-pilot-groups">
<ref name="table-data-pilot-groups-attlist" />
- <oneOrMore>
<ref name="table-data-pilot-group" />
</oneOrMore>
</element>
</define>
- <define name="table-data-pilot-groups-attlist" combine="interleave">
- <attribute name="table:source-field-name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-groups-attlist" combine="interleave">
- <choice>
- <attribute name="table:date-start">
- <choice>
<ref name="dateOrDateTime" />
<value>auto</value>
</choice>
</attribute>
- <attribute name="table:start">
- <choice>
<ref name="double" />
<value>auto</value>
</choice>
</attribute>
</choice>
</define>
- <define name="table-data-pilot-groups-attlist" combine="interleave">
- <choice>
- <attribute name="table:date-end">
- <choice>
<ref name="dateOrDateTime" />
<value>auto</value>
</choice>
</attribute>
- <attribute name="table:end">
- <choice>
<ref name="double" />
<value>auto</value>
</choice>
</attribute>
</choice>
</define>
- <define name="table-data-pilot-groups-attlist" combine="interleave">
- <attribute name="table:step">
<ref name="double" />
</attribute>
</define>
- <define name="table-data-pilot-groups-attlist" combine="interleave">
- <attribute name="table:grouped-by">
- <choice>
<value>seconds</value>
<value>minutes</value>
<value>hours</value>
<value>days</value>
<value>months</value>
<value>quarters</value>
<value>years</value>
</choice>
</attribute>
</define>
- <define name="table-data-pilot-group">
- <element name="table:data-pilot-group">
<ref name="table-data-pilot-group-attlist" />
- <oneOrMore>
<ref name="table-data-pilot-group-member" />
</oneOrMore>
</element>
</define>
- <define name="table-data-pilot-group-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-data-pilot-group-member">
- <element name="table:data-pilot-group-member">
<ref name="table-data-pilot-group-member-attlist" />
</element>
</define>
- <define name="table-data-pilot-group-member-attlist" combine="interleave">
- <attribute name="table:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-consolidation">
- <element name="table:consolidation">
<ref name="table-consolidation-attlist" />
<empty />
</element>
</define>
- <define name="table-consolidation-attlist" combine="interleave">
- <attribute name="table:function">
- <choice>
<value>auto</value>
<value>average</value>
<value>count</value>
<value>countnums</value>
<value>max</value>
<value>min</value>
<value>product</value>
<value>stdev</value>
<value>stdevp</value>
<value>sum</value>
<value>var</value>
<value>varp</value>
<ref name="string" />
</choice>
</attribute>
</define>
- <define name="table-consolidation-attlist" combine="interleave">
- <attribute name="table:source-cell-range-addresses">
<ref name="cellRangeAddressList" />
</attribute>
</define>
- <define name="table-consolidation-attlist" combine="interleave">
- <attribute name="table:target-cell-address">
<ref name="cellAddress" />
</attribute>
</define>
- <define name="table-consolidation-attlist" combine="interleave">
- <optional>
- <attribute name="table:use-labels" a:defaultValue="none">
- <choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
- <define name="table-consolidation-attlist" combine="interleave">
- <optional>
- <attribute name="table:link-to-source-data" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-dde-links">
- <element name="table:dde-links">
- <oneOrMore>
<ref name="table-dde-link" />
</oneOrMore>
</element>
</define>
- <define name="table-tracked-changes">
- <element name="table:tracked-changes">
<ref name="table-tracked-changes-attlist" />
- <zeroOrMore>
- <choice>
<ref name="table-cell-content-change" />
<ref name="table-insertion" />
<ref name="table-deletion" />
<ref name="table-movement" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="table-tracked-changes-attlist" combine="interleave">
- <optional>
- <attribute name="table:track-changes" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-insertion">
- <element name="table:insertion">
<ref name="table-insertion-attlist" />
<ref name="common-table-change-attlist" />
<ref name="office-change-info" />
- <optional>
<ref name="table-dependencies" />
</optional>
- <optional>
<ref name="table-deletions" />
</optional>
</element>
</define>
- <define name="table-insertion-attlist" combine="interleave">
- <attribute name="table:type">
- <choice>
<value>row</value>
<value>column</value>
<value>table</value>
</choice>
</attribute>
</define>
- <define name="table-insertion-attlist" combine="interleave">
- <attribute name="table:position">
<ref name="integer" />
</attribute>
</define>
- <define name="table-insertion-attlist" combine="interleave">
- <optional>
- <attribute name="table:count" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="table-insertion-attlist" combine="interleave">
- <optional>
- <attribute name="table:table">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="table-dependencies">
- <element name="table:dependencies">
- <oneOrMore>
<ref name="table-dependency" />
</oneOrMore>
</element>
</define>
- <define name="table-dependency">
- <element name="table:dependency">
- <attribute name="table:id">
<ref name="string" />
</attribute>
<empty />
</element>
</define>
- <define name="table-deletions">
- <element name="table:deletions">
- <oneOrMore>
- <choice>
<ref name="table-cell-content-deletion" />
<ref name="table-change-deletion" />
</choice>
</oneOrMore>
</element>
</define>
- <define name="table-cell-content-deletion">
- <element name="table:cell-content-deletion">
- <optional>
- <attribute name="table:id">
<ref name="string" />
</attribute>
</optional>
- <optional>
<ref name="table-cell-address" />
</optional>
- <optional>
<ref name="table-change-track-table-cell" />
</optional>
</element>
</define>
- <define name="table-change-deletion">
- <element name="table:change-deletion">
- <optional>
- <attribute name="table:id">
<ref name="string" />
</attribute>
</optional>
<empty />
</element>
</define>
- <define name="table-deletion">
- <element name="table:deletion">
<ref name="table-deletion-attlist" />
<ref name="common-table-change-attlist" />
<ref name="office-change-info" />
- <optional>
<ref name="table-dependencies" />
</optional>
- <optional>
<ref name="table-deletions" />
</optional>
- <optional>
<ref name="table-cut-offs" />
</optional>
</element>
</define>
- <define name="table-deletion-attlist" combine="interleave">
- <attribute name="table:type">
- <choice>
<value>row</value>
<value>column</value>
<value>table</value>
</choice>
</attribute>
</define>
- <define name="table-deletion-attlist" combine="interleave">
- <attribute name="table:position">
<ref name="integer" />
</attribute>
</define>
- <define name="table-deletion-attlist" combine="interleave">
- <optional>
- <attribute name="table:table">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="table-deletion-attlist" combine="interleave">
- <optional>
- <attribute name="table:multi-deletion-spanned">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="table-cut-offs">
- <element name="table:cut-offs">
- <choice>
- <oneOrMore>
<ref name="table-movement-cut-off" />
</oneOrMore>
- <group>
<ref name="table-insertion-cut-off" />
- <zeroOrMore>
<ref name="table-movement-cut-off" />
</zeroOrMore>
</group>
</choice>
</element>
</define>
- <define name="table-insertion-cut-off">
- <element name="table:insertion-cut-off">
<ref name="table-insertion-cut-off-attlist" />
<empty />
</element>
</define>
- <define name="table-insertion-cut-off-attlist" combine="interleave">
- <attribute name="table:id">
<ref name="string" />
</attribute>
</define>
- <define name="table-insertion-cut-off-attlist" combine="interleave">
- <attribute name="table:position">
<ref name="integer" />
</attribute>
</define>
- <define name="table-movement-cut-off">
- <element name="table:movement-cut-off">
<ref name="table-movement-cut-off-attlist" />
<empty />
</element>
</define>
- <define name="table-movement-cut-off-attlist" combine="interleave">
- <choice>
- <attribute name="table:position">
<ref name="integer" />
</attribute>
- <group>
- <attribute name="table:start-position">
<ref name="integer" />
</attribute>
- <attribute name="table:end-position">
<ref name="integer" />
</attribute>
</group>
</choice>
</define>
- <define name="table-movement">
- <element name="table:movement">
<ref name="common-table-change-attlist" />
<ref name="table-source-range-address" />
<ref name="table-target-range-address" />
<ref name="office-change-info" />
- <optional>
<ref name="table-dependencies" />
</optional>
- <optional>
<ref name="table-deletions" />
</optional>
</element>
</define>
- <define name="table-source-range-address">
- <element name="table:source-range-address">
<ref name="common-table-range-attlist" />
<empty />
</element>
</define>
- <define name="table-target-range-address">
- <element name="table:target-range-address">
<ref name="common-table-range-attlist" />
<empty />
</element>
</define>
- <define name="common-table-range-attlist" combine="interleave">
- <choice>
- <group>
<ref name="common-table-cell-address-attlist" />
</group>
- <group>
<ref name="common-table-cell-range-address-attlist" />
</group>
</choice>
</define>
- <define name="common-table-cell-address-attlist" combine="interleave">
- <attribute name="table:column">
<ref name="integer" />
</attribute>
- <attribute name="table:row">
<ref name="integer" />
</attribute>
- <attribute name="table:table">
<ref name="integer" />
</attribute>
</define>
- <define name="common-table-cell-range-address-attlist"
combine="interleave">
- <attribute name="table:start-column">
<ref name="integer" />
</attribute>
- <attribute name="table:start-row">
<ref name="integer" />
</attribute>
- <attribute name="table:start-table">
<ref name="integer" />
</attribute>
- <attribute name="table:end-column">
<ref name="integer" />
</attribute>
- <attribute name="table:end-row">
<ref name="integer" />
</attribute>
- <attribute name="table:end-table">
<ref name="integer" />
</attribute>
</define>
- <define name="table-change-track-table-cell" combine="interleave">
- <element name="table:change-track-table-cell">
<ref name="table-change-track-table-cell-attlist" />
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</element>
</define>
- <define name="table-change-track-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="table-change-track-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:matrix-covered" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-change-track-table-cell-attlist" combine="interleave">
- <optional>
- <attribute name="table:formula">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="table:number-matrix-columns-spanned">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="table:number-matrix-rows-spanned">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
<ref name="common-value-and-type-attlist" />
</optional>
</define>
- <define name="table-cell-content-change">
- <element name="table:cell-content-change">
<ref name="common-table-change-attlist" />
<ref name="table-cell-address" />
<ref name="office-change-info" />
- <optional>
<ref name="table-dependencies" />
</optional>
- <optional>
<ref name="table-deletions" />
</optional>
<ref name="table-previous" />
</element>
</define>
- <define name="table-cell-address">
- <element name="table:cell-address">
<ref name="common-table-cell-address-attlist" />
<empty />
</element>
</define>
- <define name="table-previous">
- <element name="table:previous">
- <optional>
- <attribute name="table:id">
<ref name="string" />
</attribute>
</optional>
<ref name="table-change-track-table-cell" />
</element>
</define>
- <define name="common-table-change-attlist" combine="interleave">
- <attribute name="table:id">
<ref name="string" />
</attribute>
</define>
- <define name="common-table-change-attlist" combine="interleave">
- <optional>
- <attribute name="table:acceptance-state" a:defaultValue="pending">
- <choice>
<value>accepted</value>
<value>rejected</value>
<value>pending</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-table-change-attlist" combine="interleave">
- <optional>
- <attribute name="table:rejecting-change-id">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-handout-master">
- <element name="style:handout-master">
<ref name="common-presentation-header-footer-attlist" />
<ref name="style-handout-master-attlist" />
- <zeroOrMore>
<ref name="shape" />
</zeroOrMore>
</element>
</define>
- <define name="style-handout-master-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:presentation-page-layout-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-handout-master-attlist" combine="interleave">
- <attribute name="style:page-layout-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="style-handout-master-attlist" combine="interleave">
- <optional>
- <attribute name="draw:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="draw-layer-set">
- <element name="draw:layer-set">
- <zeroOrMore>
<ref name="draw-layer" />
</zeroOrMore>
</element>
</define>
- <define name="draw-layer">
- <element name="draw:layer">
<ref name="draw-layer-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
</element>
</define>
- <define name="draw-layer-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="string" />
</attribute>
</define>
- <define name="draw-layer-attlist" combine="interleave">
- <optional>
- <attribute name="draw:protected" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-layer-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display" a:defaultValue="always">
- <choice>
<value>always</value>
<value>screen</value>
<value>printer</value>
<value>none</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-page">
- <element name="draw:page">
<ref name="common-presentation-header-footer-attlist" />
<ref name="draw-page-attlist" />
- <optional>
<ref name="office-forms" />
</optional>
- <zeroOrMore>
<ref name="shape" />
</zeroOrMore>
- <optional>
- <choice>
<ref name="presentation-animations" />
<ref name="animation-element" />
</choice>
</optional>
- <optional>
<ref name="presentation-notes" />
</optional>
</element>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <optional>
- <attribute name="draw:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <optional>
- <attribute name="draw:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <attribute name="draw:master-page-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:presentation-page-layout-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="common-presentation-header-footer-attlist"
combine="interleave">
- <optional>
- <attribute name="presentation:use-header-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-presentation-header-footer-attlist"
combine="interleave">
- <optional>
- <attribute name="presentation:use-footer-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-presentation-header-footer-attlist"
combine="interleave">
- <optional>
- <attribute name="presentation:use-date-time-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <optional>
- <attribute name="draw:id">
<ref name="ID" />
</attribute>
</optional>
</define>
- <define name="draw-page-attlist" combine="interleave">
- <optional>
- <attribute name="draw:nav-order">
<ref name="IDREFS" />
</attribute>
</optional>
</define>
- <define name="shape">
- <choice>
<ref name="draw-rect" />
<ref name="draw-line" />
<ref name="draw-polyline" />
<ref name="draw-polygon" />
<ref name="draw-regular-polygon" />
<ref name="draw-path" />
<ref name="draw-circle" />
<ref name="draw-ellipse" />
<ref name="draw-g" />
<ref name="draw-page-thumbnail" />
<ref name="draw-frame" />
<ref name="draw-measure" />
<ref name="draw-caption" />
<ref name="draw-connector" />
<ref name="draw-control" />
<ref name="dr3d-scene" />
<ref name="draw-custom-shape" />
</choice>
</define>
- <define name="draw-rect">
- <element name="draw:rect">
<ref name="draw-rect-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-rect-attlist" combine="interleave">
- <optional>
- <attribute name="draw:corner-radius">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="draw-line">
- <element name="draw:line">
<ref name="draw-line-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-line-attlist" combine="interleave">
- <attribute name="svg:x1">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y1">
<ref name="coordinate" />
</attribute>
</define>
- <define name="draw-line-attlist" combine="interleave">
- <attribute name="svg:x2">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y2">
<ref name="coordinate" />
</attribute>
</define>
- <define name="draw-polyline">
- <element name="draw:polyline">
<ref name="common-draw-points-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="common-draw-points-attlist">
- <attribute name="draw:points">
<ref name="points" />
</attribute>
</define>
- <define name="draw-polygon">
- <element name="draw:polygon">
<ref name="common-draw-points-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-regular-polygon">
- <element name="draw:regular-polygon">
<ref name="draw-regular-polygon-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-regular-polygon-attlist" combine="interleave">
- <choice>
- <attribute name="draw:concave">
<value>false</value>
</attribute>
- <group>
- <attribute name="draw:concave">
<value>true</value>
</attribute>
<ref name="draw-regular-polygon-sharpness-attlist" />
</group>
</choice>
</define>
- <define name="draw-regular-polygon-attlist" combine="interleave">
- <attribute name="draw:corners">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="draw-regular-polygon-sharpness-attlist">
- <attribute name="draw:sharpness">
<ref name="percent" />
</attribute>
</define>
- <define name="draw-path">
- <element name="draw:path">
<ref name="common-draw-path-data-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="common-draw-path-data-attlist">
- <attribute name="svg:d">
<ref name="pathData" />
</attribute>
</define>
- <define name="draw-circle">
- <element name="draw:circle">
<ref name="draw-circle-attlist" />
<ref name="common-draw-circle-ellipse-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="common-draw-circle-ellipse-attlist" combine="interleave">
- <optional>
- <attribute name="svg:cx">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:cy">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="draw-circle-attlist" combine="interleave">
- <optional>
- <attribute name="svg:r">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="common-draw-circle-ellipse-attlist" combine="interleave">
- <optional>
- <attribute name="draw:kind" a:defaultValue="full">
- <choice>
<value>full</value>
<value>section</value>
<value>cut</value>
<value>arc</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-draw-circle-ellipse-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-angle">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="common-draw-circle-ellipse-attlist" combine="interleave">
- <optional>
- <attribute name="draw:end-angle">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="draw-ellipse">
- <element name="draw:ellipse">
<ref name="common-draw-circle-ellipse-attlist" />
<ref name="draw-ellipse-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-ellipse-attlist" combine="interleave">
- <optional>
- <attribute name="svg:rx">
<ref name="length" />
</attribute>
- <attribute name="svg:ry">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="draw-connector">
- <element name="draw:connector">
<ref name="draw-connector-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:type" a:defaultValue="standard">
- <choice>
<value>standard</value>
<value>lines</value>
<value>line</value>
<value>curve</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="svg:x1">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y1">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-shape">
<ref name="IDREF" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-glue-point">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="svg:x2">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y2">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:end-shape">
<ref name="IDREF" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:end-glue-point">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="draw-connector-attlist" combine="interleave">
- <optional>
- <attribute name="draw:line-skew">
- <list>
<ref name="length" />
- <optional>
<ref name="length" />
- <optional>
<ref name="length" />
</optional>
</optional>
</list>
</attribute>
</optional>
</define>
- <define name="draw-caption">
- <element name="draw:caption">
<ref name="draw-caption-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-caption-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-point-x">
<ref name="coordinate" />
</attribute>
- <attribute name="draw:caption-point-y">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="draw-caption-attlist" combine="interleave">
- <optional>
- <attribute name="draw:corner-radius">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="draw-measure">
- <element name="draw:measure">
<ref name="draw-measure-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
</element>
</define>
- <define name="draw-measure-attlist" combine="interleave">
- <attribute name="svg:x1">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y1">
<ref name="coordinate" />
</attribute>
</define>
- <define name="draw-measure-attlist" combine="interleave">
- <attribute name="svg:x2">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y2">
<ref name="coordinate" />
</attribute>
</define>
- <define name="draw-control">
- <element name="draw:control">
<ref name="draw-control-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
</element>
</define>
- <define name="draw-control-attlist" combine="interleave">
- <attribute name="draw:control">
<ref name="IDREF" />
</attribute>
</define>
- <define name="draw-page-thumbnail">
- <element name="draw:page-thumbnail">
<ref name="draw-page-thumbnail-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="presentation-shape-attlist" />
<ref name="common-draw-shape-with-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
</element>
</define>
- <define name="draw-page-thumbnail-attlist">
- <optional>
- <attribute name="draw:page-number">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="draw-g">
- <element name="draw:g">
<ref name="draw-g-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-name-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-text-spreadsheet-shape-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
- <zeroOrMore>
<ref name="shape" />
</zeroOrMore>
</element>
</define>
- <define name="draw-g-attlist" combine="interleave">
- <optional>
- <attribute name="svg:y">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="common-draw-name-attlist" combine="interleave">
- <optional>
- <attribute name="draw:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-draw-caption-id-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-id">
<ref name="IDREF" />
</attribute>
</optional>
</define>
- <define name="common-draw-position-attlist">
- <optional>
- <attribute name="svg:x">
<ref name="coordinate" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:y">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="common-draw-size-attlist">
- <optional>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="common-draw-transform-attlist">
- <optional>
- <attribute name="draw:transform">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-draw-viewbox-attlist">
- <attribute name="svg:viewBox">
- <list>
<ref name="integer" />
<ref name="integer" />
<ref name="integer" />
<ref name="integer" />
</list>
</attribute>
</define>
- <define name="common-draw-style-name-attlist">
- <choice>
- <group>
- <optional>
- <attribute name="draw:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:class-names">
<ref name="styleNameRefs" />
</attribute>
</optional>
</group>
- <group>
- <optional>
- <attribute name="presentation:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
- <optional>
- <attribute name="presentation:class-names">
<ref name="styleNameRefs" />
</attribute>
</optional>
</group>
</choice>
</define>
- <define name="common-draw-text-style-name-attlist">
- <optional>
- <attribute name="draw:text-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="common-draw-layer-name-attlist">
- <optional>
- <attribute name="draw:layer">
<data type="string" />
</attribute>
</optional>
</define>
- <define name="common-draw-id-attlist">
- <optional>
- <attribute name="draw:id">
<ref name="ID" />
</attribute>
</optional>
</define>
- <define name="common-draw-z-index-attlist">
- <optional>
- <attribute name="draw:z-index">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="common-text-spreadsheet-shape-attlist"
combine="interleave">
- <optional>
- <attribute name="table:end-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
- <optional>
- <attribute name="table:end-x">
<ref name="coordinate" />
</attribute>
</optional>
- <optional>
- <attribute name="table:end-y">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="common-text-spreadsheet-shape-attlist"
combine="interleave">
- <optional>
- <attribute name="table:table-background">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-text-spreadsheet-shape-attlist"
combine="interleave">
<ref name="common-text-anchor-attlist" />
</define>
- <define name="common-text-anchor-attlist" combine="interleave">
- <optional>
- <attribute name="text:anchor-type">
- <choice>
<value>page</value>
<value>frame</value>
<value>paragraph</value>
<value>char</value>
<value>as-char</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-text-anchor-attlist" combine="interleave">
- <optional>
- <attribute name="text:anchor-page-number">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="draw-text">
- <zeroOrMore>
- <choice>
<ref name="text-p" />
<ref name="text-list" />
</choice>
</zeroOrMore>
</define>
- <define name="common-draw-shape-with-styles-attlist">
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-draw-transform-attlist" />
<ref name="common-draw-name-attlist" />
<ref name="common-text-spreadsheet-shape-attlist" />
</define>
- <define name="common-draw-shape-with-text-and-styles-attlist">
<ref name="common-draw-shape-with-styles-attlist" />
<ref name="common-draw-text-style-name-attlist" />
</define>
- <define name="draw-glue-point">
- <element name="draw:glue-point">
<ref name="draw-glue-point-attlist" />
<empty />
</element>
</define>
- <define name="draw-glue-point-attlist" combine="interleave">
- <attribute name="draw:id">
<ref name="nonNegativeInteger" />
</attribute>
</define>
- <define name="draw-glue-point-attlist" combine="interleave">
- <attribute name="svg:x">
- <choice>
<ref name="distance" />
<ref name="percent" />
</choice>
</attribute>
- <attribute name="svg:y">
- <choice>
<ref name="distance" />
<ref name="percent" />
</choice>
</attribute>
</define>
- <define name="draw-glue-point-attlist" combine="interleave">
- <optional>
- <attribute name="draw:align">
- <choice>
<value>top-left</value>
<value>top</value>
<value>top-right</value>
<value>left</value>
<value>center</value>
<value>right</value>
<value>bottom-left</value>
<value>bottom-right</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-glue-points-attlist" combine="interleave">
- <attribute name="draw:escape-direction">
- <choice>
<value>auto</value>
<value>left</value>
<value>right</value>
<value>up</value>
<value>down</value>
<value>horizontal</value>
<value>vertical</value>
</choice>
</attribute>
</define>
- <define name="svg-title">
- <element name="svg:title">
<text />
</element>
</define>
- <define name="svg-desc">
- <element name="svg:desc">
<text />
</element>
</define>
- <define name="draw-frame">
- <element name="draw:frame">
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-rel-size-attlist" />
<ref name="common-draw-caption-id-attlist" />
<ref name="presentation-shape-attlist" />
<ref name="draw-frame-attlist" />
- <zeroOrMore>
- <choice>
<ref name="draw-text-box" />
<ref name="draw-image" />
<ref name="draw-object" />
<ref name="draw-object-ole" />
<ref name="draw-applet" />
<ref name="draw-floating-frame" />
<ref name="draw-plugin" />
</choice>
</zeroOrMore>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
- <optional>
<ref name="draw-image-map" />
</optional>
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
- <choice>
<ref name="draw-contour-polygon" />
<ref name="draw-contour-path" />
</choice>
</optional>
</element>
</define>
- <define name="common-draw-rel-size-attlist">
<ref name="common-draw-size-attlist" />
- <optional>
- <attribute name="style:rel-width">
- <choice>
<ref name="percent" />
<value>scale</value>
<value>scale-min</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="style:rel-height">
- <choice>
<ref name="percent" />
<value>scale</value>
<value>scale-min</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-frame-attlist" combine="interleave">
- <optional>
- <attribute name="draw:copy-of">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-text-box">
- <element name="draw:text-box">
<ref name="draw-text-box-attlist" />
- <zeroOrMore>
<ref name="text-content" />
</zeroOrMore>
</element>
</define>
- <define name="draw-text-box-attlist" combine="interleave">
- <optional>
- <attribute name="draw:chain-next-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-text-box-attlist" combine="interleave">
- <optional>
- <attribute name="draw:corner-radius">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="draw-text-box-attlist" combine="interleave">
- <optional>
- <attribute name="fo:min-height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:min-width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="draw-text-box-attlist" combine="interleave">
- <optional>
- <attribute name="fo:max-height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:max-width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="draw-text-box-attlist" combine="interleave">
- <optional>
<ref name="text-id" />
</optional>
</define>
- <define name="draw-image">
- <element name="draw:image">
<ref name="draw-image-attlist" />
- <choice>
<ref name="common-draw-data-attlist" />
<ref name="office-binary-data" />
</choice>
<ref name="draw-text" />
</element>
</define>
- <define name="common-draw-data-attlist" combine="interleave">
- <group>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
- <choice>
<value>simple</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show" a:defaultValue="embed">
- <choice>
<value>embed</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onLoad">
- <choice>
<value>onLoad</value>
</choice>
</attribute>
</optional>
</group>
</define>
- <define name="office-binary-data">
- <element name="office:binary-data">
<ref name="base64Binary" />
</element>
</define>
- <define name="draw-image-attlist" combine="interleave">
- <optional>
- <attribute name="draw:filter-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-object">
- <element name="draw:object">
<ref name="draw-object-attlist" />
- <choice>
<ref name="common-draw-data-attlist" />
<ref name="office-document" />
<ref name="math-math" />
</choice>
</element>
</define>
- <define name="draw-object-ole">
- <element name="draw:object-ole">
<ref name="draw-object-ole-attlist" />
- <choice>
<ref name="common-draw-data-attlist" />
<ref name="office-binary-data" />
</choice>
</element>
</define>
- <define name="draw-object-attlist" combine="interleave">
- <optional>
- <attribute name="draw:notify-on-update-of-ranges">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-object-ole-attlist" combine="interleave">
- <optional>
<attribute name="draw:class-id" />
</optional>
</define>
- <define name="draw-applet">
- <element name="draw:applet">
<ref name="draw-applet-attlist" />
- <optional>
<ref name="common-draw-data-attlist" />
</optional>
- <zeroOrMore>
<ref name="draw-param" />
</zeroOrMore>
</element>
</define>
- <define name="draw-applet-attlist" combine="interleave">
- <optional>
<attribute name="draw:code" />
</optional>
</define>
- <define name="draw-applet-attlist" combine="interleave">
- <optional>
<attribute name="draw:object" />
</optional>
</define>
- <define name="draw-applet-attlist" combine="interleave">
- <optional>
<attribute name="draw:archive" />
</optional>
</define>
- <define name="draw-applet-attlist" combine="interleave">
- <optional>
- <attribute name="draw:may-script" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-plugin">
- <element name="draw:plugin">
<ref name="draw-plugin-attlist" />
<ref name="common-draw-data-attlist" />
- <zeroOrMore>
<ref name="draw-param" />
</zeroOrMore>
</element>
</define>
- <define name="draw-plugin-attlist" combine="interleave">
- <optional>
<attribute name="draw:mime-type" />
</optional>
</define>
- <define name="draw-param">
- <element name="draw:param">
<ref name="draw-param-attlist" />
<empty />
</element>
</define>
- <define name="draw-param-attlist" combine="interleave">
- <optional>
<attribute name="draw:name" />
</optional>
</define>
- <define name="draw-param-attlist" combine="interleave">
- <optional>
<attribute name="draw:value" />
</optional>
</define>
- <define name="draw-floating-frame">
- <element name="draw:floating-frame">
<ref name="draw-floating-frame-attlist" />
<ref name="common-draw-data-attlist" />
</element>
</define>
- <define name="draw-floating-frame-attlist" combine="interleave">
- <optional>
- <attribute name="draw:frame-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-contour-polygon">
- <element name="draw:contour-polygon">
<ref name="common-contour-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-points-attlist" />
<empty />
</element>
</define>
- <define name="draw-contour-path">
- <element name="draw:contour-path">
<ref name="common-contour-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-path-data-attlist" />
<empty />
</element>
</define>
- <define name="common-contour-attlist" combine="interleave">
- <attribute name="draw:recreate-on-edit">
<ref name="boolean" />
</attribute>
</define>
- <define name="draw-a">
- <element name="draw:a">
<ref name="draw-a-attlist" />
<ref name="draw-frame" />
</element>
</define>
- <define name="draw-a-attlist" combine="interleave">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
- <choice>
<value>onRequest</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:target-frame-name">
<ref name="targetFrameName" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show">
- <choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:title">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-a-attlist" combine="interleave">
- <optional>
- <attribute name="office:server-map" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-image-map">
- <element name="draw:image-map">
- <zeroOrMore>
- <choice>
<ref name="draw-area-rectangle" />
<ref name="draw-area-circle" />
<ref name="draw-area-polygon" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="draw-area-rectangle">
- <element name="draw:area-rectangle">
<ref name="common-draw-area-attlist" />
- <attribute name="svg:x">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
- <attribute name="svg:height">
<ref name="length" />
</attribute>
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
</element>
</define>
- <define name="draw-area-circle">
- <element name="draw:area-circle">
<ref name="common-draw-area-attlist" />
- <attribute name="svg:cx">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:cy">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:r">
<ref name="length" />
</attribute>
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
</element>
</define>
- <define name="draw-area-polygon">
- <element name="draw:area-polygon">
<ref name="common-draw-area-attlist" />
- <attribute name="svg:x">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:y">
<ref name="coordinate" />
</attribute>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
- <attribute name="svg:height">
<ref name="length" />
</attribute>
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-points-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
</element>
</define>
- <define name="common-draw-area-attlist" combine="interleave">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
- <choice>
<value>simple</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="office:target-frame-name">
<ref name="targetFrameName" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show">
- <choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-draw-area-attlist" combine="interleave">
- <optional>
- <attribute name="office:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-draw-area-attlist" combine="interleave">
- <optional>
- <attribute name="draw:nohref">
- <choice>
<value>nohref</value>
</choice>
</attribute>
</optional>
</define>
- <define name="dr3d-scene">
- <element name="dr3d:scene">
<ref name="dr3d-scene-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-text-spreadsheet-shape-attlist" />
<ref name="common-dr3d-transform-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <zeroOrMore>
<ref name="dr3d-light" />
</zeroOrMore>
- <zeroOrMore>
<ref name="shapes3d" />
</zeroOrMore>
</element>
</define>
- <define name="shapes3d">
- <choice>
<ref name="dr3d-scene" />
<ref name="dr3d-extrude" />
<ref name="dr3d-sphere" />
<ref name="dr3d-rotate" />
<ref name="dr3d-cube" />
</choice>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:vrp">
<ref name="vector3D" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:vpn">
<ref name="vector3D" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:vup">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:projection">
- <choice>
<value>parallel</value>
<value>perspective</value>
</choice>
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:distance">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:focal-length">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:shadow-slant">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:shade-mode">
- <choice>
<value>flat</value>
<value>phong</value>
<value>gouraud</value>
<value>draft</value>
</choice>
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:ambient-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="dr3d-scene-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:lighting-mode">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-dr3d-transform-attlist">
- <optional>
<attribute name="dr3d:transform" />
</optional>
</define>
- <define name="dr3d-light">
- <element name="dr3d:light">
<ref name="dr3d-light-attlist" />
<empty />
</element>
</define>
- <define name="dr3d-light-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:diffuse-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="dr3d-light-attlist" combine="interleave">
- <attribute name="dr3d:direction">
<ref name="vector3D" />
</attribute>
</define>
- <define name="dr3d-light-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:enabled">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="dr3d-light-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:specular">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="dr3d-cube">
- <element name="dr3d:cube">
<ref name="dr3d-cube-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-dr3d-transform-attlist" />
<empty />
</element>
</define>
- <define name="dr3d-cube-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:min-edge">
<ref name="vector3D" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:max-edge">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="dr3d-sphere">
- <element name="dr3d:sphere">
<ref name="dr3d-sphere-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-dr3d-transform-attlist" />
<empty />
</element>
</define>
- <define name="dr3d-sphere-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:center">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="dr3d-sphere-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:size">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="dr3d-extrude">
- <element name="dr3d:extrude">
<ref name="common-draw-path-data-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-dr3d-transform-attlist" />
<empty />
</element>
</define>
- <define name="dr3d-rotate">
- <element name="dr3d:rotate">
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-path-data-attlist" />
<ref name="common-draw-z-index-attlist" />
<ref name="common-draw-id-attlist" />
<ref name="common-draw-layer-name-attlist" />
<ref name="common-draw-style-name-attlist" />
<ref name="common-dr3d-transform-attlist" />
<empty />
</element>
</define>
- <define name="draw-custom-shape">
- <element name="draw:custom-shape">
<ref name="draw-custom-shape-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
<ref name="common-draw-caption-id-attlist" />
- <optional>
<ref name="svg-title" />
</optional>
- <optional>
<ref name="svg-desc" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
<ref name="draw-glue-point" />
</zeroOrMore>
<ref name="draw-text" />
- <optional>
<ref name="draw-enhanced-geometry" />
</optional>
</element>
</define>
- <define name="draw-custom-shape-attlist" combine="interleave">
- <optional>
- <attribute name="draw:engine">
<ref name="namespacedToken" />
</attribute>
</optional>
</define>
- <define name="draw-custom-shape-attlist" combine="interleave">
- <optional>
- <attribute name="draw:data">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry">
- <element name="draw:enhanced-geometry">
<ref name="draw-enhanced-geometry-attlist" />
- <zeroOrMore>
<ref name="draw-equation" />
</zeroOrMore>
- <zeroOrMore>
<ref name="draw-handle" />
</zeroOrMore>
</element>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:type" a:defaultValue="non-primitive">
<ref name="custom-shape-type" />
</attribute>
</optional>
</define>
- <define name="custom-shape-type">
- <choice>
<value>non-primitive</value>
<ref name="string" />
</choice>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="svg:viewBox">
- <list>
<ref name="integer" />
<ref name="integer" />
<ref name="integer" />
<ref name="integer" />
</list>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:mirror-vertical" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:mirror-horizontal" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-rotate-angle" a:defaultValue="0">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-allowed" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-path-allowed" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:concentric-gradient-fill-allowed"
a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-brightness" a:defaultValue="33%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-depth" a:defaultValue="36pt 0">
- <list>
<ref name="length" />
<ref name="double" />
</list>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-diffusion" a:defaultValue="0%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-number-of-line-segments"
a:defaultValue="30">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-light-face" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-first-light-harsh" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-second-light-harsh" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-first-light-level" a:defaultValue="66%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-second-light-level" a:defaultValue="66%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-first-light-direction" a:defaultValue="(5 0
1)">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-second-light-direction" a:defaultValue="(-5
0 1)">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-metal" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:shade-mode" a:defaultValue="flat">
- <choice>
<value>flat</value>
<value>phong</value>
<value>gouraud</value>
<value>draft</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-rotation-angle" a:defaultValue="0 0">
- <list>
<ref name="double" />
<ref name="double" />
</list>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-rotation-center">
<ref name="vector3D" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-shininess" a:defaultValue="50%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-skew" a:defaultValue="50 45">
- <list>
<ref name="double" />
<ref name="double" />
</list>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-specularity" a:defaultValue="0%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:projection" a:defaultValue="parallel">
- <choice>
<value>parallel</value>
<value>perspective</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-viewpoint" a:defaultValue="3.5cm -3.5cm
25cm">
<ref name="point3D" />
</attribute>
</optional>
</define>
- <define name="point3D">
<data type="string" />
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-origin" a:defaultValue="0.5 -0.5">
- <list>
<ref name="double" />
<ref name="double" />
</list>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:extrusion-color" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:enhanced-path">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:path-stretchpoint-x" a:defaultValue="0">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:path-stretchpoint-y" a:defaultValue="0">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-areas">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:glue-points">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:glue-point-type" a:defaultValue="none">
- <choice>
<value>none</value>
<value>segments</value>
<value>rectangle</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
<attribute name="draw:glue-point-leaving-directions" />
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-path" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-path-mode" a:defaultValue="normal">
- <choice>
<value>normal</value>
<value>path</value>
<value>shape</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-path-scale" a:defaultValue="path">
- <choice>
<value>path</value>
<value>shape</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:text-path-same-letter-heights" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-enhanced-geometry-attlist" combine="interleave">
- <optional>
- <attribute name="draw:modifiers">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-equation">
- <element name="draw:equation">
<ref name="draw-equation-attlist" />
<empty />
</element>
</define>
- <define name="draw-equation-attlist" combine="interleave">
- <optional>
- <attribute name="draw:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-equation-attlist" combine="interleave">
- <optional>
- <attribute name="draw:formula">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle">
- <element name="draw:handle">
<ref name="draw-handle-attlist" />
<empty />
</element>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-mirror-vertical" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-mirror-horizontal" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-switched" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <attribute name="draw:handle-position">
<ref name="string" />
</attribute>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-range-x-minimum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-range-x-maximum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-range-y-minimum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-range-y-maximum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-polar">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-radius-range-minimum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-handle-attlist" combine="interleave">
- <optional>
- <attribute name="draw:handle-radius-range-maximum">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="presentation-shape-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:class">
<ref name="presentation-classes" />
</attribute>
</optional>
</define>
- <define name="presentation-classes">
- <choice>
<value>title</value>
<value>outline</value>
<value>subtitle</value>
<value>text</value>
<value>graphic</value>
<value>object</value>
<value>chart</value>
<value>table</value>
<value>orgchart</value>
<value>page</value>
<value>notes</value>
<value>handout</value>
<value>header</value>
<value>footer</value>
<value>date-time</value>
<value>page-number</value>
</choice>
</define>
- <define name="presentation-shape-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:placeholder">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-shape-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:user-transformed">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-animations">
- <element name="presentation:animations">
- <zeroOrMore>
- <choice>
<ref name="presentation-animation-elements" />
<ref name="presentation-animation-group" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="presentation-animation-elements">
- <choice>
<ref name="presentation-show-shape" />
<ref name="presentation-show-text" />
<ref name="presentation-hide-shape" />
<ref name="presentation-hide-text" />
<ref name="presentation-dim" />
<ref name="presentation-play" />
</choice>
</define>
- <define name="presentation-sound">
- <element name="presentation:sound">
<ref name="presentation-sound-attlist" />
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
- <choice>
<value>simple</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
- <choice>
<value>onRequest</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show">
- <choice>
<value>new</value>
<value>replace</value>
</choice>
</attribute>
</optional>
<empty />
</element>
</define>
- <define name="presentation-sound-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:play-full">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-show-shape">
- <element name="presentation:show-shape">
<ref name="common-presentation-effect-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <attribute name="draw:shape-id">
<ref name="IDREF" />
</attribute>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:effect" a:defaultValue="none">
<ref name="presentationEffects" />
</attribute>
</optional>
</define>
- <define name="presentationEffects">
- <choice>
<value>none</value>
<value>fade</value>
<value>move</value>
<value>stripes</value>
<value>open</value>
<value>close</value>
<value>dissolve</value>
<value>wavyline</value>
<value>random</value>
<value>lines</value>
<value>laser</value>
<value>appear</value>
<value>hide</value>
<value>move-short</value>
<value>checkerboard</value>
<value>rotate</value>
<value>stretch</value>
</choice>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:direction" a:defaultValue="none">
<ref name="presentationEffectDirections" />
</attribute>
</optional>
</define>
- <define name="presentationEffectDirections">
- <choice>
<value>none</value>
<value>from-left</value>
<value>from-top</value>
<value>from-right</value>
<value>from-bottom</value>
<value>from-center</value>
<value>from-upper-left</value>
<value>from-upper-right</value>
<value>from-lower-left</value>
<value>from-lower-right</value>
<value>to-left</value>
<value>to-top</value>
<value>to-right</value>
<value>to-bottom</value>
<value>to-upper-left</value>
<value>to-upper-right</value>
<value>to-lower-right</value>
<value>to-lower-left</value>
<value>path</value>
<value>spiral-inward-left</value>
<value>spiral-inward-right</value>
<value>spiral-outward-left</value>
<value>spiral-outward-right</value>
<value>vertical</value>
<value>horizontal</value>
<value>to-center</value>
<value>clockwise</value>
<value>counter-clockwise</value>
</choice>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:speed" a:defaultValue="medium">
<ref name="presentationSpeeds" />
</attribute>
</optional>
</define>
- <define name="presentationSpeeds">
- <choice>
<value>slow</value>
<value>medium</value>
<value>fast</value>
</choice>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:delay">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:start-scale" a:defaultValue="100%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="common-presentation-effect-attlist" combine="interleave">
- <optional>
<attribute name="presentation:path-id" />
</optional>
</define>
- <define name="presentation-show-text">
- <element name="presentation:show-text">
<ref name="common-presentation-effect-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="presentation-hide-shape">
- <element name="presentation:hide-shape">
<ref name="common-presentation-effect-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="presentation-hide-text">
- <element name="presentation:hide-text">
<ref name="common-presentation-effect-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="presentation-dim">
- <element name="presentation:dim">
<ref name="presentation-dim-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="presentation-dim-attlist" combine="interleave">
- <attribute name="draw:shape-id">
<ref name="IDREF" />
</attribute>
</define>
- <define name="presentation-dim-attlist" combine="interleave">
- <attribute name="draw:color">
<ref name="color" />
</attribute>
</define>
- <define name="presentation-play">
- <element name="presentation:play">
<ref name="presentation-play-attlist" />
<empty />
</element>
</define>
- <define name="presentation-play-attlist" combine="interleave">
- <attribute name="draw:shape-id">
<ref name="IDREF" />
</attribute>
- <optional>
- <attribute name="presentation:speed" a:defaultValue="medium">
<ref name="presentationSpeeds" />
</attribute>
</optional>
</define>
- <define name="presentation-animation-group">
- <element name="presentation:animation-group">
- <zeroOrMore>
<ref name="presentation-animation-elements" />
</zeroOrMore>
</element>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:node-type" a:defaultValue="default">
- <choice>
<value>default</value>
<value>on-click</value>
<value>with-previous</value>
<value>after-previous</value>
<value>timing-root</value>
<value>main-sequence</value>
<value>interactive-sequence</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:preset-id">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:preset-sub-type">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:preset-class" a:defaultValue="custom">
- <choice>
<value>custom</value>
<value>entrance</value>
<value>exit</value>
<value>emphasis</value>
<value>motion-path</value>
<value>ole-action</value>
<value>media-call</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:master-element">
<ref name="IDREF" />
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:group-id">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="presentation-event-listener">
- <element name="presentation:event-listener">
<ref name="presentation-event-listener-attlist" />
- <optional>
<ref name="presentation-sound" />
</optional>
</element>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <attribute name="script:event-name">
<ref name="string" />
</attribute>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <attribute name="presentation:action">
- <choice>
<value>none</value>
<value>previous-page</value>
<value>next-page</value>
<value>first-page</value>
<value>last-page</value>
<value>hide</value>
<value>stop</value>
<value>execute</value>
<value>show</value>
<value>verb</value>
<value>fade-out</value>
<value>sound</value>
</choice>
</attribute>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:effect" a:defaultValue="none">
<ref name="presentationEffects" />
</attribute>
</optional>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:direction" a:defaultValue="none">
<ref name="presentationEffectDirections" />
</attribute>
</optional>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:speed" a:defaultValue="medium">
<ref name="presentationSpeeds" />
</attribute>
</optional>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:start-scale" a:defaultValue="100%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</optional>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
- <choice>
<value>simple</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show" a:defaultValue="embed">
- <choice>
<value>embed</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
- <choice>
<value>onRequest</value>
</choice>
</attribute>
</optional>
</define>
- <define name="presentation-event-listener-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:verb">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="presentation:header">
<empty />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="presentation:footer">
<empty />
</element>
</define>
- <define name="paragraph-content" combine="choice">
- <element name="presentation:date-time">
<empty />
</element>
</define>
- <define name="presentation-decls">
- <zeroOrMore>
<ref name="presentation-decl" />
</zeroOrMore>
</define>
- <define name="presentation-decl" combine="choice">
- <element name="presentation:header-decl">
<ref name="presentation-header-decl-attlist" />
<text />
</element>
</define>
- <define name="presentation-header-decl-attlist" combine="interleave">
- <attribute name="presentation:name">
<ref name="string" />
</attribute>
</define>
- <define name="presentation-decl" combine="choice">
- <element name="presentation:footer-decl">
<ref name="presentation-footer-decl-attlist" />
<text />
</element>
</define>
- <define name="presentation-footer-decl-attlist" combine="interleave">
- <attribute name="presentation:name">
<ref name="string" />
</attribute>
</define>
- <define name="presentation-decl" combine="choice">
- <element name="presentation:date-time-decl">
<ref name="presentation-date-time-decl-attlist" />
<text />
</element>
</define>
- <define name="presentation-date-time-decl-attlist" combine="interleave">
- <attribute name="presentation:name">
<ref name="string" />
</attribute>
</define>
- <define name="presentation-date-time-decl-attlist" combine="interleave">
- <attribute name="presentation:source">
- <choice>
<value>fixed</value>
<value>current-date</value>
</choice>
</attribute>
</define>
- <define name="presentation-date-time-decl-attlist" combine="interleave">
- <optional>
- <attribute name="style:data-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="presentation-settings">
- <optional>
- <element name="presentation:settings">
<ref name="presentation-settings-attlist" />
- <zeroOrMore>
<ref name="presentation-show" />
</zeroOrMore>
</element>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:start-page">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:show">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:full-screen" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:endless" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:pause">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:show-logo" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:force-manual" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:mouse-visible" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:mouse-as-pen" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:start-with-navigator" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:animations" a:defaultValue="enabled">
- <choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:transition-on-click" a:defaultValue="enabled">
- <choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:stay-on-top" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-settings-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:show-end-of-presentation-slide"
a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="presentation-show">
- <element name="presentation:show">
<ref name="presentation-show-attlist" />
<empty />
</element>
</define>
- <define name="presentation-show-attlist" combine="interleave">
- <attribute name="presentation:name">
<ref name="string" />
</attribute>
</define>
- <define name="presentation-show-attlist" combine="interleave">
<attribute name="presentation:pages" />
</define>
- <define name="chart-chart">
- <element name="chart:chart">
<ref name="chart-chart-attlist" />
- <optional>
<ref name="chart-title" />
</optional>
- <optional>
<ref name="chart-subtitle" />
</optional>
- <optional>
<ref name="chart-footer" />
</optional>
- <optional>
<ref name="chart-legend" />
</optional>
<ref name="chart-plot-area" />
- <optional>
<ref name="table-table" />
</optional>
</element>
</define>
- <define name="chart-chart-attlist" combine="interleave">
- <attribute name="chart:class">
<ref name="namespacedToken" />
</attribute>
</define>
- <define name="chart-chart-attlist" combine="interleave">
<ref name="common-draw-size-attlist" />
</define>
- <define name="chart-chart-attlist" combine="interleave">
- <optional>
- <attribute name="chart:column-mapping">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="chart-chart-attlist" combine="interleave">
- <optional>
- <attribute name="chart:row-mapping">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="chart-chart-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-title">
- <element name="chart:title">
<ref name="chart-title-attlist" />
- <optional>
<ref name="text-p" />
</optional>
</element>
</define>
- <define name="chart-title-attlist" combine="interleave">
- <optional>
- <attribute name="table:cell-range">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="chart-title-attlist" combine="interleave">
<ref name="common-draw-position-attlist" />
</define>
- <define name="chart-title-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-subtitle">
- <element name="chart:subtitle">
<ref name="chart-title-attlist" />
- <optional>
<ref name="text-p" />
</optional>
</element>
</define>
- <define name="chart-footer">
- <element name="chart:footer">
<ref name="chart-title-attlist" />
- <optional>
<ref name="text-p" />
</optional>
</element>
</define>
- <define name="chart-legend">
- <element name="chart:legend">
<ref name="chart-legend-attlist" />
<empty />
</element>
</define>
- <define name="chart-legend-attlist" combine="interleave">
- <choice>
- <group>
- <attribute name="chart:legend-position">
- <choice>
<value>start</value>
<value>end</value>
<value>top</value>
<value>bottom</value>
</choice>
</attribute>
- <optional>
- <attribute name="chart:legend-align">
- <choice>
<value>start</value>
<value>center</value>
<value>end</value>
</choice>
</attribute>
</optional>
</group>
- <attribute name="chart:legend-position">
- <choice>
<value>top-start</value>
<value>bottom-start</value>
<value>top-end</value>
<value>bottom-end</value>
</choice>
</attribute>
<empty />
</choice>
</define>
- <define name="chart-legend-attlist" combine="interleave">
<ref name="common-draw-position-attlist" />
</define>
- <define name="chart-legend-attlist" combine="interleave">
- <choice>
- <attribute name="style:legend-expansion">
- <choice>
<value>wide</value>
<value>high</value>
<value>balanced</value>
</choice>
</attribute>
- <group>
- <attribute name="style:legend-expansion">
<value>custom</value>
</attribute>
- <attribute name="style:legend-expansion-aspect-ratio">
<ref name="double" />
</attribute>
</group>
<empty />
</choice>
</define>
- <define name="chart-legend-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-plot-area">
- <element name="chart:plot-area">
<ref name="chart-plot-area-attlist" />
- <zeroOrMore>
<ref name="dr3d-light" />
</zeroOrMore>
- <zeroOrMore>
<ref name="chart-axis" />
</zeroOrMore>
- <zeroOrMore>
<ref name="chart-series" />
</zeroOrMore>
- <optional>
<ref name="chart-stock-gain-marker" />
</optional>
- <optional>
<ref name="chart-stock-loss-marker" />
</optional>
- <optional>
<ref name="chart-stock-range-line" />
</optional>
- <optional>
<ref name="chart-wall" />
</optional>
- <optional>
<ref name="chart-floor" />
</optional>
</element>
</define>
- <define name="chart-plot-area-attlist" combine="interleave">
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
</define>
- <define name="chart-plot-area-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-plot-area-attlist" combine="interleave">
- <optional>
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="chart-plot-area-attlist" combine="interleave">
- <optional>
- <attribute name="chart:data-source-has-labels" a:defaultValue="none">
- <choice>
<value>none</value>
<value>row</value>
<value>column</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
- <define name="chart-plot-area-attlist" combine="interleave">
<ref name="dr3d-scene-attlist" />
<ref name="common-dr3d-transform-attlist" />
</define>
- <define name="chart-wall">
- <element name="chart:wall">
<ref name="chart-wall-attlist" />
<empty />
</element>
</define>
- <define name="chart-wall-attlist" combine="interleave">
- <optional>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="chart-wall-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-floor">
- <element name="chart:floor">
<ref name="chart-floor-attlist" />
<empty />
</element>
</define>
- <define name="chart-floor-attlist" combine="interleave">
- <optional>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="chart-floor-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-axis">
- <element name="chart:axis">
<ref name="chart-axis-attlist" />
- <optional>
<ref name="chart-title" />
</optional>
- <optional>
<ref name="chart-categories" />
</optional>
- <zeroOrMore>
<ref name="chart-grid" />
</zeroOrMore>
</element>
</define>
- <define name="chart-axis-attlist" combine="interleave">
- <attribute name="chart:dimension">
- <choice>
<value>x</value>
<value>y</value>
<value>z</value>
</choice>
</attribute>
</define>
- <define name="chart-axis-attlist" combine="interleave">
- <optional>
- <attribute name="chart:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="chart-axis-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-grid">
- <element name="chart:grid">
<ref name="chart-grid-attlist" />
</element>
</define>
- <define name="chart-grid-attlist" combine="interleave">
- <optional>
- <attribute name="chart:class" a:defaultValue="major">
- <choice>
<value>major</value>
<value>minor</value>
</choice>
</attribute>
</optional>
</define>
- <define name="chart-grid-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-series">
- <element name="chart:series">
<ref name="chart-series-attlist" />
- <zeroOrMore>
<ref name="chart-domain" />
</zeroOrMore>
- <optional>
<ref name="chart-mean-value" />
</optional>
- <optional>
<ref name="chart-regression-curve" />
</optional>
- <optional>
<ref name="chart-error-indicator" />
</optional>
- <zeroOrMore>
<ref name="chart-data-point" />
</zeroOrMore>
</element>
</define>
- <define name="chart-series-attlist" combine="interleave">
- <optional>
- <attribute name="chart:values-cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</define>
- <define name="chart-series-attlist" combine="interleave">
- <optional>
- <attribute name="chart:label-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="chart-series-attlist" combine="interleave">
- <optional>
- <attribute name="chart:class">
<ref name="namespacedToken" />
</attribute>
</optional>
</define>
- <define name="chart-series-attlist" combine="interleave">
- <optional>
- <attribute name="chart:attached-axis">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="chart-series-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-domain">
- <element name="chart:domain">
- <optional>
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</element>
</define>
- <define name="chart-categories">
- <element name="chart:categories">
- <optional>
- <attribute name="table:cell-range-address">
<ref name="cellRangeAddress" />
</attribute>
</optional>
</element>
</define>
- <define name="chart-data-point">
- <element name="chart:data-point">
<ref name="chart-data-point-attlist" />
<empty />
</element>
</define>
- <define name="chart-data-point-attlist" combine="interleave">
- <optional>
- <attribute name="chart:repeated">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="chart-data-point-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-mean-value">
- <element name="chart:mean-value">
<ref name="chart-mean-value-attlist" />
<empty />
</element>
</define>
- <define name="chart-mean-value-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-error-indicator">
- <element name="chart:error-indicator">
<ref name="chart-error-indicator-attlist" />
<empty />
</element>
</define>
- <define name="chart-error-indicator-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-regression-curve">
- <element name="chart:regression-curve">
<ref name="chart-regression-curve-attlist" />
<empty />
</element>
</define>
- <define name="chart-regression-curve-attlist" combine="interleave">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="chart-stock-gain-marker">
- <element name="chart:stock-gain-marker">
<ref name="common-stock-marker-attlist" />
</element>
</define>
- <define name="chart-stock-loss-marker">
- <element name="chart:stock-loss-marker">
<ref name="common-stock-marker-attlist" />
</element>
</define>
- <define name="chart-stock-range-line">
- <element name="chart:stock-range-line">
<ref name="common-stock-marker-attlist" />
</element>
</define>
- <define name="common-stock-marker-attlist">
- <optional>
- <attribute name="chart:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="office-forms">
- <optional>
- <element name="office:forms">
<ref name="office-forms-attlist" />
- <zeroOrMore>
- <choice>
<ref name="form-form" />
<ref name="xforms-model" />
</choice>
</zeroOrMore>
</element>
</optional>
</define>
- <define name="office-forms-attlist" combine="interleave">
- <optional>
- <attribute name="form:automatic-focus" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="office-forms-attlist" combine="interleave">
- <optional>
- <attribute name="form:apply-design-mode" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form">
- <element name="form:form">
<ref name="common-form-control-attlist" />
<ref name="form-form-attlist" />
- <optional>
<ref name="form-properties" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
- <zeroOrMore>
- <choice>
<ref name="controls" />
<ref name="form-form" />
</choice>
</zeroOrMore>
- <optional>
<ref name="form-connection-resource" />
</optional>
</element>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="office:target-frame" a:defaultValue="_blank">
<ref name="targetFrameName" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:method" a:defaultValue="get">
- <choice>
<value>get</value>
<value>post</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:enctype" a:defaultValue="application/x-www-form-
urlencoded">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:allow-deletes" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:allow-inserts" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:allow-updates" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:apply-filter" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:command-type" a:defaultValue="command">
- <choice>
<value>table</value>
<value>query</value>
<value>command</value>
</choice>
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
<attribute name="form:command" />
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:datasource">
- <choice>
<ref name="anyURI" />
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:master-fields">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:detail-fields">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:escape-processing" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:filter">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:ignore-result" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:navigation-mode">
<ref name="navigation" />
</attribute>
</optional>
</define>
- <define name="navigation">
- <choice>
<value>none</value>
<value>current</value>
<value>parent</value>
</choice>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:order">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-form-attlist" combine="interleave">
- <optional>
- <attribute name="form:tab-cycle">
<ref name="tab-cycles" />
</attribute>
</optional>
</define>
- <define name="tab-cycles">
- <choice>
<value>records</value>
<value>current</value>
<value>page</value>
</choice>
</define>
- <define name="form-connection-resource">
- <element name="form:connection-resource">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
<empty />
</element>
</define>
- <define name="xforms-model">
- <element name="xforms:model">
<ref name="anyAttListOrElements" />
</element>
</define>
- <define name="column-controls" combine="choice">
- <element name="form:text">
<ref name="form-text-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="controls" combine="choice">
<ref name="column-controls" />
</define>
- <define name="form-text-attlist">
<ref name="form-control-attlist" />
<ref name="common-current-value-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-convert-empty-attlist" />
<ref name="common-data-field-attlist" />
</define>
- <define name="form-control-attlist">
<ref name="common-form-control-attlist" />
<ref name="common-control-id-attlist" />
<ref name="xforms-bind-attlist" />
</define>
- <define name="common-form-control-content">
- <optional>
<ref name="form-properties" />
</optional>
- <optional>
<ref name="office-event-listeners" />
</optional>
</define>
- <define name="column-controls" combine="choice">
- <element name="form:textarea">
<ref name="form-textarea-attlist" />
<ref name="common-form-control-content" />
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</element>
</define>
- <define name="form-textarea-attlist">
<ref name="form-control-attlist" />
<ref name="common-current-value-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-convert-empty-attlist" />
<ref name="common-data-field-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:password">
<ref name="form-password-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-password-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-convert-empty-attlist" />
</define>
- <define name="form-password-attlist" combine="interleave">
- <optional>
- <attribute name="form:echo-char" a:defaultValue="*">
<ref name="character" />
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:file">
<ref name="form-file-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-file-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-current-value-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
</define>
- <define name="column-controls" combine="choice">
- <element name="form:formatted-text">
<ref name="form-formatted-text-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-formatted-text-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-current-value-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-convert-empty-attlist" />
<ref name="common-data-field-attlist" />
</define>
- <define name="form-formatted-text-attlist" combine="interleave">
- <optional>
- <attribute name="form:max-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-formatted-text-attlist" combine="interleave">
- <optional>
- <attribute name="form:min-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-formatted-text-attlist" combine="interleave">
- <optional>
- <attribute name="form:validation" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="column-controls" combine="choice">
- <element name="form:number">
<ref name="form-number-attlist" />
<ref name="common-numeric-control-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="common-numeric-control-attlist">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-convert-empty-attlist" />
<ref name="common-data-field-attlist" />
</define>
- <define name="form-number-attlist" combine="interleave">
- <optional>
- <attribute name="form:value">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="form-number-attlist" combine="interleave">
- <optional>
- <attribute name="form:current-value">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="form-number-attlist" combine="interleave">
- <optional>
- <attribute name="form:min-value">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="form-number-attlist" combine="interleave">
- <optional>
- <attribute name="form:max-value">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="column-controls" combine="choice">
- <element name="form:date">
<ref name="form-date-attlist" />
<ref name="common-numeric-control-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="controls" combine="choice">
- <element name="form:time">
<ref name="form-time-attlist" />
<ref name="common-numeric-control-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-date-attlist" combine="interleave">
- <optional>
- <attribute name="form:value">
<ref name="date" />
</attribute>
</optional>
</define>
- <define name="form-time-attlist" combine="interleave">
- <optional>
- <attribute name="form:value">
<ref name="time" />
</attribute>
</optional>
</define>
- <define name="form-date-attlist" combine="interleave">
- <optional>
- <attribute name="form:current-value">
<ref name="date" />
</attribute>
</optional>
</define>
- <define name="form-time-attlist" combine="interleave">
- <optional>
- <attribute name="form:current-value">
<ref name="time" />
</attribute>
</optional>
</define>
- <define name="form-date-attlist" combine="interleave">
- <optional>
- <attribute name="form:min-value">
<ref name="date" />
</attribute>
</optional>
</define>
- <define name="form-time-attlist" combine="interleave">
- <optional>
- <attribute name="form:min-value">
<ref name="time" />
</attribute>
</optional>
</define>
- <define name="form-date-attlist" combine="interleave">
- <optional>
- <attribute name="form:max-value">
<ref name="date" />
</attribute>
</optional>
</define>
- <define name="form-time-attlist" combine="interleave">
- <optional>
- <attribute name="form:max-value">
<ref name="time" />
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:fixed-text">
<ref name="form-fixed-text-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-fixed-text-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="for" />
<ref name="common-disabled-attlist" />
<ref name="label" />
<ref name="common-printable-attlist" />
<ref name="common-title-attlist" />
</define>
- <define name="form-fixed-text-attlist" combine="interleave">
- <optional>
- <attribute name="form:multi-line" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="column-controls" combine="choice">
- <element name="form:combobox">
<ref name="form-combobox-attlist" />
<ref name="common-form-control-content" />
- <zeroOrMore>
<ref name="form-item" />
</zeroOrMore>
</element>
</define>
- <define name="form-combobox-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-current-value-attlist" />
<ref name="common-disabled-attlist" />
<ref name="dropdown" />
<ref name="common-maxlength-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="size" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-convert-empty-attlist" />
<ref name="common-data-field-attlist" />
<ref name="list-source" />
<ref name="list-source-type" />
</define>
- <define name="form-combobox-attlist" combine="interleave">
- <optional>
- <attribute name="form:auto-complete">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-item">
- <element name="form:item">
<ref name="form-item-attlist" />
<text />
</element>
</define>
- <define name="form-item-attlist" combine="interleave">
<ref name="label" />
</define>
- <define name="column-controls" combine="choice">
- <element name="form:listbox">
<ref name="form-listbox-attlist" />
<ref name="common-form-control-content" />
- <zeroOrMore>
<ref name="form-option" />
</zeroOrMore>
</element>
</define>
- <define name="form-listbox-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="dropdown" />
<ref name="common-printable-attlist" />
<ref name="size" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="bound-column" />
<ref name="common-data-field-attlist" />
<ref name="list-source" />
<ref name="list-source-type" />
</define>
- <define name="form-listbox-attlist" combine="interleave">
- <optional>
- <attribute name="form:multiple" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-listbox-attlist" combine="interleave">
- <optional>
- <attribute name="form:xforms-list-source">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-option">
- <element name="form:option">
<ref name="form-option-attlist" />
<text />
</element>
</define>
- <define name="form-option-attlist" combine="interleave">
<ref name="current-selected" />
<ref name="selected" />
<ref name="label" />
<ref name="common-value-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:button">
<ref name="form-button-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-button-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="button-type" />
<ref name="common-disabled-attlist" />
<ref name="label" />
<ref name="image-data" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="target-frame" />
<ref name="target-location" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-form-relative-image-position-attlist" />
</define>
- <define name="form-button-attlist" combine="interleave">
- <optional>
- <attribute name="form:default-button" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-button-attlist" combine="interleave">
- <optional>
- <attribute name="form:toggle" a:default-value="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-button-attlist" combine="interleave">
- <optional>
- <attribute name="form:focus-on-click">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-button-attlist" combine="interleave">
- <optional>
- <attribute name="form:xforms-submission">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:image">
<ref name="form-image-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-image-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="button-type" />
<ref name="common-disabled-attlist" />
<ref name="image-data" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="target-frame" />
<ref name="target-location" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
</define>
- <define name="column-controls" combine="choice">
- <element name="form:checkbox">
<ref name="form-checkbox-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-checkbox-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="label" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-data-field-attlist" />
<ref name="common-form-visual-effect-attlist" />
<ref name="common-form-relative-image-position-attlist" />
</define>
- <define name="states">
- <choice>
<value>unchecked</value>
<value>checked</value>
<value>unknown</value>
</choice>
</define>
- <define name="form-checkbox-attlist" combine="interleave">
- <optional>
- <attribute name="form:current-state">
<ref name="states" />
</attribute>
</optional>
</define>
- <define name="form-checkbox-attlist" combine="interleave">
- <optional>
- <attribute name="form:is-tristate" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="form-checkbox-attlist" combine="interleave">
- <optional>
- <attribute name="form:state" a:defaultValue="unchecked">
<ref name="states" />
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:radio">
<ref name="form-radio-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-radio-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="current-selected" />
<ref name="common-disabled-attlist" />
<ref name="label" />
<ref name="common-printable-attlist" />
<ref name="selected" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
<ref name="common-data-field-attlist" />
<ref name="common-form-visual-effect-attlist" />
<ref name="common-form-relative-image-position-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:frame">
<ref name="form-frame-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-frame-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="for" />
<ref name="label" />
<ref name="common-printable-attlist" />
<ref name="common-title-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:image-frame">
<ref name="form-image-frame-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-image-frame-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="image-data" />
<ref name="common-printable-attlist" />
<ref name="common-readonly-attlist" />
<ref name="common-title-attlist" />
<ref name="common-data-field-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:hidden">
<ref name="form-hidden-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-hidden-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-value-attlist" />
</define>
- <define name="controls" combine="choice">
- <element name="form:grid">
<ref name="form-grid-attlist" />
<ref name="common-form-control-content" />
- <zeroOrMore>
<ref name="form-column" />
</zeroOrMore>
</element>
</define>
- <define name="form-grid-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
</define>
- <define name="form-column">
- <element name="form:column">
<ref name="form-column-attlist" />
- <oneOrMore>
<ref name="column-controls" />
</oneOrMore>
</element>
</define>
- <define name="form-column-attlist" combine="interleave">
<ref name="common-form-control-attlist" />
<ref name="label" />
<ref name="text-style-name" />
</define>
- <define name="text-style-name">
- <optional>
- <attribute name="form:text-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:value-range">
<ref name="form-value-range-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-value-range-attlist" combine="interleave">
<ref name="form-control-attlist" />
<ref name="common-disabled-attlist" />
<ref name="common-printable-attlist" />
<ref name="common-tab-attlist" />
<ref name="common-title-attlist" />
<ref name="common-value-attlist" />
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:max-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:min-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:step-size" a:defaultName="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:page-step-size">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:delay-for-repeat">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="form-value-range-attlist" combine="interleave">
- <optional>
- <attribute name="form:orientation">
- <choice>
<value>horizontal</value>
<value>vertical</value>
</choice>
</attribute>
</optional>
</define>
- <define name="controls" combine="choice">
- <element name="form:generic-control">
<ref name="form-generic-control-attlist" />
<ref name="common-form-control-content" />
</element>
</define>
- <define name="form-generic-control-attlist" combine="interleave">
<ref name="form-control-attlist" />
</define>
- <define name="common-form-control-attlist" combine="interleave">
- <optional>
- <attribute name="form:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-form-control-attlist" combine="interleave">
- <optional>
- <attribute name="form:control-implementation">
<ref name="namespacedToken" />
</attribute>
</optional>
</define>
- <define name="xforms-bind-attlist">
- <optional>
- <attribute name="xforms:bind">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="types">
- <choice>
<value>submit</value>
<value>reset</value>
<value>push</value>
<value>url</value>
</choice>
</define>
- <define name="button-type">
- <optional>
- <attribute name="form:button-type" a:defaultValue="push">
<ref name="types" />
</attribute>
</optional>
</define>
- <define name="common-control-id-attlist">
- <attribute name="form:id">
<ref name="ID" />
</attribute>
</define>
- <define name="current-selected">
- <optional>
- <attribute name="form:current-selected" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-value-attlist">
- <optional>
- <attribute name="form:value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-current-value-attlist">
- <optional>
- <attribute name="form:current-value">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-disabled-attlist">
- <optional>
- <attribute name="form:disabled" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="dropdown">
- <optional>
- <attribute name="form:dropdown" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="for">
- <optional>
- <attribute name="form:for">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="image-data">
- <optional>
- <attribute name="form:image-data">
<ref name="anyURI" />
</attribute>
</optional>
</define>
- <define name="label">
- <optional>
- <attribute name="form:label">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-maxlength-attlist">
- <optional>
- <attribute name="form:max-length">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="common-printable-attlist">
- <optional>
- <attribute name="form:printable" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-readonly-attlist">
- <optional>
- <attribute name="form:readonly" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="selected">
- <optional>
- <attribute name="form:selected" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="size">
- <optional>
- <attribute name="form:size">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="common-tab-attlist" combine="interleave">
- <optional>
- <attribute name="form:tab-index" a:defaultValue="0">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="common-tab-attlist" combine="interleave">
- <optional>
- <attribute name="form:tab-stop" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="target-frame">
- <optional>
- <attribute name="office:target-frame" a:defaultValue="_blank">
<ref name="targetFrameName" />
</attribute>
</optional>
</define>
- <define name="target-location">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</optional>
</define>
- <define name="common-title-attlist">
- <optional>
<attribute name="form:title" />
</optional>
</define>
- <define name="common-form-visual-effect-attlist" combine="interleave">
- <optional>
- <attribute name="form:visual-effect">
- <choice>
<value>flat</value>
<value>3d</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-form-relative-image-position-attlist"
combine="interleave">
- <choice>
- <optional>
- <attribute name="form:image-position" a:defaultValue="center">
<value>center</value>
</attribute>
</optional>
- <group>
- <attribute name="form:image-position">
- <choice>
<value>start</value>
<value>end</value>
<value>top</value>
<value>bottom</value>
</choice>
</attribute>
- <optional>
- <attribute name="form:image-align" a:defaultValue="center">
- <choice>
<value>start</value>
<value>center</value>
<value>end</value>
</choice>
</attribute>
</optional>
</group>
</choice>
</define>
- <define name="bound-column">
- <optional>
- <attribute name="form:bound-column">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-convert-empty-attlist">
- <optional>
- <attribute name="form:convert-empty-to-null" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-data-field-attlist">
- <optional>
- <attribute name="form:data-field">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="list-source">
- <optional>
- <attribute name="form:list-source">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="list-source-type">
- <optional>
- <attribute name="form:list-source-type">
- <choice>
<value>table</value>
<value>query</value>
<value>sql</value>
<value>sql-pass-through</value>
<value>value-list</value>
<value>table-fields</value>
</choice>
</attribute>
</optional>
</define>
- <define name="form-properties">
- <element name="form:properties">
- <oneOrMore>
<ref name="form-property" />
</oneOrMore>
</element>
</define>
- <define name="form-property" combine="choice">
- <element name="form:property">
<ref name="form-property-name" />
<ref name="form-property-value-and-type-attlist" />
</element>
</define>
- <define name="form-property-name" combine="interleave">
- <attribute name="form:property-name">
<ref name="string" />
</attribute>
</define>
- <define name="form-property-value-and-type-attlist" combine="interleave">
- <choice>
<ref name="common-value-and-type-attlist" />
- <attribute name="office:value-type">
<value>void</value>
</attribute>
</choice>
</define>
- <define name="form-property" combine="choice">
- <element name="form:list-property">
<ref name="form-property-name" />
<ref name="form-property-type-and-value-list" />
</element>
</define>
- <define name="form-property-type-and-value-list">
- <choice>
- <group>
- <attribute name="office:value-type">
<value>float</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:value">
<ref name="double" />
</attribute>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>percentage</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:value">
<ref name="double" />
</attribute>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>currency</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:value">
<ref name="double" />
</attribute>
- <optional>
- <attribute name="office:currency">
<ref name="string" />
</attribute>
</optional>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>date</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:date-value">
<ref name="dateOrDateTime" />
</attribute>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>time</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:time-value">
<ref name="duration" />
</attribute>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>boolean</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:boolean-value">
<ref name="boolean" />
</attribute>
</element>
</zeroOrMore>
</group>
- <group>
- <attribute name="office:value-type">
<value>string</value>
</attribute>
- <zeroOrMore>
- <element name="form:list-value">
- <attribute name="office:string-value">
<ref name="string" />
</attribute>
</element>
</zeroOrMore>
</group>
- <attribute name="office:value-type">
<value>void</value>
</attribute>
</choice>
</define>
- <define name="office-annotation">
- <element name="office:annotation">
<ref name="office-annotation-attlist" />
<ref name="draw-caption-attlist" />
<ref name="common-draw-position-attlist" />
<ref name="common-draw-size-attlist" />
<ref name="common-draw-shape-with-text-and-styles-attlist" />
- <optional>
<ref name="dc-creator" />
</optional>
- <optional>
<ref name="dc-date" />
</optional>
- <optional>
<ref name="meta-date-string" />
</optional>
- <zeroOrMore>
- <choice>
<ref name="text-p" />
<ref name="text-list" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="office-annotation-attlist" combine="interleave">
- <optional>
- <attribute name="office:display">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="meta-date-string">
- <element name="meta:date-string">
<ref name="string" />
</element>
</define>
- <define name="common-num-format-prefix-suffix-attlist"
combine="interleave">
- <optional>
- <attribute name="style:num-prefix">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:num-suffix">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-num-format-attlist" combine="interleave">
- <choice>
- <attribute name="style:num-format">
- <choice>
<value>1</value>
<value>i</value>
<value>I</value>
<ref name="string" />
<empty />
</choice>
</attribute>
- <group>
- <attribute name="style:num-format">
- <choice>
<value>a</value>
<value>A</value>
</choice>
</attribute>
<ref name="style-num-letter-sync-attlist" />
</group>
<empty />
</choice>
</define>
- <define name="style-num-letter-sync-attlist" combine="interleave">
- <optional>
- <attribute name="style:num-letter-sync">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="office-change-info">
- <element name="office:change-info">
<ref name="dc-creator" />
<ref name="dc-date" />
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</element>
</define>
- <define name="office-event-listeners">
- <element name="office:event-listeners">
- <zeroOrMore>
- <choice>
<ref name="script-event-listener" />
<ref name="presentation-event-listener" />
</choice>
</zeroOrMore>
</element>
</define>
- <define name="script-event-listener" combine="interleave">
- <element name="script:event-listener">
<ref name="script-event-listener-attlist" />
<empty />
</element>
</define>
- <define name="script-event-listener-attlist" combine="interleave">
- <attribute name="script:event-name">
<ref name="string" />
</attribute>
</define>
- <define name="script-event-listener-attlist" combine="interleave">
- <attribute name="script:language">
<ref name="string" />
</attribute>
</define>
- <define name="script-event-listener-attlist" combine="interleave">
- <choice>
- <attribute name="script:macro-name">
<ref name="string" />
</attribute>
- <group>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</group>
</choice>
</define>
- <define name="math-math">
- <element name="math:math">
<ref name="mathMarkup" />
</element>
</define>
- <!--
To avoid inclusion of the complete MathML schema, anything
-->
- <!--
is allowed within a math:math top-level element
-->
- <define name="mathMarkup">
- <zeroOrMore>
- <choice>
- <attribute>
<anyName />
</attribute>
<text />
- <element>
<anyName />
<ref name="mathMarkup" />
</element>
</choice>
</zeroOrMore>
</define>
- <define name="text-dde-connection-decl">
- <element name="text:dde-connection-decl">
<ref name="text-dde-connection-decl-attlist" />
<ref name="common-dde-connection-decl-attlist" />
</element>
</define>
- <define name="text-dde-connection-decl-attlist" combine="interleave">
- <attribute name="office:name">
<ref name="string" />
</attribute>
</define>
- <define name="common-dde-connection-decl-attlist" combine="interleave">
- <attribute name="office:dde-application">
<ref name="string" />
</attribute>
</define>
- <define name="common-dde-connection-decl-attlist" combine="interleave">
- <attribute name="office:dde-topic">
<ref name="string" />
</attribute>
</define>
- <define name="common-dde-connection-decl-attlist" combine="interleave">
- <attribute name="office:dde-item">
<ref name="string" />
</attribute>
</define>
- <define name="common-dde-connection-decl-attlist" combine="interleave">
- <optional>
- <attribute name="office:automatic-update" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="table-dde-link">
- <element name="table:dde-link">
<ref name="office-dde-source" />
<ref name="table-table" />
</element>
</define>
- <define name="office-dde-source">
- <element name="office:dde-source">
<ref name="office-dde-source-attlist" />
<ref name="common-dde-connection-decl-attlist" />
</element>
</define>
- <define name="office-dde-source-attlist" combine="interleave">
- <optional>
- <attribute name="office:name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="office-dde-source-attlist" combine="interleave">
- <optional>
- <attribute name="office:conversion-mode" a:defaultValue="into-default-style-
data-style">
- <choice>
<value>into-default-style-data-style</value>
<value>into-english-number</value>
<value>keep-text</value>
</choice>
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:animate">
<ref name="common-anim-target-attlist" />
<ref name="common-anim-named-target-attlist" />
<ref name="common-anim-values-attlist" />
<ref name="common-anim-spline-mode-attlist" />
<ref name="common-spline-anim-value-attlist" />
<ref name="common-timing-attlist" />
<ref name="common-anim-add-accum-attlist" />
</element>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:set">
<ref name="common-anim-target-attlist" />
<ref name="common-anim-named-target-attlist" />
<ref name="common-anim-set-values-attlist" />
<ref name="common-timing-attlist" />
<ref name="common-anim-add-accum-attlist" />
</element>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:animateMotion">
<ref name="anim-animate-motion-attlist" />
<ref name="common-anim-target-attlist" />
<ref name="common-anim-named-target-attlist" />
<ref name="common-anim-add-accum-attlist" />
<ref name="common-anim-values-attlist" />
<ref name="common-timing-attlist" />
<ref name="common-spline-anim-value-attlist" />
</element>
</define>
- <define name="anim-animate-motion-attlist" combine="interleave">
- <optional>
- <attribute name="svg:path">
<ref name="pathData" />
</attribute>
</optional>
</define>
- <define name="anim-animate-motion-attlist" combine="interleave">
- <optional>
- <attribute name="svg:origin">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="anim-animate-motion-attlist" combine="interleave">
- <optional>
- <attribute name="smil:calcMode" a:defaultValue="paced">
- <choice>
<value>discrete</value>
<value>linear</value>
<value>paced</value>
<value>spline</value>
</choice>
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:animateColor">
<ref name="common-anim-target-attlist" />
<ref name="common-anim-named-target-attlist" />
<ref name="common-anim-add-accum-attlist" />
<ref name="common-anim-values-attlist" />
<ref name="common-anim-spline-mode-attlist" />
<ref name="common-spline-anim-value-attlist" />
<ref name="anim-animate-color-attlist" />
<ref name="common-timing-attlist" />
</element>
</define>
- <define name="anim-animate-color-attlist" combine="interleave">
- <optional>
- <attribute name="anim:color-interpolation" a:defaultValue="rgb">
- <choice>
<value>rgb</value>
<value>hsl</value>
</choice>
</attribute>
</optional>
</define>
- <define name="anim-animate-color-attlist" combine="interleave">
- <optional>
- <attribute name="anim:color-interpolation-direction"
a:defaultValue="clockwise">
- <choice>
<value>clockwise</value>
<value>counter-clockwise</value>
</choice>
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:animateTransform">
<ref name="common-anim-target-attlist" />
<ref name="common-anim-named-target-attlist" />
<ref name="common-anim-add-accum-attlist" />
<ref name="common-anim-values-attlist" />
<ref name="anim-animate-transform-attlist" />
<ref name="common-timing-attlist" />
</element>
</define>
- <define name="anim-animate-transform-attlist" combine="interleave">
- <attribute name="svg:type">
- <choice>
<value>translate</value>
<value>scale</value>
<value>rotate</value>
<value>skewX</value>
<value>skewY</value>
</choice>
</attribute>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:transitionFilter">
<ref name="common-anim-target-attlist" />
<ref name="common-anim-add-accum-attlist" />
<ref name="common-anim-values-attlist" />
<ref name="common-anim-spline-mode-attlist" />
<ref name="anim-transition-filter-attlist" />
<ref name="common-timing-attlist" />
</element>
</define>
- <define name="anim-transition-filter-attlist" combine="interleave">
- <attribute name="smil:type">
<ref name="string" />
</attribute>
</define>
- <define name="anim-transition-filter-attlist" combine="interleave">
- <optional>
- <attribute name="smil:subtype">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="anim-transition-filter-attlist" combine="interleave">
- <optional>
- <attribute name="smil:direction" a:defaultValue="forward">
- <choice>
<value>forward</value>
<value>reverse</value>
</choice>
</attribute>
</optional>
</define>
- <define name="anim-transition-filter-attlist" combine="interleave">
- <optional>
- <attribute name="smil:fadeColor">
- <choice>
<value>forward</value>
<value>reverse</value>
</choice>
</attribute>
</optional>
</define>
- <define name="anim-transition-filter-attlist" combine="interleave">
- <optional>
- <attribute name="smil:mode" a:defaultValue="in">
- <choice>
<value>in</value>
<value>out</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-anim-attlist" combine="interleave">
- <optional>
- <attribute name="anim:id">
<ref name="ID" />
</attribute>
</optional>
</define>
- <define name="common-anim-target-attlist" combine="interleave">
- <optional>
- <attribute name="smil:targetElement">
<ref name="IDREF" />
</attribute>
</optional>
</define>
- <define name="common-anim-named-target-attlist" combine="interleave">
- <attribute name="smil:attributeName">
<ref name="string" />
</attribute>
</define>
- <define name="common-anim-target-attlist" combine="interleave">
- <optional>
- <attribute name="anim:sub-item">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-values-attlist" combine="interleave">
- <optional>
- <attribute name="smil:values">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-spline-mode-attlist" combine="interleave">
- <optional>
- <attribute name="smil:calcMode" a:defaultValue="discrete">
- <choice>
<value>discrete</value>
<value>linear</value>
<value>paced</value>
<value>spline</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-spline-anim-value-attlist" combine="interleave">
- <optional>
- <attribute name="smil:keyTimes">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-spline-anim-value-attlist" combine="interleave">
- <optional>
- <attribute name="smil:keySplines">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-add-accum-attlist" combine="interleave">
- <optional>
- <attribute name="smil:accumulate">
- <choice>
<value>none</value>
<value>sum</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-anim-add-accum-attlist" combine="interleave">
- <optional>
- <attribute name="smil:additive">
- <choice>
<value>replace</value>
<value>sum</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-anim-values-attlist" combine="interleave">
- <optional>
- <attribute name="anim:formula">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-set-values-attlist" combine="interleave">
- <optional>
- <attribute name="smil:to">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-anim-values-attlist" combine="interleave">
<ref name="common-anim-set-values-attlist" />
- <optional>
- <attribute name="smil:from">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="smil:by">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-begin-end-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:begin">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-begin-end-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:end">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-dur-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:dur">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-endsync-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:endsync">
- <choice>
<value>first</value>
<value>last</value>
<value>all</value>
<value>media</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-repeat-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:repeatDur">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="smil:repeatCount">
- <choice>
<ref name="nonNegativeInteger" />
<value>indefinite</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-fill-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:fill">
- <choice>
<value>remove</value>
<value>freeze</value>
<value>hold</value>
<value>auto</value>
<value>default</value>
<value>transition</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-fill-default-attlist" combine="interleave">
- <optional>
- <attribute name="smil:fillDefault">
- <choice>
<value>remove</value>
<value>freeze</value>
<value>hold</value>
<value>transition</value>
<value>auto</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-restart-timing-attlist" combine="interleave">
- <optional>
- <attribute name="smil:restart" a:defaultValue="default">
- <choice>
<value>never</value>
<value>always</value>
<value>whenNotActive</value>
<value>default</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-restart-default-attlist" combine="interleave">
- <optional>
- <attribute name="smil:restartDefault" a:defaultValue="inherit">
- <choice>
<value>never</value>
<value>always</value>
<value>whenNotActive</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-time-manip-attlist" combine="interleave">
- <optional>
- <attribute name="smil:accelerate" a:defaultValue="0.0">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="common-time-manip-attlist" combine="interleave">
- <optional>
- <attribute name="smil:decelerate" a:defaultValue="0.0">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="common-time-manip-attlist" combine="interleave">
- <optional>
- <attribute name="smil:autoReverse" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:par">
<ref name="common-anim-attlist" />
<ref name="common-timing-attlist" />
<ref name="common-endsync-timing-attlist" />
- <zeroOrMore>
<ref name="animation-element" />
</zeroOrMore>
</element>
</define>
- <define name="common-basic-timing-attlist" combine="interleave">
<ref name="common-begin-end-timing-attlist" />
<ref name="common-dur-timing-attlist" />
<ref name="common-repeat-timing-attlist" />
</define>
- <define name="common-timing-attlist" combine="interleave">
<ref name="common-basic-timing-attlist" />
<ref name="common-restart-timing-attlist" />
<ref name="common-restart-default-attlist" />
<ref name="common-fill-timing-attlist" />
<ref name="common-fill-default-attlist" />
<ref name="common-time-manip-attlist" />
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:seq">
<ref name="common-anim-attlist" />
<ref name="common-endsync-timing-attlist" />
<ref name="common-timing-attlist" />
- <zeroOrMore>
<ref name="animation-element" />
</zeroOrMore>
</element>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:iterate">
<ref name="common-anim-attlist" />
<ref name="anim-iterate-attlist" />
<ref name="common-timing-attlist" />
<ref name="common-endsync-timing-attlist" />
- <zeroOrMore>
<ref name="animation-element" />
</zeroOrMore>
</element>
</define>
- <define name="anim-iterate-attlist" combine="interleave">
<ref name="common-anim-target-attlist" />
</define>
- <define name="anim-iterate-attlist" combine="interleave">
- <optional>
- <attribute name="anim:iterate-type">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="anim-iterate-attlist" combine="interleave">
- <optional>
- <attribute name="anim:iterate-interval">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:audio">
<ref name="common-anim-attlist" />
<ref name="anim-audio-attlist" />
<ref name="common-basic-timing-attlist" />
</element>
</define>
- <define name="anim-audio-attlist" combine="interleave">
- <optional>
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</optional>
</define>
- <define name="anim-audio-attlist" combine="interleave">
- <optional>
- <attribute name="anim:audio-level">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="animation-element" combine="choice">
- <element name="anim:command">
<ref name="common-anim-attlist" />
<ref name="anim-command-attlist" />
<ref name="common-begin-end-timing-attlist" />
<ref name="common-anim-target-attlist" />
- <zeroOrMore>
- <element name="anim:param">
<attribute name="anim:name" />
<attribute name="anim:value" />
</element>
</zeroOrMore>
</element>
</define>
- <define name="anim-command-attlist" combine="interleave">
- <attribute name="anim:command">
<ref name="string" />
</attribute>
</define>
- <define name="style-style">
- <element name="style:style">
<ref name="style-style-attlist" />
<ref name="style-style-content" />
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="style-style-attlist" combine="interleave">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:parent-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:next-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:list-style-name">
- <choice>
<ref name="styleName" />
<empty />
</choice>
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:master-page-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:auto-update" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:data-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:class">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:default-outline-level">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-map">
- <element name="style:map">
<ref name="style-map-attlist" />
<empty />
</element>
</define>
- <define name="style-map-attlist" combine="interleave">
- <attribute name="style:condition">
<ref name="string" />
</attribute>
</define>
- <define name="style-map-attlist" combine="interleave">
- <attribute name="style:apply-style-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="style-map-attlist" combine="interleave">
- <optional>
- <attribute name="style:base-cell-address">
<ref name="cellAddress" />
</attribute>
</optional>
</define>
- <define name="style-default-style">
- <element name="style:default-style">
<ref name="style-style-content" />
</element>
</define>
- <define name="style-page-layout">
- <element name="style:page-layout">
<ref name="style-page-layout-attlist" />
- <optional>
<ref name="style-page-layout-properties" />
</optional>
- <optional>
<ref name="style-header-style" />
</optional>
- <optional>
<ref name="style-footer-style" />
</optional>
</element>
</define>
- <define name="style-page-layout-attlist" combine="interleave">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="style-page-layout-attlist" combine="interleave">
- <optional>
- <attribute name="style:page-usage" a:defaultValue="all">
- <choice>
<value>all</value>
<value>left</value>
<value>right</value>
<value>mirrored</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-header-style">
- <element name="style:header-style">
- <optional>
<ref name="style-header-footer-properties" />
</optional>
</element>
</define>
- <define name="style-footer-style">
- <element name="style:footer-style">
- <optional>
<ref name="style-header-footer-properties" />
</optional>
</element>
</define>
- <define name="style-master-page">
- <element name="style:master-page">
<ref name="style-master-page-attlist" />
- <optional>
<ref name="style-header" />
- <optional>
<ref name="style-header-left" />
</optional>
</optional>
- <optional>
<ref name="style-footer" />
- <optional>
<ref name="style-footer-left" />
</optional>
</optional>
- <optional>
<ref name="office-forms" />
</optional>
- <zeroOrMore>
<ref name="style-style" />
</zeroOrMore>
- <zeroOrMore>
<ref name="shape" />
</zeroOrMore>
- <optional>
<ref name="presentation-notes" />
</optional>
</element>
</define>
- <define name="style-master-page-attlist" combine="interleave">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="style-master-page-attlist" combine="interleave">
- <optional>
- <attribute name="style:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-master-page-attlist" combine="interleave">
- <attribute name="style:page-layout-name">
<ref name="styleNameRef" />
</attribute>
</define>
- <define name="style-master-page-attlist" combine="interleave">
- <optional>
- <attribute name="draw:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-master-page-attlist" combine="interleave">
- <optional>
- <attribute name="style:next-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-header">
- <element name="style:header">
<ref name="common-style-header-footer-attlist" />
<ref name="header-footer-content" />
</element>
</define>
- <define name="style-footer">
- <element name="style:footer">
<ref name="common-style-header-footer-attlist" />
<ref name="header-footer-content" />
</element>
</define>
- <define name="style-header-left">
- <element name="style:header-left">
<ref name="common-style-header-footer-attlist" />
<ref name="header-footer-content" />
</element>
</define>
- <define name="style-footer-left">
- <element name="style:footer-left">
<ref name="common-style-header-footer-attlist" />
<ref name="header-footer-content" />
</element>
</define>
- <define name="header-footer-content">
- <choice>
- <group>
<ref name="text-tracked-changes" />
<ref name="text-decls" />
- <zeroOrMore>
- <choice>
<ref name="text-h" />
<ref name="text-p" />
<ref name="text-list" />
<ref name="table-table" />
<ref name="text-section" />
<ref name="text-table-of-content" />
<ref name="text-illustration-index" />
<ref name="text-table-index" />
<ref name="text-object-index" />
<ref name="text-user-index" />
<ref name="text-alphabetical-index" />
<ref name="text-bibliography" />
<ref name="text-index-title" />
<ref name="change-marks" />
</choice>
</zeroOrMore>
</group>
- <group>
- <optional>
<ref name="style-region-left" />
</optional>
- <optional>
<ref name="style-region-center" />
</optional>
- <optional>
<ref name="style-region-right" />
</optional>
</group>
</choice>
</define>
- <define name="common-style-header-footer-attlist" combine="interleave">
- <optional>
- <attribute name="style:display" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-region-left">
- <element name="style:region-left">
<ref name="region-content" />
</element>
</define>
- <define name="style-region-center">
- <element name="style:region-center">
<ref name="region-content" />
</element>
</define>
- <define name="style-region-right">
- <element name="style:region-right">
<ref name="region-content" />
</element>
</define>
- <define name="region-content">
- <zeroOrMore>
<ref name="text-p" />
</zeroOrMore>
</define>
- <define name="presentation-notes">
- <element name="presentation:notes">
<ref name="common-presentation-header-footer-attlist" />
<ref name="presentation-notes-attlist" />
<ref name="office-forms" />
- <zeroOrMore>
<ref name="shape" />
</zeroOrMore>
</element>
</define>
- <define name="presentation-notes-attlist" combine="interleave">
- <optional>
- <attribute name="style:page-layout-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="presentation-notes-attlist" combine="interleave">
- <optional>
- <attribute name="draw:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="table-table-template">
- <element name="table:table-template">
<ref name="table-table-template-attlist" />
- <optional>
<ref name="table-first-row" />
</optional>
- <optional>
<ref name="table-last-row" />
</optional>
- <optional>
<ref name="table-first-column" />
</optional>
- <optional>
<ref name="table-last-column" />
</optional>
- <choice>
<ref name="table-body" />
- <group>
<ref name="table-even-rows" />
<ref name="table-odd-rows" />
</group>
- <group>
<ref name="table-even-columns" />
<ref name="table-odd-columns" />
</group>
</choice>
</element>
</define>
- <define name="table-table-template-attlist" combine="interleave">
- <attribute name="text:name">
<ref name="string" />
</attribute>
</define>
- <define name="table-table-template-attlist" combine="interleave">
- <attribute name="text:first-row-start-column">
<ref name="rowOrCol" />
</attribute>
</define>
- <define name="table-table-template-attlist" combine="interleave">
- <attribute name="text:first-row-end-column">
<ref name="rowOrCol" />
</attribute>
</define>
- <define name="table-table-template-attlist" combine="interleave">
- <attribute name="text:last-row-start-column">
<ref name="rowOrCol" />
</attribute>
</define>
- <define name="table-table-template-attlist" combine="interleave">
- <attribute name="text:last-row-end-column">
<ref name="rowOrCol" />
</attribute>
</define>
- <define name="rowOrCol">
- <choice>
<value>row</value>
<value>column</value>
</choice>
</define>
- <define name="table-first-row">
- <element name="table:first-row">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-last-row">
- <element name="table:last-row">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-first-column">
- <element name="table:first-column">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-last-column">
- <element name="table:last-column">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-body">
- <element name="table:body">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-even-rows">
- <element name="table:even-rows">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-odd-rows">
- <element name="table:odd-rows">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-even-columns">
- <element name="table:even-columns">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="table-odd-columns">
- <element name="table:odd-columns">
<ref name="common-table-template-attlist" />
<empty />
</element>
</define>
- <define name="common-table-template-attlist" combine="interleave">
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
- <attribute name="text:paragraph-style-name">
- <optional>
<ref name="styleNameRef" />
</optional>
</attribute>
</define>
- <define name="style-font-face">
- <element name="style:font-face">
<ref name="style-font-face-attlist" />
- <optional>
<ref name="svg-font-face-src" />
</optional>
- <optional>
<ref name="svg-definition-src" />
</optional>
</element>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <optional>
- <attribute name="svg:font-family">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:font-style">
<ref name="fontStyle" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:font-variant">
<ref name="fontVariant" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:font-weight">
<ref name="fontWeight" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:font-stretch">
- <choice>
<value>normal</value>
<value>ultra-condensed</value>
<value>extra-condensed</value>
<value>condensed</value>
<value>semi-condensed</value>
<value>semi-expanded</value>
<value>expanded</value>
<value>extra-expanded</value>
<value>ultra-expanded</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:font-size">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
<attribute name="svg:unicode-range" />
</optional>
- <optional>
- <attribute name="svg:units-per-em">
<ref name="integer" />
</attribute>
</optional>
- <optional>
<attribute name="svg:panose-1" />
</optional>
- <optional>
- <attribute name="svg:stemv">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:stemh">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:slope">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:cap-height">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:x-height">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:accent-height">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:ascent">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:descent">
<ref name="integer" />
</attribute>
</optional>
- <optional>
<attribute name="svg:widths" />
</optional>
- <optional>
<attribute name="svg:bbox" />
</optional>
- <optional>
- <attribute name="svg:ideographic">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:alphabetic">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:mathematical">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:hanging">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:v-ideographic">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:v-alphabetic">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:v-mathematical">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:v-hanging">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:underline-position">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:underline-thickness">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:strikethrough-position">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:strikethrough-thickness">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:overline-position">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:overline-thickness">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="svg-font-face-src">
- <element name="svg:font-face-src">
- <oneOrMore>
- <choice>
<ref name="svg-font-face-uri" />
<ref name="svg-font-face-name" />
</choice>
</oneOrMore>
</element>
</define>
- <define name="svg-font-face-uri">
- <element name="svg:font-face-uri">
<ref name="common-svg-font-face-xlink-attlist" />
- <zeroOrMore>
<ref name="svg-font-face-format" />
</zeroOrMore>
</element>
</define>
- <define name="svg-font-face-format">
- <element name="svg:font-face-format">
- <optional>
<attribute name="svg:string" />
</optional>
<empty />
</element>
</define>
- <define name="svg-font-face-name">
- <element name="svg:font-face-name">
- <optional>
<attribute name="svg:name" />
</optional>
<empty />
</element>
</define>
- <define name="svg-definition-src">
- <element name="svg:definition-src">
<ref name="common-svg-font-face-xlink-attlist" />
<empty />
</element>
</define>
- <define name="common-svg-font-face-xlink-attlist" combine="interleave">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
<value>simple</value>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onRequest">
<value>onRequest</value>
</attribute>
</optional>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <attribute name="style:name">
<ref name="string" />
</attribute>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-adornments">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-family-generic">
<ref name="fontFamilyGeneric" />
</attribute>
</optional>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-pitch">
<ref name="fontPitch" />
</attribute>
</optional>
</define>
- <define name="style-font-face-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-charset">
<ref name="textEncoding" />
</attribute>
</optional>
</define>
- <define name="number-number-style">
- <element name="number:number-style">
<ref name="common-data-style-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <optional>
<ref name="number-text" />
</optional>
- <optional>
<ref name="any-number" />
- <optional>
<ref name="number-text" />
</optional>
</optional>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="any-number">
- <choice>
<ref name="number-number" />
<ref name="number-scientific-number" />
<ref name="number-fraction" />
</choice>
</define>
- <define name="number-number">
- <element name="number:number">
<ref name="number-number-attlist" />
<ref name="common-decimal-places-attlist" />
<ref name="common-number-attlist" />
- <zeroOrMore>
<ref name="number-embedded-text" />
</zeroOrMore>
</element>
</define>
- <define name="number-number-attlist" combine="interleave">
- <optional>
<attribute name="number:decimal-replacement" />
</optional>
</define>
- <define name="number-number-attlist" combine="interleave">
- <optional>
- <attribute name="number:display-factor" a:defaultValue="1">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="number-embedded-text">
- <element name="number:embedded-text">
<ref name="number-embedded-text-attlist" />
<text />
</element>
</define>
- <define name="number-embedded-text-attlist" combine="interleave">
- <attribute name="number:position">
<ref name="integer" />
</attribute>
</define>
- <define name="number-scientific-number">
- <element name="number:scientific-number">
<ref name="number-scientific-number-attlist" />
<ref name="common-decimal-places-attlist" />
<ref name="common-number-attlist" />
<empty />
</element>
</define>
- <define name="number-scientific-number-attlist" combine="interleave">
- <optional>
- <attribute name="number:min-exponent-digits">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="number-fraction">
- <element name="number:fraction">
<ref name="number-fraction-attlist" />
<ref name="common-number-attlist" />
<empty />
</element>
</define>
- <define name="number-fraction-attlist" combine="interleave">
- <optional>
- <attribute name="number:min-numerator-digits">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="number-fraction-attlist" combine="interleave">
- <optional>
- <attribute name="number:min-denominator-digits">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="number-fraction-attlist" combine="interleave">
- <optional>
- <attribute name="number:denominator-value">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="number-currency-style">
- <element name="number:currency-style">
<ref name="common-data-style-attlist" />
<ref name="common-auto-reorder-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <optional>
<ref name="number-text" />
</optional>
- <optional>
- <choice>
- <group>
<ref name="number-and-text" />
- <optional>
<ref name="currency-symbol-and-text" />
</optional>
</group>
- <group>
<ref name="currency-symbol-and-text" />
- <optional>
<ref name="number-and-text" />
</optional>
</group>
</choice>
</optional>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="currency-symbol-and-text">
<ref name="number-currency-symbol" />
- <optional>
<ref name="number-text" />
</optional>
</define>
- <define name="number-and-text">
<ref name="number-number" />
- <optional>
<ref name="number-text" />
</optional>
</define>
- <define name="number-currency-symbol">
- <element name="number:currency-symbol">
<ref name="number-currency-symbol-attlist" />
<text />
</element>
</define>
- <define name="number-currency-symbol-attlist" combine="interleave">
- <optional>
- <attribute name="number:language">
<ref name="languageCode" />
</attribute>
</optional>
- <optional>
- <attribute name="number:country">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="number-percentage-style">
- <element name="number:percentage-style">
<ref name="common-data-style-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <optional>
<ref name="number-text" />
</optional>
- <optional>
<ref name="number-and-text" />
</optional>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="number-date-style">
- <element name="number:date-style">
<ref name="common-data-style-attlist" />
<ref name="common-auto-reorder-attlist" />
<ref name="common-format-source-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <!--
This DTD does not reflect the fact that some elements must not
-->
- <!--
occur more than once.
-->
- <optional>
<ref name="number-text" />
</optional>
- <oneOrMore>
<ref name="any-date" />
- <optional>
<ref name="number-text" />
</optional>
</oneOrMore>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="any-date">
- <choice>
<ref name="number-day" />
<ref name="number-month" />
<ref name="number-year" />
<ref name="number-era" />
<ref name="number-day-of-week" />
<ref name="number-week-of-year" />
<ref name="number-quarter" />
<ref name="number-hours" />
<ref name="number-am-pm" />
<ref name="number-minutes" />
<ref name="number-seconds" />
</choice>
</define>
- <define name="number-day">
- <element name="number:day">
<ref name="number-day-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-day-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-month">
- <element name="number:month">
<ref name="number-month-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-month-attlist" combine="interleave">
- <optional>
- <attribute name="number:textual" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="number-month-attlist" combine="interleave">
- <optional>
- <attribute name="number:possessive-form" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="number-month-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-year">
- <element name="number:year">
<ref name="number-year-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-year-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-era">
- <element name="number:era">
<ref name="number-era-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-era-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-day-of-week">
- <element name="number:day-of-week">
<ref name="number-day-of-week-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-day-of-week-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-week-of-year">
- <element name="number:week-of-year">
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-quarter">
- <element name="number:quarter">
<ref name="number-quarter-attlist" />
<ref name="common-calendar-attlist" />
<empty />
</element>
</define>
- <define name="number-quarter-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-time-style">
- <element name="number:time-style">
<ref name="number-time-style-attlist" />
<ref name="common-data-style-attlist" />
<ref name="common-format-source-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <!--
This DTD does not reflect the fact that some elements must not
-->
- <!--
occur more than once.
-->
- <optional>
<ref name="number-text" />
</optional>
- <oneOrMore>
<ref name="any-time" />
- <optional>
<ref name="number-text" />
</optional>
</oneOrMore>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="any-time">
- <choice>
<ref name="number-hours" />
<ref name="number-am-pm" />
<ref name="number-minutes" />
<ref name="number-seconds" />
</choice>
</define>
- <define name="number-time-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:truncate-on-overflow" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="number-hours">
- <element name="number:hours">
<ref name="number-hours-attlist" />
<empty />
</element>
</define>
- <define name="number-hours-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-minutes">
- <element name="number:minutes">
<ref name="number-minutes-attlist" />
<empty />
</element>
</define>
- <define name="number-minutes-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-seconds">
- <element name="number:seconds">
<ref name="number-seconds-attlist" />
<empty />
</element>
</define>
- <define name="number-seconds-attlist" combine="interleave">
- <optional>
- <attribute name="number:style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="number-seconds-attlist" combine="interleave">
- <optional>
- <attribute name="number:decimal-places" a:defaultValue="0">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="number-am-pm">
- <element name="number:am-pm">
<empty />
</element>
</define>
- <define name="number-boolean-style">
- <element name="number:boolean-style">
<ref name="common-data-style-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <optional>
<ref name="number-text" />
</optional>
- <optional>
<ref name="number-boolean" />
- <optional>
<ref name="number-text" />
</optional>
</optional>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="number-boolean">
- <element name="number:boolean">
<empty />
</element>
</define>
- <define name="number-text-style">
- <element name="number:text-style">
<ref name="common-data-style-attlist" />
- <optional>
<ref name="style-text-properties" />
</optional>
- <optional>
<ref name="number-text" />
</optional>
- <zeroOrMore>
<ref name="number-text-content" />
- <optional>
<ref name="number-text" />
</optional>
</zeroOrMore>
- <zeroOrMore>
<ref name="style-map" />
</zeroOrMore>
</element>
</define>
- <define name="number-text">
- <element name="number:text">
<text />
</element>
</define>
- <define name="number-text-content">
- <element name="number:text-content">
<empty />
</element>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="style-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:language">
<ref name="languageCode" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:country">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
<attribute name="number:title" />
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="style:volatile">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-auto-reorder-attlist" combine="interleave">
- <optional>
- <attribute name="number:automatic-order" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-format-source-attlist">
- <optional>
- <attribute name="number:format-source" a:defaultValue="fixed">
- <choice>
<value>fixed</value>
<value>language</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:transliteration-format" a:defaultValue="1">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:transliteration-language">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:transliteration-country">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="common-data-style-attlist" combine="interleave">
- <optional>
- <attribute name="number:transliteration-style" a:defaultValue="short">
- <choice>
<value>short</value>
<value>medium</value>
<value>long</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-decimal-places-attlist">
- <optional>
- <attribute name="number:decimal-places">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="common-number-attlist" combine="interleave">
- <optional>
- <attribute name="number:min-integer-digits">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="common-number-attlist" combine="interleave">
- <optional>
- <attribute name="number:grouping" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="common-calendar-attlist" combine="interleave">
- <optional>
- <attribute name="number:calendar">
- <choice>
<value>gregorian</value>
<value>gengou</value>
<value>ROC</value>
<value>hanja_yoil</value>
<value>hanja</value>
<value>hijri</value>
<value>jewish</value>
<value>buddhist</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>text</value>
</attribute>
- <optional>
<ref name="style-text-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>paragraph</value>
</attribute>
- <optional>
<ref name="style-paragraph-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>section</value>
</attribute>
- <optional>
<ref name="style-section-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>ruby</value>
</attribute>
- <optional>
<ref name="style-ruby-properties" />
</optional>
</group>
</define>
- <define name="text-linenumbering-configuration">
- <element name="text:linenumbering-configuration">
<ref name="text-linenumbering-configuration-attlist" />
- <optional>
<ref name="text-linenumbering-separator" />
</optional>
</element>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:number-lines" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
<ref name="common-num-format-attlist" />
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:increment">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:number-position" a:defaultValue="left">
- <choice>
<value>left</value>
<value>right</value>
<value>inner</value>
<value>outer</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:offset">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:count-empty-lines" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:count-in-text-boxes" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-configuration-attlist"
combine="interleave">
- <optional>
- <attribute name="text:restart-on-page" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-linenumbering-separator">
- <element name="text:linenumbering-separator">
- <optional>
- <attribute name="text:increment">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
<text />
</element>
</define>
- <define name="text-notes-configuration">
- <element name="text:notes-configuration">
<ref name="text-notes-configuration-content" />
</element>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
<ref name="text-note-class" />
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:citation-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:citation-body-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:default-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:master-page-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:start-value">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
<ref name="common-num-format-prefix-suffix-attlist" />
- <optional>
<ref name="common-num-format-attlist" />
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:start-numbering-at">
- <choice>
<value>document</value>
<value>chapter</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <attribute name="text:footnotes-position">
- <choice>
<value>text</value>
<value>page</value>
<value>section</value>
<value>document</value>
</choice>
</attribute>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <element name="text:note-continuation-notice-forward">
<text />
</element>
</optional>
</define>
- <define name="text-notes-configuration-content" combine="interleave">
- <optional>
- <element name="text:note-continuation-notice-backward">
<text />
</element>
</optional>
</define>
- <define name="text-bibliography-configuration">
- <element name="text:bibliography-configuration">
<ref name="text-bibliography-configuration-attlist" />
- <zeroOrMore>
<ref name="text-sort-key" />
</zeroOrMore>
</element>
</define>
- <define name="text-bibliography-configuration-attlist" combine="interleave">
- <optional>
- <attribute name="text:prefix">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="text:suffix">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-bibliography-configuration-attlist" combine="interleave">
- <optional>
- <attribute name="text:numbered-entries" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-bibliography-configuration-attlist" combine="interleave">
- <optional>
- <attribute name="text:sort-by-position" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:language">
<ref name="languageCode" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:country">
<ref name="countryCode" />
</attribute>
</optional>
- <optional>
- <attribute name="text:sort-algorithm">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-sort-key">
- <element name="text:sort-key">
<ref name="text-sort-key-attlist" />
<empty />
</element>
</define>
- <define name="text-sort-key-attlist" combine="interleave">
- <attribute name="text:key">
- <choice>
<value>address</value>
<value>annote</value>
<value>author</value>
<value>bibliography-type</value>
<value>booktitle</value>
<value>chapter</value>
<value>custom1</value>
<value>custom2</value>
<value>custom3</value>
<value>custom4</value>
<value>custom5</value>
<value>edition</value>
<value>editor</value>
<value>howpublished</value>
<value>identifier</value>
<value>institution</value>
<value>isbn</value>
<value>issn</value>
<value>journal</value>
<value>month</value>
<value>note</value>
<value>number</value>
<value>organizations</value>
<value>pages</value>
<value>publisher</value>
<value>report-type</value>
<value>school</value>
<value>series</value>
<value>title</value>
<value>url</value>
<value>volume</value>
<value>year</value>
</choice>
</attribute>
- <optional>
- <attribute name="text:sort-ascending" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-list-style">
- <element name="text:list-style">
<ref name="text-list-style-attr" />
- <zeroOrMore>
<ref name="text-list-style-content" />
</zeroOrMore>
</element>
</define>
- <define name="text-list-style-attr" combine="interleave">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="text-list-style-attr" combine="interleave">
- <optional>
- <attribute name="style:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="text-list-style-attr" combine="interleave">
- <optional>
- <attribute name="text:consecutive-numbering" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="text-list-level-style-attr">
- <attribute name="text:level">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="text-list-style-content" combine="choice">
- <element name="text:list-level-style-number">
<ref name="text-list-level-style-attr" />
<ref name="text-list-level-style-number-attr" />
- <optional>
<ref name="style-list-level-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</element>
</define>
- <define name="text-list-level-style-number-attr" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-list-level-style-number-attr" combine="interleave">
<ref name="common-num-format-attlist" />
<ref name="common-num-format-prefix-suffix-attlist" />
</define>
- <define name="text-list-level-style-number-attr" combine="interleave">
- <optional>
- <attribute name="text:display-levels" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="text-list-level-style-number-attr" combine="interleave">
- <optional>
- <attribute name="text:start-value" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="text-list-style-content" combine="choice">
- <element name="text:list-level-style-bullet">
<ref name="text-list-level-style-attr" />
<ref name="text-list-level-style-bullet-attr" />
- <optional>
<ref name="style-list-level-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</element>
</define>
- <define name="text-list-level-style-bullet-attr" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-list-level-style-bullet-attr" combine="interleave">
- <attribute name="text:bullet-char">
<ref name="character" />
</attribute>
</define>
- <define name="text-list-level-style-bullet-attr" combine="interleave">
<ref name="common-num-format-prefix-suffix-attlist" />
</define>
- <define name="text-list-level-style-bullet-attr" combine="interleave">
- <optional>
- <attribute name="text:bullet-relative-size">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="text-list-style-content" combine="choice">
- <element name="text:list-level-style-image">
<ref name="text-list-level-style-attr" />
<ref name="text-list-level-style-image-attr" />
- <optional>
<ref name="style-list-level-properties" />
</optional>
</element>
</define>
- <define name="text-list-level-style-image-attr" combine="interleave">
- <choice>
<ref name="common-draw-data-attlist" />
<ref name="office-binary-data" />
</choice>
</define>
- <define name="text-outline-style">
- <element name="text:outline-style">
- <oneOrMore>
<ref name="text-outline-level-style" />
</oneOrMore>
</element>
</define>
- <define name="text-outline-level-style">
- <element name="text:outline-level-style">
<ref name="text-outline-level-style-attlist" />
- <optional>
<ref name="style-list-level-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</element>
</define>
- <define name="text-outline-level-style-attlist" combine="interleave">
- <attribute name="text:level">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="text-outline-level-style-attlist" combine="interleave">
- <optional>
- <attribute name="text:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="text-outline-level-style-attlist" combine="interleave">
<ref name="common-num-format-attlist" />
<ref name="common-num-format-prefix-suffix-attlist" />
</define>
- <define name="text-outline-level-style-attlist" combine="interleave">
- <optional>
- <attribute name="text:display-levels" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="text-outline-level-style-attlist" combine="interleave">
- <optional>
- <attribute name="text:start-value" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>table</value>
</attribute>
- <optional>
<ref name="style-table-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>table-column</value>
</attribute>
- <optional>
<ref name="style-table-column-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>table-row</value>
</attribute>
- <optional>
<ref name="style-table-row-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>table-cell</value>
</attribute>
- <optional>
<ref name="style-table-cell-properties" />
</optional>
- <optional>
<ref name="style-paragraph-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</group>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
- <choice>
<value>graphic</value>
<value>presentation</value>
</choice>
</attribute>
- <optional>
<ref name="style-graphic-properties" />
</optional>
- <optional>
<ref name="style-paragraph-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</group>
</define>
- <define name="style-graphic-properties">
- <element name="style:graphic-properties">
<ref name="style-graphic-properties-content" />
</element>
</define>
- <define name="style-graphic-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-graphic-properties-content-strict">
<ref name="style-graphic-properties-attlist" />
<ref name="style-graphic-fill-properties-attlist" />
<ref name="style-graphic-properties-elements" />
</define>
- <define name="style-graphic-properties-elements">
<empty />
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>drawing-page</value>
</attribute>
- <optional>
<ref name="style-drawing-page-properties" />
</optional>
</group>
</define>
- <define name="style-drawing-page-properties">
- <element name="style:drawing-page-properties">
<ref name="style-drawing-page-properties-content" />
</element>
</define>
- <define name="style-drawing-page-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-drawing-page-properties-content-strict">
<ref name="style-graphic-fill-properties-attlist" />
<ref name="style-drawing-page-properties-attlist" />
<ref name="style-drawing-page-properties-elements" />
</define>
- <define name="draw-gradient">
- <element name="draw:gradient">
<ref name="common-draw-gradient-attlist" />
<ref name="draw-gradient-attlist" />
<empty />
</element>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</optional>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <attribute name="draw:style">
<ref name="gradient-style" />
</attribute>
</define>
- <define name="gradient-style">
- <choice>
<value>linear</value>
<value>axial</value>
<value>radial</value>
<value>ellipsoid</value>
<value>square</value>
<value>rectangular</value>
</choice>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:cx">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:cy">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:end-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-intensity">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:end-intensity">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:angle">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="common-draw-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:border">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="svg-linearGradient">
- <element name="svg:linearGradient">
<ref name="common-svg-gradient-attlist" />
- <optional>
- <attribute name="svg:x1" a:defaultValue="0%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:y1" a:defaultValue="0%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:x2" a:defaultValue="100%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:y2" a:defaultValue="100%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <zeroOrMore>
<ref name="svg-stop" />
</zeroOrMore>
</element>
</define>
- <define name="svg-radialGradient">
- <element name="svg:radialGradient">
<ref name="common-svg-gradient-attlist" />
- <optional>
- <attribute name="svg:cx" a:defaultValue="50%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:cy" a:defaultValue="50%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:r" a:defaultValue="50%">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:fx">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:fy">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <zeroOrMore>
<ref name="svg-stop" />
</zeroOrMore>
</element>
</define>
- <define name="svg-stop">
- <element name="svg:stop">
- <attribute name="svg:offset">
- <choice>
<ref name="double" />
<ref name="percent" />
</choice>
</attribute>
- <optional>
- <attribute name="svg:stop-color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:stop-opacity">
<ref name="double" />
</attribute>
</optional>
</element>
</define>
- <define name="common-svg-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="svg:gradientUnits" a:defaultValue="objectBoundingBox">
<value>objectBoundingBox</value>
</attribute>
</optional>
- <optional>
- <attribute name="svg:gradientTransform">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:spreadMethod" a:defaultValue="pad">
- <choice>
<value>pad</value>
<value>reflect</value>
<value>repeat</value>
</choice>
</attribute>
</optional>
</define>
- <define name="common-svg-gradient-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="common-svg-gradient-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-hatch">
- <element name="draw:hatch">
<ref name="draw-hatch-attlist" />
<empty />
</element>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <attribute name="draw:style">
- <choice>
<value>single</value>
<value>double</value>
<value>triple</value>
</choice>
</attribute>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <optional>
- <attribute name="draw:color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <optional>
- <attribute name="draw:distance">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="draw-hatch-attlist" combine="interleave">
- <optional>
- <attribute name="draw:rotation">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="draw-fill-image">
- <element name="draw:fill-image">
<ref name="draw-fill-image-attlist" />
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
- <optional>
- <attribute name="xlink:type" a:defaultValue="simple">
- <choice>
<value>simple</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:show" a:defaultValue="embed">
- <choice>
<value>embed</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="xlink:actuate" a:defaultValue="onLoad">
- <choice>
<value>onLoad</value>
</choice>
</attribute>
</optional>
<empty />
</element>
</define>
- <define name="draw-fill-image-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="draw-fill-image-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-fill-image-attlist" combine="interleave">
- <optional>
- <attribute name="svg:width">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="svg:height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="draw-opacity">
- <element name="draw:opacity">
<ref name="common-draw-gradient-attlist" />
<ref name="draw-opacity-attlist" />
<empty />
</element>
</define>
- <define name="draw-opacity-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:end">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="draw-marker">
- <element name="draw:marker">
<ref name="draw-marker-attlist" />
<ref name="common-draw-viewbox-attlist" />
<ref name="common-draw-path-data-attlist" />
<empty />
</element>
</define>
- <define name="draw-marker-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="draw-marker-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-stroke-dash">
- <element name="draw:stroke-dash">
<ref name="draw-stroke-dash-attlist" />
<empty />
</element>
</define>
- <define name="draw-stroke-dash-attlist" combine="interleave">
- <attribute name="draw:name">
<ref name="styleName" />
</attribute>
</define>
- <define name="draw-stroke-dash-attlist" combine="interleave">
- <optional>
- <attribute name="draw:display-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="draw-stroke-dash-attlist" combine="interleave">
- <optional>
- <attribute name="draw:style">
- <choice>
<value>rect</value>
<value>round</value>
</choice>
</attribute>
</optional>
</define>
- <define name="draw-stroke-dash-attlist" combine="interleave">
- <optional>
- <attribute name="draw:dots1">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:dots1-length">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:dots2">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:dots2-length">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="draw-stroke-dash-attlist" combine="interleave">
- <optional>
- <attribute name="draw:distance">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-presentation-page-layout">
- <element name="style:presentation-page-layout">
- <attribute name="style:name">
<ref name="styleName" />
</attribute>
- <optional>
- <attribute name="style:display-name">
<ref name="string" />
</attribute>
</optional>
- <zeroOrMore>
<ref name="presentation-placeholder" />
</zeroOrMore>
</element>
</define>
- <define name="presentation-placeholder">
- <element name="presentation:placeholder">
- <attribute name="presentation:object">
<ref name="presentation-classes" />
</attribute>
- <attribute name="svg:x">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
- <attribute name="svg:y">
- <choice>
<ref name="coordinate" />
<ref name="percent" />
</choice>
</attribute>
- <attribute name="svg:width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
- <attribute name="svg:height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
<empty />
</element>
</define>
- <define name="style-style-content" combine="choice">
- <group>
- <attribute name="style:family">
<value>chart</value>
</attribute>
- <optional>
<ref name="style-chart-properties" />
</optional>
- <optional>
<ref name="style-graphic-properties" />
</optional>
- <optional>
<ref name="style-paragraph-properties" />
</optional>
- <optional>
<ref name="style-text-properties" />
</optional>
</group>
</define>
- <define name="style-properties-content">
<ref name="anyAttListOrElements" />
</define>
- <define name="style-page-layout-properties">
- <element name="style:page-layout-properties">
<ref name="style-page-layout-properties-content" />
</element>
</define>
- <define name="style-page-layout-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-page-layout-properties-content-strict">
<ref name="style-page-layout-properties-attlist" />
<ref name="style-page-layout-properties-elements" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:page-width">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:page-height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
<ref name="common-num-format-attlist" />
</optional>
<ref name="common-num-format-prefix-suffix-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:paper-tray-name">
- <choice>
<value>default</value>
<ref name="string" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:print-orientation">
- <choice>
<value>portrait</value>
<value>landscape</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
<ref name="common-vertical-margin-attlist" />
<ref name="common-margin-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-border-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-padding-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-columns" />
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:register-truth-ref-style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:print">
- <list>
- <zeroOrMore>
- <choice>
<value>headers</value>
<value>grid</value>
<value>annotations</value>
<value>objects</value>
<value>charts</value>
<value>drawings</value>
<value>formulas</value>
<value>zero-values</value>
</choice>
</zeroOrMore>
</list>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:print-page-order">
- <choice>
<value>ttb</value>
<value>ltr</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:first-page-number">
- <choice>
<ref name="positiveInteger" />
<value>continue</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:scale-to">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="style:scale-to-pages">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:table-centering">
- <choice>
<value>horizontal</value>
<value>vertical</value>
<value>both</value>
<value>none</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:footnote-max-height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist" />
</define>
- <define name="style-page-layout-properties-elements" combine="interleave">
<ref name="style-footnote-sep" />
</define>
- <define name="style-footnote-sep">
- <optional>
- <element name="style:footnote-sep">
<ref name="style-footnote-sep-attlist" />
<empty />
</element>
</optional>
</define>
- <define name="style-footnote-sep-attlist" combine="interleave">
- <optional>
- <attribute name="style:width">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="style:rel-width">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="style:color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="style:line-style">
<ref name="lineStyle" />
</attribute>
</optional>
- <optional>
- <attribute name="style:adjustment" a:defaultValue="left">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="style:distance-before-sep">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="style:distance-after-sep">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-mode">
- <choice>
<value>none</value>
<value>line</value>
<value>both</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-base-height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-ruby-height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-lines">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-ruby-below">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-print">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-page-layout-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:layout-grid-display">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-header-footer-properties">
- <element name="style:header-footer-properties">
<ref name="style-header-footer-properties-content" />
</element>
</define>
- <define name="style-header-footer-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-header-footer-properties-content-strict">
<ref name="style-header-footer-properties-attlist" />
<ref name="style-header-footer-properties-elements" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
- <optional>
- <attribute name="svg:height">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:min-height">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
<ref name="common-vertical-margin-attlist" />
<ref name="common-margin-attlist" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-border-attlist" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-padding-attlist" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-header-footer-properties-elements"
combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="style-header-footer-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:dynamic-spacing">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties">
- <element name="style:text-properties">
<ref name="style-text-properties-content" />
</element>
</define>
- <define name="style-text-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-text-properties-content-strict">
<ref name="style-text-properties-attlist" />
<ref name="style-text-properties-elements" />
</define>
- <define name="style-text-properties-elements">
<empty />
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:font-variant">
<ref name="fontVariant" />
</attribute>
</optional>
</define>
- <define name="fontVariant">
- <choice>
<value>normal</value>
<value>small-caps</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:text-transform">
- <choice>
<value>none</value>
<value>lowercase</value>
<value>uppercase</value>
<value>capitalize</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:use-window-font-color">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-outline">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-type">
<ref name="lineType" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-style">
<ref name="lineStyle" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-width">
<ref name="lineWidth" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-color">
- <choice>
<value>font-color</value>
<ref name="color" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-text">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-text-style">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-position">
- <list>
- <choice>
<ref name="percent" />
<value>super</value>
<value>sub</value>
</choice>
- <optional>
<ref name="percent" />
</optional>
</list>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-name">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-name-asian">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-name-complex">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:font-family">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-family-asian">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-family-complex">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-family-generic">
<ref name="fontFamilyGeneric" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-family-generic-asian">
<ref name="fontFamilyGeneric" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-family-generic-complex">
<ref name="fontFamilyGeneric" />
</attribute>
</optional>
</define>
- <define name="fontFamilyGeneric">
- <choice>
<value>roman</value>
<value>swiss</value>
<value>modern</value>
<value>decorative</value>
<value>script</value>
<value>system</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-style-name">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-style-name-asian">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-style-name-complex">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-pitch">
<ref name="fontPitch" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-pitch-asian">
<ref name="fontPitch" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-pitch-complex">
<ref name="fontPitch" />
</attribute>
</optional>
</define>
- <define name="fontPitch">
- <choice>
<value>fixed</value>
<value>variable</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-charset">
<ref name="textEncoding" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-charset-asian">
<ref name="textEncoding" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-charset-complex">
<ref name="textEncoding" />
</attribute>
</optional>
</define>
- <define name="textEncoding">
- <data type="string">
<param name="pattern">[A-Za-z][A-Za-z0-9._\-]*</param>
</data>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:font-size">
- <choice>
<ref name="positiveLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="style:font-size-asian">
- <choice>
<ref name="positiveLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="style:font-size-complex">
- <choice>
<ref name="positiveLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-size-rel">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-size-rel-asian">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-size-rel-complex">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:script-type">
- <choice>
<value>latin</value>
<value>asian</value>
<value>complex</value>
<value>ignore</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:letter-spacing">
- <choice>
<ref name="length" />
<value>normal</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:language">
<ref name="languageCode" />
</attribute>
</optional>
- <optional>
- <attribute name="style:language-asian">
<ref name="languageCode" />
</attribute>
</optional>
- <optional>
- <attribute name="style:language-complex">
<ref name="languageCode" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:country">
<ref name="countryCode" />
</attribute>
</optional>
- <optional>
- <attribute name="style:country-asian">
<ref name="countryCode" />
</attribute>
</optional>
- <optional>
- <attribute name="style:country-complex">
<ref name="countryCode" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:font-style">
<ref name="fontStyle" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-style-asian">
<ref name="fontStyle" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-style-complex">
<ref name="fontStyle" />
</attribute>
</optional>
</define>
- <define name="fontStyle">
- <choice>
<value>normal</value>
<value>italic</value>
<value>oblique</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-relief">
- <choice>
<value>none</value>
<value>embossed</value>
<value>engraved</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:text-shadow">
<ref name="shadowType" />
</attribute>
</optional>
</define>
- <define name="shadowType">
- <choice>
<value>none</value>
- <!--
The following string must match an XSL shadow decl
-->
<ref name="string" />
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-underline-type">
<ref name="lineType" />
</attribute>
</optional>
</define>
- <define name="lineType">
- <choice>
<value>none</value>
<value>single</value>
<value>double</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-underline-style">
<ref name="lineStyle" />
</attribute>
</optional>
</define>
- <define name="lineStyle">
- <choice>
<value>none</value>
<value>solid</value>
<value>dotted</value>
<value>dash</value>
<value>long-dash</value>
<value>dot-dash</value>
<value>dot-dot-dash</value>
<value>wave</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-underline-width">
<ref name="lineWidth" />
</attribute>
</optional>
</define>
- <define name="lineWidth">
- <choice>
<value>auto</value>
<value>normal</value>
<value>bold</value>
<value>thin</value>
<value>dash</value>
<value>medium</value>
<value>thick</value>
<ref name="positiveInteger" />
<ref name="percent" />
<ref name="positiveLength" />
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-underline-color">
- <choice>
<value>font-color</value>
<ref name="color" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:font-weight">
<ref name="fontWeight" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-weight-asian">
<ref name="fontWeight" />
</attribute>
</optional>
- <optional>
- <attribute name="style:font-weight-complex">
<ref name="fontWeight" />
</attribute>
</optional>
</define>
- <define name="fontWeight">
- <choice>
<value>normal</value>
<value>bold</value>
<value>100</value>
<value>200</value>
<value>300</value>
<value>400</value>
<value>500</value>
<value>600</value>
<value>700</value>
<value>800</value>
<value>900</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-underline-mode">
<ref name="lineMode" />
</attribute>
</optional>
</define>
- <define name="lineMode">
- <choice>
<value>continuous</value>
<value>skip-white-space</value>
</choice>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-line-through-mode">
<ref name="lineMode" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:letter-kerning">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-blinking">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-combine">
- <choice>
<value>none</value>
<value>letters</value>
<value>lines</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-combine-start-char">
<ref name="character" />
</attribute>
</optional>
- <optional>
- <attribute name="style:text-combine-end-char">
<ref name="character" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-emphasize">
- <choice>
<value>none</value>
- <list>
- <choice>
<value>none</value>
<value>accent</value>
<value>dot</value>
<value>circle</value>
<value>disc</value>
</choice>
- <choice>
<value>above</value>
<value>below</value>
</choice>
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-scale">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-rotation-angle">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-rotation-scale">
- <choice>
<value>fixed</value>
<value>line-height</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:hyphenate">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:hyphenation-remain-char-count">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:hyphenation-push-char-count">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-text-properties-attlist" combine="interleave">
- <choice>
- <attribute name="text:display">
<value>true</value>
</attribute>
- <attribute name="text:display">
<value>none</value>
</attribute>
- <group>
- <attribute name="text:display">
<value>condition</value>
</attribute>
- <attribute name="text:condition">
<value>none</value>
</attribute>
</group>
<empty />
</choice>
</define>
- <define name="style-paragraph-properties">
- <element name="style:paragraph-properties">
<ref name="style-paragraph-properties-content" />
</element>
</define>
- <define name="style-paragraph-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-paragraph-properties-content-strict">
<ref name="style-paragraph-properties-attlist" />
<ref name="style-paragraph-properties-elements" />
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:line-height">
- <choice>
<value>normal</value>
<ref name="nonNegativeLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:line-height-at-least">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:line-spacing">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-independent-line-spacing">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-text-align" />
</define>
- <define name="common-text-align">
- <optional>
- <attribute name="fo:text-align">
- <choice>
<value>start</value>
<value>end</value>
<value>left</value>
<value>right</value>
<value>center</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:text-align-last">
- <choice>
<value>start</value>
<value>center</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:justify-single-word">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:keep-together">
- <choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:widows">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:orphans">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-tab-stops" />
</define>
- <define name="style-tab-stops">
- <optional>
- <element name="style:tab-stops">
- <zeroOrMore>
<ref name="style-tab-stop" />
</zeroOrMore>
</element>
</optional>
</define>
- <define name="style-tab-stop">
- <element name="style:tab-stop">
<ref name="style-tab-stop-attlist" />
<empty />
</element>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <attribute name="style:position">
<ref name="nonNegativeLength" />
</attribute>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <choice>
- <optional>
- <attribute name="style:type" a:defaultValue="left">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
</choice>
</attribute>
</optional>
- <group>
- <attribute name="style:type">
<value>char</value>
</attribute>
<ref name="style-tab-stop-char-attlist" />
</group>
</choice>
</define>
- <define name="style-tab-stop-char-attlist" combine="interleave">
- <attribute name="style:char">
<ref name="character" />
</attribute>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-type">
<ref name="lineType" />
</attribute>
</optional>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-style">
<ref name="lineStyle" />
</attribute>
</optional>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-width">
<ref name="lineWidth" />
</attribute>
</optional>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-color">
- <choice>
<value>font-color</value>
<ref name="color" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-text" a:defaultValue="">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-tab-stop-attlist" combine="interleave">
- <optional>
- <attribute name="style:leader-text-style">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:tab-stop-distance">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:hyphenation-keep">
- <choice>
<value>auto</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:hyphenation-ladder-count">
- <choice>
<value>no-limit</value>
<ref name="positiveInteger" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-drop-cap" />
</define>
- <define name="style-drop-cap">
- <optional>
- <element name="style:drop-cap">
<ref name="style-drop-cap-attlist" />
<empty />
</element>
</optional>
</define>
- <define name="style-drop-cap-attlist" combine="interleave">
- <optional>
- <attribute name="style:length" a:defaultValue="1">
- <choice>
<value>word</value>
<ref name="positiveInteger" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-drop-cap-attlist" combine="interleave">
- <optional>
- <attribute name="style:lines" a:defaultValue="1">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-drop-cap-attlist" combine="interleave">
- <optional>
- <attribute name="style:distance" a:defaultValue="0cm">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-drop-cap-attlist" combine="interleave">
- <optional>
- <attribute name="style:style-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:register-true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
</define>
- <define name="common-horizontal-margin-attlist">
- <optional>
- <attribute name="fo:margin-left">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:margin-right">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:text-indent">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:auto-text-indent">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-vertical-margin-attlist" />
</define>
- <define name="common-vertical-margin-attlist">
- <optional>
- <attribute name="fo:margin-top">
- <choice>
<ref name="nonNegativeLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:margin-bottom">
- <choice>
<ref name="nonNegativeLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-margin-attlist" />
</define>
- <define name="common-margin-attlist">
- <optional>
- <attribute name="fo:margin">
- <choice>
<ref name="nonNegativeLength" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-break-attlist" />
</define>
- <define name="common-break-attlist">
- <optional>
- <attribute name="fo:break-before">
- <choice>
<value>auto</value>
<value>column</value>
<value>page</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:break-after">
- <choice>
<value>auto</value>
<value>column</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="common-background-color-attlist">
- <optional>
- <attribute name="fo:background-color">
- <choice>
<value>transparent</value>
<ref name="color" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-background-image">
- <optional>
- <element name="style:background-image">
<ref name="style-background-image-attlist" />
- <choice>
<ref name="common-draw-data-attlist" />
<ref name="office-binary-data" />
<empty />
</choice>
</element>
</optional>
</define>
- <define name="style-background-image-attlist" combine="interleave">
- <optional>
- <attribute name="style:repeat" a:defaultValue="repeat">
- <choice>
<value>no-repeat</value>
<value>repeat</value>
<value>stretch</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-background-image-attlist" combine="interleave">
- <optional>
- <attribute name="style:position" a:defaultValue="center">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>top</value>
<value>bottom</value>
- <list>
<ref name="horiBackPos" />
<ref name="vertBackPos" />
</list>
- <list>
<ref name="vertBackPos" />
<ref name="horiBackPos" />
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="horiBackPos">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
</choice>
</define>
- <define name="vertBackPos">
- <choice>
<value>top</value>
<value>center</value>
<value>bottom</value>
</choice>
</define>
- <define name="style-background-image-attlist" combine="interleave">
- <optional>
- <attribute name="style:filter-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-background-image-attlist" combine="interleave">
- <optional>
- <attribute name="draw:opacity">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-border-attlist" />
</define>
- <define name="common-border-attlist">
- <optional>
- <attribute name="fo:border">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:border-top">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:border-bottom">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:border-left">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:border-right">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist" />
</define>
- <define name="common-border-line-width-attlist">
- <optional>
- <attribute name="style:border-line-width">
<ref name="borderWidths" />
</attribute>
</optional>
- <optional>
- <attribute name="style:border-line-width-top">
<ref name="borderWidths" />
</attribute>
</optional>
- <optional>
- <attribute name="style:border-line-width-bottom">
<ref name="borderWidths" />
</attribute>
</optional>
- <optional>
- <attribute name="style:border-line-width-left">
<ref name="borderWidths" />
</attribute>
</optional>
- <optional>
- <attribute name="style:border-line-width-right">
<ref name="borderWidths" />
</attribute>
</optional>
</define>
- <define name="borderWidths">
- <list>
<ref name="positiveLength" />
<ref name="positiveLength" />
<ref name="positiveLength" />
</list>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-padding-attlist" />
</define>
- <define name="common-padding-attlist">
- <optional>
- <attribute name="fo:padding">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:padding-top">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:padding-bottom">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:padding-left">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:padding-right">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="common-shadow-attlist">
- <optional>
- <attribute name="style:shadow">
<ref name="shadowType" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-keep-with-next-attlist" />
</define>
- <define name="common-keep-with-next-attlist">
- <optional>
- <attribute name="fo:keep-with-next">
- <choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:number-lines" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:line-number">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-autospace">
- <choice>
<value>none</value>
<value>ideograph-alpha</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:punctuation-wrap">
- <choice>
<value>simple</value>
<value>hanging</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:line-break">
- <choice>
<value>normal</value>
<value>strict</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:vertical-align" a:defaultValue="auto">
- <choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>auto</value>
<value>baseline</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist" />
</define>
- <define name="common-writing-mode-attlist">
- <optional>
- <attribute name="style:writing-mode">
- <choice>
<value>lr-tb</value>
<value>rl-tb</value>
<value>tb-rl</value>
<value>tb-lr</value>
<value>lr</value>
<value>rl</value>
<value>tb</value>
<value>page</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:writing-mode-automatic">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:snap-to-layout-grid">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
<ref name="common-page-number-attlist" />
</define>
- <define name="common-page-number-attlist">
- <optional>
- <attribute name="style:page-number">
- <choice>
<ref name="positiveInteger" />
<value>auto</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-paragraph-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:background-transparency">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-ruby-properties">
- <element name="style:ruby-properties">
<ref name="style-ruby-properties-content" />
</element>
</define>
- <define name="style-ruby-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-ruby-properties-content-strict">
<ref name="style-ruby-properties-attlist" />
<ref name="style-ruby-properties-elements" />
</define>
- <define name="style-ruby-properties-elements">
<empty />
</define>
- <define name="style-ruby-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:ruby-position">
- <choice>
<value>above</value>
<value>below</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-ruby-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:ruby-align">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>distribute-letter</value>
<value>distribute-space</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-section-properties">
- <element name="style:section-properties">
<ref name="style-section-properties-content" />
</element>
</define>
- <define name="style-section-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-section-properties-content-strict">
<ref name="style-section-properties-attlist" />
<ref name="style-section-properties-elements" />
</define>
- <define name="style-section-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-section-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-section-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
</define>
- <define name="style-section-properties-elements" combine="interleave">
<ref name="style-columns" />
</define>
- <define name="style-columns">
- <optional>
- <element name="style:columns">
<ref name="style-columns-attlist" />
- <optional>
<ref name="style-column-sep" />
</optional>
- <zeroOrMore>
<ref name="style-column" />
</zeroOrMore>
</element>
</optional>
</define>
- <define name="style-columns-attlist" combine="interleave">
- <attribute name="fo:column-count">
<ref name="positiveInteger" />
</attribute>
</define>
- <define name="style-columns-attlist" combine="interleave">
- <optional>
- <attribute name="fo:column-gap">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-column">
- <element name="style:column">
<ref name="style-column-attlist" />
</element>
</define>
- <define name="style-column-attlist" combine="interleave">
- <attribute name="style:rel-width">
<ref name="relativeLength" />
</attribute>
</define>
- <define name="style-column-attlist" combine="interleave">
- <optional>
- <attribute name="fo:start-indent" a:defaultValue="0cm">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-column-attlist" combine="interleave">
- <optional>
- <attribute name="fo:end-indent" a:defaultValue="0cm">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-column-attlist" combine="interleave">
- <optional>
- <attribute name="fo:space-before" a:defaultValue="0cm">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-column-attlist" combine="interleave">
- <optional>
- <attribute name="fo:space-after" a:defaultValue="0cm">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-column-sep">
- <element name="style:column-sep">
<ref name="style-column-sep-attlist" />
</element>
</define>
- <define name="style-column-sep-attlist" combine="interleave">
- <optional>
- <attribute name="style:style" a:defaultValue="solid">
- <choice>
<value>none</value>
<value>solid</value>
<value>dotted</value>
<value>dashed</value>
<value>dot-dashed</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-column-sep-attlist" combine="interleave">
- <attribute name="style:width">
<ref name="length" />
</attribute>
</define>
- <define name="style-column-sep-attlist" combine="interleave">
- <optional>
- <attribute name="style:height" a:defaultValue="100%">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-column-sep-attlist" combine="interleave">
- <optional>
- <attribute name="style:vertical-align" a:defaultValue="top">
- <choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-column-sep-attlist" combine="interleave">
- <optional>
- <attribute name="style:color" a:defaultValue="#000000">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-section-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:protect" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-section-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:dont-balance-text-columns">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-section-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist" />
</define>
- <define name="style-section-properties-elements" combine="interleave">
- <zeroOrMore>
<ref name="text-notes-configuration" />
</zeroOrMore>
</define>
- <define name="style-table-properties">
- <element name="style:table-properties">
<ref name="style-table-properties-content" />
</element>
</define>
- <define name="style-table-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-table-properties-content-strict">
<ref name="style-table-properties-attlist" />
<ref name="style-table-properties-elements" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:width">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
- <attribute name="style:rel-width">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-table-properties-attlist" combine="interleave">
- <optional>
- <attribute name="table:align">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>margins</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-vertical-margin-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-margin-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-page-number-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-break-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-table-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-keep-with-next-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:may-break-between-rows">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-properties-attlist" combine="interleave">
- <optional>
- <attribute name="table:border-model">
- <choice>
<value>collapsing</value>
<value>separating</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist" />
</define>
- <define name="style-table-properties-attlist" combine="interleave">
- <optional>
- <attribute name="table:display">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-column-properties">
- <element name="style:table-column-properties">
<ref name="style-table-column-properties-content" />
</element>
</define>
- <define name="style-table-column-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-table-column-properties-content-strict">
<ref name="style-table-column-properties-attlist" />
<ref name="style-table-column-properties-elements" />
</define>
- <define name="style-table-column-properties-elements">
<empty />
</define>
- <define name="style-table-column-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:column-width">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
- <attribute name="style:rel-column-width">
<ref name="relativeLength" />
</attribute>
</optional>
</define>
- <define name="style-table-column-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:use-optimal-column-width">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-column-properties-attlist" combine="interleave">
<ref name="common-break-attlist" />
</define>
- <define name="style-table-row-properties">
- <element name="style:table-row-properties">
<ref name="style-table-row-properties-content" />
</element>
</define>
- <define name="style-table-row-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-table-row-properties-content-strict">
<ref name="style-table-row-properties-attlist" />
<ref name="style-table-row-properties-elements" />
</define>
- <define name="style-table-row-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:row-height">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
- <attribute name="style:min-row-height">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-table-row-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:use-optimal-row-height">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-row-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-table-row-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-table-row-properties-attlist" combine="interleave">
<ref name="common-break-attlist" />
</define>
- <define name="style-table-row-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:keep-together">
- <choice>
<value>auto</value>
<value>always</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties">
- <element name="style:table-cell-properties">
<ref name="style-table-cell-properties-content" />
</element>
</define>
- <define name="style-table-cell-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-table-cell-properties-content-strict">
<ref name="style-table-cell-properties-attlist" />
<ref name="style-table-cell-properties-elements" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:vertical-align">
- <choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>automatic</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:text-align-source">
- <choice>
<value>fix</value>
<value>value-type</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-style-direction-attlist" />
</define>
- <define name="common-style-direction-attlist">
- <optional>
- <attribute name="style:direction">
- <choice>
<value>ltr</value>
<value>ttb</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:glyph-orientation-vertical">
- <choice>
<value>auto</value>
<value>0</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-table-cell-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-border-attlist" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:diagonal-tl-br">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:diagonal-tl-br-widths">
<ref name="borderWidths" />
</attribute>
</optional>
- <optional>
- <attribute name="style:diagonal-bl-tr">
<ref name="string" />
</attribute>
</optional>
- <optional>
- <attribute name="style:diagonal-bl-tr-widths">
<ref name="borderWidths" />
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-padding-attlist" />
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:wrap-option">
- <choice>
<value>no-wrap</value>
<value>wrap</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
<ref name="common-rotation-angle-attlist" />
</define>
- <define name="common-rotation-angle-attlist">
- <optional>
- <attribute name="style:rotation-angle">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:rotation-align">
- <choice>
<value>none</value>
<value>bottom</value>
<value>top</value>
<value>center</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:cell-protect">
- <choice>
<value>none</value>
<value>hidden-and-protected</value>
- <list>
- <oneOrMore>
- <choice>
<value>protected</value>
<value>formula-hidden</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:print-content">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:decimal-places">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:repeat-content">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-table-cell-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:shrink-to-fit">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties">
- <element name="style:list-level-properties">
<ref name="style-list-level-properties-content" />
</element>
</define>
- <define name="style-list-level-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-list-level-properties-content-strict">
<ref name="style-list-level-properties-attlist" />
<ref name="style-list-level-properties-elements" />
</define>
- <define name="style-list-level-properties-elements">
<empty />
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
<ref name="common-text-align" />
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:space-before">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:min-label-width">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:min-label-distance">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:font-name">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:width">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
- <attribute name="fo:height">
<ref name="positiveLength" />
</attribute>
</optional>
</define>
- <define name="style-list-level-properties-attlist" combine="interleave">
<ref name="common-vertical-rel-attlist" />
<ref name="common-vertical-pos-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:stroke">
- <choice>
<value>none</value>
<value>dash</value>
<value>solid</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:stroke-dash">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:stroke-dash-names">
<ref name="styleNameRefs" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="svg:stroke-width">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="svg:stroke-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-start">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-end">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-start-width">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-end-width">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-start-center">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:marker-end-center">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="svg:stroke-opacity">
- <choice>
- <data type="double">
<param name="minInclusive">0</param>
<param name="maxInclusive">1</param>
</data>
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:stroke-linejoin">
- <choice>
<value>miter</value>
<value>round</value>
<value>bevel</value>
<value>middle</value>
<value>none</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill">
- <choice>
<value>none</value>
<value>solid</value>
<value>bitmap</value>
<value>gradient</value>
<value>hatch</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:secondary-fill-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-gradient-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:gradient-step-count">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-hatch-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-hatch-solid">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-image-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:repeat">
- <choice>
<value>no-repeat</value>
<value>repeat</value>
<value>stretch</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-image-width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="draw:fill-image-height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fill-image-ref-point-x">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:fill-image-ref-point-y">
<ref name="percent" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:fill-image-ref-point">
- <choice>
<value>top-left</value>
<value>top</value>
<value>top-right</value>
<value>left</value>
<value>center</value>
<value>right</value>
<value>bottom-left</value>
<value>bottom</value>
<value>bottom-right</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
<attribute name="draw:tile-repeat-offset" />
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:opacity">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:opacity-name">
<ref name="styleNameRef" />
</attribute>
</optional>
</define>
- <define name="style-graphic-fill-properties-attlist" combine="interleave">
- <optional>
- <attribute name="svg:fill-rule">
- <choice>
<value>nonzero</value>
<value>evenodd</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:symbol-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation">
- <choice>
<value>none</value>
<value>scroll</value>
<value>alternate</value>
<value>slide</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-direction">
- <choice>
<value>left</value>
<value>right</value>
<value>up</value>
<value>down</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-start-inside">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-stop-inside">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-repeat">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-delay">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="text:animation-steps">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:auto-grow-width">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:auto-grow-height">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fit-to-size">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:fit-to-contour">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:textarea-vertical-align">
- <choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:textarea-horizontal-align">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>justify</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:wrap-option">
- <choice>
<value>no-wrap</value>
<value>wrap</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-elements" combine="interleave">
- <optional>
<ref name="text-list-style" />
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:color-mode">
- <choice>
<value>greyscale</value>
<value>mono</value>
<value>watermark</value>
<value>standard</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:color-inversion">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:luminance">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:contrast">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:gamma">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:red">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:green">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:blue">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:image-opacity">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:shadow">
- <choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:shadow-offset-x">
<ref name="length" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:shadow-offset-y">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:shadow-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:shadow-opacity">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-line-spacing-horizontal">
<ref name="distance" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:start-line-spacing-vertical">
<ref name="distance" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:end-line-spacing-horizontal">
<ref name="distance" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:end-line-spacing-vertical">
<ref name="distance" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:line-distance">
<ref name="distance" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:guide-overhang">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:guide-distance">
<ref name="distance" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:start-guide">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:end-guide">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:placing">
- <choice>
<value>below</value>
<value>above</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:parallel">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:measure-align">
- <choice>
<value>automatic</value>
<value>left-outside</value>
<value>inside</value>
<value>right-outside</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="draw:measure-vertical-align">
- <choice>
<value>automatic</value>
<value>above</value>
<value>below</value>
<value>center</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:unit">
- <choice>
<value>automatic</value>
<value>mm</value>
<value>cm</value>
<value>m</value>
<value>km</value>
<value>pt</value>
<value>pc</value>
<value>inch</value>
<value>ft</value>
<value>mi</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:show-unit">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:decimal-places">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-type">
- <choice>
<value>straight-line</value>
<value>angled-line</value>
<value>angled-connector-line</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-angle-type">
- <choice>
<value>fixed</value>
<value>free</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-angle">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-gap">
<ref name="distance" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-escape-direction">
- <choice>
<value>horizontal</value>
<value>vertical</value>
<value>auto</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-escape">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-line-length">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:caption-fit-line-length">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:horizontal-segments">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:vertical-segments">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:edge-rounding">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:edge-rounding-mode">
- <choice>
<value>correct</value>
<value>attractive</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:back-scale">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:depth">
<ref name="length" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:backface-culling">
- <choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:end-angle">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:close-front">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:close-back">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:lighting-mode">
- <choice>
<value>standard</value>
<value>double-sided</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:normals-kind">
- <choice>
<value>object</value>
<value>flat</value>
<value>sphere</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:normals-direction">
- <choice>
<value>normal</value>
<value>inverse</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:texture-generation-mode-x">
- <choice>
<value>object</value>
<value>parallel</value>
<value>sphere</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:texture-generation-mode-y">
- <choice>
<value>object</value>
<value>parallel</value>
<value>sphere</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:texture-kind">
- <choice>
<value>luminance</value>
<value>intensity</value>
<value>color</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:texture-filter">
- <choice>
<value>enabled</value>
<value>disabled</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:texture-mode">
- <choice>
<value>replace</value>
<value>modulate</value>
<value>blend</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:ambient-color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:emissive-color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:specular-color">
<ref name="color" />
</attribute>
</optional>
- <optional>
- <attribute name="dr3d:diffuse-color">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:shininess">
<ref name="percent" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="dr3d:shadow">
- <choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-draw-rel-size-attlist" />
- <optional>
- <attribute name="fo:min-width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:min-height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:max-height">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="fo:max-width">
- <choice>
<ref name="length" />
<ref name="percent" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-horizontal-margin-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-vertical-margin-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-margin-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:print-content">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:protect">
- <choice>
<value>none</value>
- <list>
- <oneOrMore>
- <choice>
<value>content</value>
<value>position</value>
<value>size</value>
</choice>
</oneOrMore>
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:horizontal-pos">
- <choice>
<value>left</value>
<value>center</value>
<value>right</value>
<value>from-left</value>
<value>inside</value>
<value>outside</value>
<value>from-inside</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:x">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:horizontal-rel">
- <choice>
<value>page</value>
<value>page-content</value>
<value>page-start-margin</value>
<value>page-end-margin</value>
<value>frame</value>
<value>frame-content</value>
<value>frame-start-margin</value>
<value>frame-end-margin</value>
<value>paragraph</value>
<value>paragraph-content</value>
<value>paragraph-start-margin</value>
<value>paragraph-end-margin</value>
<value>char</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-vertical-pos-attlist" />
</define>
- <define name="common-vertical-pos-attlist">
- <optional>
- <attribute name="style:vertical-pos">
- <choice>
<value>top</value>
<value>middle</value>
<value>bottom</value>
<value>from-top</value>
<value>below</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="svg:y">
<ref name="coordinate" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-vertical-rel-attlist" />
</define>
- <define name="common-vertical-rel-attlist">
- <optional>
- <attribute name="style:vertical-rel">
- <choice>
<value>page</value>
<value>page-content</value>
<value>frame</value>
<value>frame-content</value>
<value>paragraph</value>
<value>paragraph-content</value>
<value>char</value>
<value>line</value>
<value>baseline</value>
<value>text</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-text-anchor-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-border-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-border-line-width-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-padding-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-shadow-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-background-color-attlist" />
</define>
- <define name="style-graphic-properties-elements" combine="interleave">
<ref name="style-background-image" />
</define>
- <define name="style-graphic-properties-elements" combine="interleave">
<ref name="style-columns" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:editable">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:wrap">
- <choice>
<value>none</value>
<value>left</value>
<value>right</value>
<value>parallel</value>
<value>dynamic</value>
<value>run-through</value>
<value>biggest</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:wrap-dynamic-threshold">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:number-wrapped-paragraphs">
- <choice>
<value>no-limit</value>
<ref name="positiveInteger" />
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:wrap-contour">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:wrap-contour-mode">
- <choice>
<value>full</value>
<value>outside</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:run-through">
- <choice>
<value>foreground</value>
<value>background</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:flow-with-text">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:overflow-behavior">
- <choice>
<value>clip</value>
<value>auto-create-new-frame</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="style:mirror">
- <choice>
<value>none</value>
<value>vertical</value>
<ref name="horizontal-mirror" />
- <list>
<value>vertical</value>
<ref name="horizontal-mirror" />
</list>
- <list>
<ref name="horizontal-mirror" />
<value>vertical</value>
</list>
</choice>
</attribute>
</optional>
</define>
- <define name="horizontal-mirror">
- <choice>
<value>horizontal</value>
<value>horizontal-on-odd</value>
<value>horizontal-on-even</value>
</choice>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="fo:clip">
- <!--
The attribute value must match the one XSL's clip
-->
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:wrap-influence-on-position"
a:defaultValue="iterative">
- <choice>
<value>iterative</value>
<value>once-concurrent</value>
<value>once-successive</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
<ref name="common-writing-mode-attlist" />
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:frame-display-scrollbar">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:frame-display-border">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:frame-margin-horizontal">
<ref name="nonNegativePixelLength" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:frame-margin-vertical">
<ref name="nonNegativePixelLength" />
</attribute>
</optional>
</define>
- <define name="nonNegativePixelLength">
- <data type="string">
<param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)</param>
</data>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:visible-area-left">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:visible-area-top">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:visible-area-width">
<ref name="positiveLength" />
</attribute>
</optional>
- <optional>
- <attribute name="draw:visible-area-height">
<ref name="positiveLength" />
</attribute>
</optional>
</define>
- <define name="style-graphic-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:ole-draw-aspect">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties">
- <element name="style:chart-properties">
<ref name="style-chart-properties-content" />
</element>
</define>
- <define name="style-chart-properties-content">
<ref name="style-properties-content" />
</define>
- <define name="style-chart-properties-content-strict">
<ref name="style-chart-properties-attlist" />
<ref name="style-chart-properties-elements" />
</define>
- <define name="style-chart-properties-elements">
<empty />
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:scale-text" a:defaultValue="true">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:three-dimensional">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:deep">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <choice>
- <attribute name="chart:symbol-type">
<value>none</value>
</attribute>
- <attribute name="chart:symbol-type">
<value>automatic</value>
</attribute>
- <group>
- <attribute name="chart:symbol-type">
<value>named-symbol</value>
</attribute>
- <attribute name="chart:symbol-name">
- <choice>
<value>square</value>
<value>diamond</value>
<value>arrow-down</value>
<value>arrow-up</value>
<value>arrow-right</value>
<value>arrow-left</value>
<value>bow-tie</value>
<value>hourglass</value>
<value>circle</value>
<value>star</value>
<value>x</value>
<value>plus</value>
<value>asterisk</value>
<value>horizontal-bar</value>
<value>vertical-bar</value>
</choice>
</attribute>
</group>
- <group>
- <attribute name="chart:symbol-type">
<value>image</value>
</attribute>
- <element name="chart:symbol-image">
- <attribute name="xlink:href">
<ref name="anyURI" />
</attribute>
</element>
</group>
<empty />
</choice>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:symbol-width">
<ref name="nonNegativeLength" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:symbol-height">
<ref name="nonNegativeLength" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:vertical" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:connect-bars" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:gap-width">
<ref name="integer" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:overlap">
<ref name="integer" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:japanese-candle-stick" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:interpolation" a:defaultValue="none">
- <choice>
<value>none</value>
<value>cubic-spline</value>
<value>b-spline</value>
</choice>
</attribute>
</optional>
- <optional>
- <attribute name="chart:spline-order" a:defaultValue="2">
<ref name="positiveInteger" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:spline-resolution" a:defaultValue="20">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:pie-offset" a:defaultValue="0">
<ref name="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:lines" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:solid-type" a:defaultValue="cuboid">
- <choice>
<value>cuboid</value>
<value>cylinder</value>
<value>cone</value>
<value>pyramid</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:stacked" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:percentage" a:defaultValue="false">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:link-data-style-to-source">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:visible">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:logarithmic">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:maximum">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:minimum">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:origin">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:interval-major">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:interval-minor-divisor">
<ref name="positiveInteger" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:tick-marks-major-inner">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:tick-marks-major-outer">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:tick-marks-minor-inner">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:tick-marks-minor-outer">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:display-label">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:text-overlap">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="text:line-break">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:label-arrangement" a:defaultValue="side-by-side">
- <choice>
<value>side-by-side</value>
<value>stagger-even</value>
<value>stagger-odd</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
<ref name="common-style-direction-attlist" />
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
<ref name="common-rotation-angle-attlist" />
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:data-label-number">
- <choice>
<value>none</value>
<value>value</value>
<value>percentage</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:data-label-text">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:data-label-symbol">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:mean-value">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:error-category" a:defaultValue="none">
- <choice>
<value>none</value>
<value>variance</value>
<value>standard-deviation</value>
<value>percentage</value>
<value>error-margin</value>
<value>constant</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:error-percentage">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:error-margin">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:error-lower-limit">
<ref name="double" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:error-upper-limit">
<ref name="double" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:error-upper-indicator">
<ref name="boolean" />
</attribute>
</optional>
- <optional>
- <attribute name="chart:error-lower-indicator">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:series-source" a:defaultValue="columns">
- <choice>
<value>columns</value>
<value>rows</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-chart-properties-attlist" combine="interleave">
- <optional>
- <attribute name="chart:regression-type" a:defaultValue="none">
- <choice>
<value>none</value>
<value>linear</value>
<value>logarithmic</value>
<value>exponential</value>
<value>power</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:transition-type">
- <choice>
<value>manual</value>
<value>automatic</value>
<value>semi-automatic</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:transition-style">
- <choice>
<value>none</value>
<value>fade-from-left</value>
<value>fade-from-top</value>
<value>fade-from-right</value>
<value>fade-from-bottom</value>
<value>fade-from-upperleft</value>
<value>fade-from-upperright</value>
<value>fade-from-lowerleft</value>
<value>fade-from-lowerright</value>
<value>move-from-left</value>
<value>move-from-top</value>
<value>move-from-right</value>
<value>move-from-bottom</value>
<value>move-from-upperleft</value>
<value>move-from-upperright</value>
<value>move-from-lowerleft</value>
<value>move-from-lowerright</value>
<value>uncover-to-left</value>
<value>uncover-to-top</value>
<value>uncover-to-right</value>
<value>uncover-to-bottom</value>
<value>uncover-to-upperleft</value>
<value>uncover-to-upperright</value>
<value>uncover-to-lowerleft</value>
<value>uncover-to-lowerright</value>
<value>fade-to-center</value>
<value>fade-from-center</value>
<value>vertical-stripes</value>
<value>horizontal-stripes</value>
<value>clockwise</value>
<value>counterclockwise</value>
<value>open-vertical</value>
<value>open-horizontal</value>
<value>close-vertical</value>
<value>close-horizontal</value>
<value>wavyline-from-left</value>
<value>wavyline-from-top</value>
<value>wavyline-from-right</value>
<value>wavyline-from-bottom</value>
<value>spiralin-left</value>
<value>spiralin-right</value>
<value>spiralout-left</value>
<value>spiralout-right</value>
<value>roll-from-top</value>
<value>roll-from-left</value>
<value>roll-from-right</value>
<value>roll-from-bottom</value>
<value>stretch-from-left</value>
<value>stretch-from-top</value>
<value>stretch-from-right</value>
<value>stretch-from-bottom</value>
<value>vertical-lines</value>
<value>horizontal-lines</value>
<value>dissolve</value>
<value>random</value>
<value>vertical-checkerboard</value>
<value>horizontal-checkerboard</value>
<value>interlocking-horizontal-left</value>
<value>interlocking-horizontal-right</value>
<value>interlocking-vertical-top</value>
<value>interlocking-vertical-bottom</value>
<value>fly-away</value>
<value>open</value>
<value>close</value>
<value>melt</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:transition-speed">
<ref name="presentationSpeeds" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="smil:type">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="smil:subtype">
<ref name="string" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="smil:direction" a:defaultValue="forward">
- <choice>
<value>forward</value>
<value>reverse</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="smil:fadeColor">
<ref name="color" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:duration">
<ref name="duration" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:visibility">
- <choice>
<value>visible</value>
<value>hidden</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-elements"
combine="interleave">
- <optional>
<ref name="presentation-sound" />
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="draw:background-size">
- <choice>
<value>full</value>
<value>border</value>
</choice>
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:background-objects-visible">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:background-visible">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:display-header">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:display-footer">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:display-page-number">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="style-drawing-page-properties-attlist" combine="interleave">
- <optional>
- <attribute name="presentation:display-date-time">
<ref name="boolean" />
</attribute>
</optional>
</define>
- <define name="string">
<data type="string" />
</define>
- <define name="date">
<data type="date" />
</define>
- <define name="time">
<data type="time" />
</define>
- <define name="dateTime">
<data type="dateTime" />
</define>
- <define name="duration">
<data type="duration" />
</define>
- <define name="integer">
<data type="integer" />
</define>
- <define name="nonNegativeInteger">
<data type="nonNegativeInteger" />
</define>
- <define name="positiveInteger">
<data type="positiveInteger" />
</define>
- <define name="double">
<data type="double" />
</define>
- <define name="anyURI">
<data type="anyURI" />
</define>
- <define name="base64Binary">
<data type="base64Binary" />
</define>
- <define name="ID">
<data type="ID" />
</define>
- <define name="IDREF">
<data type="IDREF" />
</define>
- <define name="IDREFS">
<data type="IDREFS" />
</define>
- <define name="boolean">
- <choice>
<value>true</value>
<value>false</value>
</choice>
</define>
- <define name="dateOrDateTime">
- <choice>
<data type="date" />
<data type="dateTime" />
</choice>
</define>
- <define name="timeOrDateTime">
- <choice>
<data type="time" />
<data type="dateTime" />
</choice>
</define>
- <define name="language">
<data type="language" />
</define>
- <define name="countryCode">
- <data type="token">
<param name="pattern">[A-Za-z0-9]{1,8}</param>
</data>
</define>
- <define name="languageCode">
- <data type="token">
<param name="pattern">[A-Za-z]{1,8}</param>
</data>
</define>
- <define name="character">
- <data type="string">
<param name="length">1</param>
</data>
</define>
- <define name="length">
- <data type="string">
<param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-
9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
</data>
</define>
- <define name="nonNegativeLength">
- <data type="string">
<param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-
9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
</data>
</define>
- <define name="positiveLength">
- <data type="string">
<param name="pattern">([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-
9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
</data>
</define>
- <define name="percent">
- <data type="string">
<param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</param>
</data>
</define>
- <define name="relativeLength">
- <data type="string">
<param name="pattern">[0-9]+\*</param>
</data>
</define>
- <define name="coordinate">
<ref name="length" />
</define>
- <define name="distance">
<ref name="length" />
</define>
- <define name="color">
- <data type="string">
<param name="pattern">#[0-9a-fA-F]{6}</param>
</data>
</define>
- <define name="styleName">
<data type="NCName" />
</define>
- <define name="styleNameRef">
- <choice>
<data type="NCName" />
<empty />
</choice>
</define>
- <define name="styleNameRefs">
- <list>
- <zeroOrMore>
<data type="NCName" />
</zeroOrMore>
</list>
</define>
- <define name="variableName">
<data type="string" />
</define>
- <define name="formula">
- <!--
A formula should start with a namespace prefix,
-->
- <!--
but has no restrictions
-->
<data type="string" />
</define>
- <define name="targetFrameName">
- <choice>
<value>_self</value>
<value>_blank</value>
<value>_parent</value>
<value>_top</value>
<ref name="string" />
</choice>
</define>
- <define name="valueType">
- <choice>
<value>float</value>
<value>time</value>
<value>date</value>
<value>percentage</value>
<value>currency</value>
<value>boolean</value>
<value>string</value>
</choice>
</define>
- <define name="points">
- <data type="string">
<param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</param>
</data>
</define>
- <define name="pathData">
<data type="string" />
</define>
- <define name="vector3D">
- <data type="string">
<param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-
9]*)?|\.[0-9]+)){2}[ ]*\)</param>
</data>
</define>
- <define name="namespacedToken">
- <data type="string">
<param name="pattern">[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+</param>
</data>
</define>
- <define name="anyAttListOrElements">
- <zeroOrMore>
- <attribute>
<anyName />
<text />
</attribute>
</zeroOrMore>
<ref name="anyElements" />
</define>
- <define name="anyElements">
- <zeroOrMore>
- <element>
<anyName />
- <mixed>
<ref name="anyAttListOrElements" />
</mixed>
</element>
</zeroOrMore>
</define>
</grammar>

Sơ đồ Manifest (the normative schema for the manifest file used by the
OpenDocument package format)

<?xml version="1.0" encoding="UTF-8" ?>


- <!--
OASIS OpenDocument v1.1
OASIS Standard, 1 Feb 2007
Relax-NG Manifest Schema
© 2002-2007 OASIS Open
© 1999-2007 Sun Microsystems, Inc.
- <grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
- <define name="manifest">
- <element name="manifest:manifest">
- <oneOrMore>
<ref name="file-entry" />
</oneOrMore>
</element>
</define>
- <start>
- <choice>
<ref name="manifest" />
</choice>
</start>
- <define name="file-entry">
- <element name="manifest:file-entry">
<ref name="file-entry-attlist" />
- <optional>
<ref name="encryption-data" />
</optional>
</element>
</define>
- <define name="file-entry-attlist" combine="interleave">
- <attribute name="manifest:full-path">
<data type="string" />
</attribute>
</define>
- <define name="file-entry-attlist" combine="interleave">
- <optional>
- <attribute name="manifest:size">
<data type="nonNegativeInteger" />
</attribute>
</optional>
</define>
- <define name="file-entry-attlist" combine="interleave">
- <attribute name="manifest:media-type">
<data type="string" />
</attribute>
</define>
- <define name="encryption-data">
- <element name="manifest:encryption-data">
<ref name="encryption-data-attlist" />
<ref name="algorithm" />
<ref name="key-derivation" />
</element>
</define>
- <define name="encryption-data-attlist" combine="interleave">
- <attribute name="manifest:checksum-type">
<data type="string" />
</attribute>
</define>
- <define name="encryption-data-attlist" combine="interleave">
- <attribute name="manifest:checksum">
<data type="base64Binary" />
</attribute>
</define>
- <define name="algorithm">
- <element name="manifest:algorithm">
<ref name="algorithm-attlist" />
<empty />
</element>
</define>
- <define name="algorithm-attlist" combine="interleave">
- <attribute name="manifest:algorithm-name">
<data type="string" />
</attribute>
</define>
- <define name="algorithm-attlist" combine="interleave">
- <attribute name="manifest:initialisation-vector">
<data type="base64Binary" />
</attribute>
</define>
- <define name="key-derivation">
- <element name="manifest:key-derivation">
<ref name="key-derivation-attlist" />
<empty />
</element>
</define>
- <define name="key-derivation-attlist" combine="interleave">
- <attribute name="manifest:key-derivation-name">
<data type="string" />
</attribute>
</define>
- <define name="key-derivation-attlist" combine="interleave">
- <attribute name="manifest:salt">
<data type="base64Binary" />
</attribute>
</define>
- <define name="key-derivation-attlist" combine="interleave">
- <attribute name="manifest:iteration-count">
<data type="nonNegativeInteger" />
</attribute>
</define>
</grammar>

Sơ đồ Strict Relax-NG (the strict schema for office documents that permits only
meta information and formatting properties contained in this specification itself)

<?xml version="1.0" encoding="UTF-8" ?>


- <!--
OASIS OpenDocument v1.1
OASIS Standard, 1 Feb 2007
Strict Relax-NG Schema

$Id$

© 2002-2007 OASIS Open


© 1999-2007 Sun Microsystems, Inc.
-->
- <grammar xmlns="http://relaxng.org/ns/structure/1.0">
- <include href="OpenDocument-schema-v1.1.rng">
- <define name="office-meta-content">
<ref name="office-meta-content-strict" />
</define>
- <define name="style-page-layout-properties-content">
<ref name="style-page-layout-properties-content-strict" />
</define>
- <define name="style-header-footer-properties-content">
<ref name="style-header-footer-properties-content-strict" />
</define>
- <define name="style-drawing-page-properties-content">
<ref name="style-drawing-page-properties-content-strict" />
</define>
- <define name="style-text-properties-content">
<ref name="style-text-properties-content-strict" />
</define>
- <define name="style-paragraph-properties-content">
<ref name="style-paragraph-properties-content-strict" />
</define>
- <define name="style-ruby-properties-content">
<ref name="style-ruby-properties-content-strict" />
</define>
- <define name="style-section-properties-content">
<ref name="style-section-properties-content-strict" />
</define>
- <define name="style-list-level-properties-content">
<ref name="style-list-level-properties-content-strict" />
</define>
- <define name="style-table-properties-content">
<ref name="style-table-properties-content-strict" />
</define>
- <define name="style-table-column-properties-content">
<ref name="style-table-column-properties-content-strict" />
</define>
- <define name="style-table-row-properties-content">
<ref name="style-table-row-properties-content-strict" />
</define>
- <define name="style-table-cell-properties-content">
<ref name="style-table-cell-properties-content-strict" />
</define>
- <define name="style-graphic-properties-content">
<ref name="style-graphic-properties-content-strict" />
</define>
- <define name="style-chart-properties-content">
<ref name="style-chart-properties-content-strict" />
</define>
</include>
</grammar>

You might also like