[gnome-doc-utils] rng/mallard: Update Mallard RNG files
- From: Shaun McCance <shaunm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-doc-utils] rng/mallard: Update Mallard RNG files
- Date: Tue, 22 Mar 2011 14:04:05 +0000 (UTC)
commit 5e5eb3df9dd2fcae8cdf0542961af09398f7a2c4
Author: Shaun McCance <shaunm gnome org>
Date: Tue Mar 22 10:02:24 2011 -0400
rng/mallard: Update Mallard RNG files
rng/mallard/mallard.rnc | 844 +++++++++++++++---------
rng/mallard/mallard.rng | 1710 ++++++++++++++++++++++++++++++-----------------
2 files changed, 1641 insertions(+), 913 deletions(-)
---
diff --git a/rng/mallard/mallard.rnc b/rng/mallard/mallard.rnc
index 63e5455..6bb92af 100644
--- a/rng/mallard/mallard.rnc
+++ b/rng/mallard/mallard.rnc
@@ -3,396 +3,549 @@ namespace local = ""
default namespace mal = "http://projectmallard.org/1.0/"
start = mal_page
mal_page = element page {
- attribute id { xsd:NMTOKEN },
- attribute type { "guide" | "topic" } ?,
- attribute style { xsd:NMTOKENS } ?,
- attribute groups { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_page_attr,
mal_info ?,
mal_block_title,
- mal_block *,
- mal_section *
+ mal_block_subtitle ?,
+ ( mal_block | mal_links ) *,
+ mal_section *,
+ mal_links *
}
+mal_page_attr = (
+ attribute id { xsd:NMTOKEN },
+ attribute type { xsd:NMTOKEN } ?,
+ attribute style { xsd:NMTOKENS } ?,
+ attribute version { text } ?,
+ mal_attr_external *
+)
mal_section = element section {
- attribute id { xsd:ID },
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_section_attr,
mal_info ?,
mal_block_title,
- mal_block *,
- mal_section *
+ mal_block_subtitle ?,
+ ( mal_block | mal_links ) *,
+ mal_section *,
+ mal_links *
}
+mal_section_attr = (
+ attribute id { xsd:ID },
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
mal_info = element info {
- mal_attr_external *,
-
- ( mal_info_desc ? &
- mal_info_credit * &
- mal_info_license * &
- mal_info_link * &
- mal_info_title * &
- mal_info_revision * &
- mal_external *
- )
+ mal_info_attr,
+ mal_info_content
}
+mal_info_attr = (
+ mal_attr_external *
+)
+mal_info_content = (
+ mal_info_desc ? &
+ mal_info_credit * &
+ mal_info_license * &
+ mal_info_link * &
+ mal_info_title * &
+ mal_info_revision * &
+ mal_external *
+)
mal_info_credit = element credit {
- attribute type { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
-
- ( mal_info_name &
- mal_info_email ? &
- mal_info_years ? &
- mal_external *
- )
+ mal_info_credit_attr,
+ mal_info_credit_content
}
+mal_info_credit_attr = (
+ attribute type { xsd:NMTOKENS } ?,
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_info_credit_content = (
+ mal_info_name &
+ mal_info_email * &
+ mal_info_years ? &
+ mal_external *
+)
mal_info_link = element link {
- attribute type { xsd:NMTOKEN },
- ( attribute xref { text } |
- attribute href { text }
- ),
- attribute group { text } ?
- attribute * - (mal:* | local:*) { text } *,
-
- mal_external *
+ mal_info_link_attr,
+ mal_info_link_content *
}
+mal_info_link_attr = (
+ attribute type { xsd:NMTOKEN },
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_link +,
+ attribute group { text } ?,
+ mal_attr_external *
+)
+mal_info_link_content = mal_external
mal_info_title = element title {
+ mal_info_title_attr,
+ mal_info_title_inline
+}
+mal_info_title_attr = (
attribute type { xsd:NMTOKEN },
+ attribute style { xsd:NMTOKENS } ?,
attribute role { xsd:NMTOKEN } ?,
- attribute * - (mal:* | local:*) { text } *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_info_title_inline = mal_inline
mal_info_license = element license {
- attribute href { text } ?,
- attribute * - (mal:* | local:*) { text } *,
-
- mal_block +
+ mal_info_license_attr,
+ mal_info_license_content +
}
+mal_info_license_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ attribute href { text } ?,
+ mal_attr_external *
+)
+mal_info_license_content = mal_block
mal_info_desc = element desc {
- attribute * - (mal:* | local:*) { text } *,
-
- mal_inline
+ mal_info_desc_attr,
+ mal_info_desc_inline
}
+mal_info_desc_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_info_desc_inline = mal_inline
mal_info_revision = element revision {
+ mal_info_revision_attr,
+ mal_block_title ?,
+ mal_block_desc ?,
+ mal_info_revision_content *
+}
+mal_info_revision_attr = (
+ attribute style { xsd:NMTOKENS } ?,
attribute version { text } ?,
attribute docversion { text } ?,
attribute pkgversion { text } ?,
attribute date { xsd:date } ?,
- attribute status {
- "stub" | "incomplete" | "draft" | "outdated" |
- "review" | "candidate" | "final" } ?,
- attribute * - (mal:* | local:*) { text } *,
-
- mal_block_title ?,
- mal_block_desc ?,
- mal_external *
-}
+ attribute status { xsd:NMTOKEN } ?,
+ mal_attr_external *
+)
+mal_info_revision_content = mal_external
mal_info_years = element years {
- attribute * - (mal:* | local:*) { text } *,
- mal_inline
+ mal_info_years_attr,
+ mal_info_years_inline
}
+mal_info_years_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_info_years_inline = mal_inline
mal_info_email = element email {
- attribute * - (mal:* | local:*) { text } *,
- mal_inline
+ mal_info_email_attr,
+ mal_info_email_inline
}
+mal_info_email_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_info_email_inline = mal_inline
mal_info_name = element name {
- attribute * - (mal:* | local:*) { text } *,
- mal_inline
+ mal_info_name_attr,
+ mal_info_name_inline
}
+mal_info_name_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_info_name_inline = mal_inline
-mal_block = (
- mal_block_basic |
- mal_block_formal |
- mal_block_lists |
- mal_table
+mal_links = element links {
+ mal_links_attr,
+ mal_block_title ?,
+ mal_links_content *
+}
+mal_links_attr = (
+ attribute type { xsd:NMTOKEN },
+ attribute style { xsd:NMTOKENS } ?,
+ attribute groups { xsd:NMTOKENS } ?,
+ mal_attr_external *
)
+mal_links_content = mal_external
-mal_block_basic = (
- mal_block_code |
- mal_block_example |
- mal_block_media |
- mal_block_p |
- mal_block_screen
+mal_block = (
+ mal_block_elements |
+ element * - (mal:* | local:*) {
+ attribute * { text } *,
+ ( mal_external * &
+ mal_block_elements *
+ )
+ }
)
-mal_block_formal = (
+mal_block_elements = (
+ mal_block_code |
mal_block_comment |
+ mal_block_example |
mal_block_figure |
+ mal_block_list |
mal_block_listing |
+ mal_block_media |
mal_block_note |
+ mal_block_p |
mal_block_quote |
- mal_block_synopsis
-)
-mal_block_lists = (
- mal_block_list |
+ mal_block_screen |
mal_block_steps |
+ mal_block_synopsis |
mal_block_terms |
- mal_block_tree
+ mal_block_tree |
+ mal_table
)
+
mal_block_code = element code {
+ mal_block_code_attr,
+ mal_block_code_inline
+}
+mal_block_code_attr = (
attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
- mal_attr_external *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_block_code_inline = mal_inline
mal_block_example = element example {
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_block +
+ mal_block_example_attr,
+ mal_block_example_content +
}
+mal_block_example_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_block_example_content = mal_block
mal_block_media = element media {
+ mal_block_media_attr,
+ mal_block_media_content *
+}
+mal_block_media_attr = (
attribute type { "image" | "video" | "audio" | "application" } ?,
+ attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
attribute src { text },
attribute height { text } ?,
attribute width { text } ?,
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_block *
-}
+ mal_attr_external *
+)
+mal_block_media_content = mal_block
mal_block_p = element p {
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_inline
+ mal_block_p_attr,
+ mal_block_p_inline
}
+mal_block_p_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_block_p_inline = mal_inline
mal_block_screen = element screen {
+ mal_block_screen_attr,
+ mal_block_screen_inline
+}
+mal_block_screen_attr = (
attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
- mal_attr_external *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_block_screen_inline = mal_inline
mal_block_quote = element quote {
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
+ mal_block_quote_attr,
mal_block_title ?,
- mal_block_cite,
- mal_block +
+ mal_block_cite ?,
+ mal_block_quote_content +
}
-
-mal_block_comment = element comment {
+mal_block_quote_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_quote_content = mal_block
+mal_block_comment = element comment {
+ mal_block_comment_attr,
mal_block_title ?,
- mal_block_cite,
- mal_block +
+ mal_block_cite ?,
+ mal_block_comment_content +
}
-
-mal_block_figure = element figure {
+mal_block_comment_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_comment_content = mal_block
+mal_block_figure = element figure {
+ mal_block_figure_attr,
mal_block_title ?,
mal_block_desc ?,
- mal_block +
+ mal_block_figure_content +
}
-
-mal_block_listing = element listing {
+mal_block_figure_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_figure_content = mal_block
+mal_block_listing = element listing {
+ mal_block_listing_attr,
mal_block_title ?,
mal_block_desc ?,
- mal_block +
+ mal_block_listing_content +
}
-
-mal_block_note = element note {
+mal_block_listing_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_listing_content = mal_block
+mal_block_note = element note {
+ mal_block_note_attr,
mal_block_title ?,
- mal_block +
+ mal_block_note_content +
}
-
-mal_block_synopsis = element synopsis {
+mal_block_note_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_note_content = mal_block
+mal_block_synopsis = element synopsis {
+ mal_block_synopsis_attr,
mal_block_title ?,
mal_block_desc ?,
- mal_block +
+ mal_block_synopsis_content +
}
-
-mal_block_list = element list {
- attribute type { xsd:NMTOKEN } ?,
+mal_block_synopsis_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_synopsis_content = mal_block
+mal_block_list = element list {
+ mal_block_list_attr,
mal_block_title ?,
mal_block_list_item +
}
-mal_block_list_item = element item {
+mal_block_list_attr = (
+ attribute type { xsd:NMTOKEN } ?,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_block +
+ mal_attr_external *
+)
+mal_block_list_item = element item {
+ mal_block_list_item_attr,
+ mal_block_list_item_content +
}
-
-mal_block_terms = element terms {
+mal_block_list_item_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_list_item_content = mal_block
+mal_block_steps = element steps {
+ mal_block_steps_attr,
mal_block_title ?,
- mal_block_terms_item +
+ mal_block_steps_item +
}
-mal_block_terms_item = element item {
+mal_block_steps_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_block_title +,
- mal_block +
+ mal_attr_external *
+)
+mal_block_steps_item = element item {
+ mal_block_steps_item_attr,
+ mal_block_steps_item_content +
}
-
-mal_block_steps = element steps {
+mal_block_steps_item_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_steps_item_content = mal_block
+mal_block_terms = element terms {
+ mal_block_terms_attr,
mal_block_title ?,
- mal_block_steps_item +
+ mal_block_terms_item +
}
-mal_block_steps_item = element item {
+mal_block_terms_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_block +
+ mal_attr_external *
+)
+mal_block_terms_item = element item {
+ mal_block_terms_item_attr,
+ mal_block_title +,
+ mal_block_terms_item_content +
}
-
-mal_block_tree = element tree {
+mal_block_terms_item_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_terms_item_content = mal_block
+mal_block_tree = element tree {
+ mal_block_tree_attr,
mal_block_title ?,
mal_block_tree_item +
}
+mal_block_tree_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
mal_block_tree_item = element item {
+ mal_block_tree_item_attr,
+ mal_block_tree_item_inline,
+ mal_block_tree_item *
+}
+mal_block_tree_item_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_block_tree_item_inline = mal_inline
- mal_inline,
- mal_block_tree_item *
+mal_table = element table {
+ mal_table_attr,
+
+ mal_block_title ?,
+ mal_block_desc ?,
+
+ ( mal_table_col + |
+ mal_table_colgroup +
+ ) ?,
+
+ ( mal_table_tr + |
+ ( mal_table_thead ?,
+ mal_table_tbody +,
+ mal_table_tfoot ?
+ )
+ )
}
+mal_table_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ attribute frame {
+ "all" | "none" |
+ list { ("top" | "bottom" | "left" | "right") * }
+ } ?,
+ attribute rules {
+ "all" | "groups" | "none" |
+ list { ("rows" | "rowgroups" | "cols" | "colgroups") * }
+ } ?,
+ attribute shade {
+ "all" | "groups" | "none" |
+ list { ("rows" | "rowgroups" | "cols" | "colgroups") * }
+ } ?,
+ mal_attr_external *
+)
mal_table_col = element col {
- attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *
+ mal_table_col_attr
}
-mal_table_colgroup = element colgroup {
+mal_table_col_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
-
+ mal_attr_external *
+)
+mal_table_colgroup = element colgroup {
+ mal_table_colgroup_attr,
mal_table_col *
}
-
-mal_table_tr = element tr {
+mal_table_colgroup_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
+ mal_attr_external *
+)
+mal_table_tr = element tr {
+ mal_table_tr_attr,
mal_table_td *
}
-mal_table_thead = element thead {
+mal_table_tr_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
-
+ mal_attr_external *
+)
+mal_table_thead = element thead {
+ mal_table_thead_attr,
mal_table_tr +
}
-mal_table_tbody = element tbody {
+mal_table_thead_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
-
+ mal_attr_external *
+)
+mal_table_tbody = element tbody {
+ mal_table_tbody_attr,
mal_table_tr +
}
-mal_table_tfoot = element tfoot {
+mal_table_tbody_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
-
+ mal_attr_external *
+)
+mal_table_tfoot = element tfoot {
+ mal_table_tfoot_attr,
mal_table_tr +
}
+mal_table_tfoot_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
mal_table_td = element td {
+ mal_table_td_attr,
+ mal_table_td_content +
+}
+mal_table_td_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
attribute rowspan { text } ?,
attribute colspan { text } ?,
+ mal_attr_external *
+)
+mal_table_td_content = mal_block
- mal_block +
+mal_block_title = element title {
+ mal_block_title_attr,
+ mal_block_title_inline
}
-
-mal_table = element table {
+mal_block_title_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
- attribute frame {
- "all" | "none" |
- list { ("top" | "bottom" | "left" | "right") * }
- } ?,
- attribute rules {
- "all" | "groups" | "none" |
- list { ("rows" | "rowgroups" | "cols" | "colgroups") * }
- } ?,
- attribute shade {
- "all" | "groups" | "none" |
- list { ("rows" | "rowgroups" | "cols" | "colgroups") * }
- } ?,
-
- mal_block_title ?,
- mal_block_desc ?,
-
- ( mal_table_col + |
- mal_table_colgroup +
- ) ?,
+ mal_attr_external *
+)
+mal_block_title_inline = mal_inline
- ( mal_table_tr + |
- ( mal_table_thead ?,
- mal_table_tbody +,
- mal_table_tfoot ?
- )
- )
+mal_block_subtitle = element subtitle {
+ mal_block_subtitle_attr,
+ mal_block_subtitle_inline
}
-
-mal_block_desc = element desc {
+mal_block_subtitle_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
+ mal_attr_external *
+)
+mal_block_subtitle_inline = mal_inline
- mal_inline
+mal_block_desc = element desc {
+ mal_block_desc_attr,
+ mal_block_desc_inline
}
+mal_block_desc_attr = (
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_block_desc_inline = mal_inline
mal_block_cite = element cite {
+ mal_block_cite_attr,
+ mal_block_cite_inline
+}
+mal_block_cite_attr = (
attribute style { xsd:NMTOKENS } ?,
- attribute * - (mal:* | local:*) { text } *,
attribute date { text } ?,
attribute href { text } ?,
-
- mal_inline
-}
-
-mal_block_subtitle = element subtitle {
- mal_inline
-}
-
-mal_block_title = element title {
- mal_inline
-}
+ mal_attr_external *
+)
+mal_block_cite_inline = mal_inline
mal_inline = {
mal_inline_app * &
@@ -411,161 +564,222 @@ mal_inline = {
mal_inline_span * &
mal_inline_sys * &
mal_inline_var * &
- element * - (mal:* | local:*) { mal_inline } * &
+ element * - (mal:* | local:*) {
+ attribute * { text } *,
+ mal_inline
+ } * &
text ?
}
mal_inline_app = element app {
- mal_attr_link ?,
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_inline
+ mal_inline_app_attr,
+ mal_inline_app_inline
}
+mal_inline_app_attr = (
+ mal_attr_link *,
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_inline_app_inline = mal_inline
mal_inline_code = element code {
- mal_attr_link ?,
+ mal_inline_code_attr,
+ mal_inline_code_inline
+}
+mal_inline_code_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
- mal_attr_external *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_inline_code_inline = mal_inline
mal_inline_cmd = element cmd {
- mal_attr_link ?,
+ mal_inline_cmd_attr,
+ mal_inline_cmd_inline
+}
+mal_inline_cmd_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
- mal_attr_external *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_inline_cmd_inline = mal_inline
mal_inline_output = element output {
- mal_attr_link ?,
- attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
-
- mal_inline
+ mal_inline_output_attr,
+ mal_inline_output_inline
}
-
-mal_inline_em = element em {
- mal_attr_link ?,
+mal_inline_output_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_output_inline = mal_inline
- mal_inline
+mal_inline_em = element em {
+ mal_inline_em_attr,
+ mal_inline_em_inline
}
-
-mal_inline_file = element file {
- mal_attr_link ?,
+mal_inline_em_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_em_inline = mal_inline
- mal_inline
+mal_inline_file = element file {
+ mal_inline_file_attr,
+ mal_inline_file_inline
}
-
-mal_inline_gui = element gui {
- mal_attr_link ?,
+mal_inline_file_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_file_inline = mal_inline
- mal_inline
+mal_inline_gui = element gui {
+ mal_inline_gui_attr,
+ mal_inline_gui_inline
}
-
-mal_inline_guiseq = element guiseq {
+mal_inline_gui_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_gui_inline = mal_inline
- mixed { mal_inline_gui + }
+mal_inline_guiseq = element guiseq {
+ mal_inline_guiseq_attr,
+ mal_inline_guiseq_inline
}
-
-mal_inline_link = element link {
- ( attribute xref { text } |
- attribute href { text } |
- ( attribute xref { text }, attribute href { text } )
- ),
- attribute role { text } ?,
+mal_inline_guiseq_attr = (
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_guiseq_inline = (
+ mal_inline_gui + &
+ text
+)
- mal_inline
+mal_inline_link = element link {
+ mal_inline_link_attr,
+ mal_inline_link_inline
}
+mal_inline_link_attr = (
+ mal_attr_link +,
+ attribute style { xsd:NMTOKENS } ?,
+ attribute role { text } ?,
+ mal_attr_external *
+)
+mal_inline_link_inline = mal_inline
mal_inline_media = element media {
- mal_attr_link ?,
- attribute style { xsd:NMTOKENS } ?,
+ mal_inline_media_attr,
+ mal_inline_media_inline
+}
+mal_inline_media_attr = (
+ mal_attr_link *,
attribute type { "image" | "video" | "audio" | "application" } ?,
+ attribute style { xsd:NMTOKENS } ?,
attribute mime { text } ?,
attribute src { text },
attribute height { text } ?,
attribute width { text } ?,
- mal_attr_external *,
-
- mal_inline
-}
+ mal_attr_external *
+)
+mal_inline_media_inline = mal_inline
mal_inline_keyseq = element keyseq {
- attribute style { xsd:NMTOKENS } ?,
- attribute type { "combo" | "sequence" } ?,
- mal_attr_external *,
-
- mixed {
- (mal_inline_key | mal_inline_keyseq) *
- }
+ mal_inline_keyseq_attr,
+ mal_inline_keyseq_inline
}
-
-mal_inline_key = element key {
- mal_attr_link ?,
+mal_inline_keyseq_attr = (
+ attribute type { "combo" | "sequence" } ?,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_keyseq_inline = (
+ (mal_inline_key | mal_inline_keyseq) + &
+ text
+)
- mal_inline
+mal_inline_key = element key {
+ mal_inline_key_attr,
+ mal_inline_key_inline
}
-
-mal_inline_span = element span {
- mal_attr_link ?,
+mal_inline_key_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_key_inline = mal_inline
- mal_inline
+mal_inline_span = element span {
+ mal_inline_span_attr,
+ mal_inline_span_inline
}
-
-mal_inline_sys = element sys {
- mal_attr_link ?,
+mal_inline_span_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_span_inline = mal_inline
- mal_inline
+mal_inline_sys = element sys {
+ mal_inline_sys_attr,
+ mal_inline_sys_inline
}
-
-mal_inline_input = element input {
- mal_attr_link ?,
+mal_inline_sys_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_sys_inline = mal_inline
- mal_inline
+mal_inline_input = element input {
+ mal_inline_input_attr,
+ mal_inline_input_inline
}
-
-mal_inline_var = element var {
- mal_attr_link ?,
+mal_inline_input_attr = (
+ mal_attr_link *,
attribute style { xsd:NMTOKENS } ?,
- mal_attr_external *,
+ mal_attr_external *
+)
+mal_inline_input_inline = mal_inline
- mal_inline
+mal_inline_var = element var {
+ mal_inline_var_attr,
+ mal_inline_var_inline
}
+mal_inline_var_attr = (
+ mal_attr_link *,
+ attribute style { xsd:NMTOKENS } ?,
+ mal_attr_external *
+)
+mal_inline_var_inline = mal_inline
mal_external = element * - (mal:* | local:*) {
attribute * { text } *,
- mal_anything *
+ ( mal_anything * &
+ text ?
+ )
}
mal_anything = element * {
attribute * { text } *,
- mal_anything *
+ ( mal_anything * &
+ text ?
+ )
}
mal_attr_external = attribute * - (mal:* | local:*) { text }
-mal_attr_link =
- ( attribute xref { text } ?
- | { attribute dref { text } ?, attribute href { text } ? }
- )
+mal_attr_link = (
+ attribute xref { text } |
+ attribute href { text } |
+ attribute action { text }
+)
+mal_attr_mal_link = (
+ attribute mal:xref { text } ?,
+ attribute mal:action { text } ?
+)
diff --git a/rng/mallard/mallard.rng b/rng/mallard/mallard.rng
index b82f835..720b18e 100644
--- a/rng/mallard/mallard.rng
+++ b/rng/mallard/mallard.rng
@@ -10,15 +10,37 @@
<define name="mal_page">
<element name="page">
+ <ref name="mal_page_attr"/>
+ <optional>
+ <ref name="mal_info"/>
+ </optional>
+ <ref name="mal_block_title"/>
+ <optional>
+ <ref name="mal_block_subtitle"/>
+ </optional>
+ <zeroOrMore>
+ <choice>
+ <ref name="mal_block"/>
+ <ref name="mal_links"/>
+ </choice>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_section"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_links"/>
+ </zeroOrMore>
+ </element>
+</define>
+
+<define name="mal_page_attr">
+ <group>
<attribute name="id">
<data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
<optional>
<attribute name="type">
- <choice>
- <value>guide</value>
- <value>topic</value>
- </choice>
+ <data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<optional>
@@ -27,28 +49,43 @@
</attribute>
</optional>
<optional>
- <attribute name="groups">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ <attribute name="version">
+ <text/>
</attribute>
</optional>
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_section">
+ <element name="section">
+ <ref name="mal_section_attr"/>
<optional>
<ref name="mal_info"/>
</optional>
<ref name="mal_block_title"/>
+ <optional>
+ <ref name="mal_block_subtitle"/>
+ </optional>
<zeroOrMore>
- <ref name="mal_block"/>
+ <choice>
+ <ref name="mal_block"/>
+ <ref name="mal_links"/>
+ </choice>
</zeroOrMore>
<zeroOrMore>
<ref name="mal_section"/>
</zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_links"/>
+ </zeroOrMore>
</element>
</define>
-<define name="mal_section">
- <element name="section">
+<define name="mal_section_attr">
+ <group>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
@@ -60,186 +97,236 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_info">
+ <element name="info">
+ <ref name="mal_info_attr"/>
+ <ref name="mal_info_content"/>
+ </element>
+</define>
+
+<define name="mal_info_attr">
+ <group>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_info_content">
+ <interleave>
<optional>
- <ref name="mal_info"/>
+ <ref name="mal_info_desc"/>
</optional>
- <ref name="mal_block_title"/>
<zeroOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_info_credit"/>
</zeroOrMore>
<zeroOrMore>
- <ref name="mal_section"/>
+ <ref name="mal_info_license"/>
</zeroOrMore>
- </element>
-</define>
-
-<define name="mal_info">
- <element name="info">
<zeroOrMore>
- <ref name="mal_attr_external"/>
+ <ref name="mal_info_link"/>
</zeroOrMore>
- <interleave>
- <optional>
- <ref name="mal_info_desc"/>
- </optional>
- <zeroOrMore>
- <ref name="mal_info_credit"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_info_license"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_info_link"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_info_title"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_info_revision"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_external"/>
- </zeroOrMore>
- </interleave>
- </element>
+ <zeroOrMore>
+ <ref name="mal_info_title"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_info_revision"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_external"/>
+ </zeroOrMore>
+ </interleave>
</define>
<define name="mal_info_credit">
<element name="credit">
+ <ref name="mal_info_credit_attr"/>
+ <ref name="mal_info_credit_content"/>
+ </element>
+</define>
+
+<define name="mal_info_credit_attr">
+ <group>
<optional>
<attribute name="type">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <interleave>
- <ref name="mal_info_name"/>
- <optional>
- <ref name="mal_info_email"/>
- </optional>
- <optional>
- <ref name="mal_info_years"/>
- </optional>
- <zeroOrMore>
- <ref name="mal_external"/>
- </zeroOrMore>
- </interleave>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_credit_content">
+ <interleave>
+ <ref name="mal_info_name"/>
+ <zeroOrMore>
+ <ref name="mal_info_email"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="mal_info_years"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_external"/>
+ </zeroOrMore>
+ </interleave>
</define>
<define name="mal_info_link">
<element name="link">
+ <ref name="mal_info_link_attr"/>
+ <zeroOrMore>
+ <ref name="mal_info_link_content"/>
+ </zeroOrMore>
+ </element>
+</define>
+
+<define name="mal_info_link_attr">
+ <group>
<attribute name="type">
<data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
- <choice>
- <attribute name="xref">
- <text/>
- </attribute>
- <attribute name="href">
- <text/>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
- </choice>
+ </optional>
+ <oneOrMore>
+ <ref name="mal_attr_link"/>
+ </oneOrMore>
<optional>
<attribute name="group">
<text/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="mal_external"/>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_link_content">
+ <ref name="mal_external"/>
</define>
<define name="mal_info_title">
<element name="title">
+ <ref name="mal_info_title_attr"/>
+ <ref name="mal_info_title_inline"/>
+ </element>
+</define>
+
+<define name="mal_info_title_attr">
+ <group>
<attribute name="type">
<data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
<optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
+ <optional>
<attribute name="role">
<data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_title_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_info_license">
<element name="license">
+ <ref name="mal_info_license_attr"/>
+ <oneOrMore>
+ <ref name="mal_info_license_content"/>
+ </oneOrMore>
+ </element>
+</define>
+
+<define name="mal_info_license_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
<optional>
<attribute name="href">
<text/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <oneOrMore>
- <ref name="mal_block"/>
- </oneOrMore>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_license_content">
+ <ref name="mal_block"/>
</define>
<define name="mal_info_desc">
<element name="desc">
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <ref name="mal_info_desc_attr"/>
+ <ref name="mal_info_desc_inline"/>
+ </element>
+</define>
+
+<define name="mal_info_desc_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_desc_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_info_revision">
<element name="revision">
+ <ref name="mal_info_revision_attr"/>
+ <optional>
+ <ref name="mal_block_title"/>
+ </optional>
+ <optional>
+ <ref name="mal_block_desc"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_info_revision_content"/>
+ </zeroOrMore>
+ </element>
+</define>
+
+<define name="mal_info_revision_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
<optional>
<attribute name="version">
<text/>
@@ -262,132 +349,186 @@
</optional>
<optional>
<attribute name="status">
- <choice>
- <value>stub</value>
- <value>incomplete</value>
- <value>draft</value>
- <value>outdated</value>
- <value>review</value>
- <value>candidate</value>
- <value>final</value>
- </choice>
+ <data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <optional>
- <ref name="mal_block_title"/>
- </optional>
- <optional>
- <ref name="mal_block_desc"/>
- </optional>
- <zeroOrMore>
- <ref name="mal_external"/>
- </zeroOrMore>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_revision_content">
+ <ref name="mal_external"/>
</define>
<define name="mal_info_years">
<element name="years">
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <ref name="mal_info_years_attr"/>
+ <ref name="mal_info_years_inline"/>
+ </element>
+</define>
+
+<define name="mal_info_years_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_years_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_info_email">
<element name="email">
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <ref name="mal_info_email_attr"/>
+ <ref name="mal_info_email_inline"/>
+ </element>
+</define>
+
+<define name="mal_info_email_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_info_email_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_info_name">
<element name="name">
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <ref name="mal_info_name_attr"/>
+ <ref name="mal_info_name_inline"/>
+ </element>
+</define>
+
+<define name="mal_info_name_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_info_name_inline">
+ <ref name="mal_inline"/>
+</define>
+
+<define name="mal_links">
+ <element name="links">
+ <ref name="mal_links_attr"/>
+ <optional>
+ <ref name="mal_block_title"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_links_content"/>
</zeroOrMore>
- <ref name="mal_inline"/>
</element>
</define>
-<define name="mal_block">
- <choice>
- <ref name="mal_block_basic"/>
- <ref name="mal_block_formal"/>
- <ref name="mal_block_lists"/>
- <ref name="mal_table"/>
- </choice>
+<define name="mal_links_attr">
+ <group>
+ <attribute name="type">
+ <data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="groups">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_links_content">
+ <ref name="mal_external"/>
</define>
-<define name="mal_block_basic">
+<define name="mal_block">
<choice>
- <ref name="mal_block_code"/>
- <ref name="mal_block_example"/>
- <ref name="mal_block_media"/>
- <ref name="mal_block_p"/>
- <ref name="mal_block_screen"/>
+ <ref name="mal_block_elements"/>
+ <element>
+ <anyName>
+ <except>
+ <nsName ns="http://projectmallard.org/1.0/"/>
+ <nsName ns=""/>
+ </except>
+ </anyName>
+ <zeroOrMore>
+ <attribute>
+ <anyName/>
+ <text/>
+ </attribute>
+ </zeroOrMore>
+ <interleave>
+ <zeroOrMore>
+ <ref name="mal_external"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="mal_block_elements"/>
+ </zeroOrMore>
+ </interleave>
+ </element>
</choice>
</define>
-<define name="mal_block_formal">
+<define name="mal_block_elements">
<choice>
+ <ref name="mal_block_code"/>
<ref name="mal_block_comment"/>
+ <ref name="mal_block_example"/>
<ref name="mal_block_figure"/>
+ <ref name="mal_block_list"/>
<ref name="mal_block_listing"/>
+ <ref name="mal_block_media"/>
<ref name="mal_block_note"/>
+ <ref name="mal_block_p"/>
<ref name="mal_block_quote"/>
- <ref name="mal_block_synopsis"/>
- </choice>
-</define>
-
-<define name="mal_block_lists">
- <choice>
- <ref name="mal_block_list"/>
+ <ref name="mal_block_screen"/>
<ref name="mal_block_steps"/>
+ <ref name="mal_block_synopsis"/>
<ref name="mal_block_terms"/>
<ref name="mal_block_tree"/>
+ <ref name="mal_table"/>
</choice>
</define>
<define name="mal_block_code">
<element name="code">
+ <ref name="mal_block_code_attr"/>
+ <ref name="mal_block_code_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_code_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -401,12 +542,24 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_code_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_block_example">
<element name="example">
+ <ref name="mal_block_example_attr"/>
+ <oneOrMore>
+ <ref name="mal_block_example_content"/>
+ </oneOrMore>
+ </element>
+</define>
+
+<define name="mal_block_example_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -415,14 +568,24 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <oneOrMore>
- <ref name="mal_block"/>
- </oneOrMore>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_example_content">
+ <ref name="mal_block"/>
</define>
<define name="mal_block_media">
<element name="media">
+ <ref name="mal_block_media_attr"/>
+ <zeroOrMore>
+ <ref name="mal_block_media_content"/>
+ </zeroOrMore>
+ </element>
+</define>
+
+<define name="mal_block_media_attr">
+ <group>
<optional>
<attribute name="type">
<choice>
@@ -434,6 +597,11 @@
</attribute>
</optional>
<optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
+ <optional>
<attribute name="mime">
<text/>
</attribute>
@@ -451,22 +619,25 @@
<text/>
</attribute>
</optional>
- <optional>
- <attribute name="style">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
- </attribute>
- </optional>
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <zeroOrMore>
- <ref name="mal_block"/>
- </zeroOrMore>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_media_content">
+ <ref name="mal_block"/>
</define>
<define name="mal_block_p">
<element name="p">
+ <ref name="mal_block_p_attr"/>
+ <ref name="mal_block_p_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_p_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -475,12 +646,22 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_p_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_block_screen">
<element name="screen">
+ <ref name="mal_block_screen_attr"/>
+ <ref name="mal_block_screen_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_screen_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -494,32 +675,30 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_screen_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_block_quote">
<element name="quote">
+ <ref name="mal_block_quote_attr"/>
<optional>
- <attribute name="style">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
- </attribute>
+ <ref name="mal_block_title"/>
</optional>
- <zeroOrMore>
- <ref name="mal_attr_external"/>
- </zeroOrMore>
<optional>
- <ref name="mal_block_title"/>
+ <ref name="mal_block_cite"/>
</optional>
- <ref name="mal_block_cite"/>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_quote_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_comment">
- <element name="comment">
+<define name="mal_block_quote_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -528,18 +707,30 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_quote_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_comment">
+ <element name="comment">
+ <ref name="mal_block_comment_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
- <ref name="mal_block_cite"/>
+ <optional>
+ <ref name="mal_block_cite"/>
+ </optional>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_comment_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_figure">
- <element name="figure">
+<define name="mal_block_comment_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -548,6 +739,16 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_comment_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_figure">
+ <element name="figure">
+ <ref name="mal_block_figure_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
@@ -555,13 +756,13 @@
<ref name="mal_block_desc"/>
</optional>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_figure_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_listing">
- <element name="listing">
+<define name="mal_block_figure_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -570,6 +771,16 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_figure_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_listing">
+ <element name="listing">
+ <ref name="mal_block_listing_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
@@ -577,13 +788,13 @@
<ref name="mal_block_desc"/>
</optional>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_listing_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_note">
- <element name="note">
+<define name="mal_block_listing_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -592,17 +803,27 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_listing_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_note">
+ <element name="note">
+ <ref name="mal_block_note_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_note_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_synopsis">
- <element name="synopsis">
+<define name="mal_block_note_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -611,6 +832,16 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_note_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_synopsis">
+ <element name="synopsis">
+ <ref name="mal_block_synopsis_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
@@ -618,18 +849,13 @@
<ref name="mal_block_desc"/>
</optional>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_synopsis_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_list">
- <element name="list">
- <optional>
- <attribute name="type">
- <data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
- </attribute>
- </optional>
+<define name="mal_block_synopsis_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -638,6 +864,16 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_synopsis_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_list">
+ <element name="list">
+ <ref name="mal_block_list_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
@@ -647,8 +883,13 @@
</element>
</define>
-<define name="mal_block_list_item">
- <element name="item">
+<define name="mal_block_list_attr">
+ <group>
+ <optional>
+ <attribute name="type">
+ <data type="NMTOKEN" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -657,14 +898,20 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_list_item">
+ <element name="item">
+ <ref name="mal_block_list_item_attr"/>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_list_item_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_terms">
- <element name="terms">
+<define name="mal_block_list_item_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -673,17 +920,27 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_list_item_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_steps">
+ <element name="steps">
+ <ref name="mal_block_steps_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
<oneOrMore>
- <ref name="mal_block_terms_item"/>
+ <ref name="mal_block_steps_item"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_terms_item">
- <element name="item">
+<define name="mal_block_steps_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -692,17 +949,20 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_steps_item">
+ <element name="item">
+ <ref name="mal_block_steps_item_attr"/>
<oneOrMore>
- <ref name="mal_block_title"/>
- </oneOrMore>
- <oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_steps_item_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_steps">
- <element name="steps">
+<define name="mal_block_steps_item_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -711,17 +971,27 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_steps_item_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_terms">
+ <element name="terms">
+ <ref name="mal_block_terms_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
<oneOrMore>
- <ref name="mal_block_steps_item"/>
+ <ref name="mal_block_terms_item"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_steps_item">
- <element name="item">
+<define name="mal_block_terms_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -730,14 +1000,23 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_terms_item">
+ <element name="item">
+ <ref name="mal_block_terms_item_attr"/>
+ <oneOrMore>
+ <ref name="mal_block_title"/>
+ </oneOrMore>
<oneOrMore>
- <ref name="mal_block"/>
+ <ref name="mal_block_terms_item_content"/>
</oneOrMore>
</element>
</define>
-<define name="mal_block_tree">
- <element name="tree">
+<define name="mal_block_terms_item_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -746,6 +1025,16 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_terms_item_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_tree">
+ <element name="tree">
+ <ref name="mal_block_tree_attr"/>
<optional>
<ref name="mal_block_title"/>
</optional>
@@ -755,8 +1044,8 @@
</element>
</define>
-<define name="mal_block_tree_item">
- <element name="item">
+<define name="mal_block_tree_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -765,172 +1054,288 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
+ </group>
+</define>
+
+<define name="mal_block_tree_item">
+ <element name="item">
+ <ref name="mal_block_tree_item_attr"/>
+ <ref name="mal_block_tree_item_inline"/>
<zeroOrMore>
<ref name="mal_block_tree_item"/>
</zeroOrMore>
</element>
</define>
-<define name="mal_table_col">
- <element name="col">
+<define name="mal_block_tree_item_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_tree_item_inline">
+ <ref name="mal_inline"/>
+</define>
+
+<define name="mal_table">
+ <element name="table">
+ <ref name="mal_table_attr"/>
+ <optional>
+ <ref name="mal_block_title"/>
+ </optional>
+ <optional>
+ <ref name="mal_block_desc"/>
+ </optional>
+ <optional>
+ <choice>
+ <oneOrMore>
+ <ref name="mal_table_col"/>
+ </oneOrMore>
+ <oneOrMore>
+ <ref name="mal_table_colgroup"/>
+ </oneOrMore>
+ </choice>
+ </optional>
+ <choice>
+ <oneOrMore>
+ <ref name="mal_table_tr"/>
+ </oneOrMore>
+ <group>
+ <optional>
+ <ref name="mal_table_thead"/>
+ </optional>
+ <oneOrMore>
+ <ref name="mal_table_tbody"/>
+ </oneOrMore>
+ <optional>
+ <ref name="mal_table_tfoot"/>
+ </optional>
+ </group>
+ </choice>
</element>
</define>
-<define name="mal_table_colgroup">
- <element name="colgroup">
+<define name="mal_table_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="frame">
+ <choice>
+ <value>all</value>
+ <value>none</value>
+ <list>
+ <zeroOrMore>
+ <choice>
+ <value>top</value>
+ <value>bottom</value>
+ <value>left</value>
+ <value>right</value>
+ </choice>
+ </zeroOrMore>
+ </list>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="rules">
+ <choice>
+ <value>all</value>
+ <value>groups</value>
+ <value>none</value>
+ <list>
+ <zeroOrMore>
+ <choice>
+ <value>rows</value>
+ <value>rowgroups</value>
+ <value>cols</value>
+ <value>colgroups</value>
+ </choice>
+ </zeroOrMore>
+ </list>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="shade">
+ <choice>
+ <value>all</value>
+ <value>groups</value>
+ <value>none</value>
+ <list>
+ <zeroOrMore>
+ <choice>
+ <value>rows</value>
+ <value>rowgroups</value>
+ <value>cols</value>
+ <value>colgroups</value>
+ </choice>
+ </zeroOrMore>
+ </list>
+ </choice>
+ </attribute>
+ </optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_col">
+ <element name="col">
+ <ref name="mal_table_col_attr"/>
+ </element>
+</define>
+
+<define name="mal_table_col_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
+ </optional>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_colgroup">
+ <element name="colgroup">
+ <ref name="mal_table_colgroup_attr"/>
<zeroOrMore>
<ref name="mal_table_col"/>
</zeroOrMore>
</element>
</define>
-<define name="mal_table_tr">
- <element name="tr">
+<define name="mal_table_colgroup_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_tr">
+ <element name="tr">
+ <ref name="mal_table_tr_attr"/>
<zeroOrMore>
<ref name="mal_table_td"/>
</zeroOrMore>
</element>
</define>
-<define name="mal_table_thead">
- <element name="thead">
+<define name="mal_table_tr_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_thead">
+ <element name="thead">
+ <ref name="mal_table_thead_attr"/>
<oneOrMore>
<ref name="mal_table_tr"/>
</oneOrMore>
</element>
</define>
-<define name="mal_table_tbody">
- <element name="tbody">
+<define name="mal_table_thead_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_tbody">
+ <element name="tbody">
+ <ref name="mal_table_tbody_attr"/>
<oneOrMore>
<ref name="mal_table_tr"/>
</oneOrMore>
</element>
</define>
-<define name="mal_table_tfoot">
- <element name="tfoot">
+<define name="mal_table_tbody_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_tfoot">
+ <element name="tfoot">
+ <ref name="mal_table_tfoot_attr"/>
<oneOrMore>
<ref name="mal_table_tr"/>
</oneOrMore>
</element>
</define>
-<define name="mal_table_td">
- <element name="td">
+<define name="mal_table_tfoot_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_td">
+ <element name="td">
+ <ref name="mal_table_td_attr"/>
+ <oneOrMore>
+ <ref name="mal_table_td_content"/>
+ </oneOrMore>
+ </element>
+</define>
+
+<define name="mal_table_td_attr">
+ <group>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
<optional>
<attribute name="rowspan">
<text/>
@@ -941,161 +1346,102 @@
<text/>
</attribute>
</optional>
- <oneOrMore>
- <ref name="mal_block"/>
- </oneOrMore>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_table_td_content">
+ <ref name="mal_block"/>
+</define>
+
+<define name="mal_block_title">
+ <element name="title">
+ <ref name="mal_block_title_attr"/>
+ <ref name="mal_block_title_inline"/>
</element>
</define>
-<define name="mal_table">
- <element name="table">
+<define name="mal_block_title_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_title_inline">
+ <ref name="mal_inline"/>
+</define>
+
+<define name="mal_block_subtitle">
+ <element name="subtitle">
+ <ref name="mal_block_subtitle_attr"/>
+ <ref name="mal_block_subtitle_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_subtitle_attr">
+ <group>
<optional>
- <attribute name="frame">
- <choice>
- <value>all</value>
- <value>none</value>
- <list>
- <zeroOrMore>
- <choice>
- <value>top</value>
- <value>bottom</value>
- <value>left</value>
- <value>right</value>
- </choice>
- </zeroOrMore>
- </list>
- </choice>
- </attribute>
- </optional>
- <optional>
- <attribute name="rules">
- <choice>
- <value>all</value>
- <value>groups</value>
- <value>none</value>
- <list>
- <zeroOrMore>
- <choice>
- <value>rows</value>
- <value>rowgroups</value>
- <value>cols</value>
- <value>colgroups</value>
- </choice>
- </zeroOrMore>
- </list>
- </choice>
- </attribute>
- </optional>
- <optional>
- <attribute name="shade">
- <choice>
- <value>all</value>
- <value>groups</value>
- <value>none</value>
- <list>
- <zeroOrMore>
- <choice>
- <value>rows</value>
- <value>rowgroups</value>
- <value>cols</value>
- <value>colgroups</value>
- </choice>
- </zeroOrMore>
- </list>
- </choice>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
- <optional>
- <ref name="mal_block_title"/>
- </optional>
- <optional>
- <ref name="mal_block_desc"/>
- </optional>
- <optional>
- <choice>
- <oneOrMore>
- <ref name="mal_table_col"/>
- </oneOrMore>
- <oneOrMore>
- <ref name="mal_table_colgroup"/>
- </oneOrMore>
- </choice>
- </optional>
- <choice>
- <oneOrMore>
- <ref name="mal_table_tr"/>
- </oneOrMore>
- <group>
- <optional>
- <ref name="mal_table_thead"/>
- </optional>
- <oneOrMore>
- <ref name="mal_table_tbody"/>
- </oneOrMore>
- <optional>
- <ref name="mal_table_tfoot"/>
- </optional>
- </group>
- </choice>
- </element>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
+</define>
+
+<define name="mal_block_subtitle_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_block_desc">
<element name="desc">
+ <ref name="mal_block_desc_attr"/>
+ <ref name="mal_block_desc_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_desc_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
+ <ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_block_desc_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_block_cite">
<element name="cite">
+ <ref name="mal_block_cite_attr"/>
+ <ref name="mal_block_cite_inline"/>
+ </element>
+</define>
+
+<define name="mal_block_cite_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
- <zeroOrMore>
- <attribute>
- <anyName>
- <except>
- <nsName ns="http://projectmallard.org/1.0/"/>
- <nsName ns=""/>
- </except>
- </anyName>
- <text/>
- </attribute>
- </zeroOrMore>
<optional>
<attribute name="date">
<text/>
@@ -1106,20 +1452,14 @@
<text/>
</attribute>
</optional>
- <ref name="mal_inline"/>
- </element>
-</define>
-
-<define name="mal_block_subtitle">
- <element name="subtitle">
- <ref name="mal_inline"/>
- </element>
+ <zeroOrMore>
+ <ref name="mal_attr_external"/>
+ </zeroOrMore>
+ </group>
</define>
-<define name="mal_block_title">
- <element name="title">
- <ref name="mal_inline"/>
- </element>
+<define name="mal_block_cite_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline">
@@ -1180,6 +1520,12 @@
<nsName ns=""/>
</except>
</anyName>
+ <zeroOrMore>
+ <attribute>
+ <anyName/>
+ <text/>
+ </attribute>
+ </zeroOrMore>
<ref name="mal_inline"/>
</element>
</zeroOrMore>
@@ -1191,9 +1537,16 @@
<define name="mal_inline_app">
<element name="app">
- <optional>
+ <ref name="mal_inline_app_attr"/>
+ <ref name="mal_inline_app_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_app_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1202,15 +1555,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_app_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_code">
<element name="code">
- <optional>
+ <ref name="mal_inline_code_attr"/>
+ <ref name="mal_inline_code_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_code_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1224,15 +1587,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_code_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_cmd">
<element name="cmd">
- <optional>
+ <ref name="mal_inline_cmd_attr"/>
+ <ref name="mal_inline_cmd_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_cmd_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1246,15 +1619,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_cmd_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_output">
<element name="output">
- <optional>
+ <ref name="mal_inline_output_attr"/>
+ <ref name="mal_inline_output_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_output_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1263,15 +1646,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_output_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_em">
<element name="em">
- <optional>
+ <ref name="mal_inline_em_attr"/>
+ <ref name="mal_inline_em_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_em_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1280,15 +1673,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_em_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_file">
<element name="file">
- <optional>
+ <ref name="mal_inline_file_attr"/>
+ <ref name="mal_inline_file_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_file_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1297,15 +1700,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_file_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_gui">
<element name="gui">
- <optional>
+ <ref name="mal_inline_gui_attr"/>
+ <ref name="mal_inline_gui_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_gui_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1314,12 +1727,22 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_gui_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_guiseq">
<element name="guiseq">
+ <ref name="mal_inline_guiseq_attr"/>
+ <ref name="mal_inline_guiseq_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_guiseq_attr">
+ <group>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1328,59 +1751,62 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <mixed>
- <oneOrMore>
- <ref name="mal_inline_gui"/>
- </oneOrMore>
- </mixed>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_guiseq_inline">
+ <interleave>
+ <oneOrMore>
+ <ref name="mal_inline_gui"/>
+ </oneOrMore>
+ <text/>
+ </interleave>
</define>
<define name="mal_inline_link">
<element name="link">
- <choice>
- <attribute name="xref">
- <text/>
- </attribute>
- <attribute name="href">
- <text/>
- </attribute>
- <group>
- <attribute name="xref">
- <text/>
- </attribute>
- <attribute name="href">
- <text/>
- </attribute>
- </group>
- </choice>
+ <ref name="mal_inline_link_attr"/>
+ <ref name="mal_inline_link_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_link_attr">
+ <group>
+ <oneOrMore>
+ <ref name="mal_attr_link"/>
+ </oneOrMore>
<optional>
- <attribute name="role">
- <text/>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<optional>
- <attribute name="style">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ <attribute name="role">
+ <text/>
</attribute>
</optional>
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_link_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_media">
<element name="media">
- <optional>
+ <ref name="mal_inline_media_attr"/>
+ <ref name="mal_inline_media_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_media_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
- <optional>
- <attribute name="style">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
- </attribute>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="type">
<choice>
@@ -1392,6 +1818,11 @@
</attribute>
</optional>
<optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
+ <optional>
<attribute name="mime">
<text/>
</attribute>
@@ -1412,17 +1843,22 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_media_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_keyseq">
<element name="keyseq">
- <optional>
- <attribute name="style">
- <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
- </attribute>
- </optional>
+ <ref name="mal_inline_keyseq_attr"/>
+ <ref name="mal_inline_keyseq_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_keyseq_attr">
+ <group>
<optional>
<attribute name="type">
<choice>
@@ -1431,25 +1867,41 @@
</choice>
</attribute>
</optional>
+ <optional>
+ <attribute name="style">
+ <data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
+ </attribute>
+ </optional>
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <mixed>
- <zeroOrMore>
- <choice>
- <ref name="mal_inline_key"/>
- <ref name="mal_inline_keyseq"/>
- </choice>
- </zeroOrMore>
- </mixed>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_keyseq_inline">
+ <interleave>
+ <oneOrMore>
+ <choice>
+ <ref name="mal_inline_key"/>
+ <ref name="mal_inline_keyseq"/>
+ </choice>
+ </oneOrMore>
+ <text/>
+ </interleave>
</define>
<define name="mal_inline_key">
<element name="key">
- <optional>
+ <ref name="mal_inline_key_attr"/>
+ <ref name="mal_inline_key_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_key_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1458,15 +1910,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_key_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_span">
<element name="span">
- <optional>
+ <ref name="mal_inline_span_attr"/>
+ <ref name="mal_inline_span_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_span_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1475,15 +1937,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_span_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_sys">
<element name="sys">
- <optional>
+ <ref name="mal_inline_sys_attr"/>
+ <ref name="mal_inline_sys_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_sys_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1492,15 +1964,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_sys_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_input">
<element name="input">
- <optional>
+ <ref name="mal_inline_input_attr"/>
+ <ref name="mal_inline_input_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_input_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1509,15 +1991,25 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_input_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_inline_var">
<element name="var">
- <optional>
+ <ref name="mal_inline_var_attr"/>
+ <ref name="mal_inline_var_inline"/>
+ </element>
+</define>
+
+<define name="mal_inline_var_attr">
+ <group>
+ <zeroOrMore>
<ref name="mal_attr_link"/>
- </optional>
+ </zeroOrMore>
<optional>
<attribute name="style">
<data type="NMTOKENS" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
@@ -1526,8 +2018,11 @@
<zeroOrMore>
<ref name="mal_attr_external"/>
</zeroOrMore>
- <ref name="mal_inline"/>
- </element>
+ </group>
+</define>
+
+<define name="mal_inline_var_inline">
+ <ref name="mal_inline"/>
</define>
<define name="mal_external">
@@ -1544,9 +2039,14 @@
<text/>
</attribute>
</zeroOrMore>
- <zeroOrMore>
- <ref name="mal_anything"/>
- </zeroOrMore>
+ <interleave>
+ <zeroOrMore>
+ <ref name="mal_anything"/>
+ </zeroOrMore>
+ <optional>
+ <text/>
+ </optional>
+ </interleave>
</element>
</define>
@@ -1559,9 +2059,14 @@
<text/>
</attribute>
</zeroOrMore>
- <zeroOrMore>
- <ref name="mal_anything"/>
- </zeroOrMore>
+ <interleave>
+ <zeroOrMore>
+ <ref name="mal_anything"/>
+ </zeroOrMore>
+ <optional>
+ <text/>
+ </optional>
+ </interleave>
</element>
</define>
@@ -1579,21 +2084,30 @@
<define name="mal_attr_link">
<choice>
+ <attribute name="xref">
+ <text/>
+ </attribute>
+ <attribute name="href">
+ <text/>
+ </attribute>
+ <attribute name="action">
+ <text/>
+ </attribute>
+ </choice>
+</define>
+
+<define name="mal_attr_mal_link">
+ <group>
<optional>
- <attribute name="xref">
- <text/>
- </attribute>
- </optional>
- <optional>
- <attribute name="dref">
+ <attribute name="mal:xref">
<text/>
</attribute>
</optional>
<optional>
- <attribute name="href">
+ <attribute name="mal:action">
<text/>
</attribute>
</optional>
- </choice>
+ </group>
</define>
</grammar>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]