summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--QMTest/TestCmd.py31
-rw-r--r--QMTest/TestSCons.py2
-rw-r--r--ReleaseConfig2
-rw-r--r--SConstruct4
-rw-r--r--bin/SConsDoc.py4
-rw-r--r--bin/update-release-info.py4
-rwxr-xr-xbin/upload-release-files.sh4
-rw-r--r--doc/SConscript303
-rw-r--r--doc/design/acks.xml2
-rw-r--r--doc/design/bground.xml2
-rw-r--r--doc/design/chtml.xsl1
-rw-r--r--doc/design/copyright.xml2
-rw-r--r--doc/design/engine.xml2
-rw-r--r--doc/design/goals.xml2
-rw-r--r--doc/design/html.xsl1
-rw-r--r--doc/design/install.xml2
-rw-r--r--doc/design/intro.xml2
-rw-r--r--doc/design/issues.xml2
-rw-r--r--doc/design/main.xml2
-rw-r--r--doc/design/native.xml2
-rw-r--r--doc/design/overview.xml2
-rw-r--r--doc/design/pdf.xsl1
-rw-r--r--doc/design/scons.css4
-rw-r--r--doc/design/summary.xml2
-rw-r--r--doc/developer/architecture.xml2
-rw-r--r--doc/developer/branches.xml2
-rw-r--r--doc/developer/copyright.xml2
-rw-r--r--doc/developer/cycle.xml2
-rw-r--r--doc/developer/main.xml2
-rw-r--r--doc/developer/packaging.xml2
-rw-r--r--doc/developer/preface.xml2
-rw-r--r--doc/developer/sourcetree.xml2
-rw-r--r--doc/developer/testing.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons2.xml7
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/addListItem.pngbin0 -> 542 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/back.pngbin0 -> 793 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/boldText.pngbin0 -> 570 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/copy.pngbin0 -> 651 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/cut.pngbin0 -> 636 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementColumnSpan.pngbin0 -> 448 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementRowSpan.pngbin0 -> 454 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/definitionList.pngbin0 -> 411 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/delete.pngbin0 -> 792 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteColumn.pngbin0 -> 663 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteRow.pngbin0 -> 671 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/documentation.pngbin0 -> 748 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/down.pngbin0 -> 614 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/editDocument.pngbin0 -> 717 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText.pngbin0 -> 569 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText_menu.pngbin0 -> 592 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure.pngbin0 -> 686 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure_menu.pngbin0 -> 630 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/forward.pngbin0 -> 799 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading.pngbin0 -> 380 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading_menu.pngbin0 -> 431 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText.pngbin0 -> 562 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText_menu.pngbin0 -> 585 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementColumnSpan.pngbin0 -> 485 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementRowSpan.pngbin0 -> 491 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnAfter.pngbin0 -> 528 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnBefore.pngbin0 -> 531 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowAfter.pngbin0 -> 514 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowBefore.pngbin0 -> 548 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/italicText.pngbin0 -> 554 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/itemizedList.pngbin0 -> 415 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/left.pngbin0 -> 570 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link.pngbin0 -> 720 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link_menu.pngbin0 -> 706 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/navigate.pngbin0 -> 618 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/normalText.pngbin0 -> 553 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/onlineHelp.pngbin0 -> 861 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/orderedList.pngbin0 -> 451 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paragraph.pngbin0 -> 374 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paste.pngbin0 -> 699 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteAfter.pngbin0 -> 710 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteBefore.pngbin0 -> 721 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/plainText.pngbin0 -> 554 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/right.pngbin0 -> 589 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section.pngbin0 -> 379 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section_menu.pngbin0 -> 353 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table.pngbin0 -> 440 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table_menu.pngbin0 -> 423 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/typewriterText.pngbin0 -> 438 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/up.pngbin0 -> 627 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_icons/viewDocument.pngbin0 -> 677 bytes
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/appendix.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/article.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/book.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/chapter.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/glossary.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/part.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/refentry.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/sconsdoc.xml2
-rw-r--r--doc/editor_configs/xmlmind/addon/config/scons/scons_templates/section.xml2
-rw-r--r--doc/editor_configs/xmlmind/custom/dummy.txt1
-rw-r--r--doc/editor_configs/xmlmind/preferences.properties108
-rw-r--r--doc/editor_configs/xmlmind/ser/dummy.txt1
-rw-r--r--doc/editor_configs/xmlmind/spell/dummy.txt1
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/common.incl647
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/cals_table.imp24
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/collapsible.imp135
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/docbook1.imp1157
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/docbook2.imp1292
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/example1.css20
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/html_cals_table.imp101
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/image.imp23
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/print.imp15
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/refentry.imp524
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/scons.css17
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/structure.css140
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/table.imp87
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/css/visible_inclusions.css9
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/htmlTable.incl195
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons.css11
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons.xxe37
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_catalog.xml9
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/appendix.xml10
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/article.xml20
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/book.xml23
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/chapter.xml10
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/glossary.xml16
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/part.xml13
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/refentry.xml25
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/sconsdoc.xml15
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/section.xml7
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/calstblx.xsd390
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbhierx.xsd2186
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbnotnx.xsd102
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbpoolx.xsd8682
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/htmltblx.xsd431
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/scons.xsd99
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/xml.xsd15
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/toolBar.incl189
-rw-r--r--doc/editor_configs/xmlmind5/addon/config/scons/xslMenu.incl688
-rw-r--r--doc/generated/builders.gen2
-rw-r--r--doc/generated/examples/EnumVariable_map_1.xml2
-rw-r--r--doc/generated/examples/addmethod_ex1_1.xml2
-rw-r--r--doc/generated/examples/addmethod_ex2_1.xml2
-rw-r--r--doc/generated/examples/addmethod_ex2_2.xml2
-rw-r--r--doc/generated/examples/alias_ex1_1.xml2
-rw-r--r--doc/generated/examples/alias_ex2_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_ex1_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_ex2_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_ex3_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_ex4_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_libs_1.xml2
-rw-r--r--doc/generated/examples/buildersbuiltin_libs_2.xml2
-rw-r--r--doc/generated/examples/builderscommands_ex1_1.xml2
-rw-r--r--doc/generated/examples/builderscommands_ex2_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_MY_EMITTER_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex1_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex2_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex3_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex4_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex5_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex6_1.xml2
-rw-r--r--doc/generated/examples/builderswriting_ex7_1.xml2
-rw-r--r--doc/generated/examples/caching_ex-random_1.xml2
-rw-r--r--doc/generated/examples/caching_ex1_1.xml2
-rw-r--r--doc/generated/examples/caching_ex1_2.xml2
-rw-r--r--doc/generated/examples/caching_ex1_4.xml2
-rw-r--r--doc/generated/examples/caching_ex1_5.xml2
-rw-r--r--doc/generated/examples/commandline_ARGLIST_1.xml2
-rw-r--r--doc/generated/examples/commandline_ARGUMENTS_1.xml2
-rw-r--r--doc/generated/examples/commandline_AddOption_1.xml2
-rw-r--r--doc/generated/examples/commandline_AddOption_2.xml2
-rw-r--r--doc/generated/examples/commandline_BUILD_TARGETS_1_1.xml2
-rw-r--r--doc/generated/examples/commandline_BoolVariable_1.xml2
-rw-r--r--doc/generated/examples/commandline_BoolVariable_2.xml2
-rw-r--r--doc/generated/examples/commandline_BoolVariable_3.xml2
-rw-r--r--doc/generated/examples/commandline_BoolVariable_4.xml2
-rw-r--r--doc/generated/examples/commandline_BoolVariable_5.xml2
-rw-r--r--doc/generated/examples/commandline_COMMAND_LINE_TARGETS_1.xml2
-rw-r--r--doc/generated/examples/commandline_DEFAULT_TARGETS_1_1.xml2
-rw-r--r--doc/generated/examples/commandline_DEFAULT_TARGETS_2_1.xml2
-rw-r--r--doc/generated/examples/commandline_Default1_1.xml2
-rw-r--r--doc/generated/examples/commandline_Default1_2.xml2
-rw-r--r--doc/generated/examples/commandline_Default2_1.xml2
-rw-r--r--doc/generated/examples/commandline_Default3_1.xml2
-rw-r--r--doc/generated/examples/commandline_Default4_1.xml2
-rw-r--r--doc/generated/examples/commandline_EnumVariable_1.xml2
-rw-r--r--doc/generated/examples/commandline_EnumVariable_2.xml2
-rw-r--r--doc/generated/examples/commandline_EnumVariable_3.xml2
-rw-r--r--doc/generated/examples/commandline_EnumVariable_ic1_1.xml2
-rw-r--r--doc/generated/examples/commandline_EnumVariable_ic2_1.xml2
-rw-r--r--doc/generated/examples/commandline_ListVariable_1.xml2
-rw-r--r--doc/generated/examples/commandline_ListVariable_2.xml2
-rw-r--r--doc/generated/examples/commandline_ListVariable_3.xml2
-rw-r--r--doc/generated/examples/commandline_PackageVariable_1.xml2
-rw-r--r--doc/generated/examples/commandline_PathVariable_1.xml2
-rw-r--r--doc/generated/examples/commandline_PathVariable_2.xml2
-rw-r--r--doc/generated/examples/commandline_SCONSFLAGS_1.xml2
-rw-r--r--doc/generated/examples/commandline_SetOption_1.xml2
-rw-r--r--doc/generated/examples/commandline_SetOption_2.xml2
-rw-r--r--doc/generated/examples/commandline_SetOption_3.xml2
-rw-r--r--doc/generated/examples/commandline_UnknownVariables_1.xml2
-rw-r--r--doc/generated/examples/commandline_Variables1_1.xml2
-rw-r--r--doc/generated/examples/commandline_Variables_Help_1.xml2
-rw-r--r--doc/generated/examples/commandline_Variables_custom_py_1_1.xml2
-rw-r--r--doc/generated/examples/commandline_Variables_custom_py_2_1.xml2
-rw-r--r--doc/generated/examples/depends_AlwaysBuild_1.xml2
-rw-r--r--doc/generated/examples/depends_AlwaysBuild_2.xml2
-rw-r--r--doc/generated/examples/depends_Requires_1.xml2
-rw-r--r--doc/generated/examples/depends_ex1_1.xml2
-rw-r--r--doc/generated/examples/depends_ex1_2.xml2
-rw-r--r--doc/generated/examples/depends_ex1_3.xml2
-rw-r--r--doc/generated/examples/depends_ex1_4.xml2
-rw-r--r--doc/generated/examples/depends_ex1_5.xml2
-rw-r--r--doc/generated/examples/depends_ex1_6.xml2
-rw-r--r--doc/generated/examples/depends_ex1_7.xml2
-rw-r--r--doc/generated/examples/depends_ex1_8.xml2
-rw-r--r--doc/generated/examples/depends_ex5_1.xml2
-rw-r--r--doc/generated/examples/depends_ex5_2.xml2
-rw-r--r--doc/generated/examples/depends_ignore_explicit_1.xml2
-rw-r--r--doc/generated/examples/depends_include_1.xml2
-rw-r--r--doc/generated/examples/depends_macroinc_1.xml2
-rw-r--r--doc/generated/examples/depends_match_1.xml2
-rw-r--r--doc/generated/examples/depends_mixing_1.xml2
-rw-r--r--doc/generated/examples/depends_newer_1.xml2
-rw-r--r--doc/generated/examples/depends_no-Requires_1.xml2
-rw-r--r--doc/generated/examples/depends_parsedep_1.xml2
-rw-r--r--doc/generated/examples/environments_Append-nonexistent_1.xml2
-rw-r--r--doc/generated/examples/environments_Prepend-nonexistent_1.xml2
-rw-r--r--doc/generated/examples/environments_Replace-nonexistent_1.xml2
-rw-r--r--doc/generated/examples/environments_Replace1_1.xml2
-rw-r--r--doc/generated/examples/environments_Replace2_1.xml2
-rw-r--r--doc/generated/examples/environments_ex1_1.xml2
-rw-r--r--doc/generated/examples/environments_ex2_1.xml2
-rw-r--r--doc/generated/examples/environments_ex3_1.xml2
-rw-r--r--doc/generated/examples/environments_ex4_1.xml2
-rw-r--r--doc/generated/examples/environments_ex5_1.xml2
-rw-r--r--doc/generated/examples/environments_ex6_1.xml2
-rw-r--r--doc/generated/examples/environments_ex6b_1.xml2
-rw-r--r--doc/generated/examples/environments_ex6b_2.xml2
-rw-r--r--doc/generated/examples/environments_ex8_1.xml2
-rw-r--r--doc/generated/examples/environments_ex9_1.xml2
-rw-r--r--doc/generated/examples/environments_missing1_1.xml2
-rw-r--r--doc/generated/examples/environments_missing2_1.xml2
-rw-r--r--doc/generated/examples/environments_missing3_1.xml2
-rw-r--r--doc/generated/examples/factories_Chmod_1.xml2
-rw-r--r--doc/generated/examples/factories_Copy1_1.xml2
-rw-r--r--doc/generated/examples/factories_Copy2_1.xml2
-rw-r--r--doc/generated/examples/factories_Copy3_1.xml2
-rw-r--r--doc/generated/examples/factories_Delete1_1.xml2
-rw-r--r--doc/generated/examples/factories_Delete2_1.xml2
-rw-r--r--doc/generated/examples/factories_Execute_1.xml2
-rw-r--r--doc/generated/examples/factories_Mkdir_1.xml2
-rw-r--r--doc/generated/examples/factories_Move_1.xml2
-rw-r--r--doc/generated/examples/factories_Touch_1.xml2
-rw-r--r--doc/generated/examples/fileremoval_clean-ex1_1.xml2
-rw-r--r--doc/generated/examples/fileremoval_noclean-ex1_1.xml2
-rw-r--r--doc/generated/examples/fileremoval_precious-ex1_1.xml2
-rw-r--r--doc/generated/examples/hierarchy_Return_1.xml2
-rw-r--r--doc/generated/examples/hierarchy_ex1_1.xml2
-rw-r--r--doc/generated/examples/hierarchy_ex2_1.xml2
-rw-r--r--doc/generated/examples/hierarchy_ex3_1.xml2
-rw-r--r--doc/generated/examples/install_ex1_1.xml2
-rw-r--r--doc/generated/examples/install_ex2_1.xml2
-rw-r--r--doc/generated/examples/install_ex3_1.xml2
-rw-r--r--doc/generated/examples/install_ex4_1.xml2
-rw-r--r--doc/generated/examples/install_ex5_1.xml2
-rw-r--r--doc/generated/examples/java_JAVACLASSDIR_1.xml2
-rw-r--r--doc/generated/examples/java_RMIC_1.xml2
-rw-r--r--doc/generated/examples/java_jar1_1.xml2
-rw-r--r--doc/generated/examples/java_jar2_1.xml2
-rw-r--r--doc/generated/examples/java_java-classes_1.xml2
-rw-r--r--doc/generated/examples/java_java-classes_2.xml2
-rw-r--r--doc/generated/examples/java_java_1.xml2
-rw-r--r--doc/generated/examples/java_javah_1.xml2
-rw-r--r--doc/generated/examples/java_javah_file_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_ex2_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_ex3_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_ex3_2.xml2
-rw-r--r--doc/generated/examples/lesssimple_ex4_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_ex5_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_target_1.xml2
-rw-r--r--doc/generated/examples/lesssimple_target_2.xml2
-rw-r--r--doc/generated/examples/libraries_SharedLibrary_1.xml2
-rw-r--r--doc/generated/examples/libraries_SharedLibrary_2.xml2
-rw-r--r--doc/generated/examples/libraries_ex1_1.xml2
-rw-r--r--doc/generated/examples/libraries_ex1_2.xml2
-rw-r--r--doc/generated/examples/libraries_ex2_1.xml2
-rw-r--r--doc/generated/examples/libraries_ex2_2.xml2
-rw-r--r--doc/generated/examples/libraries_ex3_1.xml2
-rw-r--r--doc/generated/examples/libraries_ex3_2.xml2
-rw-r--r--doc/generated/examples/libraries_objects_1.xml2
-rw-r--r--doc/generated/examples/mergeflags_MergeFlags1_1.xml2
-rw-r--r--doc/generated/examples/mergeflags_MergeFlags2_1.xml2
-rw-r--r--doc/generated/examples/mergeflags_MergeFlags3_1.xml2
-rw-r--r--doc/generated/examples/misc_Exit_1.xml2
-rw-r--r--doc/generated/examples/misc_FindFile1a_1.xml2
-rw-r--r--doc/generated/examples/misc_FindFile1b_1.xml2
-rw-r--r--doc/generated/examples/misc_FindFile1d_1.xml2
-rw-r--r--doc/generated/examples/misc_FindFile2_1.xml2
-rw-r--r--doc/generated/examples/misc_FindFile2_2.xml2
-rw-r--r--doc/generated/examples/misc_FindFile3_1.xml2
-rw-r--r--doc/generated/examples/misc_Flatten1_1.xml2
-rw-r--r--doc/generated/examples/misc_Flatten2_1.xml2
-rw-r--r--doc/generated/examples/nodes_GetBuildPath_1.xml2
-rw-r--r--doc/generated/examples/nodes_ex1_1.xml2
-rw-r--r--doc/generated/examples/nodes_ex1_2.xml2
-rw-r--r--doc/generated/examples/nodes_exists_1.xml2
-rw-r--r--doc/generated/examples/nodes_print_1.xml2
-rw-r--r--doc/generated/examples/nodes_print_2.xml2
-rw-r--r--doc/generated/examples/output_Progress-TARGET_1.xml2
-rw-r--r--doc/generated/examples/output_ex1_1.xml2
-rw-r--r--doc/generated/examples/output_ex2_1.xml2
-rw-r--r--doc/generated/examples/output_ex2_2.xml2
-rw-r--r--doc/generated/examples/output_gbf2_1.xml2
-rw-r--r--doc/generated/examples/parseflags_ex1_1.xml2
-rw-r--r--doc/generated/examples/parseflags_ex1_2.xml2
-rw-r--r--doc/generated/examples/parseflags_ex2_1.xml2
-rw-r--r--doc/generated/examples/parseflags_ex3_1.xml2
-rw-r--r--doc/generated/examples/parseflags_ex4_1.xml2
-rw-r--r--doc/generated/examples/repositories_CPPPATH3_1.xml2
-rw-r--r--doc/generated/examples/repositories_CPPPATH_1.xml2
-rw-r--r--doc/generated/examples/repositories_ex1_1.xml2
-rw-r--r--doc/generated/examples/repositories_ex2_1.xml2
-rw-r--r--doc/generated/examples/repositories_ex3_1.xml2
-rw-r--r--doc/generated/examples/repositories_ex4_1.xml2
-rw-r--r--doc/generated/examples/repositories_quote1_1.xml2
-rw-r--r--doc/generated/examples/separate_builddir_1.xml2
-rw-r--r--doc/generated/examples/separate_builddir_sconscript_1.xml2
-rw-r--r--doc/generated/examples/separate_duplicate0_1.xml2
-rw-r--r--doc/generated/examples/separate_ex1_1.xml2
-rw-r--r--doc/generated/examples/separate_glob_builddir_sconscript_1.xml2
-rw-r--r--doc/generated/examples/sideeffect_parallel_1.xml2
-rw-r--r--doc/generated/examples/sideeffect_shared_1.xml2
-rw-r--r--doc/generated/examples/sideeffect_simple_1.xml2
-rw-r--r--doc/generated/examples/simple_Object_1.xml2
-rw-r--r--doc/generated/examples/simple_Object_2.xml2
-rw-r--r--doc/generated/examples/simple_clean_1.xml2
-rw-r--r--doc/generated/examples/simple_clean_2.xml2
-rw-r--r--doc/generated/examples/simple_declarative_1.xml2
-rw-r--r--doc/generated/examples/simple_ex1_1.xml2
-rw-r--r--doc/generated/examples/simple_ex1_2.xml2
-rw-r--r--doc/generated/examples/simple_ex1_3.xml2
-rw-r--r--doc/generated/examples/simple_ex1_4.xml2
-rw-r--r--doc/generated/examples/simple_java_1.xml2
-rw-r--r--doc/generated/examples/sourcecode_bitkeeper_1.xml2
-rw-r--r--doc/generated/examples/sourcecode_cvs_1.xml2
-rw-r--r--doc/generated/examples/sourcecode_rcs_1.xml2
-rw-r--r--doc/generated/examples/sourcecode_sccs_1.xml2
-rw-r--r--doc/generated/examples/tasks_ex1_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_Dump_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_Dump_2.xml2
-rw-r--r--doc/generated/examples/troubleshoot_Dump_ENV_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_Dump_ENV_2.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain1_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain1_2.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain1_3.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain2_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_explain3_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_findlibs_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_stacktrace_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_stacktrace_2.xml2
-rw-r--r--doc/generated/examples/troubleshoot_taskmastertrace_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_2.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_3.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_4.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_5.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree1_6.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree2_1.xml2
-rw-r--r--doc/generated/examples/troubleshoot_tree2_2.xml2
-rw-r--r--doc/generated/examples/variants_ex_1.xml2
-rw-r--r--doc/generated/examples/variants_ex_2.xml2
-rw-r--r--doc/generated/functions.gen2
-rw-r--r--doc/generated/tools.gen2
-rw-r--r--doc/generated/variables.gen2
-rw-r--r--doc/man/html.xsl1
-rw-r--r--doc/man/pdf.xsl1
-rw-r--r--doc/man/scons-time.xml55
-rw-r--r--doc/man/scons.css4
-rw-r--r--doc/man/scons.xml48
-rw-r--r--doc/man/sconsign.xml54
-rw-r--r--doc/python10/abstract.xml2
-rw-r--r--doc/python10/acks.xml2
-rw-r--r--doc/python10/copyright.xml2
-rw-r--r--doc/python10/design.xml2
-rw-r--r--doc/python10/future.xml2
-rw-r--r--doc/python10/install.xml2
-rw-r--r--doc/python10/intro.xml2
-rw-r--r--doc/python10/main.xml2
-rw-r--r--doc/python10/process.xml2
-rw-r--r--doc/python10/summary.xml2
-rw-r--r--doc/reference/Alias.xml2
-rw-r--r--doc/reference/CFile.xml2
-rw-r--r--doc/reference/CXXFile.xml2
-rw-r--r--doc/reference/Command.xml2
-rw-r--r--doc/reference/Install.xml2
-rw-r--r--doc/reference/InstallAs.xml2
-rw-r--r--doc/reference/Library.xml2
-rw-r--r--doc/reference/Object.xml2
-rw-r--r--doc/reference/PCH.xml2
-rw-r--r--doc/reference/PDF.xml2
-rw-r--r--doc/reference/PostScript.xml2
-rw-r--r--doc/reference/Program.xml2
-rw-r--r--doc/reference/RES.xml2
-rw-r--r--doc/reference/SharedLibrary.xml2
-rw-r--r--doc/reference/SharedObject.xml2
-rw-r--r--doc/reference/StaticLibrary.xml2
-rw-r--r--doc/reference/StaticObject.xml2
-rw-r--r--doc/reference/chtml.xsl1
-rw-r--r--doc/reference/copyright.xml2
-rw-r--r--doc/reference/errors.xml2
-rw-r--r--doc/reference/html.xsl1
-rw-r--r--doc/reference/main.xml2
-rw-r--r--doc/reference/pdf.xsl1
-rw-r--r--doc/reference/preface.xml2
-rw-r--r--doc/reference/scons.css4
-rw-r--r--doc/user/actions.xml2
-rw-r--r--doc/user/add-method.xml2
-rw-r--r--doc/user/alias.xml2
-rw-r--r--doc/user/ant.xml2
-rw-r--r--doc/user/build-install.xml2
-rw-r--r--doc/user/builders-built-in.xml2
-rw-r--r--doc/user/builders-commands.xml2
-rw-r--r--doc/user/builders-writing.xml2
-rw-r--r--doc/user/builders.xml2
-rw-r--r--doc/user/caching.xml2
-rw-r--r--doc/user/chtml.xsl1
-rw-r--r--doc/user/command-line.xml2
-rw-r--r--doc/user/copyright.xml2
-rw-r--r--doc/user/depends.xml2
-rw-r--r--doc/user/environments.xml2
-rw-r--r--doc/user/errors.xml2
-rw-r--r--doc/user/example.xml2
-rw-r--r--doc/user/factories.xml2
-rw-r--r--doc/user/file-removal.xml2
-rw-r--r--doc/user/functions.xml2
-rw-r--r--doc/user/gettext.xml2
-rw-r--r--doc/user/hierarchy.xml2
-rw-r--r--doc/user/html.xsl1
-rw-r--r--doc/user/install.xml2
-rw-r--r--doc/user/java.xml2
-rw-r--r--doc/user/less-simple.xml2
-rw-r--r--doc/user/libraries.xml2
-rw-r--r--doc/user/main.xml12
-rw-r--r--doc/user/make.xml2
-rw-r--r--doc/user/mergeflags.xml2
-rw-r--r--doc/user/misc.xml2
-rw-r--r--doc/user/nodes.xml2
-rw-r--r--doc/user/output.xml2
-rw-r--r--doc/user/parseconfig.xml2
-rw-r--r--doc/user/parseflags.xml2
-rw-r--r--doc/user/pdf.xsl1
-rw-r--r--doc/user/preface.xml2
-rw-r--r--doc/user/python.xml2
-rw-r--r--doc/user/repositories.xml2
-rw-r--r--doc/user/run.xml2
-rw-r--r--doc/user/scanners.xml2
-rw-r--r--doc/user/sconf.xml2
-rw-r--r--doc/user/scons.css4
-rw-r--r--doc/user/separate.xml2
-rw-r--r--doc/user/sideeffect.xml2
-rw-r--r--doc/user/simple.xml2
-rw-r--r--doc/user/sourcecode.xml2
-rw-r--r--doc/user/tasks.xml2
-rw-r--r--doc/user/tools.xml2
-rw-r--r--doc/user/troubleshoot.xml2
-rw-r--r--doc/user/variables.xml2
-rw-r--r--doc/user/variants.xml2
-rwxr-xr-xruntest.py235
-rw-r--r--src/Announce.txt36
-rw-r--r--src/CHANGES.txt42
-rw-r--r--src/RELEASE.txt100
-rw-r--r--src/engine/MANIFEST.in3
-rw-r--r--src/engine/SCons/Action.py2
-rw-r--r--src/engine/SCons/Action.xml4
-rw-r--r--src/engine/SCons/ActionTests.py10
-rw-r--r--src/engine/SCons/BuilderTests.py5
-rw-r--r--src/engine/SCons/CacheDirTests.py4
-rw-r--r--src/engine/SCons/Conftest.py8
-rw-r--r--src/engine/SCons/Defaults.py11
-rw-r--r--src/engine/SCons/Defaults.xml4
-rw-r--r--src/engine/SCons/DefaultsTests.py4
-rw-r--r--src/engine/SCons/Environment.xml4
-rw-r--r--src/engine/SCons/EnvironmentTests.py7
-rw-r--r--src/engine/SCons/ErrorsTests.py6
-rw-r--r--src/engine/SCons/ExecutorTests.py5
-rw-r--r--src/engine/SCons/JobTests.py10
-rw-r--r--src/engine/SCons/MemoizeTests.py5
-rw-r--r--src/engine/SCons/Node/AliasTests.py5
-rw-r--r--src/engine/SCons/Node/FS.py12
-rw-r--r--src/engine/SCons/Node/FSTests.py7
-rw-r--r--src/engine/SCons/Node/NodeTests.py5
-rw-r--r--src/engine/SCons/Node/PythonTests.py5
-rw-r--r--src/engine/SCons/Node/__init__.py11
-rw-r--r--src/engine/SCons/PathListTests.py5
-rw-r--r--src/engine/SCons/Platform/PlatformTests.py5
-rw-r--r--src/engine/SCons/Platform/__init__.xml4
-rw-r--r--src/engine/SCons/Platform/posix.xml4
-rw-r--r--src/engine/SCons/Platform/sunos.xml4
-rw-r--r--src/engine/SCons/Platform/win32.xml4
-rw-r--r--src/engine/SCons/SConf.py8
-rw-r--r--src/engine/SCons/SConfTests.py6
-rw-r--r--src/engine/SCons/SConsignTests.py7
-rw-r--r--src/engine/SCons/Scanner/CTests.py9
-rw-r--r--src/engine/SCons/Scanner/DirTests.py7
-rw-r--r--src/engine/SCons/Scanner/FortranTests.py6
-rw-r--r--src/engine/SCons/Scanner/IDLTests.py12
-rw-r--r--src/engine/SCons/Scanner/LaTeXTests.py7
-rw-r--r--src/engine/SCons/Scanner/ProgTests.py7
-rw-r--r--src/engine/SCons/Scanner/RCTests.py12
-rw-r--r--src/engine/SCons/Scanner/ScannerTests.py7
-rw-r--r--src/engine/SCons/Scanner/__init__.xml4
-rw-r--r--src/engine/SCons/Script/Main.xml2
-rw-r--r--src/engine/SCons/Script/MainTests.py6
-rw-r--r--src/engine/SCons/Script/SConsOptions.py67
-rw-r--r--src/engine/SCons/Script/SConscript.xml4
-rw-r--r--src/engine/SCons/Subst.xml4
-rw-r--r--src/engine/SCons/SubstTests.py5
-rw-r--r--src/engine/SCons/TaskmasterTests.py5
-rw-r--r--src/engine/SCons/Tool/386asm.xml4
-rw-r--r--src/engine/SCons/Tool/BitKeeper.xml4
-rw-r--r--src/engine/SCons/Tool/CVS.xml4
-rw-r--r--src/engine/SCons/Tool/DCommon.py56
-rw-r--r--src/engine/SCons/Tool/JavaCommonTests.py6
-rw-r--r--src/engine/SCons/Tool/MSCommon/vc.py9
-rw-r--r--src/engine/SCons/Tool/MSCommon/vs.py101
-rw-r--r--src/engine/SCons/Tool/Perforce.xml4
-rw-r--r--src/engine/SCons/Tool/PharLapCommonTests.py5
-rw-r--r--src/engine/SCons/Tool/RCS.xml4
-rw-r--r--src/engine/SCons/Tool/SCCS.xml4
-rw-r--r--src/engine/SCons/Tool/Subversion.xml4
-rw-r--r--src/engine/SCons/Tool/ToolTests.py5
-rw-r--r--src/engine/SCons/Tool/__init__.py8
-rw-r--r--src/engine/SCons/Tool/__init__.xml2
-rw-r--r--src/engine/SCons/Tool/aixc++.xml4
-rw-r--r--src/engine/SCons/Tool/aixcc.xml4
-rw-r--r--src/engine/SCons/Tool/aixf77.xml4
-rw-r--r--src/engine/SCons/Tool/aixlink.xml4
-rw-r--r--src/engine/SCons/Tool/applelink.xml4
-rw-r--r--src/engine/SCons/Tool/ar.xml4
-rw-r--r--src/engine/SCons/Tool/as.xml4
-rw-r--r--src/engine/SCons/Tool/bcc32.xml4
-rw-r--r--src/engine/SCons/Tool/c++.xml4
-rw-r--r--src/engine/SCons/Tool/cc.xml4
-rw-r--r--src/engine/SCons/Tool/cvf.xml4
-rw-r--r--src/engine/SCons/Tool/default.xml4
-rw-r--r--src/engine/SCons/Tool/dmd.py178
-rw-r--r--src/engine/SCons/Tool/dmd.xml13
-rw-r--r--src/engine/SCons/Tool/docbook/__init__.py5
-rw-r--r--src/engine/SCons/Tool/docbook/__init__.xml2
-rw-r--r--src/engine/SCons/Tool/dvi.xml4
-rw-r--r--src/engine/SCons/Tool/dvipdf.xml4
-rw-r--r--src/engine/SCons/Tool/dvips.xml4
-rw-r--r--src/engine/SCons/Tool/f03.xml4
-rw-r--r--src/engine/SCons/Tool/f77.xml4
-rw-r--r--src/engine/SCons/Tool/f90.xml4
-rw-r--r--src/engine/SCons/Tool/f95.xml4
-rw-r--r--src/engine/SCons/Tool/fortran.xml4
-rw-r--r--src/engine/SCons/Tool/g++.xml4
-rw-r--r--src/engine/SCons/Tool/g77.xml4
-rw-r--r--src/engine/SCons/Tool/gas.xml4
-rw-r--r--src/engine/SCons/Tool/gcc.xml4
-rw-r--r--src/engine/SCons/Tool/gdc.py123
-rw-r--r--src/engine/SCons/Tool/gdc.xml72
-rw-r--r--src/engine/SCons/Tool/gettext.xml4
-rw-r--r--src/engine/SCons/Tool/gfortran.xml4
-rw-r--r--src/engine/SCons/Tool/gnulink.xml4
-rw-r--r--src/engine/SCons/Tool/gs.xml4
-rw-r--r--src/engine/SCons/Tool/hpc++.xml4
-rw-r--r--src/engine/SCons/Tool/hpcc.xml4
-rw-r--r--src/engine/SCons/Tool/hplink.xml4
-rw-r--r--src/engine/SCons/Tool/icc.xml4
-rw-r--r--src/engine/SCons/Tool/icl.xml4
-rw-r--r--src/engine/SCons/Tool/ifl.xml4
-rw-r--r--src/engine/SCons/Tool/ifort.xml4
-rw-r--r--src/engine/SCons/Tool/ilink.xml4
-rw-r--r--src/engine/SCons/Tool/ilink32.xml4
-rw-r--r--src/engine/SCons/Tool/install.xml4
-rw-r--r--src/engine/SCons/Tool/intelc.py64
-rw-r--r--src/engine/SCons/Tool/intelc.xml4
-rw-r--r--src/engine/SCons/Tool/jar.xml4
-rw-r--r--src/engine/SCons/Tool/javac.xml4
-rw-r--r--src/engine/SCons/Tool/javacTests.py5
-rw-r--r--src/engine/SCons/Tool/javah.xml4
-rw-r--r--src/engine/SCons/Tool/latex.xml4
-rw-r--r--src/engine/SCons/Tool/ldc.py128
-rw-r--r--src/engine/SCons/Tool/ldc.xml52
-rw-r--r--src/engine/SCons/Tool/lex.xml4
-rw-r--r--src/engine/SCons/Tool/link.py15
-rw-r--r--src/engine/SCons/Tool/link.xml4
-rw-r--r--src/engine/SCons/Tool/linkloc.xml4
-rw-r--r--src/engine/SCons/Tool/m4.xml4
-rw-r--r--src/engine/SCons/Tool/masm.xml4
-rw-r--r--src/engine/SCons/Tool/midl.xml4
-rw-r--r--src/engine/SCons/Tool/mingw.xml4
-rw-r--r--src/engine/SCons/Tool/msgfmt.xml4
-rw-r--r--src/engine/SCons/Tool/msginit.xml4
-rw-r--r--src/engine/SCons/Tool/msgmerge.xml4
-rw-r--r--src/engine/SCons/Tool/mslib.xml4
-rw-r--r--src/engine/SCons/Tool/mslink.xml4
-rw-r--r--src/engine/SCons/Tool/mssdk.xml4
-rw-r--r--src/engine/SCons/Tool/msvc.xml27
-rw-r--r--src/engine/SCons/Tool/msvs.xml4
-rw-r--r--src/engine/SCons/Tool/msvsTests.py19
-rw-r--r--src/engine/SCons/Tool/mwcc.xml4
-rw-r--r--src/engine/SCons/Tool/mwld.xml4
-rw-r--r--src/engine/SCons/Tool/nasm.xml4
-rw-r--r--src/engine/SCons/Tool/packaging.xml4
-rw-r--r--src/engine/SCons/Tool/packaging/__init__.xml4
-rw-r--r--src/engine/SCons/Tool/pdf.xml4
-rw-r--r--src/engine/SCons/Tool/pdflatex.xml4
-rw-r--r--src/engine/SCons/Tool/pdftex.xml4
-rw-r--r--src/engine/SCons/Tool/qt.xml4
-rw-r--r--src/engine/SCons/Tool/rmic.xml4
-rw-r--r--src/engine/SCons/Tool/rpcgen.xml4
-rw-r--r--src/engine/SCons/Tool/rpmutils.py30
-rw-r--r--src/engine/SCons/Tool/sgiar.xml4
-rw-r--r--src/engine/SCons/Tool/sgic++.xml4
-rw-r--r--src/engine/SCons/Tool/sgicc.xml4
-rw-r--r--src/engine/SCons/Tool/sgilink.xml4
-rw-r--r--src/engine/SCons/Tool/sunar.xml4
-rw-r--r--src/engine/SCons/Tool/sunc++.xml4
-rw-r--r--src/engine/SCons/Tool/suncc.xml4
-rw-r--r--src/engine/SCons/Tool/sunf77.xml4
-rw-r--r--src/engine/SCons/Tool/sunf90.xml4
-rw-r--r--src/engine/SCons/Tool/sunf95.xml4
-rw-r--r--src/engine/SCons/Tool/sunlink.xml4
-rw-r--r--src/engine/SCons/Tool/swig.xml4
-rw-r--r--src/engine/SCons/Tool/tar.xml4
-rw-r--r--src/engine/SCons/Tool/tex.xml4
-rw-r--r--src/engine/SCons/Tool/textfile.xml29
-rw-r--r--src/engine/SCons/Tool/tlib.xml4
-rw-r--r--src/engine/SCons/Tool/wixTests.py5
-rw-r--r--src/engine/SCons/Tool/xgettext.xml4
-rw-r--r--src/engine/SCons/Tool/yacc.xml4
-rw-r--r--src/engine/SCons/Tool/zip.xml2
-rw-r--r--src/engine/SCons/UtilTests.py4
-rw-r--r--src/engine/SCons/Variables/BoolVariableTests.py5
-rw-r--r--src/engine/SCons/Variables/EnumVariableTests.py5
-rw-r--r--src/engine/SCons/Variables/ListVariableTests.py5
-rw-r--r--src/engine/SCons/Variables/PackageVariableTests.py5
-rw-r--r--src/engine/SCons/Variables/PathVariableTests.py5
-rw-r--r--src/engine/SCons/Variables/VariablesTests.py5
-rw-r--r--src/engine/SCons/WarningsTests.py6
-rw-r--r--src/engine/SCons/cppTests.py5
-rw-r--r--src/script/scons.py19
-rw-r--r--test/AddOption/longopts.py60
-rw-r--r--test/Configure/Streamer1.py85
-rw-r--r--test/D/CoreScanner/Common/__init__.py0
-rw-r--r--test/D/CoreScanner/Common/common.py99
-rw-r--r--test/D/CoreScanner/Common/sconstest.skip0
-rw-r--r--test/D/CoreScanner/Image/SConstruct_template9
-rw-r--r--test/D/CoreScanner/Image/ignored.d3
-rw-r--r--test/D/CoreScanner/Image/module1.d3
-rw-r--r--test/D/CoreScanner/Image/module2.d3
-rw-r--r--test/D/CoreScanner/Image/module3.di3
-rw-r--r--test/D/CoreScanner/Image/p/ignored.d3
-rw-r--r--test/D/CoreScanner/Image/p/submodule1.d3
-rw-r--r--test/D/CoreScanner/Image/p/submodule2.d3
-rw-r--r--test/D/CoreScanner/Image/test1.d9
-rw-r--r--test/D/CoreScanner/Image/test2.d11
-rw-r--r--test/D/CoreScanner/sconstest-dmd.py37
-rw-r--r--test/D/CoreScanner/sconstest-gdc.py37
-rw-r--r--test/D/CoreScanner/sconstest-ldc.py37
-rw-r--r--test/D/DMD2.py64
-rw-r--r--test/D/DMD2_Alt.py64
-rw-r--r--test/D/GDC.py64
-rw-r--r--test/D/GDC_Alt.py64
-rw-r--r--test/D/HSTeoh/ArLibIssue/SConstruct_template3
-rw-r--r--test/D/HSTeoh/ArLibIssue/a.d0
-rw-r--r--test/D/HSTeoh/ArLibIssue/b.d0
-rw-r--r--test/D/HSTeoh/Common/__init__.py0
-rw-r--r--test/D/HSTeoh/Common/arLibIssue.py63
-rw-r--r--test/D/HSTeoh/Common/libCompileOptions.py63
-rw-r--r--test/D/HSTeoh/Common/linkingProblem.py61
-rw-r--r--test/D/HSTeoh/Common/sconstest.skip0
-rw-r--r--test/D/HSTeoh/Common/singleStringCannotBeMultipleOptions.py66
-rw-r--r--test/D/HSTeoh/LibCompileOptions/SConstruct_template9
-rw-r--r--test/D/HSTeoh/LibCompileOptions/mylib.d0
-rw-r--r--test/D/HSTeoh/LibCompileOptions/prog.d3
-rw-r--r--test/D/HSTeoh/LinkingProblem/SConstruct_template20
-rw-r--r--test/D/HSTeoh/LinkingProblem/cprog.c7
-rw-r--r--test/D/HSTeoh/LinkingProblem/ncurs_impl.c13
-rw-r--r--test/D/HSTeoh/LinkingProblem/prog.d13
-rw-r--r--test/D/HSTeoh/README.txt1
-rw-r--r--test/D/HSTeoh/SingleStringCannotBeMultipleOptions/SConstruct_template16
-rw-r--r--test/D/HSTeoh/SingleStringCannotBeMultipleOptions/cmod.c5
-rw-r--r--test/D/HSTeoh/SingleStringCannotBeMultipleOptions/mod1.d6
-rw-r--r--test/D/HSTeoh/SingleStringCannotBeMultipleOptions/proj.d13
-rw-r--r--test/D/HSTeoh/sconstest-arLibIssue_dmd.py37
-rw-r--r--test/D/HSTeoh/sconstest-arLibIssue_gdc.py37
-rw-r--r--test/D/HSTeoh/sconstest-arLibIssue_ldc.py38
-rw-r--r--test/D/HSTeoh/sconstest-libCompileOptions_dmd.py37
-rw-r--r--test/D/HSTeoh/sconstest-libCompileOptions_gdc.py37
-rw-r--r--test/D/HSTeoh/sconstest-libCompileOptions_ldc.py38
-rw-r--r--test/D/HSTeoh/sconstest-linkingProblem_dmd.py37
-rw-r--r--test/D/HSTeoh/sconstest-linkingProblem_gdc.py37
-rw-r--r--test/D/HSTeoh/sconstest-linkingProblem_ldc.py38
-rw-r--r--test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_dmd.py37
-rw-r--r--test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_gdc.py37
-rw-r--r--test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_ldc.py37
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/Common/__init__.py0
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/Common/common.py68
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/Common/sconstest.skip0
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/Image/SConstruct_template9
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/Image/helloWorld.d6
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/sconstest-dmd.py37
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/sconstest-gdc.py37
-rw-r--r--test/D/HelloWorld/CompileAndLinkOneStep/sconstest-ldc.py37
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/Common/__init__.py0
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/Common/common.py68
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/Common/sconstest.skip0
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/Image/SConstruct_template11
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/Image/helloWorld.d6
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-dmd.py37
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-gdc.py37
-rw-r--r--test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-ldc.py37
-rw-r--r--test/D/LDC.py71
-rw-r--r--test/D/LDC_Alt.py71
-rw-r--r--test/D/MixedDAndC/Common/__init__.py0
-rw-r--r--test/D/MixedDAndC/Common/common.py56
-rw-r--r--test/D/MixedDAndC/Common/sconstest.skip0
-rw-r--r--test/D/MixedDAndC/Image/SConstruct13
-rw-r--r--test/D/MixedDAndC/Image/cmod.c3
-rw-r--r--test/D/MixedDAndC/Image/dmod.d6
-rw-r--r--test/D/MixedDAndC/Image/proj.d12
-rw-r--r--test/D/MixedDAndC/sconstest-dmd.py37
-rw-r--r--test/D/MixedDAndC/sconstest-gdc.py37
-rw-r--r--test/D/MixedDAndC/sconstest-ldc.py37
-rwxr-xr-xtest/D/Support/executablesSearch.py67
-rw-r--r--test/D/Support/sconstest.skip0
-rw-r--r--test/Depends/spurious-rebuilds.py72
-rw-r--r--test/Interactive/version.py12
-rw-r--r--test/option-v.py10
-rw-r--r--test/runtest/qmtest.py111
-rw-r--r--test/runtest/testargv.py75
-rw-r--r--test/update-release-info/update-release-info.py2
-rw-r--r--testing/README.md7
-rw-r--r--testing/buildbot.hosts1
-rw-r--r--testing/buildbot.yml80
-rw-r--r--testing/framework/TestUnit/__init__.py5
-rw-r--r--testing/framework/TestUnit/cli.py35
-rw-r--r--testing/framework/TestUnit/taprunner.py120
738 files changed, 22104 insertions, 1570 deletions
diff --git a/QMTest/TestCmd.py b/QMTest/TestCmd.py
index 38e9cd3..b51d90f 100644
--- a/QMTest/TestCmd.py
+++ b/QMTest/TestCmd.py
@@ -672,8 +672,35 @@ except AttributeError:
PIPE = subprocess.PIPE
if subprocess.mswindows:
- from win32file import ReadFile, WriteFile
- from win32pipe import PeekNamedPipe
+ try:
+ from win32file import ReadFile, WriteFile
+ from win32pipe import PeekNamedPipe
+ except ImportError:
+ # If PyWin32 is not available, try ctypes instead
+ # XXX These replicate _just_enough_ PyWin32 behaviour for our purposes
+ import ctypes; from ctypes.wintypes import DWORD
+ def ReadFile(hFile, bufSize, ol=None):
+ assert ol is None
+ lpBuffer = ctypes.create_string_buffer(bufSize)
+ bytesRead = DWORD()
+ bErr = ctypes.windll.kernel32.ReadFile(
+ hFile, lpBuffer, bufSize, ctypes.byref(bytesRead), ol)
+ if not bErr: raise ctypes.WinError()
+ return (0, ctypes.string_at(lpBuffer, bytesRead.value))
+ def WriteFile(hFile, data, ol=None):
+ assert ol is None
+ bytesWritten = DWORD()
+ bErr = ctypes.windll.kernel32.WriteFile(
+ hFile, data, len(data), ctypes.byref(bytesWritten), ol)
+ if not bErr: raise ctypes.WinError()
+ return (0, bytesWritten.value)
+ def PeekNamedPipe(hPipe, size):
+ assert size == 0
+ bytesAvail = DWORD()
+ bErr = ctypes.windll.kernel32.PeekNamedPipe(
+ hPipe, None, size, None, ctypes.byref(bytesAvail), None)
+ if not bErr: raise ctypes.WinError()
+ return ("", bytesAvail.value, None)
import msvcrt
else:
import select
diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py
index ffba4c1..57b97f9 100644
--- a/QMTest/TestSCons.py
+++ b/QMTest/TestSCons.py
@@ -36,8 +36,6 @@ from TestCmd import PIPE
default_version = '2.3.1.alpha.yyyymmdd'
-copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013'
-
python_version_unsupported = (2, 3, 0)
python_version_deprecated = (2, 7, 0)
diff --git a/ReleaseConfig b/ReleaseConfig
index 2beab02..6da53b1 100644
--- a/ReleaseConfig
+++ b/ReleaseConfig
@@ -51,7 +51,7 @@ deprecated_python_version = (2, 7, 0)
#month_year = 'December 2012'
# If copyright years is not given, the release year is used as the end.
-#copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012'
+copyright_years = '2001 - 2014'
# Local Variables:
# tab-width:4
diff --git a/SConstruct b/SConstruct
index 3f4d703..3ab4d8c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -3,9 +3,7 @@
#
# See the README.rst file for an overview of how SCons is built and tested.
-# When this gets changed, you must also change the copyright_years string
-# in QMTest/TestSCons.py so the test scripts look for the right string.
-copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013'
+copyright_years = '2001 - 2014'
# This gets inserted into the man pages to reflect the month of release.
month_year = 'MONTH YEAR'
diff --git a/bin/SConsDoc.py b/bin/SConsDoc.py
index dc9d161..e1c2b0b 100644
--- a/bin/SConsDoc.py
+++ b/bin/SConsDoc.py
@@ -315,7 +315,7 @@ if not has_libxml2:
fout.close()
def decorateWithHeader(self, root):
- root.attrib["{"+xsi+"}schemaLocation"] = "%s/scons.xsd scons.xsd" % dbxsd
+ root.attrib["{"+xsi+"}schemaLocation"] = "%s %s/scons.xsd" % (dbxsd, dbxsd)
return root
def newXmlTree(self, root):
@@ -450,7 +450,7 @@ else:
xi = root.newNs(xsi, 'xsi')
root.setNs(ns) #put this node in the target namespace
- root.setNsProp(xi, 'schemaLocation', "%s/scons.xsd scons.xsd" % dbxsd)
+ root.setNsProp(xi, 'schemaLocation', "%s %s/scons.xsd" % (dbxsd, dbxsd))
return root
diff --git a/bin/update-release-info.py b/bin/update-release-info.py
index 14894a4..59b3e84 100644
--- a/bin/update-release-info.py
+++ b/bin/update-release-info.py
@@ -138,7 +138,7 @@ if DEBUG: print 'month year', month_year
try:
copyright_years = config['copyright_years']
except KeyError:
- copyright_years = ', '.join(map(str, list(range(2001, release_date[0] + 1))))
+ copyright_years = '2001 - %d'%(release_date[0] + 1)
if DEBUG: print 'copyright years', copyright_years
class UpdateFile(object):
@@ -332,7 +332,7 @@ t.replace_assign('deprecated_python_version', str(deprecated_version))
# Update doc/user/main.{in,xml}
-docyears = ', '.join(map(str, iter(range(2004, release_date[0] + 1))))
+docyears = '2004 - %d' % release_date[0]
if os.path.exists(os.path.join('doc', 'user', 'main.in')):
# this is no longer used as of Dec 2013
t = UpdateFile(os.path.join('doc', 'user', 'main.in'))
diff --git a/bin/upload-release-files.sh b/bin/upload-release-files.sh
index 2867e3c..bf09751 100755
--- a/bin/upload-release-files.sh
+++ b/bin/upload-release-files.sh
@@ -46,7 +46,7 @@ $RSYNC $RSYNCOPTS \
#
# scons.org stuff:
-#
+#
# Doc: copy the doc tgz over; we'll unpack later
$RSYNC $RSYNCOPTS \
scons-doc-$VERSION.tar.gz \
@@ -68,7 +68,7 @@ ssh scons@scons.org "
cd ..
rm latest; ln -s $VERSION latest
rm production; ln -s $VERSION production
- for f in HTML PDF PS TEXT; do rm $f; ln -s $VERSION/$f $f; done
+ for f in HTML PDF EPUB PS TEXT; do rm \$f; ln -s $VERSION/\$f \$f; done
"
echo '*****'
echo '***** Now manually update index.php, includes/versions.php and news-raw.xhtml on scons.org.'
diff --git a/doc/SConscript b/doc/SConscript
index c731dab..d5cd01c 100644
--- a/doc/SConscript
+++ b/doc/SConscript
@@ -42,6 +42,7 @@ fop = whereis('fop')
xep = whereis('xep')
epydoc_cli = whereis('epydoc')
gs = whereis('gs')
+lynx = whereis('lynx')
#
#
@@ -96,6 +97,9 @@ if not fop and not xep:
if skip_doc:
print "doc: ...skipping building User Guide."
else:
+ if not lynx:
+ print "doc: Warning, lynx is not installed...created release packages won't be complete!"
+
#
# Always create a version.xml file containing the version information
# for this run. Ignore it for dependency purposes so we don't
@@ -104,7 +108,65 @@ else:
date, ver, rev = env.Dictionary('DATE', 'VERSION', 'REVISION')
version_xml = File(os.path.join(build, "version.xml"))
writeVersionXml(str(version_xml), date, ver, rev)
-
+
+ import shutil
+ import SCons.Builder
+ import SCons.Util
+ #
+ # Builder for copying files to an Install dir, based
+ # on their extension (better: glob matching pattern)...
+ #
+ def _glob_install_action(target, source, env):
+ if not SCons.Util.is_List(target):
+ target = [target]
+ if not SCons.Util.is_List(source):
+ source = [source]
+ for t, s in zip(target, source):
+ shutil.copy(str(s), str(t))
+ def _glob_install_emitter(target, source, env):
+ if not SCons.Util.is_List(target):
+ target = [target]
+ if not SCons.Util.is_List(source):
+ source = [source]
+
+ res = []
+ res_src = []
+ tdir = env.Dir(target[0])
+ for g in glob.glob(str(source[0])):
+ head, tail = os.path.split(g)
+ res.append(os.path.join(str(tdir), tail))
+ res_src.append(g)
+ return res, res_src
+ _glob_install_builder = SCons.Builder.Builder(action=_glob_install_action,
+ emitter=_glob_install_emitter)
+ env['BUILDERS']['GlobInstall'] = _glob_install_builder
+
+ #
+ # Builder for copying ChunkedHTML files to an Install dir...
+ #
+ def _chunked_install_action(target, source, env):
+ if not SCons.Util.is_List(target):
+ target = [target]
+ if not SCons.Util.is_List(source):
+ source = [source]
+ tdir, tail = os.path.split(str(target[0]))
+ spattern = os.path.join(os.path.split(str(source[0]))[0], '*.html')
+ for g in glob.glob(spattern):
+ shutil.copy(g, tdir)
+
+ def _chunked_install_emitter(target, source, env):
+ if not SCons.Util.is_List(target):
+ target = [target]
+ if not SCons.Util.is_List(source):
+ source = [source]
+
+ tdir = env.Dir(target[0])
+ head, tail = os.path.split(str(source[0]))
+ return os.path.join(str(tdir), tail), source
+ _chunked_install_builder = SCons.Builder.Builder(action=_chunked_install_action,
+ emitter=_chunked_install_emitter)
+ env['BUILDERS']['ChunkedInstall'] = _chunked_install_builder
+
if not env.GetOption('clean'):
#
# Ensure that all XML files are valid against our XSD, and
@@ -124,69 +186,64 @@ else:
print "Not all example names and suffixes are unique! Please correct the errors listed above and try again."
sys.exit(0)
- #
- # Copy generated files (.gen/.mod/.xml) to the build folder
- #
- env.Execute(Mkdir(os.path.join(build, 'generated')))
- env.Execute(Mkdir(os.path.join(build, 'generated', 'examples')))
- for g in glob.glob(os.path.join('generated', '*.gen')):
- env.Execute(Copy(os.path.join(build, 'generated'), g))
- for g in glob.glob(os.path.join('generated', '*.mod')):
- env.Execute(Copy(os.path.join(build, 'generated'), g))
- for g in glob.glob(os.path.join('generated', 'examples', '*')):
- env.Execute(Copy(os.path.join(build, 'generated', 'examples'), g))
-
- #
- # Copy XSLT files (.xslt) to the build folder
- #
- env.Execute(Mkdir(os.path.join(build, 'xslt')))
- for g in glob.glob(os.path.join('xslt','*.*')):
- env.Execute(Copy(os.path.join(build, 'xslt'), g))
+ # List of prerequisite files in the build/doc folder
+ buildsuite = []
+
+ def copy_dbfiles(env, toolpath, paths, fpattern, use_builddir=True):
+ """ Helper function, copies a bunch of files matching
+ the given fpattern to a target directory.
+ """
+ global buildsuite
+ if not SCons.Util.is_List(toolpath):
+ toolpath = [toolpath]
+ if not SCons.Util.is_List(paths):
+ paths = [paths]
+ if not SCons.Util.is_List(fpattern):
+ fpattern = [fpattern]
+
+ if use_builddir:
+ target_dir = env.Dir(os.path.join(build_dir, *(toolpath+paths)))
+ buildsuite.extend(env.GlobInstall(target_dir,
+ os.path.join('..', *(toolpath+paths+fpattern))))
+ else:
+ target_dir = env.Dir(os.path.join(*(toolpath+paths)))
+ buildsuite.extend(env.GlobInstall(target_dir,
+ os.path.join(*(paths + fpattern))))
+
+ #
+ # Copy generated files (.gen/.mod/.xml) to the build folder
+ #
+ copy_dbfiles(env, build, 'generated', '*.gen', False)
+ copy_dbfiles(env, build, 'generated', '*.mod', False)
+ copy_dbfiles(env, build, ['generated','examples'], '*', False)
- #
- # Copy Docbook stylesheets and Tool to the build folder
- #
- dbtoolpath = ['src', 'engine', 'SCons', 'Tool', 'docbook']
- env.Execute(Mkdir(os.path.join(build_dir, *dbtoolpath)))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbtoolpath + ['utils']))))
- env.Execute(Copy(os.path.join(build_dir, *dbtoolpath),
- os.path.join('..', *(dbtoolpath + ['__init__.py']))))
- env.Execute(Copy(os.path.join(build_dir, *(dbtoolpath + ['utils'])),
- os.path.join('..', *(dbtoolpath + ['utils', 'xmldepend.xsl']))))
- dbpath = dbtoolpath + ['docbook-xsl-1.76.1']
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['common']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['lib']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['html']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['fo']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['manpages']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['epub']))))
- env.Execute(Mkdir(os.path.join(build_dir, *(dbpath + ['xhtml-1_1']))))
- env.Execute(Copy(os.path.join(build_dir, *dbpath),
- os.path.join('..', *(dbpath + ['VERSION']))))
- for g in glob.glob(os.path.join('..', *(dbpath + ['common', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['common'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['lib', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['lib'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['html', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['html'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['fo', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['fo'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['manpages', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['manpages'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['epub', '*.xsl']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['epub'])), g))
- for g in glob.glob(os.path.join('..', *(dbpath + ['xhtml-1_1', '*.*']))):
- env.Execute(Copy(os.path.join(build_dir, *(dbpath + ['xhtml-1_1'])), g))
+ #
+ # Copy XSLT files (.xslt) to the build folder
+ #
+ copy_dbfiles(env, build, 'xslt', '*.*', False)
- #
- # Copy additional Tools (gs, zip)
- #
- toolpath = ['src', 'engine', 'SCons', 'Tool']
- env.Execute(Copy(os.path.join(build_dir, *toolpath),
- os.path.join('..', *(toolpath + ['gs.py']))))
- env.Execute(Copy(os.path.join(build_dir, *toolpath),
- os.path.join('..', *(toolpath + ['zip.py']))))
+ #
+ # Copy DocBook stylesheets and Tool to the build folder
+ #
+ dbtoolpath = ['src', 'engine', 'SCons', 'Tool', 'docbook']
+ copy_dbfiles(env, dbtoolpath, [], '__init__.py')
+ copy_dbfiles(env, dbtoolpath, 'utils', 'xmldepend.xsl')
+ dbpath = dbtoolpath + ['docbook-xsl-1.76.1']
+ copy_dbfiles(env, dbpath, [], 'VERSION')
+ copy_dbfiles(env, dbpath, ['common'], '*.*')
+ copy_dbfiles(env, dbpath, ['lib'], '*.*')
+ copy_dbfiles(env, dbpath, ['html'], '*.*')
+ copy_dbfiles(env, dbpath, ['fo'], '*.*')
+ copy_dbfiles(env, dbpath, ['manpages'], '*.*')
+ copy_dbfiles(env, dbpath, ['epub'], '*.xsl')
+ copy_dbfiles(env, dbpath, ['xhtml-1_1'], '*.*')
+ #
+ # Copy additional Tools (gs, zip)
+ #
+ toolpath = ['src', 'engine', 'SCons', 'Tool']
+ copy_dbfiles(env, toolpath, [], 'gs.py')
+ copy_dbfiles(env, toolpath, [], 'zip.py')
#
# Each document will live in its own subdirectory. List them here
@@ -195,13 +252,14 @@ else:
# of the outputs get installed to the build folder and added to
# the different source and binary packages in the end.
#
- docs = {'design' : ['chtml','pdf'],
- #'python10' : ['chtml','html','pdf'],
- 'reference' : ['chtml','html','pdf'],
- #'developer' : ['chtml','html','pdf'],
- 'user' : ['chtml','html','pdf','epub'],
- 'man' : ['man','epub']
+ docs = {'design' : ['chunked','pdf'],
+ #'python10' : ['chunked','html','pdf'],
+ 'reference' : ['chunked','html','pdf'],
+ #'developer' : ['chunked','html','pdf'],
+ 'user' : ['chunked','html','pdf','epub','text'],
+ 'man' : ['man','epub','text']
}
+
# The names of the target files for the MAN pages
man_page_list = ['scons.1','scons-time.1','sconsign.1']
@@ -216,15 +274,13 @@ else:
continue
base, ext = os.path.splitext(s)
if ext in ['.fig', '.jpg']:
- env.Execute(Copy(build, s))
+ buildsuite.extend(env.Command(os.path.join(build, s),
+ s,
+ Copy("$TARGET", "$SOURCE")))
else:
- revaction([env.File(os.path.join(build, s))],
+ revaction([env.File(os.path.join(build, s))],
[env.File(s)], env)
- #
- # For each document, build the document itself in HTML,
- # and PDF formats.
- #
for doc in docs:
#
@@ -232,8 +288,10 @@ else:
# build directory, while branding them with the
# SCons copyright and the current revision number...
#
- env.Execute(Mkdir(os.path.join(build, doc)))
- env.Execute(Mkdir(os.path.join(build, doc, 'titlepage')))
+ if not os.path.exists(os.path.join(build, doc)):
+ env.Execute(Mkdir(os.path.join(build, doc)))
+ if not os.path.exists(os.path.join(build, doc, 'titlepage')):
+ env.Execute(Mkdir(os.path.join(build, doc, 'titlepage')))
manifest = File(os.path.join(doc, 'MANIFEST')).rstr()
src_files = bootstrap.parseManifestLines(doc, open(manifest).readlines())
for s in src_files:
@@ -242,22 +300,56 @@ else:
doc_s = os.path.join(doc, s)
build_s = os.path.join(build, doc, s)
base, ext = os.path.splitext(doc_s)
+ head, tail = os.path.split(s)
+ if head:
+ target_dir = os.path.join(build, doc, head)
+ else:
+ target_dir = os.path.join(build, doc)
if ext in ['.fig', '.jpg', '.svg']:
- env.Execute(Copy(build_s, doc_s))
+ buildsuite.extend(env.Command(build_s, doc_s,
+ Copy("$TARGET", "$SOURCE")))
else:
revaction([env.File(build_s)],
[env.File(doc_s)], env)
+
+ #
+ # For each document, build the document itself in HTML,
+ # and PDF formats.
+ #
+ docnodes = {}
+ for doc in docs:
+
#
- # Call SCons in each local doc folder directly, such that
- # we can Glob for the created *.html files afterwards to
- # get the dependencies for the install targets right.
+ # Call SCons in each local doc folder
#
cleanopt = ''
if env.GetOption('clean'):
cleanopt = ' -c'
- cmd = env.subst("cd %s && $PYTHON ${SCONS_PY.abspath}" % os.path.join(build, doc))+cleanopt
- os.system(cmd)
+ scdir = os.path.join(build, doc)
+ sctargets = []
+ if 'html' in docs[doc]:
+ sctargets.append(env.File(os.path.join(scdir, 'index.html')))
+ if 'chunked' in docs[doc]:
+ sctargets.append(env.File(os.path.join(scdir, 'scons-%s' % doc, 'index.html')))
+ if 'pdf' in docs[doc]:
+ sctargets.append(env.File(os.path.join(scdir, 'scons-%s.pdf' % doc)))
+ if 'epub' in docs[doc]:
+ sctargets.append(env.File(os.path.join(scdir, 'scons-%s.epub' % doc)))
+
+ if 'man' in docs[doc]:
+ for m in man_page_list:
+ sctargets.append(os.path.join(scdir, m))
+ man, _1 = os.path.splitext(m)
+
+ sctargets.append(os.path.join(scdir, 'scons-%s.pdf' % man))
+ sctargets.append(os.path.join(scdir, 'scons-%s.html' % man))
+
+ docnodes[doc] = env.Command(sctargets, buildsuite,
+ "cd %s && $PYTHON ${SCONS_PY.abspath}%s" % (scdir, cleanopt))
+
+ install_css = False
+ for doc in docs:
# Collect the output files for this subfolder
htmldir = os.path.join(build, 'HTML', 'scons-%s' % doc)
@@ -265,22 +357,30 @@ else:
html = os.path.join(build, 'HTML', 'scons-%s.html' % doc)
pdf = os.path.join(build, 'PDF', 'scons-%s.pdf' % doc)
epub = os.path.join(build, 'EPUB', 'scons-%s.epub' % doc)
- if 'chtml' in docs[doc]:
- env.Install(htmldir, Glob(os.path.join(build, doc,'scons-%s' % doc, '*.html')))
- tar_deps.extend([htmlindex])
+ text = os.path.join(build, 'TEXT', 'scons-%s.txt' % doc)
+ if 'chunked' in docs[doc]:
+ installed_chtml = env.ChunkedInstall(env.Dir(htmldir),
+ os.path.join(build, doc,'scons-%s' % doc, 'index.html'))
+ installed_chtml_css = env.Install(env.Dir(htmldir),
+ os.path.join(build, doc, 'scons.css'))
+ env.Depends(installed_chtml, docnodes[doc])
+ env.Depends(installed_chtml_css, docnodes[doc])
+
+ tar_deps.extend([htmlindex, installed_chtml_css])
tar_list.extend([htmldir])
Local(htmlindex)
env.Ignore(htmlindex, version_xml)
if 'html' in docs[doc]:
- env.InstallAs(html, os.path.join(build, doc,'index.html'))
+ env.InstallAs(env.File(html), env.File(os.path.join(build, doc,'index.html')))
tar_deps.extend([html])
tar_list.extend([html])
Local(html)
env.Ignore(html, version_xml)
+ install_css = True
if 'pdf' in docs[doc]:
- env.InstallAs(pdf, os.path.join(build, doc,'scons-%s.pdf' % doc))
+ env.InstallAs(env.File(pdf), env.File(os.path.join(build, doc,'scons-%s.pdf' % doc)))
Local(pdf)
env.Ignore(pdf, version_xml)
@@ -288,13 +388,29 @@ else:
tar_list.append(pdf)
if 'epub' in docs[doc] and gs:
- env.InstallAs(epub, os.path.join(build, doc,'scons-%s.epub' % doc))
+ env.InstallAs(env.File(epub), env.File(os.path.join(build, doc,'scons-%s.epub' % doc)))
Local(epub)
env.Ignore(epub, version_xml)
tar_deps.append(epub)
tar_list.append(epub)
+ if ('text' in docs[doc] and lynx and
+ (('html' in docs[doc]) or (doc == 'man'))):
+ texthtml = os.path.join(build, doc,'index.html')
+ if doc == 'man':
+ # Special handling for single MAN file
+ texthtml = os.path.join(build, doc, 'scons-scons.html')
+
+ env.Command(text, env.File(texthtml), "lynx -dump ${SOURCE.abspath} > $TARGET")
+ Local(text)
+
+ env.Ignore(text, version_xml)
+
+ tar_deps.append(text)
+ tar_list.append(text)
+
+
if 'man' in docs[doc]:
#
# Man page(s)
@@ -305,13 +421,22 @@ else:
pdf = os.path.join(build, 'PDF', '%s-man.pdf' % man)
html = os.path.join(build, 'HTML' , '%s-man.html' % man)
- env.InstallAs(pdf, os.path.join(build, 'man','scons-%s.pdf' % man))
- env.InstallAs(html, os.path.join(build, 'man','scons-%s.html' % man))
+ env.InstallAs(env.File(pdf), env.File(os.path.join(build, 'man','scons-%s.pdf' % man)))
+ env.InstallAs(env.File(html), env.File(os.path.join(build, 'man','scons-%s.html' % man)))
tar_deps.extend([pdf, html])
tar_list.extend([pdf, html])
+ # Install CSS file, common to all single HTMLs
+ if install_css:
+ css_file = os.path.join(build, 'HTML', 'scons.css')
+ env.InstallAs(env.File(css_file),
+ env.File(os.path.join(build, 'user','scons.css')))
+ tar_deps.extend([css_file])
+ tar_list.extend([css_file])
+ Local(css_file)
+
if not epydoc_cli:
try:
import epydoc
diff --git a/doc/design/acks.xml b/doc/design/acks.xml
index ee11088..abf2922 100644
--- a/doc/design/acks.xml
+++ b/doc/design/acks.xml
@@ -7,7 +7,7 @@
<chapter id="chap-acks"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Acknowledgements</title>
<!--
diff --git a/doc/design/bground.xml b/doc/design/bground.xml
index 4e127a8..0bb5b5e 100644
--- a/doc/design/bground.xml
+++ b/doc/design/bground.xml
@@ -7,7 +7,7 @@
<chapter id="chap-background"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Background</title>
<!--
diff --git a/doc/design/chtml.xsl b/doc/design/chtml.xsl
index 457f563..dde3c6f 100644
--- a/doc/design/chtml.xsl
+++ b/doc/design/chtml.xsl
@@ -33,6 +33,7 @@
<xsl:param name="base.dir" select="'scons-design/'"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/design/copyright.xml b/doc/design/copyright.xml
index 257ab72..1ca7b2e 100644
--- a/doc/design/copyright.xml
+++ b/doc/design/copyright.xml
@@ -6,7 +6,7 @@
<legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/design/engine.xml b/doc/design/engine.xml
index 6989f8a..39289f9 100644
--- a/doc/design/engine.xml
+++ b/doc/design/engine.xml
@@ -7,7 +7,7 @@
<chapter id="chap-engine"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Build Engine API</title>
<!--
diff --git a/doc/design/goals.xml b/doc/design/goals.xml
index db4e326..b1b7f10 100644
--- a/doc/design/goals.xml
+++ b/doc/design/goals.xml
@@ -7,7 +7,7 @@
<chapter id="chap-goals"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Goals</title>
<!--
diff --git a/doc/design/html.xsl b/doc/design/html.xsl
index 74ea529..9efc458 100644
--- a/doc/design/html.xsl
+++ b/doc/design/html.xsl
@@ -32,6 +32,7 @@
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/design/install.xml b/doc/design/install.xml
index 8be4d4b..3e3970c 100644
--- a/doc/design/install.xml
+++ b/doc/design/install.xml
@@ -7,7 +7,7 @@
<chapter id="chap-install"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Installation</title>
<!--
diff --git a/doc/design/intro.xml b/doc/design/intro.xml
index 5561197..36946e6 100644
--- a/doc/design/intro.xml
+++ b/doc/design/intro.xml
@@ -7,7 +7,7 @@
<chapter id="chap-intro"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Introduction</title>
<!--
diff --git a/doc/design/issues.xml b/doc/design/issues.xml
index b6b7e2d..ca88dfc 100644
--- a/doc/design/issues.xml
+++ b/doc/design/issues.xml
@@ -7,7 +7,7 @@
<chapter id="chap-issues"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Other Issues</title>
<!--
diff --git a/doc/design/main.xml b/doc/design/main.xml
index f19b217..f03653b 100644
--- a/doc/design/main.xml
+++ b/doc/design/main.xml
@@ -37,7 +37,7 @@
<book xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<bookinfo>
<title>SCons &buildversion;</title>
<subtitle>Design</subtitle>
diff --git a/doc/design/native.xml b/doc/design/native.xml
index 2de529f..cd4edaf 100644
--- a/doc/design/native.xml
+++ b/doc/design/native.xml
@@ -7,7 +7,7 @@
<chapter id="chap-native"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Native Python Interface</title>
<!--
diff --git a/doc/design/overview.xml b/doc/design/overview.xml
index 4fa92c8..60830a0 100644
--- a/doc/design/overview.xml
+++ b/doc/design/overview.xml
@@ -7,7 +7,7 @@
<chapter id="chap-overview"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Overview</title>
<!--
diff --git a/doc/design/pdf.xsl b/doc/design/pdf.xsl
index 652975f..33100d2 100644
--- a/doc/design/pdf.xsl
+++ b/doc/design/pdf.xsl
@@ -33,6 +33,7 @@
<xsl:include href="scons_title.xsl"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"></xsl:param>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="paper.type" select="'letter'"></xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param>
<xsl:param name="shade.verbatim" select="1"></xsl:param>
diff --git a/doc/design/scons.css b/doc/design/scons.css
index 6941abb..ff9b5a1 100644
--- a/doc/design/scons.css
+++ b/doc/design/scons.css
@@ -6,11 +6,11 @@ body {
}
-a {
+a:link {
color: #80572a;
}
-a:hover {
+a:link:hover {
color: #d72816;
text-decoration: none;
}
diff --git a/doc/design/summary.xml b/doc/design/summary.xml
index 5f0d6ac..5e3c208 100644
--- a/doc/design/summary.xml
+++ b/doc/design/summary.xml
@@ -7,7 +7,7 @@
<chapter id="chap-summary"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Summary</title>
<!--
diff --git a/doc/developer/architecture.xml b/doc/developer/architecture.xml
index 7bb0f47..a6ee8b4 100644
--- a/doc/developer/architecture.xml
+++ b/doc/developer/architecture.xml
@@ -7,7 +7,7 @@
<chapter id="chap-architecture"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Architecture</title>
<!--
diff --git a/doc/developer/branches.xml b/doc/developer/branches.xml
index 745c214..ad19d6d 100644
--- a/doc/developer/branches.xml
+++ b/doc/developer/branches.xml
@@ -7,7 +7,7 @@
<chapter id="chap-branches"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Branches</title>
<!--
diff --git a/doc/developer/copyright.xml b/doc/developer/copyright.xml
index bb67af8..d043f4a 100644
--- a/doc/developer/copyright.xml
+++ b/doc/developer/copyright.xml
@@ -6,7 +6,7 @@
<legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/developer/cycle.xml b/doc/developer/cycle.xml
index ee9888d..3531c20 100644
--- a/doc/developer/cycle.xml
+++ b/doc/developer/cycle.xml
@@ -7,7 +7,7 @@
<chapter id="chap-development-cycle"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Development Cycle</title>
<!--
diff --git a/doc/developer/main.xml b/doc/developer/main.xml
index f84e2c1..043b67f 100644
--- a/doc/developer/main.xml
+++ b/doc/developer/main.xml
@@ -37,7 +37,7 @@
<book xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<bookinfo>
<title>SCons Developer's Guide &buildversion;</title>
diff --git a/doc/developer/packaging.xml b/doc/developer/packaging.xml
index 161a4b0..fbc649f 100644
--- a/doc/developer/packaging.xml
+++ b/doc/developer/packaging.xml
@@ -7,7 +7,7 @@
<chapter id="chap-packaging"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Packaging</title>
<!--
diff --git a/doc/developer/preface.xml b/doc/developer/preface.xml
index 610cecd..0c7644e 100644
--- a/doc/developer/preface.xml
+++ b/doc/developer/preface.xml
@@ -7,7 +7,7 @@
<chapter id="chap-preface"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Preface</title>
<!--
diff --git a/doc/developer/sourcetree.xml b/doc/developer/sourcetree.xml
index e478914..73cfda4 100644
--- a/doc/developer/sourcetree.xml
+++ b/doc/developer/sourcetree.xml
@@ -7,7 +7,7 @@
<chapter id="chap-source-tree"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Source Tree</title>
<!--
diff --git a/doc/developer/testing.xml b/doc/developer/testing.xml
index 1aaadbc..0aa8c84 100644
--- a/doc/developer/testing.xml
+++ b/doc/developer/testing.xml
@@ -7,7 +7,7 @@
<chapter id="chap-testing"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Testing</title>
<!--
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons2.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons2.xml
deleted file mode 100644
index 9ae7978..0000000
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons2.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<article xmlns="http://www.scons.org/dbxsd/v1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
- <para></para>
-</article>
-
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/addListItem.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/addListItem.png
new file mode 100644
index 0000000..a8d2cbb
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/addListItem.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/back.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/back.png
new file mode 100644
index 0000000..ed2bae7
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/back.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/boldText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/boldText.png
new file mode 100644
index 0000000..4fb8dd9
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/boldText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/copy.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/copy.png
new file mode 100644
index 0000000..87cf5c9
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/copy.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/cut.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/cut.png
new file mode 100644
index 0000000..bb62377
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/cut.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementColumnSpan.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementColumnSpan.png
new file mode 100644
index 0000000..fb510c2
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementColumnSpan.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementRowSpan.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementRowSpan.png
new file mode 100644
index 0000000..bc0259c
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/decrementRowSpan.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/definitionList.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/definitionList.png
new file mode 100644
index 0000000..5693bf2
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/definitionList.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/delete.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/delete.png
new file mode 100644
index 0000000..1294132
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/delete.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteColumn.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteColumn.png
new file mode 100644
index 0000000..9ce3889
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteColumn.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteRow.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteRow.png
new file mode 100644
index 0000000..2e77c9c
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/deleteRow.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/documentation.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/documentation.png
new file mode 100644
index 0000000..d1cace3
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/documentation.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/down.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/down.png
new file mode 100644
index 0000000..f2f0352
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/down.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/editDocument.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/editDocument.png
new file mode 100644
index 0000000..7036cec
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/editDocument.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText.png
new file mode 100644
index 0000000..f8ae089
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText_menu.png
new file mode 100644
index 0000000..b5cdbe3
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/emphasisText_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure.png
new file mode 100644
index 0000000..be36c36
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure_menu.png
new file mode 100644
index 0000000..91ed514
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/figure_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/forward.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/forward.png
new file mode 100644
index 0000000..1612579
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/forward.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading.png
new file mode 100644
index 0000000..9caa1a4
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading_menu.png
new file mode 100644
index 0000000..ee56eac
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/heading_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText.png
new file mode 100644
index 0000000..7f516e9
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText_menu.png
new file mode 100644
index 0000000..5a225d7
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/hyperText_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementColumnSpan.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementColumnSpan.png
new file mode 100644
index 0000000..5f3ca3e
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementColumnSpan.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementRowSpan.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementRowSpan.png
new file mode 100644
index 0000000..680fe38
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/incrementRowSpan.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnAfter.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnAfter.png
new file mode 100644
index 0000000..38d5fdc
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnAfter.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnBefore.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnBefore.png
new file mode 100644
index 0000000..fa2e43d
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertColumnBefore.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowAfter.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowAfter.png
new file mode 100644
index 0000000..6e7e1c6
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowAfter.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowBefore.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowBefore.png
new file mode 100644
index 0000000..01722c3
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/insertRowBefore.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/italicText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/italicText.png
new file mode 100644
index 0000000..14db2c1
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/italicText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/itemizedList.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/itemizedList.png
new file mode 100644
index 0000000..d403540
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/itemizedList.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/left.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/left.png
new file mode 100644
index 0000000..f9896e3
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/left.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link.png
new file mode 100644
index 0000000..81f1909
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link_menu.png
new file mode 100644
index 0000000..12b9fc6
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/link_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/navigate.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/navigate.png
new file mode 100644
index 0000000..195096d
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/navigate.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/normalText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/normalText.png
new file mode 100644
index 0000000..f91fd53
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/normalText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/onlineHelp.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/onlineHelp.png
new file mode 100644
index 0000000..c1ab94a
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/onlineHelp.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/orderedList.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/orderedList.png
new file mode 100644
index 0000000..310211c
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/orderedList.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paragraph.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paragraph.png
new file mode 100644
index 0000000..73b8ac5
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paragraph.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paste.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paste.png
new file mode 100644
index 0000000..e3397b2
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/paste.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteAfter.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteAfter.png
new file mode 100644
index 0000000..0951145
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteAfter.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteBefore.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteBefore.png
new file mode 100644
index 0000000..c74dca3
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/pasteBefore.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/plainText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/plainText.png
new file mode 100644
index 0000000..3b8926b
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/plainText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/right.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/right.png
new file mode 100644
index 0000000..11cc87a
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/right.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section.png
new file mode 100644
index 0000000..1f9c9d1
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section_menu.png
new file mode 100644
index 0000000..4ec27b4
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/section_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table.png
new file mode 100644
index 0000000..07a959b
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table_menu.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table_menu.png
new file mode 100644
index 0000000..c6d98eb
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/table_menu.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/typewriterText.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/typewriterText.png
new file mode 100644
index 0000000..728ac01
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/typewriterText.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/up.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/up.png
new file mode 100644
index 0000000..cb9b87f
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/up.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/viewDocument.png b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/viewDocument.png
new file mode 100644
index 0000000..aa58c32
--- /dev/null
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_icons/viewDocument.png
Binary files differ
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/appendix.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/appendix.xml
index 6091ddc..6d245db 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/appendix.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/appendix.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<appendix xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title></title>
<section>
<title></title>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/article.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/article.xml
index 5bafcd0..8153efb 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/article.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/article.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<article xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<articleinfo>
<title></title>
<author>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/book.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/book.xml
index a2fcf14..671ad45 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/book.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/book.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<book xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<bookinfo>
<title></title>
<author>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/chapter.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/chapter.xml
index aab17e0..e39fab1 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/chapter.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/chapter.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<chapter xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title></title>
<section>
<title></title>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/glossary.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/glossary.xml
index cd3c723..bc874a5 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/glossary.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/glossary.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<glossary xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<glossdiv>
<title></title>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/part.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/part.xml
index e8e8de0..74cd2e1 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/part.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/part.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<part xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title></title>
<chapter>
<title></title>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/refentry.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/refentry.xml
index 399e346..e49692c 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/refentry.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/refentry.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<refentry xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<refmeta>
<refentrytitle></refentrytitle>
<manvolnum></manvolnum>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/sconsdoc.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/sconsdoc.xml
index 29101bb..423d83d 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/sconsdoc.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/sconsdoc.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="Foo">
<summary>
<para></para>
diff --git a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/section.xml b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/section.xml
index 39ccf9e..4681b49 100644
--- a/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/section.xml
+++ b/doc/editor_configs/xmlmind/addon/config/scons/scons_templates/section.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<section xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title></title>
<para></para>
</section>
diff --git a/doc/editor_configs/xmlmind/custom/dummy.txt b/doc/editor_configs/xmlmind/custom/dummy.txt
deleted file mode 100644
index f786cef..0000000
--- a/doc/editor_configs/xmlmind/custom/dummy.txt
+++ /dev/null
@@ -1 +0,0 @@
-# just to make hg happy \ No newline at end of file
diff --git a/doc/editor_configs/xmlmind/preferences.properties b/doc/editor_configs/xmlmind/preferences.properties
deleted file mode 100644
index 47a819a..0000000
--- a/doc/editor_configs/xmlmind/preferences.properties
+++ /dev/null
@@ -1,108 +0,0 @@
-#XMLmind XML Editor Personal Edition 4.6.0
-#Thu Feb 28 18:53:33 CET 2013
-ignoreMixedCase=false
-maxUndo=20
-underlineHeader=true
-useSchemaCache=false
-warnAboutAdvancedXInclude=false
-rightTab.insertCharacterPane.selected=false
-addInteractiveMargin=none
-rightTab.checkSpellingPane.atStart=false
-textAntiAliasing=true
-rightTab.editPane.atStart=true
-addonSource=servers
-lastOpenedFiles=
-defaultForeground=0 0 0
-rightTab.textSearchReplacePane.selected=false
-serifFontFamily=Serif
-overrideConfiguration=false
-footerColor=128 128 128
-rightSplit.dividerLocation=990
-button2PastesSystemSelection=false
-ignoreDuplicates=false
-addonInstallDir=best
-rightTab.checkSpellingPane.selected=false
-favorInteroperability=true
-addonDir=
-rightTabs.horizontalRatio=0.33
-addonServers=http\://www.xmlmind.com/xmleditor/_usercontrib/list.xxe_addon\nhttp\://www.xmlmind.net/xmleditor/_download/list-${XXE_VERSION}.xxe_addon\nhttp\://www.xmlmind.net/xmleditor/_download/list.xxe_addon
-overlineFooter=true
-rightTab.checkValidityPane.atStart=false
-ensureSaveFileHasExtension=true
-lockOwner=
-passwords=
-footerBegin=%F
-allowCompound=true
-charsSavedAsEntityRefs=
-useURLChooser=false
-rightTab.checkValidityPane.selected=true
-treeViewPercent=33
-showValidityPaneOnSave=false
-autoSaveTimeout=30
-onlyShowSuggestions=false
-footerEnd=%P
-appendSuggestionMode=manual
-makeBackupFiles=true
-guessIgnorableWhitespace=true
-lockLocalDocuments=false
-features=
-filterDuplicateIDs=true
-updateInclusionsOnSave=true
-treeViewAtRight=false
-autoSaveInterval=-300
-ignoreStyleSheetPI=false
-headerMiddle=
-locale=-
-defaultBackground=255 255 255
-autoSelectAttribute=placeholder
-maxSuggestionForce=false
-monospaceFontFamily=Monospaced
-maxLineLength=78
-helperApplications.entries=\:text/plain\:txt\:\:\:xterm -e vi "%F"
-firstCharDisplayedByTable=0
-singleInstance=false
-activeInputMethodClient=false
-selectedLanguage=en
-rightTab.editPane.selected=true
-defaultFontIsSerif=false
-ignoreCase=false
-fontSize=-1
-sansSerifFontFamily=SansSerif
-headerEnd=
-indent=2
-allowPrefixes=true
-headerColor=128 128 128
-helperApplications.defaultViewer=firefox "%U"
-lockMode=exclusive
-dontIndentUnconstrainedDocs=false
-rightTab.editAttributePane.selected=false
-ignoreURL=true
-geometry=72 52 1161 855
-maximized=no
-headerBegin=
-rightTab.insertCharacterPane.atStart=false
-allowFileExtensions=true
-rightTab.editAttributePane.atStart=false
-footerMiddle=
-startFromCaret=true
-singleInstancePort=49987
-reopenLastOpenedFile=false
-fileChooserSize=500 326
-screenResolutionWhenPrinting=100.0
-saveCharsAsEntityRefs=true
-copyDocumentTemplate=false
-wrapSearch=false
-infoAboutReadOnlyInclusions=true
-lookAndFeelClassName=-
-imageViewportMode=image
-defaultFontSize=12
-checkPunctuation=false
-showBothViews=false
-xxeVersion=4.6.0
-wrapLongWords=false
-rightTab.textSearchReplacePane.atStart=false
-addAutoDocumentType=true
-allowAdvancedXInclude=false
-addOpenLines=true
-encoding=ORIGINAL_ENCODING
-ignoreDigits=true
diff --git a/doc/editor_configs/xmlmind/ser/dummy.txt b/doc/editor_configs/xmlmind/ser/dummy.txt
deleted file mode 100644
index f786cef..0000000
--- a/doc/editor_configs/xmlmind/ser/dummy.txt
+++ /dev/null
@@ -1 +0,0 @@
-# just to make hg happy \ No newline at end of file
diff --git a/doc/editor_configs/xmlmind/spell/dummy.txt b/doc/editor_configs/xmlmind/spell/dummy.txt
deleted file mode 100644
index f786cef..0000000
--- a/doc/editor_configs/xmlmind/spell/dummy.txt
+++ /dev/null
@@ -1 +0,0 @@
-# just to make hg happy \ No newline at end of file
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/common.incl b/doc/editor_configs/xmlmind5/addon/config/scons/common.incl
new file mode 100644
index 0000000..987315a
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/common.incl
@@ -0,0 +1,647 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<configuration
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
+
+ <translation location="docbook_en.properties" />
+
+ <inclusionScheme name="XInclude">
+ <class>com.xmlmind.xml.xinclude.XIncludeScheme</class>
+ </inclusionScheme>
+
+ <cfg:preserveSpace xmlns=""
+ elements="address funcsynopsisinfo classsynopsisinfo
+ literallayout programlisting screen synopsis
+ sconstruct scons_example_file example_commands
+ scons_output_command file directory" />
+
+ <cfg:documentResources xmlns="">
+ <cfg:resource path="//@fileref" />
+ </cfg:documentResources>
+
+ <!-- Fixes the cols attribute of tgroup and entrytbl if needed to -->
+ <validateHook>
+ <class>com.xmlmind.xmleditext.docbook.table.ValidateHookImpl</class>
+ </validateHook>
+
+ <cfg:spellCheckOptions xmlns=""
+ useAutomaticSpellChecker="true"
+ languageAttribute="lang"
+ skippedElements="address programlisting screen synopsis code sgmltag
+ classsynopsisinfo modifier package classname
+ interfacename exceptionname varname methodname
+ funcsynopsisinfo modifier type function
+ initializer parameter funcparams
+ lhs rhs nonterminal" />
+
+ <!-- Menu ============================================================== -->
+
+ <command name="docb.tableEdit">
+ <class>com.xmlmind.xmleditext.docbook.DBTableEdit</class>
+ </command>
+
+ <command name="docb.promote">
+ <class>com.xmlmind.xmleditext.docbook.Promote</class>
+ </command>
+ <command name="docb.demote">
+ <class>com.xmlmind.xmleditext.docbook.Demote</class>
+ </command>
+
+ <command name="docb.toggleInformal">
+ <macro undoable="true"
+ label="Convert informal&lt;element&gt; to/from &lt;element&gt;">
+ <choice>
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestorOrSelf[implicitElement]
+ informaltable informalfigure informalexample" />
+
+ <!-- DocBook 4.3 supports HTML tables and we will *not* attempt to
+ transform an HTML informaltable to a HTML table
+ with a caption. -->
+
+ <test context="$selected"
+ expression="local-name() != 'informaltable' or ./tgroup" />
+
+ <command name="selectNode" parameter="children" />
+ <command name="copy" />
+ <command name="selectNode" parameter="parent" />
+ <get context="$selected"
+ expression="substring-after(local-name(), 'informal')" />
+ <command name="replace" parameter="%_" />
+ <set variable="selectedNodes" context="$selected"
+ expression="./*[position() &gt; 1]" />
+ <command name="paste" parameter="to" />
+ </sequence>
+
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestorOrSelf[implicitElement] table figure example" />
+ <!-- Assumes that first child is a title and not a blockinfo. -->
+ <set variable="selectedNodes" context="$selected"
+ expression="./*[position() &gt; 1]" />
+ <command name="copy" />
+ <command name="selectNode" parameter="parent" />
+ <get context="$selected"
+ expression="concat('informal', local-name())" />
+ <command name="replace" parameter="%_" />
+ <command name="selectNode" parameter="children" />
+ <command name="paste" parameter="to" />
+ </sequence>
+ </choice>
+ </macro>
+ </command>
+
+ <menu label="_DocBook">
+ <menu label="C_olumn" name="tableColumnMenu">
+ <item label="_Insert Before"
+ icon="xxe-config:common/icons/insertColumnBefore.png"
+ command="docb.tableEdit" parameter="insertColumnBefore"/>
+ <item label="I_nsert After"
+ icon="xxe-config:common/icons/insertColumnAfter.png"
+ command="docb.tableEdit" parameter="insertColumnAfter"/>
+ <separator />
+ <item label="_Cut"
+ icon="xxe-config:common/icons/cut.png"
+ command="docb.tableEdit" parameter="cutColumn"/>
+ <item label="C_opy"
+ icon="xxe-config:common/icons/copy.png"
+ command="docb.tableEdit" parameter="copyColumn"/>
+ <item label="_Paste Before"
+ icon="xxe-config:common/icons/pasteBefore.png"
+ command="docb.tableEdit" parameter="pasteColumnBefore"/>
+ <item label="P_aste After"
+ icon="xxe-config:common/icons/pasteAfter.png"
+ command="docb.tableEdit" parameter="pasteColumnAfter"/>
+ <item label="_Delete"
+ icon="xxe-config:common/icons/deleteColumn.png"
+ command="docb.tableEdit" parameter="deleteColumn"/>
+ </menu>
+ <menu label="_Row" name="tableRowMenu">
+ <item label="_Insert Before"
+ icon="xxe-config:common/icons/insertRowBefore.png"
+ command="docb.tableEdit" parameter="insertRowBefore"/>
+ <item label="I_nsert After"
+ icon="xxe-config:common/icons/insertRowAfter.png"
+ command="docb.tableEdit" parameter="insertRowAfter"/>
+ <separator />
+ <item label="_Cut"
+ icon="xxe-config:common/icons/cut.png"
+ command="docb.tableEdit" parameter="cutRow"/>
+ <item label="C_opy"
+ icon="xxe-config:common/icons/copy.png"
+ command="docb.tableEdit" parameter="copyRow"/>
+ <item label="_Paste Before"
+ icon="xxe-config:common/icons/pasteBefore.png"
+ command="docb.tableEdit" parameter="pasteRowBefore"/>
+ <item label="P_aste After"
+ icon="xxe-config:common/icons/pasteAfter.png"
+ command="docb.tableEdit" parameter="pasteRowAfter"/>
+ <item label="_Delete"
+ icon="xxe-config:common/icons/deleteRow.png"
+ command="docb.tableEdit" parameter="deleteRow"/>
+ </menu>
+ <menu label="C_ell">
+ <item label="_Increment Column Span"
+ icon="xxe-config:common/icons/incrementColumnSpan.png"
+ command="docb.tableEdit" parameter="incrColumnSpan"/>
+ <item label="_Decrement Column Span"
+ icon="xxe-config:common/icons/decrementColumnSpan.png"
+ command="docb.tableEdit" parameter="decrColumnSpan"/>
+ <separator />
+ <item label="I_ncrement Row Span"
+ icon="xxe-config:common/icons/incrementRowSpan.png"
+ command="docb.tableEdit" parameter="incrRowSpan"/>
+ <item label="D_ecrement Row Span"
+ icon="xxe-config:common/icons/decrementRowSpan.png"
+ command="docb.tableEdit" parameter="decrRowSpan"/>
+ </menu>
+ <separator />
+ <item label="Convert in_formal&lt;element&gt; to/from &lt;element&gt;"
+ command="docb.toggleInformal"/>
+ <separator />
+ <item label="Move _Up"
+ icon="xxe-config:common/icons/up.png"
+ command="moveElement" parameter="up" />
+ <item label="Move Do_wn"
+ icon="xxe-config:common/icons/down.png"
+ command="moveElement" parameter="down" />
+ </menu>
+
+ <!-- Toolbar ============================================================ -->
+
+ <command name="docb.convertWithAttribute">
+ <macro repeatable="true" undoable="true" label="Convert">
+ <sequence>
+ <choice>
+ <command name="selectNode"
+ parameter="self[implicitElement] %0" />
+ <command name="convert"
+ parameter="[implicitElement] %0" />
+ </choice>
+ <command name="putAttribute" parameter="%1 %2" />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- Easier to implement with "add" instead of "insertNode" but slower. -->
+
+ <command name="docb.addListItem">
+ <macro>
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestor[implicitElement] itemizedlist orderedlist
+ variablelist calloutlist procedure substeps
+ simplelist segmentedlist" />
+ <command name="selectNode" parameter="child" />
+ <command name="insertNode" parameter="sameElement%0" />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- This macro is required for DocBook where a para can contains
+ lists, tables, etc.
+ Note that this is not the case of para in Simplified DocBook. -->
+
+ <command name="docb.addAfter">
+ <macro>
+ <choice>
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestorOrSelf[implicitElement] para" />
+ <command name="insert" parameter="after[implicitElement] %0" />
+ </sequence>
+ <command name="add" parameter="after[implicitElement] %0" />
+ </choice>
+ </macro>
+ </command>
+
+ <!-- Bindings =========================================================== -->
+
+ <binding>
+ <keyPressed code="F2" />
+ <keyPressed code="UP" />
+ <command name="moveElement" parameter="up" />
+ </binding>
+
+ <binding>
+ <keyPressed code="F2" />
+ <keyPressed code="DOWN" />
+ <command name="moveElement" parameter="down" />
+ </binding>
+
+ <!-- Inside a para or simpara (and only inside a para or simpara),
+ XXE attempts to behave like a word-processor. -->
+
+ <binding>
+ <keyPressed code="ENTER" />
+ <command name="docb.splitOrInsertNewLine" />
+ </binding>
+
+ <binding>
+ <keyPressed code="DELETE" />
+ <command name="docb.joinOrDeleteChar" />
+ </binding>
+
+ <binding>
+ <keyPressed code="BACK_SPACE" />
+ <command name="docb.joinOrDeleteChar" parameter="backwards" />
+ </binding>
+
+ <command name="docb.splitOrInsertNewLine">
+ <macro>
+ <choice>
+ <command name="insertControlChar" parameter="\n" />
+
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestorOrSelf[implicitElement] simpara para" />
+ <command name="split" />
+ </sequence>
+ </choice>
+ </macro>
+ </command>
+
+ <command name="docb.joinOrDeleteChar">
+ <macro>
+ <choice>
+ <sequence>
+ <test
+ expression="($dot/ancestor::para or $dot/ancestor::simpara) and
+ not($selected) and not($mark)" />
+ <command name="deleteSelectionOrJoinOrDeleteChar" parameter="%0" />
+ </sequence>
+
+ <command name="deleteSelectionOrDeleteChar" parameter="%0" />
+ </choice>
+ </macro>
+ </command>
+
+ <!-- Easy way to add paragraphs and list items -->
+
+ <binding>
+ <keyPressed code="ENTER" modifiers="mod" />
+ <command name="docb.addSame" parameter="After" />
+ </binding>
+
+ <binding>
+ <keyPressed code="ENTER" modifiers="mod shift" />
+ <command name="docb.addSame" parameter="Before" />
+ </binding>
+
+ <command name="docb.addSame">
+ <macro>
+ <choice>
+ <sequence>
+ <command name="selectNode"
+ parameter="ancestorOrSelf[implicitElement] simpara para" />
+
+ <choice>
+ <sequence>
+ <match context="$selected"
+ pattern="listitem/*[position() = 1]|
+ callout/*[position() = 1]|
+ step/*[position() = 1]" />
+ <command name="docb.addListItem" parameter="%0" />
+ </sequence>
+
+ <command name="insertNode" parameter="sameElement%0" />
+ </choice>
+ </sequence>
+
+ <command name="docb.addListItem" parameter="%0" />
+ </choice>
+ </macro>
+ </command>
+
+ <!-- Note that Shift-Enter is not bound. -->
+
+ <!-- An easy way to paste paragraphs copied from another application. -->
+
+ <command name="docb.pasteAfterAsParagraphs">
+ <macro>
+ <sequence>
+ <command name="makeParagraphs" parameter="%0" />
+ <command name="paste" parameter="after[implicitElement] %_" />
+ </sequence>
+ </macro>
+ </command>
+
+ <binding>
+ <keyPressed code="ESCAPE" />
+ <charTyped char="w" />
+ <command name="docb.pasteAfterAsParagraphs" parameter="para" />
+ </binding>
+
+ <!-- An easy way to specify the URL in ulink -->
+
+ <binding>
+ <appEvent name="drop" />
+ <command name="docb.fileDrop" parameter="'%{value}'" />
+ </binding>
+
+ <command name="docb.fileDrop">
+ <macro>
+ <choice>
+ <sequence>
+ <match context="$clickedElement" pattern="ulink" />
+ <set variable="selectedElement" expression="$clickedElement" />
+
+ <set variable="dropped" context="$selectedElement"
+ expression="relativize-uri(uri-or-file-name('%0'))" />
+ <get expression="$dropped" />
+ <command name="putAttribute" parameter="url '%_'" />
+
+ <get expression="$dropped" />
+ <command name="status" parameter="url='%_'" />
+ </sequence>
+
+ <command name="XXE.open" parameter="%0" />
+ </choice>
+ </macro>
+ </command>
+
+ <!-- Element templates ================================================== -->
+
+ <!-- Unlike graphic, mediaobject/imageobject is also supported by
+ simplified docbook. -->
+
+ <elementTemplate name="image" selectable="override">
+ <figure xmlns="">
+ <title></title>
+ <mediaobject cfg:template="image" />
+ </figure>
+ </elementTemplate>
+
+ <elementTemplate name="screenshot">
+ <figure xmlns="">
+ <title></title>
+ <screenshot cfg:template="simple" />
+ </figure>
+ </elementTemplate>
+
+ <elementTemplate name="simple" selectable="override">
+ <screenshot xmlns="">
+ <screeninfo></screeninfo>
+ <mediaobject cfg:template="image" />
+ </screenshot>
+ </elementTemplate>
+
+ <!-- Replacement for automatically generated mediaobject
+ (which contains a textobject) -->
+
+ <elementTemplate name="image" selectable="override">
+ <mediaobject xmlns="">
+ <imageobject><imagedata cfg:template="simple" /></imageobject>
+ </mediaobject>
+ </elementTemplate>
+
+ <elementTemplate name="image" selectable="override">
+ <inlinemediaobject xmlns="">
+ <imageobject><imagedata cfg:template="simple" /></imageobject>
+ </inlinemediaobject>
+ </elementTemplate>
+
+ <!-- fileref is not a mandatory attribute of imagedata -->
+
+ <elementTemplate name="simple" selectable="override">
+ <imagedata xmlns="" fileref="???" />
+ </elementTemplate>
+
+ <!-- Replacement for automatically generated caption of a mediaobject
+ (which is empty) -->
+
+ <elementTemplate name="simple" selectable="override">
+ <caption xmlns="">
+ <para></para>
+ </caption>
+ </elementTemplate>
+
+ <!-- Replacement for automatically generated table
+ (which contains a graphic) -->
+
+ <elementTemplate name="simple" selectable="override">
+ <table xmlns="">
+ <title></title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </elementTemplate>
+
+<!--
+ <elementTemplate name="withPara" selectable="override">
+ <entry xmlns=""><para></para></entry>
+ </elementTemplate>
+
+ <elementTemplate name="withPara" selectable="override">
+ <entrytbl xmlns="" cols="2">
+ <tbody>
+ <row>
+ <entry><para></para></entry><entry><para></para></entry>
+ </row>
+ <row>
+ <entry><para></para></entry><entry><para></para></entry>
+ </row>
+ </tbody>
+ </entrytbl>
+ </elementTemplate>
+-->
+
+ <elementTemplate name="head_row">
+ <table xmlns="">
+ <title></title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry align="center"></entry><entry align="center"></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </elementTemplate>
+
+ <elementTemplate name="head_column">
+ <table xmlns="">
+ <title></title>
+ <tgroup cols="2">
+ <colspec align="center"/>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </elementTemplate>
+
+ <elementTemplate name="head_row_column">
+ <table xmlns="">
+ <title></title>
+ <tgroup cols="2">
+ <colspec align="center" />
+ <thead>
+ <row>
+ <entry align="center"></entry><entry align="center"></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </elementTemplate>
+
+ <!-- Replacement for automatically generated informaltable
+ (which contains a graphic) -->
+
+ <elementTemplate name="simple" selectable="override">
+ <informaltable xmlns="">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="head_row">
+ <informaltable xmlns="">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry align="center"></entry><entry align="center"></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="head_column">
+ <informaltable xmlns="">
+ <tgroup cols="2">
+ <colspec align="center"/>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="head_row_column">
+ <informaltable xmlns="">
+ <tgroup cols="2">
+ <colspec align="center" />
+ <thead>
+ <row>
+ <entry align="center"></entry><entry align="center"></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="1x2">
+ <entrytbl xmlns="" cols="2">
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </entrytbl>
+ </elementTemplate>
+
+ <elementTemplate name="2x1">
+ <entrytbl xmlns="" cols="1">
+ <tbody>
+ <row>
+ <entry></entry>
+ </row>
+ <row>
+ <entry></entry>
+ </row>
+ </tbody>
+ </entrytbl>
+ </elementTemplate>
+
+ <elementTemplate name="2x2">
+ <entrytbl xmlns="" cols="2">
+ <tbody>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ <row>
+ <entry></entry><entry></entry>
+ </row>
+ </tbody>
+ </entrytbl>
+ </elementTemplate>
+
+ <!-- indexterm -->
+
+ <elementTemplate name="singular" selectable="override">
+ <indexterm xmlns=""><primary></primary></indexterm>
+ </elementTemplate>
+
+ <elementTemplate name="startofrange">
+ <indexterm xmlns="" id="???"
+ class="startofrange"><primary></primary></indexterm>
+ </elementTemplate>
+
+ <elementTemplate name="endofrange">
+ <indexterm xmlns="" class="endofrange" startref="???" />
+ </elementTemplate>
+
+ <!-- DocBook 4.3, Simplified DocBook 1.1, etc, support
+ both HTML and CALS tables. -->
+ <include location="htmlTable.incl" />
+</configuration>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/cals_table.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/cals_table.imp
new file mode 100644
index 0000000..6e02a94
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/cals_table.imp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2005-2009 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for CALS tables (up to DocBook 4.2).
+ */
+
+@import "table.imp";
+
+/*
+ * "black" is the color used to draw a border around the table and its cells
+ * based on values of attributes such as frame, rowsep and colsep.
+ *
+ * "rgb(238,238,224)" (a very light gray) is the color used to draw
+ * a border around each cell whether the cell actually has borders or not.
+ * Remove this parameter if this ``cell footprint'' disturbs you.
+ *
+ * For more information about table support for DocBook, see
+ * XMLmind XML Editor - Configuration and Deployment.
+ */
+@extension "com.xmlmind.xmleditext.docbook.table.TableSupport black rgb(238,238,224)";
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/collapsible.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/collapsible.imp
new file mode 100644
index 0000000..443f990
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/collapsible.imp
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2003-2007 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for making sections and blocks with titles collapsible.
+ */
+
+set,
+book,
+part,
+reference,
+chapter,
+preface,
+article,
+sect1,
+sect2,
+sect3,
+sect4,
+section,
+appendix,
+figure,
+example,
+table {
+ collapsible: yes;
+ not-collapsible-head: 1; /* title or metainfo */
+}
+
+figure {
+ collapsed-content: url(icons/figure.png);
+ collapsed-content-align: center;
+}
+
+example {
+ collapsed-content: url(icons/para.png);
+ collapsed-content-align: center;
+}
+
+table {
+ collapsed-content: url(icons/table.png);
+ collapsed-content-align: center;
+}
+
+set > title:first-child:before,
+book > title:first-child:before,
+reference > title:first-child:before,
+preface > title:first-child:before,
+article > title:first-child:before,
+figure > title:before,
+example > title:before,
+table > title:before {
+ content: collapser() " ";
+}
+
+part > title:first-child:before {
+ content: collapser() " Part " simple-counter(n-, upper-roman) ": ";
+}
+
+chapter > title:first-child:before {
+ content: collapser() " Chapter " simple-counter(n-, decimal) ": ";
+}
+
+sect1 > title:first-child:before {
+ content: collapser() " " simple-counter(n-) " ";
+}
+
+sect2 > title:first-child:before {
+ content: collapser() " " simple-counter(nn-) " ";
+}
+
+sect3 > title:first-child:before {
+ content: collapser() " " simple-counter(nnn-) " ";
+}
+
+sect4 > title:first-child:before {
+ content: collapser() " " simple-counter(nnnn-) " ";
+}
+
+section > title:first-child:before {
+ content: collapser() " " simple-counter(n-) " ";
+}
+
+section section > title:first-child:before {
+ content: collapser() " " simple-counter(nn-) " ";
+}
+
+section section section > title:first-child:before {
+ content: collapser() " " simple-counter(nnn-) " ";
+}
+
+section section section section > title:first-child:before {
+ content: collapser() " " simple-counter(nnnn-) " ";
+}
+
+section section section * section > title:first-child:before {
+ content: "";
+}
+
+appendix > title:first-child:before {
+ content: collapser() " Appendix " simple-counter(n-, upper-alpha) ": ";
+}
+
+appendixinfo:first-child,
+articleinfo:first-child,
+bookinfo:first-child,
+chapterinfo:first-child,
+partinfo:first-child,
+prefaceinfo:first-child,
+referenceinfo:first-child,
+sect1info:first-child,
+sect2info:first-child,
+sect3info:first-child,
+sect4info:first-child,
+sectioninfo:first-child,
+setinfo:first-child {
+ margin-left: 20px;
+}
+
+appendixinfo:first-child:before,
+articleinfo:first-child:before,
+bookinfo:first-child:before,
+chapterinfo:first-child:before,
+partinfo:first-child:before,
+prefaceinfo:first-child:before,
+referenceinfo:first-child:before,
+sect1info:first-child:before,
+sect2info:first-child:before,
+sect3info:first-child:before,
+sect4info:first-child:before,
+sectioninfo:first-child:before,
+setinfo:first-child:before {
+ content: collapser();
+ display: marker;
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook1.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook1.imp
new file mode 100644
index 0000000..27a7561
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook1.imp
@@ -0,0 +1,1157 @@
+/*
+ * Copyright (c) 2003-2010 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for elements other than those found in Simplified DocBook.
+ */
+
+/* =====================================
+ Book structure
+===================================== */
+
+set {
+ display: block;
+}
+
+set > title {
+ font-size: 2.5em;
+ margin: 0.25ex 0;
+ border-width: 4px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+book {
+ display: block;
+}
+
+book > title {
+ font-size: 2.5em;
+ margin: 0.25ex 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+dedication,
+colophon {
+ display: block;
+ /* content of dedication has a margin */
+}
+
+part,
+reference {
+ display: block;
+}
+
+part > title,
+reference > title {
+ font-size: 2em;
+ margin: 0.5ex 0;
+ border-width: 2px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+part > title:before {
+ content: "Part " simple-counter(n-, upper-roman) ": ";
+}
+
+partintro {
+ display: block;
+ /* content of partintro has a margin */
+}
+
+chapter,
+preface {
+ display: block;
+}
+
+chapter > title,
+preface > title {
+ font-size: 2em;
+ margin: 0.5ex 0;
+ border-width: 1px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+chapter > title:before {
+ content: "Chapter " simple-counter(n-, decimal) ": ";
+}
+
+/* -------------------------------------
+ TOC
+------------------------------------- */
+
+toc {
+ display: block;
+ /* content of toc has a margin */
+}
+
+tocchap,
+tocpart {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+tocfront,
+tocback,
+tocentry {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+toclevel1,
+toclevel2,
+toclevel3,
+toclevel4,
+toclevel5 {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+toclevel2,
+toclevel3,
+toclevel4,
+toclevel5 {
+ margin-left: 4ex;
+}
+
+/* -------------------------------------
+ LOT
+------------------------------------- */
+
+lot {
+ display: block;
+ /* content of lot has a margin */
+}
+
+lotentry {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+/* -------------------------------------
+ Glossary
+------------------------------------- */
+
+glossary,
+glossdiv {
+ display: block;
+ /* content of glossary has a margin */
+}
+
+glosslist {
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+glossentry {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+glossterm {
+ display: inline;
+ font-style: italic;
+}
+
+glossentry > acronym,
+glossentry > abbrev,
+glossentry > indexterm,
+glossentry > revhistory {
+ display: block;
+ margin-left: 4ex;
+ margin-top: 0;
+ margin-bottom: 1.33ex;
+}
+
+glossdef,
+glosssee {
+ display: block;
+ margin-left: 4ex;
+ margin-bottom: 1.33ex;
+}
+
+glossdef > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+glossseealso {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+glosssee:before,
+glossseealso:before {
+ display: inline;
+ font-size: small;
+ color: #004080;
+}
+
+glosssee:before {
+ content: "See ";
+}
+
+glossseealso:before {
+ content: "See also ";
+}
+
+/* -------------------------------------
+ Index
+------------------------------------- */
+
+index,
+setindex,
+indexdiv {
+ display: block;
+ /* content of index has a margin */
+}
+
+indexentry {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+primaryie,
+secondaryie,
+tertiaryie,
+seeie,
+seealsoie {
+ display: block;
+ /* no vertical margins to make it more compact */
+}
+
+secondaryie {
+ margin-left: 2ex;
+}
+
+tertiaryie {
+ margin-left: 4ex;
+}
+
+seeie,
+seealsoie {
+ margin-left: 6ex;
+}
+
+seeie:before,
+seealsoie:before {
+ display: inline;
+ font-size: small;
+ color: #004080;
+}
+
+seeie:before {
+ content: "See ";
+}
+
+seealsoie:before {
+ content: "See also ";
+}
+
+/* =====================================
+ Paragraphs
+===================================== */
+
+ackno {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+address {
+ display: block;
+ white-space: pre;
+ margin: 1.33ex 0;
+}
+
+street,
+pob,
+postcode,
+city,
+state,
+country,
+phone,
+fax,
+otheraddr {
+ display: inline;
+}
+
+formalpara {
+ display: block;
+ /* content of formalpara has a margin */
+}
+
+/* =====================================
+ Lists
+===================================== */
+
+procedure {
+ display: block;
+ margin-left: 2ex; /* all lists are slightly indented */
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+stepalternatives,
+substeps {
+ display: block;
+}
+
+stepalternatives > *:first-child,
+substeps > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+step {
+ display: block;
+ margin-left: 6ex;
+}
+
+step > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+step:before {
+ display: marker;
+ content: simple-counter(n, decimal) ".";
+ font-weight: bold;
+ color: #004080;
+}
+
+step step:before {
+ content: simple-counter(n, lower-alpha) ".";
+}
+step step step:before {
+ content: simple-counter(n, decimal) ".";
+}
+step step step step:before {
+ content: simple-counter(n, lower-alpha) ".";
+}
+step step step step step:before {
+ content: simple-counter(n, decimal) ".";
+}
+
+segmentedlist {
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+segmentedlist > title {
+ margin-top: 0;
+}
+
+segtitle {
+ display: inline;
+ font-weight: bold;
+ color: #004080;
+}
+
+seglistitem {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+seg {
+ display: inline;
+}
+
+segtitle:before,
+seg:before {
+ content: " ";
+}
+
+segtitle:first-child:before,
+title + segtitle:before,
+seg:first-child:before {
+ content: "";
+}
+
+simplelist { /* also works for type=vert */
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+member {
+ display: block;
+}
+
+simplelist[type=inline] > member,
+simplelist[type=horiz] > member {
+ display: inline;
+}
+
+simplelist[type=inline] > member:before {
+ content: ", ";
+ color: gray;
+}
+
+simplelist[type=horiz] > member:before {
+ content: " ";
+}
+
+simplelist[type=inline] > member:first-child:before,
+simplelist[type=horiz] > member:first-child:before {
+ content: "";
+}
+
+/* =====================================
+ Figures
+===================================== */
+
+graphic {
+ display: block;
+ margin: 1.33ex auto;
+}
+
+inlinegraphic {
+ display: inline;
+}
+
+/*
+ * Replaced content of graphic and inlinegraphic
+ * is defined in image.imp.
+ */
+
+equation,
+informalequation {
+ display: block;
+ margin: 1.33ex auto;
+}
+
+equation > title {
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ margin: 0; /* content of equation generally already has a margin */
+}
+
+mathphrase,
+alt {
+ display: block;
+ text-align: center;
+ margin: 1.33ex 0;
+}
+
+mathphrase {
+ font-style: italic;
+}
+
+alt {
+ font-size: small;
+ background-color: #EEEEFF;
+}
+
+inlineequation {
+ display: inline;
+}
+
+inlineequation > mathphrase,
+inlineequation > alt,
+inlineequation > graphic { /* inlineequation > graphic is a DTD bug */
+ display: inline;
+}
+
+screenshot {
+ display: block;
+ /* content of screenshot has a margin */
+}
+
+screeninfo {
+ display: block;
+ margin: 1.33ex 0;
+ font-size: small;
+ background-color: #EEEEFF;
+ text-align: center;
+}
+
+/* -------------------------------------
+ Callouts
+------------------------------------- */
+
+mediaobjectco {
+ display: block;
+ /* content of mediaobjectco has a margin */
+}
+
+graphicco,
+imageobjectco,
+programlistingco,
+screenco {
+ display: block;
+ /* content of graphicco has a margin */
+}
+
+areaspec,
+areaset,
+area {
+ display: tree;
+}
+
+co {
+ display: inline;
+ content: icon(left-half-disc) simple-counter(n) icon(right-half-disc);
+ color: #004080;
+}
+
+coref {
+ display: inline;
+ content: icon(left-half-disc) attr(linkend) icon(right-half-disc);
+ color: #004080;
+}
+
+calloutlist {
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+callout {
+ display: block;
+ margin-left: 6ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+callout > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+calloutlist > callout:before {
+ display: marker;
+ content: icon(left-half-disc) simple-counter(n) icon(right-half-disc);
+ color: #004080;
+}
+
+/* =====================================
+ Divisions
+===================================== */
+
+highlights {
+ display: block;
+ margin-bottom: 1.33ex;
+ background-color: #F8E0F8;
+ border: thin solid #F880F8;
+ padding: 2px;
+}
+
+highlights:before {
+ display: block;
+ content: element-label();
+ font-weight: bold;
+ color: #E840E8;
+ margin-top: 1.33ex;
+}
+
+/* =====================================
+ Special sections
+===================================== */
+
+/* -------------------------------------
+ Task
+------------------------------------- */
+
+task {
+ display: block;
+ /* content of task has a margin */
+}
+
+tasksummary,
+taskprerequisites,
+taskrelated,
+task > procedure {
+ display: block;
+ margin-left: 2ex;
+ /* content of taskxxx has a margin */
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+/* -------------------------------------
+ Question-and-answer set
+------------------------------------- */
+
+qandaset,
+qandadiv {
+ display: block;
+ /* content of qandaset has a margin */
+}
+
+qandaentry {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+question,
+answer {
+ display: block;
+ margin-left: 4ex;
+ /* content of question has a margin */
+}
+
+question > *:first-child,
+answer > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+question:before,
+answer:before {
+ display: marker;
+ color: #004080;
+ font-weight: bold;
+}
+
+question:before {
+ content: "Q:";
+}
+
+answer:before {
+ content: "A:";
+}
+
+label {
+ display: block;
+ margin: 1.33ex 0;
+ color: #004080;
+ font-weight: bold;
+}
+
+/* -------------------------------------
+ Set of messages
+------------------------------------- */
+
+msgset {
+ display: block;
+ /* content of msgset has a margin */
+}
+
+msgentry,
+simplemsgentry {
+ display: block;
+ margin: 1.33ex 0;
+ border: thin solid gray;
+ padding: 2px;
+}
+
+msg,
+msgmain,
+msgsub,
+msgrel,
+msgtext,
+msgexplan,
+msginfo {
+ display: block;
+ margin-left: 10ex;
+ /* content of msg has a margin */
+}
+
+msg > *:first-child,
+msgmain > *:first-child,
+msgsub > *:first-child,
+msgrel > *:first-child,
+msgtext > *:first-child,
+msgexplan > *:first-child,
+msginfo > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+msg:before,
+msgmain:before,
+msgsub:before,
+msgrel:before,
+simplemsgentry > msgtext:before,
+msgexplan:before,
+msginfo:before {
+ display: marker;
+ content: element-label();
+ font-size: small;
+ color: #004080;
+}
+
+msglevel,
+msgorig,
+msgaud {
+ display: inline;
+}
+
+msglevel:before,
+msgorig:before,
+msgaud:before {
+ content: icon(left-half-disc) element-local-name() " ";
+ font-size: small;
+ color: gray;
+}
+
+msglevel:after,
+msgorig:after,
+msgaud:after {
+ content: icon(right-half-disc);
+ color: gray;
+}
+
+/* -------------------------------------
+ Bibliography
+ (complements docbook2.imp)
+------------------------------------- */
+
+bibliocoverage,
+bibliorelation,
+bibliosource {
+ display: inline;
+}
+
+biblioid,
+isbn,
+issn,
+pubsnumber {
+ display: inline;
+}
+
+citebiblioid {
+ display: inline;
+}
+
+biblioref {
+ content: attr(linkend) icon(right-link);
+ vertical-align: text-top; /* for the icon */
+ color: navy;
+}
+
+/* -------------------------------------
+ Meta-information
+ (complements docbook2.imp)
+------------------------------------- */
+
+artpagenums,
+pagenums,
+seriesvolnums,
+invpartnumber {
+ display: inline;
+}
+
+itermset {
+ /* Could be block but inline is safer when used in strange places
+ and when used in meta-info, display is forced to be block. */
+ display: inline;
+}
+
+collab {
+ display: block; /* can contain affiliation */
+ margin: 1.33ex 0;
+}
+
+collabname {
+ display: inline;
+}
+
+confgroup {
+ display: block; /* can contain address */
+ margin: 1.33ex 0;
+}
+
+confdates,
+conftitle,
+confnum,
+confsponsor {
+ display: inline;
+}
+
+confdates:after,
+conftitle:after,
+confnum:after,
+confsponsor:after {
+ content: " ";
+}
+
+contractnum,
+contractsponsor {
+ display: inline;
+}
+
+publisher {
+ display: block; /* can contain address */
+ margin: 1.33ex 0;
+}
+
+printhistory {
+ display: block;
+ /* content of printhistory has a margin */
+}
+
+/* =====================================
+ Other elements
+===================================== */
+
+bridgehead {
+ display: block;
+ font-weight: bold;
+ color: #004080;
+ margin: 1.33ex 0;
+}
+
+bridgehead[renderas=sect1] {
+ font-size: 1.5em;
+ margin: .83ex 0;
+}
+
+bridgehead[renderas=sect2] {
+ font-size: 1.3em;
+ margin: 1ex 0;
+}
+
+/* ---------------------------------------------------------------------------
+ Inlined elements other than those belonging to modules
+
+ Note that default display is inline, so there is no need to specify it.
+--------------------------------------------------------------------------- */
+
+/* -------------------------------------
+ Technical
+------------------------------------- */
+
+keycombo {
+ display: inline;
+}
+
+keycombo > *:before {
+ content: icon(plus);
+ color: gray;
+}
+
+keycombo[action] > *:before {
+ content: " ";
+}
+
+keycombo[action=simul] > *:before {
+ content: icon(plus);
+}
+
+keycombo > *:first-child:before {
+ content: "";
+}
+
+keycap,
+keysym,
+mousebutton {
+ font-weight: bold;
+}
+
+keycode {
+ font-family: monospace;
+}
+
+menuchoice {
+ display: inline;
+}
+
+menuchoice > *:before {
+ content: icon(pop-right);
+ color: gray;
+}
+
+menuchoice > *:first-child:before,
+menuchoice > shortcut + *:before {
+ content: "";
+}
+
+shortcut {
+ display: inline;
+}
+
+/* shortcut:before should be enough but this selector makes this rule more
+ specific than the above one */
+
+menuchoice > shortcut:first-child:before {
+ content: "(";
+ color: gray;
+}
+
+shortcut:after {
+ content: ") ";
+ color: gray;
+}
+
+shortcut > *:before {
+ content: " ";
+}
+
+shortcut > *:first-child:before {
+ content: "";
+}
+
+guimenu,
+guisubmenu,
+guimenuitem,
+guibutton,
+guilabel,
+guiicon,
+accel,
+interface {
+ font-weight: bold;
+}
+
+accel {
+ text-decoration: underline;
+}
+
+action {
+ display: inline;
+}
+
+application,
+hardware,
+database,
+productnumber {
+ display: inline;
+}
+
+medialabel {
+ font-weight: bold;
+}
+
+package,
+uri,
+code,
+constant,
+envar,
+markup,
+prompt,
+property,
+sgmltag,
+token,
+type,
+function,
+parameter,
+varname,
+returnvalue,
+errorcode,
+errorname,
+errortext,
+errortype,
+exceptionname,
+classname,
+methodname,
+interfacename,
+structfield,
+structname,
+symbol {
+ font-family: monospace;
+}
+
+optional {
+ display: inline;
+}
+synopsis > optional:before {
+ content: "[";
+ color: gray;
+}
+synopsis > optional:after {
+ content: "]";
+ color: gray;
+}
+
+sgmltag:before,
+sgmltag:after {
+ color: gray;
+}
+
+sgmltag[class=attvalue]:before {
+ content: '"';
+}
+sgmltag[class=attvalue]:after {
+ content: '"';
+}
+
+sgmltag[class=starttag]:before,
+sgmltag[class=emptytag]:before {
+ content: "<";
+}
+sgmltag[class=endtag]:before {
+ content: "</";
+}
+sgmltag[class=endtag]:after,
+sgmltag[class=starttag]:after {
+ content: ">";
+}
+sgmltag[class=emptytag]:after {
+ content: "/>";
+}
+
+sgmltag[class=pi]:before,
+sgmltag[class=xmlpi]:before {
+ content: "<?";
+}
+sgmltag[class=pi]:after,
+sgmltag[class=xmlpi]:after {
+ content: "?>";
+}
+
+sgmltag[class=sgmlcomment]:before {
+ content: "<!--";
+}
+sgmltag[class=sgmlcomment]:after {
+ content: "-->";
+}
+
+sgmltag[class=paramentity]:before {
+ content: "%";
+}
+sgmltag[class=genentity]:before {
+ content: "&";
+}
+sgmltag[class=numcharref]:before {
+ content: "&#";
+}
+sgmltag[class=paramentity]:after,
+sgmltag[class=genentity]:after,
+sgmltag[class=numcharref]:after {
+ content: ";";
+}
+
+/* -------------------------------------
+ General
+------------------------------------- */
+
+remark {
+ font-style: italic;
+ color: #880000;
+}
+
+firstterm,
+foreignphrase {
+ font-style: italic;
+}
+
+citation:before {
+ content: "[";
+ color: gray;
+}
+
+citation:after {
+ content: "]";
+ color: gray;
+}
+
+wordasword {
+ font-family: sans-serif;
+ font-size: medium;
+ font-style: normal;
+ font-weight: normal;
+ color: black;
+}
+
+olink {
+ color: navy;
+ text-decoration: underline;
+}
+
+olink:after {
+ vertical-align: text-top; /* for the icon */
+}
+
+olink[targetdoc]:after {
+ content: icon(left-link) attr(targetdoc);
+}
+
+olink[targetdoc][targetptr]:after {
+ content: icon(left-link) attr(targetdoc) ":" attr(targetptr);
+}
+
+modespec {
+ display: inline;
+}
+
+indexterm,
+primary,
+secondary,
+tertiary,
+see,
+seealso {
+ display: inline;
+ font-size: small;
+}
+
+indexterm:before {
+ content: icon(left-half-disc);
+ color: gray;
+}
+
+indexterm:after {
+ content: icon(right-half-disc);
+ color: gray;
+}
+
+indexterm[class=startofrange][id]:before {
+ content: icon(left-half-disc) attr(id) icon(half-disc-separator);
+}
+
+indexterm[class=startofrange][xml|id]:before {
+ content: icon(left-half-disc) attr(xml|id) icon(half-disc-separator);
+}
+
+indexterm[class=endofrange]:after {
+ content: icon(half-disc-separator) attr(startref) icon(right-half-disc);
+}
+
+indexterm > *:before {
+ content: "; ";
+ color: gray;
+ font-weight: bold;
+}
+
+indexterm > see:before {
+ content: " see ";
+}
+
+indexterm > seealso:before {
+ content: " see also ";
+}
+
+indexterm > *:first-child:before {
+ content: "";
+}
+
+termdef {
+ display: inline;
+}
+
+termdef:before {
+ content: icon(right) element-local-name() " ";
+ color: gray;
+}
+
+termdef:after {
+ content: icon(left);
+ color: gray;
+}
+
+/* -------------------------------------
+ Other
+------------------------------------- */
+
+beginpage {
+ display: inline;
+ content: url(icons/beginpage.png);
+}
+
+sbr {
+ display: inline;
+ content: "\A";
+ color: gray;
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook2.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook2.imp
new file mode 100644
index 0000000..d558ca7
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/docbook2.imp
@@ -0,0 +1,1292 @@
+/*
+ * Copyright (c) 2003-2010 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for elements found in Simplified DocBook
+ * (and closely related elements even if not found in Simplified DocBook).
+ */
+
+/* =====================================
+ Article structure
+===================================== */
+
+sconsdoc,
+article {
+ display: block;
+}
+
+article > title {
+ font-size: 2em;
+ margin: 0.5ex 0;
+ border-width: 1px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+title,
+subtitle,
+titleabbrev {
+ display: block;
+ color: #004080;
+ margin: 1.33ex 0;
+}
+
+title,
+subtitle {
+ font-weight: bold;
+}
+
+/* -------------------------------------
+ Sections
+------------------------------------- */
+
+section,
+sect1,
+sect2,
+sect3,
+sect4,
+sect5,
+simplesect {
+ display: block;
+}
+
+tool,
+builder,
+scons_function,
+cvar {
+ display: block;
+}
+
+sconsdoc > tool:before {
+ color: #004080;
+ font-size: 1.5em;
+ margin: .83ex 0;
+ display: block;
+ content: "Tool '" attr(name) "'";
+}
+
+sconsdoc > builder:before {
+ color: #004080;
+ font-size: 1.5em;
+ margin: .83ex 0;
+ display: block;
+ content: "Builder '" attr(name) "'";
+}
+
+sconsdoc > scons_function:before {
+ color: #004080;
+ font-size: 1.5em;
+ margin: .83ex 0;
+ display: block;
+ content: "Function '" attr(name) "'";
+}
+
+sconsdoc > cvar:before {
+ color: #004080;
+ font-size: 1.5em;
+ margin: .83ex 0;
+ display: block;
+ content: "CVar '" attr(name) "'";
+}
+
+cvar > summary:before,
+scons_function > summary:before,
+builder > summary:before,
+tool > summary:before {
+ font-size: 1.3em;
+ font-weight: bold;
+ margin: .83ex 0;
+ display: block;
+ content: "Summary: ";
+}
+
+scons_function > arguments:before {
+ font-size: 1.2em;
+ margin: .83ex 0;
+ display: block;
+ content: "Arguments";
+}
+
+section > title,
+sect1 > title {
+ font-size: 1.5em;
+ margin: .83ex 0;
+}
+
+section > title:before,
+sect1 > title:before {
+ content: simple-counter(n-) " ";
+}
+
+section section > title,
+sect2 > title {
+ font-size: 1.3em;
+ margin: 1ex 0;
+}
+
+section * section > title {
+ font-size: 1em;
+ margin: 1.33ex 0;
+}
+
+section section > title:before,
+sect2 > title:before {
+ content: simple-counter(nn-) " ";
+}
+
+section section section > title:before,
+sect3 > title:before {
+ content: simple-counter(nnn-) " ";
+}
+
+section section section section > title:before,
+sect4 > title:before {
+ content: simple-counter(nnnn-) " ";
+}
+
+section section section * section > title:before {
+ content: "";
+}
+
+/* -------------------------------------
+ Appendix
+------------------------------------- */
+
+appendix {
+ display: block;
+}
+
+appendix > title { /* in a book or in a part */
+ font-size: 2em;
+ margin: 0.5ex 0;
+ border-width: 1px;
+ border-style: solid;
+ border-color: transparent transparent #004080 transparent;
+}
+
+article > appendix > title {
+ font-size: 1.5em;
+ margin: 0.83ex 0;
+ border-width: 0;
+ border-style: none;
+}
+
+appendix > title:before {
+ content: "Appendix " simple-counter(n-, upper-alpha) ": ";
+}
+
+/* =====================================
+ Paragraphs
+===================================== */
+
+para,
+simpara {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+/* =====================================
+ Lists
+===================================== */
+
+/* -------------------------------------
+ itemizedlist
+------------------------------------- */
+
+uses,
+sets,
+itemizedlist {
+ display: block;
+ margin-left: 2ex; /* all lists are slightly indented */
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+listitem {
+ display: block;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+uses[spacing=compact] > listitem,
+sets[spacing=compact] > listitem,
+itemizedlist[spacing=compact] > listitem,
+orderedlist[spacing=compact] > listitem {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+listitem > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+uses > listitem,
+sets > listitem,
+itemizedlist > listitem {
+ margin-left: 2.5ex;
+}
+
+uses > listitem:before,
+sets > listitem:before,
+itemizedlist > listitem:before {
+ display: marker;
+ content: disc;
+ color: #004080;
+}
+
+itemizedlist > listitem itemizedlist > listitem:before {
+ content: square;
+}
+
+itemizedlist > listitem itemizedlist > listitem itemizedlist >
+listitem:before {
+ content: icon(diamond);
+}
+
+itemizedlist > listitem itemizedlist > listitem itemizedlist >
+listitem itemizedlist > listitem:before {
+ content: circle;
+}
+
+/* -------------------------------------
+ orderedlist
+------------------------------------- */
+
+orderedlist {
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+ counter-reset: item;
+}
+
+orderedlist[continuation=continues] {
+ counter-reset: none;
+}
+
+orderedlist > listitem {
+ margin-left: 6ex;
+ counter-increment: item;
+}
+
+orderedlist > listitem:before {
+ display: marker;
+ content: counter(item, decimal) ".";
+ font-weight: bold;
+ color: #004080;
+}
+
+orderedlist[numeration=loweralpha] > listitem:before {
+ content: counter(item, lower-alpha) ".";
+}
+
+orderedlist[numeration=upperalpha] > listitem:before {
+ content: counter(item, upper-alpha) ".";
+}
+
+orderedlist[numeration=lowerroman] > listitem:before {
+ content: counter(item, lower-roman) ".";
+}
+
+orderedlist[numeration=upperroman] > listitem:before {
+ content: counter(item, upper-roman) ".";
+}
+
+orderedlist[inheritnum=inherit] > listitem:before,
+orderedlist[inheritnum=inherit][numeration=arabic] > listitem:before {
+ content: counters(item, ".", decimal) ".";
+}
+
+orderedlist[inheritnum=inherit][numeration=loweralpha] > listitem:before {
+ content: counters(item, ".", lower-alpha) ".";
+}
+
+orderedlist[inheritnum=inherit][numeration=upperalpha] > listitem:before {
+ content: counters(item, ".", upper-alpha) ".";
+}
+
+orderedlist[inheritnum=inherit][numeration=lowerroman] > listitem:before {
+ content: counters(item, ".", lower-roman) ".";
+}
+
+orderedlist[inheritnum=inherit][numeration=upperroman] > listitem:before {
+ content: counters(item, ".", upper-roman) ".";
+}
+
+/* -------------------------------------
+ variablelist
+------------------------------------- */
+
+variablelist {
+ display: block;
+ margin-left: 2ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+varlistentry {
+ display: block;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+variablelist[spacing=compact] > varlistentry {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+term {
+ display: block;
+ font-weight: bold;
+}
+
+varlistentry > listitem {
+ margin-left: 4ex;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+/* =====================================
+ Figures
+===================================== */
+
+programlisting,
+screen,
+scons_example,
+scons_example_file,
+example_commands,
+sconstruct,
+scons_output,
+scons_output_command,
+file,
+directory,
+literallayout,
+synopsis {
+ display: block;
+ white-space: pre;
+ font-family: monospace;
+ margin: 1.33ex 0;
+}
+
+example_commands,
+programlisting {
+ background-color: #EEEEEE;
+ border: thin solid gray;
+ padding: 2px;
+}
+
+scons_example,
+sconstruct,
+scons_output {
+ background-color: #94CAEE;
+ border: thin solid gray;
+ padding: 2px;
+}
+
+file,
+directory,
+scons_example_file {
+ background-color: #EED27B;
+}
+
+screen {
+ background-color: #EEEEFF;
+ border: thin solid #8888FF;
+ padding: 2px;
+}
+
+figure,
+informalfigure,
+example,
+informalexample {
+ display: block;
+ margin: 1.33ex auto;
+}
+
+figure > title,
+example > title {
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ margin: 0; /* content of figure generally already has a margin */
+}
+
+mediaobject {
+ display: table;
+ border-spacing: 2px;
+ margin: 1.33ex auto;
+}
+
+inlinemediaobject {
+ display: inline-table;
+ border-spacing: 2px;
+}
+
+caption {
+ display: table-caption;
+ color: #004080;
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ /* content of caption already has a margin */
+}
+
+audioobject,
+videoobject,
+imageobject,
+textobject {
+ display: table-cell; /* this will create one row per cell */
+ text-align: center;
+}
+
+objectinfo {
+ text-align: left;
+}
+
+mediaobject > objectinfo {
+ display: table-cell;
+}
+
+audiodata {
+ display: inline;
+ content: url(icons/audio.png);
+}
+
+videodata {
+ display: inline;
+ content: url(icons/video.png);
+}
+
+/*
+ * imagedata is defined in image.imp.
+ */
+
+textdata {
+ display: inline;
+ content: url(icons/text.png);
+}
+
+/* =====================================
+ Divisions
+===================================== */
+
+abstract {
+ display: block;
+ margin-left: 18ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+abstract > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+abstract:before {
+ display: marker;
+ content: element-label();
+ font-weight: bold;
+ color: #004080;
+}
+
+blockquote,
+epigraph {
+ display: block;
+ margin: 1.33ex 10ex;
+}
+
+blockquote > title {
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ margin: 0; /* content of blockquote already has a margin */
+}
+
+attribution {
+ display: block;
+ text-align: right;
+}
+
+attribution:before {
+ content: " -- ";
+}
+
+footnote {
+ display: block;
+ margin-left: 18ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+ margin-right: 10ex;
+ font-size: small;
+ padding: 2px;
+ background-color: #F0F0FF;
+}
+
+footnote > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+footnote:before {
+ display: marker;
+ content: element-label();
+ color: #004080;
+}
+
+footnote[label]:before {
+ content: "[" attr(label) "]";
+}
+
+note,
+caution,
+important,
+tip,
+warning {
+ display: block;
+ margin-left: 18ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+note > *:first-child,
+caution > *:first-child,
+important > *:first-child,
+tip > *:first-child,
+warning > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+note:before,
+caution:before,
+important:before,
+tip:before,
+warning:before {
+ display: marker;
+ content: element-label();
+ font-weight: bold;
+ color: #004080;
+}
+
+sidebar {
+ display: block;
+ margin: 1.33ex 0;
+ border: thin solid #80F880;
+ background-color: #E0F8E0;
+ padding: 2px;
+}
+
+sidebar > title {
+ margin: 0; /* content of sidebar already has a margin */
+}
+
+/* =====================================
+ Special sections
+===================================== */
+
+/* -------------------------------------
+ Bibliography
+ (complemented in docbook1.imp)
+------------------------------------- */
+
+bibliography,
+bibliodiv,
+bibliolist {
+ display: block;
+ /* content of bibliography has a margin */
+}
+
+bibliomixed,
+bibliomset,
+biblioentry,
+biblioset {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+bibliomixed,
+biblioentry {
+ border: thin solid gray;
+ padding: 2px;
+}
+
+bibliomixed > title,
+bibliomixed > subtitle,
+bibliomixed > titleabbrev,
+bibliomset > title,
+bibliomset > subtitle,
+bibliomset > titleabbrev,
+biblioentry > title,
+biblioentry > subtitle,
+biblioentry > titleabbrev,
+biblioset > title,
+biblioset > subtitle,
+biblioset > titleabbrev {
+ /* title of a bibliography entry, not ``caption'' of a formal block */
+ font-weight: normal;
+ font-size: 1em;
+ color: black;
+}
+
+bibliomixed > title,
+bibliomixed > subtitle,
+bibliomixed > titleabbrev,
+bibliomset > title,
+bibliomset > subtitle,
+bibliomset > titleabbrev {
+ display: inline;
+}
+
+bibliomixed > title,
+bibliomixed > subtitle,
+bibliomset > title,
+bibliomset > subtitle {
+ font-style: italic;
+}
+
+bibliomisc {
+ display: inline;
+}
+
+/* -------------------------------------
+ Meta-information
+ (complemented in docbook1.imp)
+------------------------------------- */
+
+appendixinfo,
+articleinfo,
+bibliographyinfo,
+blockinfo,
+bookinfo,
+chapterinfo,
+glossaryinfo,
+indexinfo,
+objectinfo,
+partinfo,
+prefaceinfo,
+refentryinfo,
+refmeta,
+referenceinfo,
+refsect1info,
+refsect2info,
+refsect3info,
+refsectioninfo,
+refsynopsisdivinfo,
+sect1info,
+sect2info,
+sect3info,
+sect4info,
+sect5info,
+sectioninfo,
+setindexinfo,
+setinfo,
+sidebarinfo {
+ display: block;
+ margin: 1.33ex 0;
+ border: thin solid #C0F8F8;
+ background-color: #E0F8F8;
+ padding: 2px;
+}
+
+authorgroup {
+ display: block;
+ /* content of authorgroup has a margin */
+}
+
+author,
+editor,
+othercredit {
+ display: block; /* can contain authorblurb, address */
+ margin: 1.33ex 0;
+}
+
+personname {
+ display: inline;
+}
+
+honorific,
+firstname,
+surname,
+lineage,
+othername {
+ display: inline;
+}
+
+honorific:after,
+firstname:after,
+surname:after,
+lineage:after,
+othername:after {
+ content: " ";
+}
+
+contrib {
+ display: inline;
+}
+
+authorblurb,
+personblurb {
+ display: block;
+ /* content of authorblurb has a margin */
+}
+
+corpauthor,
+corpname {
+ /* Could be block but inline is safer when used in strange places
+ and when used in meta-info, display is forced to be block. */
+ display: inline;
+}
+
+affiliation {
+ display: block; /* can contain address */
+ margin: 1.33ex 0;
+}
+
+shortaffil,
+jobtitle,
+orgname,
+orgdiv {
+ display: inline;
+}
+
+shortaffil:after,
+affiliation > jobtitle:after,
+affiliation > orgname:after,
+orgdiv:after {
+ content: " ";
+}
+
+copyright {
+ display: inline;
+}
+
+year,
+holder {
+ display: inline;
+}
+
+year:after,
+holder:after {
+ content: " ";
+}
+
+date,
+pubdate {
+ display: inline;
+}
+
+edition {
+ display: inline;
+}
+
+issuenum {
+ display: inline;
+}
+
+keywordset,
+subjectset {
+ display: inline;
+}
+
+keyword,
+subject,
+subjectterm {
+ display: inline;
+}
+
+keyword:after,
+subjectterm:after {
+ content: " ";
+}
+
+legalnotice {
+ display: block;
+ /* content of legalnotice has a margin */
+}
+
+publishername {
+ display: inline;
+}
+
+releaseinfo {
+ display: inline;
+}
+
+revhistory {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+revision {
+ display: block;
+ margin-left: 2.5ex;
+}
+
+revision:before {
+ display: marker;
+ content: icon(right);
+ color: #004080;
+}
+
+revision > author,
+authorinitials {
+ display: inline;
+ font-weight: bold;
+}
+
+revnumber,
+revremark {
+ display: inline;
+}
+
+revnumber:after,
+revision > date:after,
+revision > author:after,
+revision > authorinitials:after {
+ content: " ";
+}
+
+revdescription {
+ display: block;
+ /* content of revdescription has a margin */
+}
+
+volumenum {
+ display: inline;
+}
+
+/* ---------------------------------------------------------------------------
+ Inlined elements other than those belonging to modules
+
+ Note that default display is inline, so there is no need to specify it.
+--------------------------------------------------------------------------- */
+
+emphasis {
+ font-style: italic;
+}
+emphasis[role=bold] {
+ font-style: normal;
+ font-weight: bold;
+}
+emphasis[role=underline] {
+ font-style: normal;
+ text-decoration: underline;
+}
+emphasis[role=strikethrough] {
+ font-style: normal;
+ text-decoration: line-through;
+}
+
+emphasis > emphasis {
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+directory,
+literal {
+ font-family: monospace;
+}
+
+link,
+ulink,
+email {
+ color: navy;
+ text-decoration: underline;
+}
+
+/* -------------------------------------
+ Technical
+------------------------------------- */
+
+command,
+computeroutput,
+filename,
+option,
+systemitem,
+userinput {
+ font-family: monospace;
+}
+
+computeroutput,
+userinput {
+ background-color: #EEEEEE;
+}
+
+command,
+option {
+ font-weight: bold;
+}
+
+lineannotation {
+ font-style: italic;
+ font-size: medium; /* occurs in verbatim, fixed font, blocks */
+}
+
+replaceable {
+ font-style: italic;
+}
+
+/* -------------------------------------
+ General
+------------------------------------- */
+
+anchor {
+ content: icon(right-target);
+ color: gray;
+}
+
+subscript,
+superscript {
+ display: inline-block;
+ white-space: nowrap;
+ font-size: small;
+}
+subscript {
+ vertical-align: sub;
+}
+superscript {
+ vertical-align: super;
+}
+
+abbrev,
+acronym {
+ font-weight: bold;
+}
+
+citetitle {
+ font-style: italic;
+}
+
+footnoteref {
+ content: "[" attr(linkend) "]";
+ font-size: small;
+ vertical-align: super;
+ color: navy;
+}
+
+footnoteref[label] {
+ content: "[" attr(label) "]";
+}
+
+phrase[revisionflag=deleted] {
+ text-decoration: line-through;
+}
+
+phrase[revisionflag=added] {
+ text-decoration: underline;
+}
+
+quote:before {
+ content: open-quote;
+ font-weight: bold;
+ color: gray;
+}
+
+quote:after {
+ content: close-quote;
+ font-weight: bold;
+ color: gray;
+}
+
+trademark,
+productname {
+ color: #004080;
+}
+
+trademark:after,
+productname:after {
+ font-size: small;
+ color: gray;
+}
+
+trademark:after, /* also works for class=trade */
+productname[class=trade]:after {
+ content: "[tm]";
+}
+
+trademark[class=copyright]:after,
+productname[class=copyright]:after {
+ content: "\A9";
+ font-size: medium;
+}
+
+trademark[class=registered]:after,
+productname[class=registered]:after {
+ content: "\AE";
+ font-size: medium;
+}
+
+trademark[class=service]:after,
+productname[class=service]:after {
+ content: "[sm]";
+}
+
+xref {
+ content: icon(left-link)
+ xpath("if(id(@linkend)/@xreflabel, id(@linkend)/@xreflabel, @linkend)");
+ vertical-align: text-top; /* for the icon */
+ color: navy;
+}
+
+xref[endterm] {
+ content: icon(left-link) xpath("if(id(@endterm), id(@endterm), @endterm)");
+}
+
+/* ---------------------------------------------------------------------------
+ Overrides natural display of elements in special sections
+ (must be at the very end of the style sheet)
+--------------------------------------------------------------------------- */
+
+/* -------------------------------------
+ Bibliography
+------------------------------------- */
+
+biblioentry > *,
+biblioset > * {
+ display: block;
+ text-align: left; /* Reset paragraph styles */
+ font: normal normal 1em sans-serif;
+ color: black;
+ margin-left: 18ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+biblioentry > *:first-child,
+biblioset > *:first-child { /* nicer */
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+biblioentry > *:before,
+biblioset > *:before {
+ display: marker;
+ content: element-label();
+ font: normal normal small sans-serif;
+ color: #004080;
+}
+
+biblioentry > *:after,
+biblioset > *:after {
+ content: "";
+}
+
+biblioentry > biblioset,
+biblioset > biblioset {
+ margin-left: 0;
+}
+
+biblioentry > biblioset:before,
+biblioset > biblioset:before {
+ content: "";
+}
+
+/* -------------------------------------
+ Meta-information
+------------------------------------- */
+
+appendixinfo > *,
+articleinfo > *,
+bibliographyinfo > *,
+blockinfo > *,
+bookinfo > *,
+chapterinfo > *,
+glossaryinfo > *,
+indexinfo > *,
+objectinfo > *,
+partinfo > *,
+prefaceinfo > *,
+refentryinfo > *,
+refmeta > *,
+referenceinfo > *,
+refsect1info > *,
+refsect2info > *,
+refsect3info > *,
+refsectioninfo > *,
+refsynopsisdivinfo > *,
+sect1info > *,
+sect2info > *,
+sect3info > *,
+sect4info > *,
+sect5info > *,
+sectioninfo > *,
+setindexinfo > *,
+setinfo > *,
+sidebarinfo > * {
+ display: block;
+ text-align: left; /* Reset paragraph styles */
+ font: normal normal 1em sans-serif;
+ color: black;
+ margin-left: 18ex;
+ margin-right: 0;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+appendixinfo > *:first-child,
+articleinfo > *:first-child,
+bibliographyinfo > *:first-child,
+blockinfo > *:first-child,
+bookinfo > *:first-child,
+chapterinfo > *:first-child,
+glossaryinfo > *:first-child,
+indexinfo > *:first-child,
+objectinfo > *:first-child,
+partinfo > *:first-child,
+prefaceinfo > *:first-child,
+refentryinfo > *:first-child,
+refmeta > *:first-child,
+referenceinfo > *:first-child,
+refsect1info > *:first-child,
+refsect2info > *:first-child,
+refsect3info > *:first-child,
+refsectioninfo > *:first-child,
+refsynopsisdivinfo > *:first-child,
+sect1info > *:first-child,
+sect2info > *:first-child,
+sect3info > *:first-child,
+sect4info > *:first-child,
+sect5info > *:first-child,
+sectioninfo > *:first-child,
+setindexinfo > *:first-child,
+setinfo > *:first-child,
+sidebarinfo > *:first-child { /* nicer */
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+appendixinfo > *:before,
+articleinfo > *:before,
+bibliographyinfo > *:before,
+blockinfo > *:before,
+bookinfo > *:before,
+chapterinfo > *:before,
+glossaryinfo > *:before,
+indexinfo > *:before,
+objectinfo > *:before,
+partinfo > *:before,
+prefaceinfo > *:before,
+refentryinfo > *:before,
+refmeta > *:before,
+referenceinfo > *:before,
+refsect1info > *:before,
+refsect2info > *:before,
+refsect3info > *:before,
+refsectioninfo > *:before,
+refsynopsisdivinfo > *:before,
+sect1info > *:before,
+sect2info > *:before,
+sect3info > *:before,
+sect4info > *:before,
+sect5info > *:before,
+sectioninfo > *:before,
+setindexinfo > *:before,
+setinfo > *:before,
+sidebarinfo > *:before {
+ display: marker;
+ content: element-label();
+ font: normal normal small sans-serif;
+ color: #004080;
+}
+
+appendixinfo > *:after,
+articleinfo > *:after,
+bibliographyinfo > *:after,
+blockinfo > *:after,
+bookinfo > *:after,
+chapterinfo > *:after,
+glossaryinfo > *:after,
+indexinfo > *:after,
+objectinfo > *:after,
+partinfo > *:after,
+prefaceinfo > *:after,
+refentryinfo > *:after,
+refmeta > *:after,
+referenceinfo > *:after,
+refsect1info > *:after,
+refsect2info > *:after,
+refsect3info > *:after,
+refsectioninfo > *:after,
+refsynopsisdivinfo > *:after,
+sect1info > *:after,
+sect2info > *:after,
+sect3info > *:after,
+sect4info > *:after,
+sect5info > *:after,
+sectioninfo > *:after,
+setindexinfo > *:after,
+setinfo > *:after,
+sidebarinfo > *:after {
+ content: "";
+}
+
+appendixinfo > title,
+articleinfo > title,
+bibliographyinfo > title,
+blockinfo > title,
+bookinfo > title,
+chapterinfo > title,
+glossaryinfo > title,
+indexinfo > title,
+objectinfo > title,
+partinfo > title,
+prefaceinfo > title,
+refentryinfo > title, /* refmeta has no title */
+referenceinfo > title,
+refsect1info > title,
+refsect2info > title,
+refsect3info > title,
+refsectioninfo > title,
+refsynopsisdivinfo > title,
+sect1info > title,
+sect2info > title,
+sect3info > title,
+sect4info > title,
+sect5info > title,
+sectioninfo > title,
+setindexinfo > title,
+setinfo > title,
+sidebarinfo > title {
+ font-size: 1.3em;
+ font-weight: bold;
+ color: #004080;
+ margin-left: 0;
+ margin-right: 0;
+ margin-top: 0;
+ margin-bottom: 1ex;
+}
+
+appendixinfo > title:before,
+articleinfo > title:before,
+bibliographyinfo > title:before,
+blockinfo > title:before,
+bookinfo > title:before,
+chapterinfo > title:before,
+glossaryinfo > title:before,
+indexinfo > title:before,
+objectinfo > title:before,
+partinfo > title:before,
+prefaceinfo > title:before,
+refentryinfo > title:before,
+referenceinfo > title:before,
+refsect1info > title:before,
+refsect2info > title:before,
+refsect3info > title:before,
+refsectioninfo > title:before,
+refsynopsisdivinfo > title:before,
+sect1info > title:before,
+sect2info > title:before,
+sect3info > title:before,
+sect4info > title:before,
+sect5info > title:before,
+sectioninfo > title:before,
+setindexinfo > title:before,
+setinfo > title:before,
+sidebarinfo > title:before {
+ content: "";
+}
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/example1.css b/doc/editor_configs/xmlmind5/addon/config/scons/css/example1.css
new file mode 100644
index 0000000..857d561
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/example1.css
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2003-2008 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * A CSS style sheet for DocBook V4.5.
+ */
+
+doc,
+para {
+ display: block;
+}
+para {
+ margin: 1ex 0;
+}
+para[align] {
+ text-align: concatenate(attr(align));
+}
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/html_cals_table.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/html_cals_table.imp
new file mode 100644
index 0000000..dd62d3d
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/html_cals_table.imp
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2005-2009 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for both HTML and CALS tables (DocBook 4.3+).
+ */
+
+@import "table.imp";
+
+/*
+ * "black" is the color used to draw a border around the table and its cells
+ * based on values of attributes such as frame, rowsep and colsep.
+ *
+ * "rgb(238,238,224)" (a very light gray) is the color used to draw
+ * a border around each cell whether the cell actually has borders or not.
+ * Remove this parameter if this ``cell footprint'' disturbs you.
+ *
+ * For more information about table support for DocBook, see
+ * XMLmind XML Editor - Configuration and Deployment.
+ */
+@extension "com.xmlmind.xmleditext.docbook.TableSupport black rgb(238,238,224)";
+
+/*
+ * Real DocBook tables (CALS) contain (graphic+|mediaobject+|tgroup+)
+ * not (tbody+|tr+).
+ */
+
+table:contains-element(tr),
+table:contains-element(tbody),
+informaltable:contains-element(tr),
+informaltable:contains-element(tbody) {
+ display: table;
+ border-style: solid;
+ border-width: 1;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+table:contains-element(tr) > caption,
+table:contains-element(tbody) > caption,
+informaltable:contains-element(tr) > caption,
+informaltable:contains-element(tbody) > caption {
+ display: table-caption;
+ color: #004080;
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ margin: 2px 2ex 2px 2ex;
+}
+
+colgroup {
+ display: table-column-group;
+ collapsed: yes;
+}
+
+col {
+ display: table-column;
+ collapsed: yes;
+}
+
+/*
+ * thead, tbody, tfoot, already properly styled in table.imp.
+ */
+
+table:contains-element(tbody) > thead,
+table:contains-element(tbody) > tfoot {
+ /*
+ * In CALS tables, header and footer rows are often presented
+ * in an alternate typographic style, such as boldface.
+ * There is no such processing expectation for HTML tables.
+ * Explicitly use th instead of td when boldface is needed.
+ */
+ font-weight: normal;
+}
+
+tr {
+ display: table-row;
+ background-color: inherit; /*e.g. from read-only tbody*/
+}
+
+td,
+th {
+ display: table-cell;
+ background-color: inherit; /*e.g. from read-only row*/
+ border-style: solid;
+ border-width: 1;
+ padding: 2;
+}
+
+th {
+ font-weight: bold;
+}
+
+@media print {
+ colgroup,
+ col {
+ display: none;
+ }
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/image.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/image.imp
new file mode 100644
index 0000000..dd1d65f
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/image.imp
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2004-2009 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Display of images.
+ */
+
+mediaobject imagedata {
+ display: block; /* without this, a viewport specified as % will not work */
+ margin: 0 auto;
+}
+
+inlinemediaobject imagedata {
+ display: inline;
+}
+
+graphic,
+inlinegraphic,
+imagedata {
+ content: gadget("com.xmlmind.xmleditext.docbook.Graphic");
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/print.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/print.imp
new file mode 100644
index 0000000..d12a18b
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/print.imp
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2003-2005 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Customizes DocBook CSS style sheet for printing.
+ */
+
+@media print {
+ * {
+ background-color: transparent;
+ line-height: 1.2;
+ }
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/refentry.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/refentry.imp
new file mode 100644
index 0000000..80f1890
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/refentry.imp
@@ -0,0 +1,524 @@
+/*
+ * Copyright (c) 2003 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Styles for refentry elements.
+ */
+
+/* =====================================
+ Refentry structure
+===================================== */
+
+refentry {
+ display: block;
+ border-width: 1px;
+ border-style: solid;
+ border-color: silver transparent silver transparent;
+ margin: 3ex 0;
+}
+
+refnamediv,
+refsynopsisdiv {
+ display: block;
+ margin: 1ex 0;
+}
+
+refnamediv:before,
+refsynopsisdiv:before {
+ display: block;
+ font-size: 1.3em;
+ font-weight: bold;
+ color: #004080;
+ margin: 1ex 0;
+}
+
+refnamediv:before {
+ content: "Name";
+}
+
+refnamediv > *:before {
+ content: " ";
+}
+
+refnamediv > *:first-child:before {
+ content: "";
+}
+
+refdescriptor,
+refname,
+refpurpose,
+refclass {
+ display: inline;
+}
+
+refpurpose:before,
+refclass:before {
+ content: " -- ";
+ color: gray;
+}
+
+refsynopsisdiv:before {
+ content: "Synopsis";
+}
+
+refsynopsisdiv:contains-element(title):before,
+refsynopsisdiv:contains-element(info):before {
+ content: "";
+}
+
+refsynopsisdiv > title {
+ font-size: 1.3em;
+ margin-top: 0;
+ margin-bottom: 1ex;
+}
+
+refsection,
+refsect1,
+refsect2,
+refsect3 {
+ display: block;
+}
+
+refsection > title,
+refsect1 > title {
+ font-size: 1.3em;
+ margin: 1ex 0;
+}
+
+refsection refsection > title {
+ font-size: 1em;
+ margin: 1.33ex 0;
+}
+
+/* =====================================
+ Synopsis environments
+===================================== */
+
+/* -------------------------------------
+ cmdsynopsis
+------------------------------------- */
+
+cmdsynopsis {
+ display: block;
+ font-family: monospace;
+ margin: 1.33ex 0;
+}
+
+synopfragment {
+ display: block;
+ font-family: monospace;
+ margin-left: 4ex;
+}
+
+arg,
+group {
+ display: inline;
+}
+
+arg:before,
+group:before { /* also works for choice=opt */
+ content: " [";
+ color: gray;
+}
+
+group > arg:before,
+group > group:before {
+ content: " | [";
+}
+
+arg:first-child:before,
+group:first-child:before {
+ content: "[";
+}
+
+arg:after,
+group:after {
+ content: "]";
+ color: gray;
+}
+
+arg[rep=repeat]:after,
+group[rep=repeat]:after {
+ content: "]...";
+ color: gray;
+}
+
+arg[choice=req]:before,
+group[choice=req]:before {
+ content: " {";
+}
+
+group > arg[choice=req]:before,
+group > group[choice=req]:before {
+ content: " | {";
+}
+
+arg[choice=req]:first-child:before,
+group[choice=req]:first-child:before {
+ content: "{";
+}
+
+arg[choice=req]:after,
+group[choice=req]:after {
+ content: "}";
+}
+
+arg[choice=req][rep=repeat]:after,
+group[choice=req][rep=repeat]:after {
+ content: "}...";
+}
+
+arg[choice=plain]:before,
+group[choice=plain]:before {
+ content: " ";
+}
+
+group > arg[choice=plain]:before,
+group > group[choice=plain]:before {
+ content: " | ";
+}
+
+arg[choice=plain]:first-child:before,
+group[choice=plain]:first-child:before {
+ content: "";
+}
+
+arg[choice=plain]:after,
+group[choice=plain]:after {
+ content: "";
+}
+
+arg[choice=plain][rep=repeat]:after,
+group[choice=plain][rep=repeat]:after {
+ content: "...";
+}
+
+synopfragmentref {
+ display: inline;
+ color: navy;
+ text-decoration: underline;
+}
+
+synopfragmentref:after {
+ content: icon(left-link) attr(linkend);
+ vertical-align: text-top; /* for the icon */
+}
+
+/* -------------------------------------
+ funcsynopsis
+------------------------------------- */
+
+funcsynopsis {
+ display: block;
+ font-family: monospace;
+ margin: 1.33ex 0;
+}
+
+funcsynopsisinfo {
+ display: block;
+ white-space: pre;
+ margin: 1.33ex 0;
+}
+
+funcprototype {
+ display: block;
+}
+
+funcprototype > *:before {
+ content: " ";
+}
+
+funcprototype > *:first-child:before {
+ content: "";
+}
+
+funcprototype:after {
+ content: ";";
+ color: gray;
+}
+
+funcdef {
+ display: inline;
+}
+
+void {
+ display: inline;
+ content: "void";
+ color: gray;
+}
+
+funcprototype > void {
+ content: "(void)";
+}
+
+varargs {
+ display: inline;
+ content: "(...)";
+ color: gray;
+}
+
+paramdef + varargs {
+ content: ", ...)";
+}
+
+paramdef {
+ display: inline;
+}
+
+paramdef > parameter {
+ font-style: italic;
+}
+
+paramdef:before {
+ content: ", ";
+ color: gray;
+}
+
+paramdef:first-of-type:before {
+ content: " (";
+}
+
+paramdef:last-of-type:after {
+ content: ")";
+ color: gray;
+}
+
+funcparams {
+ display: inline;
+}
+
+paramdef > funcparams:before {
+ content: "(";
+ color: gray;
+}
+
+paramdef > funcparams:after {
+ content: ")";
+ color: gray;
+}
+
+/* -------------------------------------
+ classsynopsis
+------------------------------------- */
+
+classsynopsis {
+ display: block;
+ font-family: monospace;
+ margin-top: 1.33ex;
+}
+
+ooclass + classsynopsisinfo:before,
+oointerface + classsynopsisinfo:before,
+ooexception + classsynopsisinfo:before,
+ooclass + fieldsynopsis:before,
+oointerface + fieldsynopsis:before,
+ooexception + fieldsynopsis:before,
+ooclass + constructorsynopsis:before,
+oointerface + constructorsynopsis:before,
+ooexception + constructorsynopsis:before,
+ooclass + destructorsynopsis:before,
+oointerface + destructorsynopsis:before,
+ooexception + destructorsynopsis:before,
+ooclass + methodsynopsis:before,
+oointerface + methodsynopsis:before,
+ooexception + methodsynopsis:before {
+ display: block;
+ content: "{";
+ color: gray;
+}
+
+classsynopsis:after {
+ display: block;
+ content: "}";
+ color: gray;
+ margin-bottom: 1.33ex;
+}
+
+classsynopsisinfo {
+ display: block;
+ white-space: pre;
+ margin-left: 4ex;
+ margin-top: 1.33ex;
+ margin-bottom: 1.33ex;
+}
+
+ooclass,
+oointerface,
+ooexception {
+ display: inline;
+ font-family: monospace;
+}
+
+classsynopsis > ooclass:after,
+classsynopsis > oointerface:after,
+classsynopsis > ooexception:after {
+ content: " ";
+}
+
+ooclass > *:before,
+oointerface > *:before,
+ooexception > *:before {
+ content: " ";
+}
+
+ooclass > classname:before {
+ content: " class ";
+ color: gray;
+}
+oointerface > interfacename:before {
+ content: " interface ";
+ color: gray;
+}
+ooexception > exceptionname:before {
+ content: " exception ";
+ color: gray;
+}
+
+ooclass > *:first-child:before,
+oointerface > *:first-child:before,
+ooexception > *:first-child:before {
+ content: "";
+}
+
+ooclass > classname:first-child:before {
+ content: "class ";
+ color: gray;
+}
+oointerface > interfacename:first-child:before {
+ content: "interface ";
+ color: gray;
+}
+ooexception > exceptionname:first-child:before {
+ content: "exception ";
+ color: gray;
+}
+
+fieldsynopsis,
+constructorsynopsis,
+destructorsynopsis,
+methodsynopsis {
+ display: block;
+ font-family: monospace;
+ margin: 1.33ex 0;
+}
+
+classsynopsis > fieldsynopsis,
+classsynopsis > constructorsynopsis,
+classsynopsis > destructorsynopsis,
+classsynopsis > methodsynopsis {
+ margin-left: 4ex;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+fieldsynopsis:after,
+constructorsynopsis:after,
+destructorsynopsis:after,
+methodsynopsis:after {
+ content: ";";
+ color: gray;
+}
+
+fieldsynopsis > *:before,
+constructorsynopsis > *:before,
+destructorsynopsis > *:before,
+methodsynopsis > *:before {
+ content: " ";
+}
+
+fieldsynopsis > *:first-child:before,
+constructorsynopsis > *:first-child:before,
+destructorsynopsis > *:first-child:before,
+methodsynopsis > *:first-child:before {
+ content: "";
+}
+
+constructorsynopsis > exceptionname:before,
+destructorsynopsis > exceptionname:before,
+methodsynopsis > exceptionname:before { /*In practice, cannot be first child*/
+ content: " throws ";
+ color: gray;
+}
+
+methodname + void {
+ content: "(void)";
+}
+
+methodparam {
+ display: inline;
+ /* rep and choice attributes not visualized */
+}
+
+methodparam:before {
+ content: ", ";
+ color: gray;
+}
+
+methodparam:first-of-type:before {
+ content: " (";
+}
+
+methodparam:last-of-type:after{
+ content: ")";
+ color: gray;
+}
+
+methodparam > parameter {
+ font-style: italic;
+}
+
+methodparam > *:before {
+ content: " ";
+}
+
+methodparam > *:first-child:before {
+ content: "";
+}
+
+modifier {
+ display: inline;
+ font-family: monospace;
+}
+
+initializer {
+ display: inline;
+ font-family: monospace;
+}
+
+initializer:before { /* Cannot be first child */
+ content: " = ";
+ color: gray;
+}
+
+/* ---------------------------------------------------------------------------
+ Inlined elements other than those belonging to modules
+
+ Note that default display is inline, so there is no need to specify it.
+--------------------------------------------------------------------------- */
+
+/* -------------------------------------
+ General
+------------------------------------- */
+
+citerefentry {
+ display: inline;
+ font-style: italic;
+}
+
+citerefentry > manvolnum:before {
+ content: "(";
+ color: gray;
+}
+
+citerefentry > manvolnum:after {
+ content: ")";
+ color: gray;
+}
+
+refentrytitle,
+manvolnum,
+refmiscinfo { /* also found in refmeta */
+ display: inline;
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/scons.css b/doc/editor_configs/xmlmind5/addon/config/scons/css/scons.css
new file mode 100644
index 0000000..1597226
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/scons.css
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2003-2008 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * A CSS style sheet for DocBook V4.5.
+ */
+
+@import "docbook1.imp";
+@import "refentry.imp";
+@import "docbook2.imp";
+@import "html_cals_table.imp";
+@import "image.imp";
+@import "collapsible.imp";
+@import "print.imp";
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/structure.css b/doc/editor_configs/xmlmind5/addon/config/scons/css/structure.css
new file mode 100644
index 0000000..95f4610
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/structure.css
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2005-2008 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Displays the structure (a little more than a TOC) of a DocBook document.
+ * Titles inside *info (e.g. sectioninfo) elements are not displayed.
+ */
+
+*,
+*:comment,
+*:processing-instruction {
+ display: none;
+}
+
+title {
+ display: block;
+}
+
+title > * {
+ display: inline;
+}
+
+set,
+book,
+part,
+reference,
+refentry,
+preface,
+chapter,
+article,
+appendix,
+section,
+sect1,
+sect2,
+sect3,
+sect4,
+sect5 {
+ display: block;
+ margin-left: 9ex;
+}
+
+set:before,
+book:before,
+part:before,
+reference:before,
+refentry:before,
+preface:before,
+chapter:before,
+article:before,
+appendix:before,
+section:before,
+sect1:before,
+sect2:before,
+sect3:before,
+sect4:before,
+sect5:before {
+ display: marker;
+ marker-offset: fill;
+ content: element-name();
+ font-size: small;
+ color: gray;
+}
+
+part > title:before {
+ content: simple-counter(n-, upper-roman) " ";
+}
+
+chapter > title:before {
+ content: simple-counter(n-, decimal) " ";
+}
+
+appendix > title:before {
+ content: simple-counter(n-, upper-alpha) " ";
+}
+
+refentry {
+ content: xpath("join(.//refname, ', ')");
+ color: gray;
+}
+
+section > title:before,
+sect1 > title:before {
+ content: simple-counter(n-) " ";
+}
+
+section section > title:before,
+sect2 > title:before {
+ content: simple-counter(nn-) " ";
+}
+
+section section section > title:before,
+sect3 > title:before {
+ content: simple-counter(nnn-) " ";
+}
+
+section section section section > title:before,
+sect4 > title:before {
+ content: simple-counter(nnnn-) " ";
+}
+
+section section section section section > title:before,
+sect5 > title:before {
+ content: simple-counter(nnnnn-) " ";
+}
+
+section section section section * section > title:before {
+ content: "";
+}
+
+setinfo,
+setindex,
+bookinfo,
+dedication,
+toc,
+lot,
+glossary,
+bibliography,
+index,
+colophon,
+partinfo,
+partintro,
+referenceinfo,
+prefaceinfo,
+chapterinfo,
+tocchap,
+articleinfo,
+appendixinfo,
+sectioninfo,
+sect1info,
+sect2info,
+sect3info,
+sect4info,
+sect5info {
+ display: block;
+ content: element-name();
+ font-size: small;
+ color: gray;
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/table.imp b/doc/editor_configs/xmlmind5/addon/config/scons/css/table.imp
new file mode 100644
index 0000000..0b444bb
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/table.imp
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2005-2009 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ *
+ * Partial styles for DocBook tables. Requires an @extension.
+ * DO NOT IMPORT THIS FILE: INSTEAD @import cals_table.imp OR
+ * @import html_cals_table.imp.
+ */
+
+table,
+informaltable {
+ display: block;
+ margin: 1.33ex 0;
+}
+
+table > title {
+ display: block;
+ font-style: italic;
+ font-weight: normal;
+ text-align: center;
+ /* keep margin because tgroup has no margin */
+}
+
+colspec,
+spanspec {
+ display: table-column;
+ collapsed: yes;
+}
+
+tgroup {
+ display: table;
+ border-style: solid;
+ border-width: 1;
+}
+
+thead,
+tfoot {
+ display: table-row-group;
+ font-weight: bold;
+}
+
+thead {
+ background-color: #F0F0F0;
+}
+
+tfoot {
+ background-color: #E0E0E0;
+}
+
+tbody {
+ display: table-row-group;
+ background-color: inherit; /*e.g. from read-only tgroup*/
+}
+
+row {
+ display: table-row;
+ background-color: inherit; /*e.g. from read-only tbody*/
+}
+
+entry {
+ display: table-cell;
+ background-color: inherit; /*e.g. from read-only row*/
+ border-style: solid;
+ border-width: 1;
+ padding: 2;
+}
+
+entry > *:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+entrytbl {
+ display: subtable;
+ background-color: inherit; /*e.g. from read-only row*/
+ border-style: solid;
+ border-width: 1;
+}
+
+@media print {
+ colspec,
+ spanspec {
+ display: none;
+ }
+}
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/css/visible_inclusions.css b/doc/editor_configs/xmlmind5/addon/config/scons/css/visible_inclusions.css
new file mode 100644
index 0000000..f66b094
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/css/visible_inclusions.css
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2003-2004 Pixware.
+ *
+ * This file is part of the XMLmind XML Editor project.
+ * For conditions of distribution and use, see the accompanying legal.txt file.
+ */
+
+@import "docbook.css";
+@import "../../common/css/visible_inclusions.imp"; \ No newline at end of file
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/htmlTable.incl b/doc/editor_configs/xmlmind5/addon/config/scons/htmlTable.incl
new file mode 100644
index 0000000..5ea16b8
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/htmlTable.incl
@@ -0,0 +1,195 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<configuration
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
+
+ <!-- Without this, a tgroup is created with a tbody containing tr. -->
+
+ <cfg:elementTemplate xmlns="" name="CALS" selectable="override"
+ parent="tgroup|entrytbl">
+ <tbody>
+ <row><entry></entry></row>
+ </tbody>
+ </cfg:elementTemplate>
+
+ <cfg:elementTemplate xmlns="" name="CALS" selectable="override"
+ parent="tgroup|entrytbl">
+ <thead>
+ <row><entry></entry></row>
+ </thead>
+ </cfg:elementTemplate>
+
+ <cfg:elementTemplate xmlns="" name="CALS" selectable="override"
+ parent="tgroup|entrytbl">
+ <tfoot>
+ <row><entry></entry></row>
+ </tfoot>
+ </cfg:elementTemplate>
+
+ <cfg:elementTemplate xmlns="" name="HTML" selectable="override"
+ parent="table|informaltable">
+ <tbody>
+ <tr><td></td></tr>
+ </tbody>
+ </cfg:elementTemplate>
+
+ <cfg:elementTemplate xmlns="" name="HTML" selectable="override"
+ parent="table|informaltable">
+ <thead>
+ <tr><th></th></tr>
+ </thead>
+ </cfg:elementTemplate>
+
+ <cfg:elementTemplate xmlns="" name="HTML" selectable="override"
+ parent="table|informaltable">
+ <tfoot>
+ <tr><th></th></tr>
+ </tfoot>
+ </cfg:elementTemplate>
+
+ <!-- HTML table templates =============================================== -->
+
+ <!-- selectable="false" is used to avoid clutter in the Element menu.
+ Therefore these templates can only be used by the macros triggered
+ by toobar buttons. -->
+
+ <elementTemplate name="HTML" selectable="false">
+ <informaltable xmlns="" border="1">
+ <tr>
+ <td></td><td></td>
+ </tr>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_row" selectable="false">
+ <informaltable xmlns="" frame="box" rules="all">
+ <thead>
+ <tr align="center">
+ <th></th><th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ </tbody>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_column" selectable="false">
+ <informaltable xmlns="" frame="box" rules="all">
+ <col align="center" span="1" />
+ <tbody>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ </tbody>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_row_column" selectable="false">
+ <informaltable xmlns="" frame="box" rules="all">
+ <col align="center" span="1" />
+ <thead>
+ <tr align="center">
+ <th></th><th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ </tbody>
+ </informaltable>
+ </elementTemplate>
+
+ <elementTemplate name="HTML" selectable="false">
+ <table xmlns="" border="1">
+ <caption></caption>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_row" selectable="false">
+ <table xmlns="" frame="box" rules="all">
+ <caption></caption>
+ <thead>
+ <tr align="center">
+ <th></th><th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ <tr>
+ <td></td><td></td>
+ </tr>
+ </tbody>
+ </table>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_column" selectable="false">
+ <table xmlns="" frame="box" rules="all">
+ <caption></caption>
+ <col align="center" span="1" />
+ <tbody>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ </tbody>
+ </table>
+ </elementTemplate>
+
+ <elementTemplate name="HTML_head_row_column" selectable="false">
+ <table xmlns="" frame="box" rules="all">
+ <caption></caption>
+ <col align="center" span="1" />
+ <thead>
+ <tr align="center">
+ <th></th><th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ <tr>
+ <th></th><td></td>
+ </tr>
+ </tbody>
+ </table>
+ </elementTemplate>
+</configuration>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons.css b/doc/editor_configs/xmlmind5/addon/config/scons/scons.css
new file mode 100644
index 0000000..8f52269
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons.css
@@ -0,0 +1,11 @@
+doc,
+para {
+ display: block;
+}
+para {
+ margin: 1ex 0;
+}
+para[align] {
+ text-align: concatenate(attr(align));
+}
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons.xxe b/doc/editor_configs/xmlmind5/addon/config/scons/scons.xxe
new file mode 100644
index 0000000..8f835cc
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons.xxe
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<configuration name="SCons" mimeType="application/docbook+xml"
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+ <help location="docbook_help.jar" />
+ <include location="common.incl" />
+
+ <detect>
+ <and>
+ <rootElementNamespace>http://www.scons.org/dbxsd/v1.0</rootElementNamespace>
+ </and>
+ </detect>
+ <schema>
+ <location>http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd</location>
+ </schema>
+ <template name="Book" location="scons_templates/book.xml" />
+ <template name="Article" location="scons_templates/article.xml" />
+ <template name="Part" location="scons_templates/part.xml" />
+ <template name="Chapter" location="scons_templates/chapter.xml" />
+ <template name="Refentry" location="scons_templates/refentry.xml" />
+ <template name="Appendix" location="scons_templates/appendix.xml" />
+ <template name="Glossary" location="scons_templates/glossary.xml" />
+ <template name="Section" location="scons_templates/section.xml" />
+ <template name="Sconsdoc" location="scons_templates/sconsdoc.xml" />
+
+ <css name="SCons" location="css/scons.css" />
+ <css name="Document structure" alternate="true"
+ location="css/structure.css" />
+ <!-- In principle, this is used to debug modular documents
+ but we think that some users may also like this way of
+ making documents modules more visible. -->
+ <css name="Show info about included elements" alternate="true"
+ location="css/visible_inclusions.css" />
+</configuration>
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_catalog.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_catalog.xml
new file mode 100644
index 0000000..5146cfa
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_catalog.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" ?>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
+ prefer="public">
+ <uri name="http://www.scons.org/dbxsd/v1.0/scons.xsd"
+ uri="scons_xsd/scons.xsd"/>
+ <uriSuffix uriSuffix="scons.xsd"
+ uri="scons_xsd/scons.xsd"/>
+</catalog>
+
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/appendix.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/appendix.xml
new file mode 100644
index 0000000..6d245db
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/appendix.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<appendix xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <title></title>
+ <section>
+ <title></title>
+ <para></para>
+ </section>
+</appendix>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/article.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/article.xml
new file mode 100644
index 0000000..8153efb
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/article.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<article xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <articleinfo>
+ <title></title>
+ <author>
+ <firstname></firstname>
+ <surname></surname>
+ <affiliation>
+ <orgname></orgname>
+ </affiliation>
+ </author>
+ <pubdate></pubdate>
+ </articleinfo>
+ <section>
+ <title></title>
+ <para></para>
+ </section>
+</article>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/book.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/book.xml
new file mode 100644
index 0000000..671ad45
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/book.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<book xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <bookinfo>
+ <title></title>
+ <author>
+ <firstname></firstname>
+ <surname></surname>
+ <affiliation>
+ <orgname></orgname>
+ </affiliation>
+ </author>
+ <pubdate></pubdate>
+ </bookinfo>
+ <chapter>
+ <title></title>
+ <section>
+ <title></title>
+ <para></para>
+ </section>
+ </chapter>
+</book>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/chapter.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/chapter.xml
new file mode 100644
index 0000000..e39fab1
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/chapter.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<chapter xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <title></title>
+ <section>
+ <title></title>
+ <para></para>
+ </section>
+</chapter>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/glossary.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/glossary.xml
new file mode 100644
index 0000000..bc874a5
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/glossary.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<glossary xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <glossdiv>
+ <title></title>
+
+ <glossentry>
+ <glossterm></glossterm>
+
+ <glossdef>
+ <para></para>
+ </glossdef>
+ </glossentry>
+ </glossdiv>
+</glossary>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/part.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/part.xml
new file mode 100644
index 0000000..74cd2e1
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/part.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<part xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <title></title>
+ <chapter>
+ <title></title>
+ <section>
+ <title></title>
+ <para></para>
+ </section>
+ </chapter>
+</part>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/refentry.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/refentry.xml
new file mode 100644
index 0000000..e49692c
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/refentry.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<refentry xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <refmeta>
+ <refentrytitle></refentrytitle>
+ <manvolnum></manvolnum>
+ </refmeta>
+
+ <refnamediv>
+ <refname></refname>
+ <refpurpose></refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command></command>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsection>
+ <title>Description</title>
+ <para></para>
+ </refsection>
+</refentry>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/sconsdoc.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/sconsdoc.xml
new file mode 100644
index 0000000..423d83d
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/sconsdoc.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <tool name="Foo">
+ <summary>
+ <para></para>
+ </summary>
+ </tool>
+ <cvar name="BAR">
+ <summary>
+ <para></para>
+ </summary>
+ </cvar>
+</sconsdoc>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/section.xml b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/section.xml
new file mode 100644
index 0000000..4681b49
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_templates/section.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<section xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
+ <title></title>
+ <para></para>
+</section>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/calstblx.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/calstblx.xsd
new file mode 100644
index 0000000..6f899a3
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/calstblx.xsd
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- SCons DocBook V4.5-Based extension V1.0 XML CALS Table Model V4.5 .... -->
+<!-- File calstblx.xsd .................................................... -->
+
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the DocBook CALS Table Model V4.5 with:
+
+ Copyright 1992-2002 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ This DTD is based on the CALS Table Model
+ PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+ $Id: calstblx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This module contains the definitions for the CALS Table Model
+ converted to XML. It has been modified slightly for use in the
+ combined HTML/CALS models supported by DocBook V4.5.
+-->
+<!--
+ These definitions are not directly related to the table model, but are
+ used in the default CALS table model and are usually defined elsewhere
+ (and prior to the inclusion of this table module) in a CALS DTD.
+-->
+<!--
+ no if zero(s),
+ yes if any other digits value
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <xs:simpleType name="yesorno">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:group name="titles">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ </xs:sequence>
+ </xs:group>
+ <!-- default for use in entry content -->
+ <!--
+ The parameter entities as defined below provide the CALS table model
+ as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+ These following declarations provide the CALS-compliant default definitions
+ for these entities. However, these entities can and should be redefined
+ (by giving the appropriate parameter entity declaration(s) prior to the
+ reference to this Table Model declaration set entity) to fit the needs
+ of the current application.
+ -->
+ <xs:group name="tbl.table-titles.mdl">
+ <xs:sequence>
+ <xs:group ref="titles"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="tbl.table-main.mdl">
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tgroup"/>
+ <xs:element maxOccurs="unbounded" ref="graphic"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="tbl.tgroup.mdl">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="spanspec"/>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element minOccurs="0" ref="tfoot"/>
+ <xs:element ref="tbody"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:attributeGroup name="tbl.tgroup.att">
+ <xs:attribute name="tgroupstyle"/>
+ </xs:attributeGroup>
+ <xs:complexType name="tbl.row.mdl">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="entry"/>
+ <xs:element ref="entrytbl"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="tbl.entrytbl.mdl">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="spanspec"/>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element ref="tbody"/>
+ </xs:sequence>
+ </xs:complexType>
+ <!-- ===== Element and attribute declarations follow. ===== -->
+ <!-- doc:A formal table in a document. -->
+ <xs:element name="table" substitutionGroup="formal.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.table.mdl">
+ <xs:attributeGroup ref="table.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="table.attlist">
+ <xs:attribute name="frame" type="tbl.frame.attval"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attributeGroup ref="tbl.table.att"/>
+ <xs:attributeGroup ref="bodyatt"/>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for the main content of a table, or part of a table. -->
+ <xs:element name="tgroup">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.tgroup.mdl">
+ <xs:attributeGroup ref="tgroup.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="tgroup.attlist">
+ <xs:attribute name="cols" use="required"/>
+ <xs:attributeGroup ref="tbl.tgroup.att"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:Specifications for a column in a table. -->
+ <xs:element name="colspec">
+ <xs:complexType>
+ <xs:attributeGroup ref="colspec.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="colspec.attlist">
+ <xs:attribute name="colnum"/>
+ <xs:attribute name="colname"/>
+ <xs:attribute name="colwidth"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ </xs:attributeGroup>
+ <!-- doc:Formatting information for a spanned column in a table. -->
+ <xs:element name="spanspec">
+ <xs:complexType>
+ <xs:attributeGroup ref="spanspec.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="spanspec.attlist">
+ <xs:attribute name="namest" use="required"/>
+ <xs:attribute name="nameend" use="required"/>
+ <xs:attribute name="spanname" use="required"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ </xs:attributeGroup>
+ <!-- doc:A table header consisting of one or more rows. -->
+ <xs:element name="thead">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.hdft.mdl">
+ <xs:attributeGroup ref="thead.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="thead.attlist">
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A table footer consisting of one or more rows. -->
+ <xs:element name="tfoot">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.hdft.mdl">
+ <xs:attributeGroup ref="tfoot.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="tfoot.attlist">
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for the rows of a table or informal table. -->
+ <xs:element name="tbody">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.tbody.mdl">
+ <xs:attributeGroup ref="tbody.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="tbody.attlist">
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A row in a table. -->
+ <xs:element name="row">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.row.mdl">
+ <xs:attributeGroup ref="row.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="row.attlist">
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A subtable appearing in place of an Entry in a table. -->
+ <xs:element name="entrytbl">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="tbl.entrytbl.mdl">
+ <xs:attributeGroup ref="entrytbl.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="entrytbl.attlist">
+ <xs:attribute name="cols" use="required"/>
+ <xs:attributeGroup ref="tbl.tgroup.att"/>
+ <xs:attribute name="colname"/>
+ <xs:attribute name="spanname"/>
+ <xs:attribute name="namest"/>
+ <xs:attribute name="nameend"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- doc:A cell in a table. -->
+ <xs:element name="entry">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="tbl.entry.mdl"/>
+ <xs:attributeGroup ref="entry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="entry.attlist">
+ <xs:attribute name="colname"/>
+ <xs:attribute name="namest"/>
+ <xs:attribute name="nameend"/>
+ <xs:attribute name="spanname"/>
+ <xs:attribute name="morerows"/>
+ <xs:attribute name="colsep" type="yesorno"/>
+ <xs:attribute name="rowsep" type="yesorno"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ <xs:attribute name="rotate" type="yesorno"/>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+</xs:schema>
+<!-- End of SCons DocBook V4.5-Based extension V1.0 XML CALS Table Model V4.5 ... -->
+<!-- ............................................................................ -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbhierx.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbhierx.xsd
new file mode 100644
index 0000000..af99df6
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbhierx.xsd
@@ -0,0 +1,2186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- .............................................................................. -->
+<!-- SCons DocBook V4.5-Based extension V1.0 XML document hierarchy module V4.5 ... -->
+<!-- File dbhierx.xsd ............................................................. -->
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the DocBook document hierarchy
+ module V4.5 with:
+
+ Copyright 1992-2004 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ $Id: dbhierx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This module contains the definitions for the overall document
+ hierarchies of DocBook documents. It covers computer documentation
+ manuals and manual fragments, as well as reference entries (such as
+ man pages) and technical journals or anthologies containing
+ articles.
+
+ This module depends on the DocBook information pool module. All
+ elements and entities referenced but not defined here are assumed
+ to be defined in the information pool module.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbhier PUBLIC
+ "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.5//EN"
+ "dbhierx.mod">
+ %dbhier;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <xs:element name="appendix.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" ref="appendixinfo"/>
+ <xs:group ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:element minOccurs="0" ref="tocchap"/>
+ <xs:group ref="bookcomponent.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="appendix.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="article.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="div.title.content"/>
+ <xs:element minOccurs="0" ref="articleinfo"/>
+ <xs:element minOccurs="0" ref="tocchap"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="lot"/>
+ <xs:group ref="bookcomponent.content"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="nav.class"/>
+ <xs:element ref="appendix.class"/>
+ <xs:element ref="colophon"/>
+ <xs:element ref="ackno"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="article.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="book.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="div.title.content"/>
+ <xs:element minOccurs="0" ref="bookinfo"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="dedication"/>
+ <xs:element ref="toc"/>
+ <xs:element ref="lot"/>
+ <xs:element ref="glossary"/>
+ <xs:element ref="bibliography"/>
+ <xs:element ref="preface"/>
+ <xs:element ref="chapter.class"/>
+ <xs:element ref="reference"/>
+ <xs:element ref="part"/>
+ <xs:element ref="article.class"/>
+ <xs:element ref="appendix.class"/>
+ <xs:group ref="index.class"/>
+ <xs:element ref="colophon"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="book.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="chapter.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" ref="chapterinfo"/>
+ <xs:group ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:element minOccurs="0" ref="tocchap"/>
+ <xs:group ref="bookcomponent.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="chapter.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:group name="index.class">
+ <xs:choice>
+ <xs:element ref="index"/>
+ <xs:element ref="setindex"/>
+ </xs:choice>
+ </xs:group>
+ <xs:element name="refentry.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:element minOccurs="0" ref="refentryinfo"/>
+ <xs:element minOccurs="0" ref="refmeta"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="remark"/>
+ <xs:element ref="link.char.class"/>
+ </xs:choice>
+ <xs:element maxOccurs="unbounded" ref="refnamediv"/>
+ <xs:element minOccurs="0" ref="refsynopsisdiv"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="refsect1"/>
+ <xs:element maxOccurs="unbounded" ref="refsection"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="section.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sectioninfo"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="section.class"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="section.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:group name="nav.class">
+ <xs:choice>
+ <xs:element ref="toc"/>
+ <xs:element ref="lot"/>
+ <xs:element ref="index"/>
+ <xs:element ref="glossary"/>
+ <xs:element ref="bibliography"/>
+ </xs:choice>
+ </xs:group>
+ <!-- Redeclaration placeholder ............................................ -->
+ <!--
+ For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point
+ -->
+ <!-- ...................................................................... -->
+ <!-- Entities for element mixtures ........................................ -->
+ <xs:group name="divcomponent.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="compound.class"/>
+ <xs:group ref="genobj.class"/>
+ <xs:group ref="descobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="refcomponent.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="compound.class"/>
+ <xs:group ref="genobj.class"/>
+ <xs:group ref="descobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="indexdivcomponent.mix">
+ <xs:choice>
+ <xs:element ref="itemizedlist"/>
+ <xs:element ref="orderedlist"/>
+ <xs:element ref="variablelist"/>
+ <xs:element ref="simplelist"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="anchor"/>
+ <xs:element ref="remark"/>
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="refname.char.mix">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="tech.char.class"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="partcontent.mix">
+ <xs:choice>
+ <xs:element ref="appendix.class"/>
+ <xs:element ref="chapter.class"/>
+ <xs:group ref="nav.class"/>
+ <xs:element ref="article.class"/>
+ <xs:element ref="preface"/>
+ <xs:element ref="refentry.class"/>
+ <xs:element ref="reference"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="refinline.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="xref.char.class"/>
+ <xs:element ref="gen.char.class"/>
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:element ref="docinfo.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="refclass.char.mix">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="application"/>
+ </xs:sequence>
+ </xs:group>
+ <!-- Redeclaration placeholder 2 .......................................... -->
+ <!--
+ For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point
+ -->
+ <!-- ...................................................................... -->
+ <!-- Entities for content models .......................................... -->
+ <xs:group name="div.title.content">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="subtitle"/>
+ <xs:element minOccurs="0" ref="titleabbrev"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="bookcomponent.title.content">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="subtitle"/>
+ <xs:element minOccurs="0" ref="titleabbrev"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="sect.title.content">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="subtitle"/>
+ <xs:element minOccurs="0" ref="titleabbrev"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="refsect.title.content">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="subtitle"/>
+ <xs:element minOccurs="0" ref="titleabbrev"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="bookcomponent.content">
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect1"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="section.class"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="sect1"/>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ <xs:element maxOccurs="unbounded" ref="section.class"/>
+ </xs:choice>
+ </xs:choice>
+ </xs:group>
+ <!-- ...................................................................... -->
+ <!-- Set and SetInfo ...................................................... -->
+ <xs:attributeGroup name="set.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A collection of books. -->
+ <xs:element name="set">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="div.title.content"/>
+ <xs:element minOccurs="0" ref="setinfo"/>
+ <xs:element minOccurs="0" ref="toc"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="set"/>
+ <xs:element ref="book.class"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="setindex"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="set.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of set.element -->
+ <!-- FPI: SGML formal public identifier -->
+ <xs:attributeGroup name="set.attlist">
+ <xs:attribute name="fpi"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="set.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of set.attlist -->
+ <!-- end of set.module -->
+ <xs:attributeGroup name="setinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Set. -->
+ <xs:element name="setinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="setinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of setinfo.element -->
+ <!--
+ Contents: IDs of the ToC, Books, and SetIndex that comprise
+ the set, in the order of their appearance
+ -->
+ <xs:attributeGroup name="setinfo.attlist">
+ <xs:attribute name="contents" type="xs:IDREFS"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="setinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of setinfo.attlist -->
+ <!-- end of setinfo.module -->
+ <!-- end of set.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Book and BookInfo .................................................... -->
+ <xs:attributeGroup name="book.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A book. -->
+ <xs:element name="book" substitutionGroup="book.class"/>
+ <!-- end of book.element -->
+ <!-- FPI: SGML formal public identifier -->
+ <xs:attributeGroup name="book.attlist">
+ <xs:attribute name="fpi"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="book.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of book.attlist -->
+ <!-- end of book.module -->
+ <xs:attributeGroup name="bookinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Book. -->
+ <xs:element name="bookinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="bookinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bookinfo.element -->
+ <!--
+ Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+ Appendixes, References, GLossary, Bibliography, and indexes
+ comprising the Book, in the order of their appearance
+ -->
+ <xs:attributeGroup name="bookinfo.attlist">
+ <xs:attribute name="contents" type="xs:IDREFS"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bookinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bookinfo.attlist -->
+ <!-- end of bookinfo.module -->
+ <!-- end of book.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Dedication, ToC, and LoT ............................................. -->
+ <xs:attributeGroup name="dedication.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for the dedication section of a book. -->
+ <xs:element name="dedication">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="sect.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="legalnotice.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="dedication.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of dedication.element -->
+ <xs:attributeGroup name="dedication.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="dedication.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of dedication.attlist -->
+ <!-- end of dedication.module -->
+ <xs:attributeGroup name="colophon.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Text at the back of a book describing facts about its production. -->
+ <xs:element name="colophon">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="sect.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="textobject.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="colophon.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of colophon.element -->
+ <xs:attributeGroup name="colophon.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="colophon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of colophon.attlist -->
+ <!-- end of colophon.module -->
+ <xs:attributeGroup name="toc.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A table of contents. -->
+ <xs:element name="toc">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocfront"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="tocpart"/>
+ <xs:element ref="tocchap"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocback"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toc.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toc.element -->
+ <xs:attributeGroup name="toc.attlist">
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toc.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toc.attlist -->
+ <!-- end of toc.module -->
+ <xs:attributeGroup name="tocfront.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a table of contents for a front matter component. -->
+ <xs:element name="tocfront">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="tocfront.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tocfront.element -->
+ <!-- to element that this entry represents -->
+ <xs:attributeGroup name="tocfront.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tocfront.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tocfront.attlist -->
+ <!-- end of tocfront.module -->
+ <xs:attributeGroup name="tocentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A component title in a table of contents. -->
+ <xs:element name="tocentry">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="tocentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tocentry.element -->
+ <!-- to element that this entry represents -->
+ <xs:attributeGroup name="tocentry.attlist">
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tocentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tocentry.attlist -->
+ <!-- end of tocentry.module -->
+ <xs:attributeGroup name="tocpart.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a table of contents for a part of a book. -->
+ <xs:element name="tocpart">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="tocchap"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tocpart.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tocpart.element -->
+ <xs:attributeGroup name="tocpart.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tocpart.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tocpart.attlist -->
+ <!-- end of tocpart.module -->
+ <xs:attributeGroup name="tocchap.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a table of contents for a component in the body of a document. -->
+ <xs:element name="tocchap">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel1"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tocchap.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tocchap.element -->
+ <xs:attributeGroup name="tocchap.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tocchap.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tocchap.attlist -->
+ <!-- end of tocchap.module -->
+ <xs:attributeGroup name="toclevel1.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A top-level entry within a table of contents entry for a chapter-like component. -->
+ <xs:element name="toclevel1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel2"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toclevel1.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toclevel1.element -->
+ <xs:attributeGroup name="toclevel1.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toclevel1.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toclevel1.attlist -->
+ <!-- end of toclevel1.module -->
+ <xs:attributeGroup name="toclevel2.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A second-level entry within a table of contents entry for a chapter-like component. -->
+ <xs:element name="toclevel2">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel3"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toclevel2.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toclevel2.element -->
+ <xs:attributeGroup name="toclevel2.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toclevel2.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toclevel2.attlist -->
+ <!-- end of toclevel2.module -->
+ <xs:attributeGroup name="toclevel3.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A third-level entry within a table of contents entry for a chapter-like component. -->
+ <xs:element name="toclevel3">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel4"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toclevel3.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toclevel3.element -->
+ <xs:attributeGroup name="toclevel3.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toclevel3.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toclevel3.attlist -->
+ <!-- end of toclevel3.module -->
+ <xs:attributeGroup name="toclevel4.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A fourth-level entry within a table of contents entry for a chapter-like component. -->
+ <xs:element name="toclevel4">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="toclevel5"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toclevel4.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toclevel4.element -->
+ <xs:attributeGroup name="toclevel4.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toclevel4.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toclevel4.attlist -->
+ <!-- end of toclevel4.module -->
+ <xs:attributeGroup name="toclevel5.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A fifth-level entry within a table of contents entry for a chapter-like component. -->
+ <xs:element name="toclevel5">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tocentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="toclevel5.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of toclevel5.element -->
+ <xs:attributeGroup name="toclevel5.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="toclevel5.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of toclevel5.attlist -->
+ <!-- end of toclevel5.module -->
+ <xs:attributeGroup name="tocback.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a table of contents for a back matter component. -->
+ <xs:element name="tocback">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="tocback.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tocback.element -->
+ <!-- to element that this entry represents -->
+ <xs:attributeGroup name="tocback.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tocback.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tocback.attlist -->
+ <!-- end of tocback.module -->
+ <!-- end of toc.content.module -->
+ <xs:attributeGroup name="lot.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list of the titles of formal objects (as tables or figures) in a document. -->
+ <xs:element name="lot">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="lotentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="lot.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of lot.element -->
+ <xs:attributeGroup name="lot.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="lot.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of lot.attlist -->
+ <!-- end of lot.module -->
+ <xs:attributeGroup name="lotentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a list of titles. -->
+ <xs:element name="lotentry">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="lotentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of lotentry.element -->
+ <!--
+ SrcCredit: Information about the source of the entry,
+ as for a list of illustrations
+ -->
+ <!-- linkend: to element that this entry represents -->
+ <xs:attributeGroup name="lotentry.attlist">
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attribute name="srccredit"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="lotentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of lotentry.attlist -->
+ <!-- end of lotentry.module -->
+ <!-- end of lot.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+ <xs:attributeGroup name="appendix.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An appendix in a Book or Article. -->
+ <xs:element name="appendix" substitutionGroup="appendix.class"/>
+ <!-- end of appendix.element -->
+ <xs:attributeGroup name="appendix.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="appendix.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of appendix.attlist -->
+ <!-- end of appendix.module -->
+ <xs:attributeGroup name="chapter.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A chapter, as of a book. -->
+ <xs:element name="chapter" substitutionGroup="chapter.class"/>
+ <!-- end of chapter.element -->
+ <xs:attributeGroup name="chapter.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="chapter.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of chapter.attlist -->
+ <!-- end of chapter.module -->
+ <!--
+ Note that Part was to have its content model reduced in V4.5. This
+ change will not be made after all.
+ -->
+ <xs:attributeGroup name="part.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A division in a book. -->
+ <xs:element name="part">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" ref="partinfo"/>
+ <xs:group ref="bookcomponent.title.content"/>
+ <xs:element minOccurs="0" ref="partintro"/>
+ <xs:group maxOccurs="unbounded" ref="partcontent.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="part.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of part.element -->
+ <xs:attributeGroup name="part.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="part.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of part.attlist -->
+ <!-- ELEMENT PartIntro (defined below) -->
+ <!-- end of part.module -->
+ <xs:attributeGroup name="preface.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Introductory matter preceding the first chapter of a book. -->
+ <xs:element name="preface">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" ref="prefaceinfo"/>
+ <xs:group ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:element minOccurs="0" ref="tocchap"/>
+ <xs:group ref="bookcomponent.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="preface.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of preface.element -->
+ <xs:attributeGroup name="preface.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="preface.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of preface.attlist -->
+ <!-- end of preface.module -->
+ <xs:attributeGroup name="reference.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A collection of reference entries. -->
+ <xs:element name="reference">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="beginpage"/>
+ <xs:element minOccurs="0" ref="referenceinfo"/>
+ <xs:group ref="bookcomponent.title.content"/>
+ <xs:element minOccurs="0" ref="partintro"/>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="reference.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of reference.element -->
+ <xs:attributeGroup name="reference.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="reference.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of reference.attlist -->
+ <!-- ELEMENT PartIntro (defined below) -->
+ <!-- end of reference.module -->
+ <xs:attributeGroup name="partintro.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An introduction to the contents of a part. -->
+ <xs:element name="partintro">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="div.title.content"/>
+ <xs:group ref="bookcomponent.content"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="partintro.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of partintro.element -->
+ <xs:attributeGroup name="partintro.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="partintro.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of partintro.attlist -->
+ <!-- end of partintro.module -->
+ <!-- ...................................................................... -->
+ <!-- Other Info elements .................................................. -->
+ <xs:attributeGroup name="appendixinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for an Appendix. -->
+ <xs:element name="appendixinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="appendixinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of appendixinfo.element -->
+ <xs:attributeGroup name="appendixinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="appendixinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of appendixinfo.attlist -->
+ <!-- end of appendixinfo.module -->
+ <xs:attributeGroup name="bibliographyinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Bibliography. -->
+ <xs:element name="bibliographyinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="bibliographyinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliographyinfo.element -->
+ <xs:attributeGroup name="bibliographyinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliographyinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliographyinfo.attlist -->
+ <!-- end of bibliographyinfo.module -->
+ <xs:attributeGroup name="chapterinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Chapter. -->
+ <xs:element name="chapterinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="chapterinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of chapterinfo.element -->
+ <xs:attributeGroup name="chapterinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="chapterinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of chapterinfo.attlist -->
+ <!-- end of chapterinfo.module -->
+ <xs:attributeGroup name="glossaryinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Glossary. -->
+ <xs:element name="glossaryinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="glossaryinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossaryinfo.element -->
+ <xs:attributeGroup name="glossaryinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossaryinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossaryinfo.attlist -->
+ <!-- end of glossaryinfo.module -->
+ <xs:attributeGroup name="indexinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for an Index. -->
+ <xs:element name="indexinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="indexinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of indexinfo.element -->
+ <xs:attributeGroup name="indexinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of indexinfo.attlist -->
+ <!-- end of indexinfo.module -->
+ <xs:attributeGroup name="setindexinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a SetIndex. -->
+ <xs:element name="setindexinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="setindexinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of setindexinfo.element -->
+ <xs:attributeGroup name="setindexinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="setindexinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of setindexinfo.attlist -->
+ <!-- end of setindexinfo.module -->
+ <xs:attributeGroup name="partinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Part. -->
+ <xs:element name="partinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="partinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of partinfo.element -->
+ <xs:attributeGroup name="partinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="partinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of partinfo.attlist -->
+ <!-- end of partinfo.module -->
+ <xs:attributeGroup name="prefaceinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Preface. -->
+ <xs:element name="prefaceinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="prefaceinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of prefaceinfo.element -->
+ <xs:attributeGroup name="prefaceinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="prefaceinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of prefaceinfo.attlist -->
+ <!-- end of prefaceinfo.module -->
+ <xs:attributeGroup name="refentryinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Refentry. -->
+ <xs:element name="refentryinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refentryinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refentryinfo.element -->
+ <xs:attributeGroup name="refentryinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refentryinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refentryinfo.attlist -->
+ <!-- end of refentryinfo.module -->
+ <xs:attributeGroup name="refsectioninfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a refsection. -->
+ <xs:element name="refsectioninfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refsectioninfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsectioninfo.element -->
+ <xs:attributeGroup name="refsectioninfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsectioninfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsectioninfo.attlist -->
+ <!-- end of refsectioninfo.module -->
+ <xs:attributeGroup name="refsect1info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a RefSect1. -->
+ <xs:element name="refsect1info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refsect1info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect1info.element -->
+ <xs:attributeGroup name="refsect1info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect1info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect1info.attlist -->
+ <!-- end of refsect1info.module -->
+ <xs:attributeGroup name="refsect2info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a RefSect2. -->
+ <xs:element name="refsect2info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refsect2info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect2info.element -->
+ <xs:attributeGroup name="refsect2info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect2info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect2info.attlist -->
+ <!-- end of refsect2info.module -->
+ <xs:attributeGroup name="refsect3info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a RefSect3. -->
+ <xs:element name="refsect3info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refsect3info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect3info.element -->
+ <xs:attributeGroup name="refsect3info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect3info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect3info.attlist -->
+ <!-- end of refsect3info.module -->
+ <xs:attributeGroup name="refsynopsisdivinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a RefSynopsisDiv. -->
+ <xs:element name="refsynopsisdivinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="refsynopsisdivinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsynopsisdivinfo.element -->
+ <xs:attributeGroup name="refsynopsisdivinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsynopsisdivinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsynopsisdivinfo.attlist -->
+ <!-- end of refsynopsisdivinfo.module -->
+ <xs:attributeGroup name="referenceinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Reference. -->
+ <xs:element name="referenceinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="referenceinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of referenceinfo.element -->
+ <xs:attributeGroup name="referenceinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="referenceinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of referenceinfo.attlist -->
+ <!-- end of referenceinfo.module -->
+ <xs:attributeGroup name="sect1info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sect1. -->
+ <xs:element name="sect1info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sect1info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect1info.element -->
+ <xs:attributeGroup name="sect1info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect1info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect1info.attlist -->
+ <xs:attributeGroup name="sect2info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sect2. -->
+ <xs:element name="sect2info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sect2info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect2info.element -->
+ <xs:attributeGroup name="sect2info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect2info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect2info.attlist -->
+ <xs:attributeGroup name="sect3info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sect3. -->
+ <xs:element name="sect3info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sect3info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect3info.element -->
+ <xs:attributeGroup name="sect3info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect3info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect3info.attlist -->
+ <xs:attributeGroup name="sect4info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sect4. -->
+ <xs:element name="sect4info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sect4info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect4info.element -->
+ <xs:attributeGroup name="sect4info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect4info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect4info.attlist -->
+ <xs:attributeGroup name="sect5info.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sect5. -->
+ <xs:element name="sect5info">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sect5info.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect5info.element -->
+ <xs:attributeGroup name="sect5info.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect5info.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect5info.attlist -->
+ <!-- ...................................................................... -->
+ <!-- Section (parallel to Sect*) ......................................... -->
+ <xs:attributeGroup name="section.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A recursive section. -->
+ <xs:element name="section" substitutionGroup="section.class"/>
+ <!-- end of section.element -->
+ <xs:attributeGroup name="section.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="section.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of section.attlist -->
+ <!-- end of section.module -->
+ <xs:attributeGroup name="sectioninfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a recursive section. -->
+ <xs:element name="sectioninfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sectioninfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sectioninfo.element -->
+ <xs:attributeGroup name="sectioninfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sectioninfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sectioninfo.attlist -->
+ <!-- end of sectioninfo.module -->
+ <!-- end of section.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+ <xs:attributeGroup name="sect1.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A top-level section of document. -->
+ <xs:element name="sect1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sect1info"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect2"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="sect2"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sect1.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect1.element -->
+ <!--
+ Renderas: Indicates the format in which the heading should
+ appear
+ -->
+ <xs:attributeGroup name="sect1.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="sect2"/>
+ <xs:enumeration value="sect3"/>
+ <xs:enumeration value="sect4"/>
+ <xs:enumeration value="sect5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect1.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect1.attlist -->
+ <!-- end of sect1.module -->
+ <xs:attributeGroup name="sect2.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection within a Sect1. -->
+ <xs:element name="sect2">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sect2info"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect3"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="sect3"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sect2.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect2.element -->
+ <!--
+ Renderas: Indicates the format in which the heading should
+ appear
+ -->
+ <xs:attributeGroup name="sect2.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="sect1"/>
+ <xs:enumeration value="sect3"/>
+ <xs:enumeration value="sect4"/>
+ <xs:enumeration value="sect5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect2.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect2.attlist -->
+ <!-- end of sect2.module -->
+ <xs:attributeGroup name="sect3.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection within a Sect2. -->
+ <xs:element name="sect3">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sect3info"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect4"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="sect4"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sect3.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect3.element -->
+ <!--
+ Renderas: Indicates the format in which the heading should
+ appear
+ -->
+ <xs:attributeGroup name="sect3.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="sect1"/>
+ <xs:enumeration value="sect2"/>
+ <xs:enumeration value="sect4"/>
+ <xs:enumeration value="sect5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect3.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect3.attlist -->
+ <!-- end of sect3.module -->
+ <xs:attributeGroup name="sect4.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection within a Sect3. -->
+ <xs:element name="sect4">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sect4info"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="sect5"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="sect5"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sect4.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect4.element -->
+ <!--
+ Renderas: Indicates the format in which the heading should
+ appear
+ -->
+ <xs:attributeGroup name="sect4.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="sect1"/>
+ <xs:enumeration value="sect2"/>
+ <xs:enumeration value="sect3"/>
+ <xs:enumeration value="sect5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect4.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect4.attlist -->
+ <!-- end of sect4.module -->
+ <xs:attributeGroup name="sect5.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection within a Sect4. -->
+ <xs:element name="sect5">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sect5info"/>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refentry.class"/>
+ <xs:element maxOccurs="unbounded" ref="simplesect"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="nav.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sect5.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sect5.element -->
+ <!--
+ Renderas: Indicates the format in which the heading should
+ appear
+ -->
+ <xs:attributeGroup name="sect5.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="sect1"/>
+ <xs:enumeration value="sect2"/>
+ <xs:enumeration value="sect3"/>
+ <xs:enumeration value="sect4"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sect5.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sect5.attlist -->
+ <!-- end of sect5.module -->
+ <xs:attributeGroup name="simplesect.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A section of a document with no subdivisions. -->
+ <xs:element name="simplesect">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="sect.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="divcomponent.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="simplesect.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of simplesect.element -->
+ <xs:attributeGroup name="simplesect.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="simplesect.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of simplesect.attlist -->
+ <!-- end of simplesect.module -->
+ <!-- ...................................................................... -->
+ <!-- Bibliography ......................................................... -->
+ <xs:attributeGroup name="bibliography.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A bibliography. -->
+ <xs:element name="bibliography">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="bibliographyinfo"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="bibliodiv"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="biblioentry"/>
+ <xs:element ref="bibliomixed"/>
+ </xs:choice>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="bibliography.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliography.element -->
+ <xs:attributeGroup name="bibliography.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliography.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliography.attlist -->
+ <!-- end of bibliography.module -->
+ <xs:attributeGroup name="bibliodiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A section of a Bibliography. -->
+ <xs:element name="bibliodiv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="biblioentry"/>
+ <xs:element ref="bibliomixed"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="bibliodiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliodiv.element -->
+ <xs:attributeGroup name="bibliodiv.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliodiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliodiv.attlist -->
+ <!-- end of bibliodiv.module -->
+ <!-- end of bibliography.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Glossary ............................................................. -->
+ <xs:attributeGroup name="glossary.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A glossary. -->
+ <xs:element name="glossary">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="glossaryinfo"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="glossdiv"/>
+ <xs:element maxOccurs="unbounded" ref="glossentry"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="bibliography"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="glossary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossary.element -->
+ <xs:attributeGroup name="glossary.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossary.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossary.attlist -->
+ <!-- end of glossary.module -->
+ <xs:attributeGroup name="glossdiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A division in a Glossary. -->
+ <xs:element name="glossdiv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="sect.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:element maxOccurs="unbounded" ref="glossentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="glossdiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossdiv.element -->
+ <xs:attributeGroup name="glossdiv.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossdiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossdiv.attlist -->
+ <!-- end of glossdiv.module -->
+ <!-- end of glossary.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Index and SetIndex ................................................... -->
+ <xs:attributeGroup name="indexes.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An index. -->
+ <xs:element name="index">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="indexinfo"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="index.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of index.element -->
+ <xs:attributeGroup name="index.attlist">
+ <xs:attribute name="type"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexes.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of index.attlist -->
+ <!-- doc:An index to a set of books. -->
+ <xs:element name="setindex">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="setindexinfo"/>
+ <xs:group minOccurs="0" ref="bookcomponent.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexdiv"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="indexentry"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="setindex.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of setindex.element -->
+ <xs:attributeGroup name="setindex.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexes.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of setindex.attlist -->
+ <!-- end of indexes.module -->
+ <!--
+ SegmentedList in this content is useful for marking up permuted
+ indices.
+ -->
+ <xs:attributeGroup name="indexdiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A division in an index. -->
+ <xs:element name="indexdiv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="sect.title.content"/>
+ <xs:sequence>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="indexdivcomponent.mix"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="indexentry"/>
+ <xs:element ref="segmentedlist"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attributeGroup ref="indexdiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of indexdiv.element -->
+ <xs:attributeGroup name="indexdiv.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexdiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of indexdiv.attlist -->
+ <!-- end of indexdiv.module -->
+ <!-- Index entries appear in the index, not the text. -->
+ <xs:attributeGroup name="indexentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in an index. -->
+ <xs:element name="indexentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="primaryie"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="seeie"/>
+ <xs:element ref="seealsoie"/>
+ </xs:choice>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="secondaryie"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="seeie"/>
+ <xs:element ref="seealsoie"/>
+ <xs:element ref="tertiaryie"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attributeGroup ref="indexentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of indexentry.element -->
+ <xs:attributeGroup name="indexentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of indexentry.attlist -->
+ <!-- end of indexentry.module -->
+ <xs:attributeGroup name="primsecterie.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A primary term in an index entry, not in the text. -->
+ <xs:element name="primaryie">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="primaryie.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of primaryie.element -->
+ <!-- to IndexTerms that these entries represent -->
+ <xs:attributeGroup name="primaryie.attlist">
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecterie.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of primaryie.attlist -->
+ <!-- doc:A secondary term in an index entry, rather than in the text. -->
+ <xs:element name="secondaryie">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="secondaryie.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of secondaryie.element -->
+ <!-- to IndexTerms that these entries represent -->
+ <xs:attributeGroup name="secondaryie.attlist">
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecterie.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of secondaryie.attlist -->
+ <!-- doc:A tertiary term in an index entry, rather than in the text. -->
+ <xs:element name="tertiaryie">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="tertiaryie.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tertiaryie.element -->
+ <!-- to IndexTerms that these entries represent -->
+ <xs:attributeGroup name="tertiaryie.attlist">
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecterie.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tertiaryie.attlist -->
+ <!-- end of primsecterie.module -->
+ <xs:attributeGroup name="seeie.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A See entry in an index, rather than in the text. -->
+ <xs:element name="seeie">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="seeie.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seeie.element -->
+ <!-- to IndexEntry to look up -->
+ <xs:attributeGroup name="seeie.attlist">
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seeie.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of seeie.attlist -->
+ <!-- end of seeie.module -->
+ <xs:attributeGroup name="seealsoie.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A See also entry in an index, rather than in the text. -->
+ <xs:element name="seealsoie">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="seealsoie.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seealsoie.element -->
+ <!-- to related IndexEntries -->
+ <xs:attributeGroup name="seealsoie.attlist">
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seealsoie.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of seealsoie.attlist -->
+ <!-- end of seealsoie.module -->
+ <!-- end of index.content.module -->
+ <!-- ...................................................................... -->
+ <!-- RefEntry ............................................................. -->
+ <xs:attributeGroup name="refentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A reference page (originally a UNIX man-style reference page). -->
+ <xs:element name="refentry" substitutionGroup="refentry.class"/>
+ <!-- end of refentry.element -->
+ <xs:attributeGroup name="refentry.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refentry.attlist -->
+ <!-- end of refentry.module -->
+ <xs:attributeGroup name="refmeta.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a reference entry. -->
+ <xs:element name="refmeta">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:element ref="refentrytitle"/>
+ <xs:element minOccurs="0" ref="manvolnum"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refmiscinfo"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="refmeta.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refmeta.element -->
+ <xs:attributeGroup name="refmeta.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refmeta.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refmeta.attlist -->
+ <!-- end of refmeta.module -->
+ <xs:attributeGroup name="refmiscinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a reference entry other than the title and volume number. -->
+ <xs:element name="refmiscinfo">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="refmiscinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refmiscinfo.element -->
+ <!-- Class: Freely assignable parameter; no default -->
+ <xs:attributeGroup name="refmiscinfo.attlist">
+ <xs:attribute name="class"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refmiscinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refmiscinfo.attlist -->
+ <!-- end of refmiscinfo.module -->
+ <xs:attributeGroup name="refnamediv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name, purpose, and classification of a reference page. -->
+ <xs:element name="refnamediv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refdescriptor"/>
+ <xs:element maxOccurs="unbounded" ref="refname"/>
+ <xs:element ref="refpurpose"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refclass"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="remark"/>
+ <xs:element ref="link.char.class"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refnamediv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refnamediv.element -->
+ <xs:attributeGroup name="refnamediv.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refnamediv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refnamediv.attlist -->
+ <!-- end of refnamediv.module -->
+ <xs:attributeGroup name="refdescriptor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A description of the topic of a reference page. -->
+ <xs:element name="refdescriptor">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
+ <xs:attributeGroup ref="refdescriptor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refdescriptor.element -->
+ <xs:attributeGroup name="refdescriptor.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refdescriptor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refdescriptor.attlist -->
+ <!-- end of refdescriptor.module -->
+ <xs:attributeGroup name="refname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of (one of) the subject(s) of a reference page. -->
+ <xs:element name="refname">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="refname.char.mix"/>
+ <xs:attributeGroup ref="refname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refname.element -->
+ <xs:attributeGroup name="refname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refname.attlist -->
+ <!-- end of refname.module -->
+ <xs:attributeGroup name="refpurpose.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A short (one sentence) synopsis of the topic of a reference page. -->
+ <xs:element name="refpurpose">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="refinline.char.mix"/>
+ <xs:attributeGroup ref="refpurpose.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refpurpose.element -->
+ <xs:attributeGroup name="refpurpose.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refpurpose.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refpurpose.attlist -->
+ <!-- end of refpurpose.module -->
+ <xs:attributeGroup name="refclass.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The scope or other indication of applicability of a reference entry. -->
+ <xs:element name="refclass">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="refclass.char.mix"/>
+ <xs:attributeGroup ref="refclass.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refclass.element -->
+ <xs:attributeGroup name="refclass.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refclass.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refclass.attlist -->
+ <!-- end of refclass.module -->
+ <xs:attributeGroup name="refsynopsisdiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A syntactic synopsis of the subject of the reference page. -->
+ <xs:element name="refsynopsisdiv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refsynopsisdivinfo"/>
+ <xs:group minOccurs="0" ref="refsect.title.content"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refsect2"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refsynopsisdiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsynopsisdiv.element -->
+ <xs:attributeGroup name="refsynopsisdiv.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsynopsisdiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsynopsisdiv.attlist -->
+ <!-- end of refsynopsisdiv.module -->
+ <xs:attributeGroup name="refsection.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A recursive section in a refentry. -->
+ <xs:element name="refsection">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refsectioninfo"/>
+ <xs:group ref="refsect.title.content"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsection"/>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refsection"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refsection.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsection.element -->
+ <xs:attributeGroup name="refsection.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsection.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsection.attlist -->
+ <!-- end of refsection.module -->
+ <xs:attributeGroup name="refsect1.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A major subsection of a reference entry. -->
+ <xs:element name="refsect1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refsect1info"/>
+ <xs:group ref="refsect.title.content"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect2"/>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refsect2"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refsect1.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect1.element -->
+ <xs:attributeGroup name="refsect1.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect1.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect1.attlist -->
+ <!-- end of refsect1.module -->
+ <xs:attributeGroup name="refsect2.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection of a RefSect1. -->
+ <xs:element name="refsect2">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refsect2info"/>
+ <xs:group ref="refsect.title.content"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="refsect3"/>
+ </xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="refsect3"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="refsect2.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect2.element -->
+ <xs:attributeGroup name="refsect2.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect2.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect2.attlist -->
+ <!-- end of refsect2.module -->
+ <xs:attributeGroup name="refsect3.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subsection of a RefSect2. -->
+ <xs:element name="refsect3">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="refsect3info"/>
+ <xs:group ref="refsect.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="refcomponent.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="refsect3.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refsect3.element -->
+ <xs:attributeGroup name="refsect3.attlist">
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refsect3.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refsect3.attlist -->
+ <!-- end of refsect3.module -->
+ <!-- end of refentry.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Article .............................................................. -->
+ <!--
+ An Article is a chapter-level, stand-alone document that is often,
+ but need not be, collected into a Book.
+ -->
+ <xs:attributeGroup name="article.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An article. -->
+ <xs:element name="article" substitutionGroup="article.class"/>
+ <!-- end of article.element -->
+ <!--
+ Class: Indicates the type of a particular article;
+ all articles have the same structure and general purpose.
+ No default.
+ -->
+ <!-- ParentBook: ID of the enclosing Book -->
+ <xs:attributeGroup name="article.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="journalarticle"/>
+ <xs:enumeration value="productsheet"/>
+ <xs:enumeration value="whitepaper"/>
+ <xs:enumeration value="techreport"/>
+ <xs:enumeration value="specification"/>
+ <xs:enumeration value="faq"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="parentbook" type="xs:IDREF"/>
+ <xs:attributeGroup ref="status.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="article.role.attrib"/>
+ </xs:attributeGroup>
+</xs:schema>
+<!-- end of article.attlist -->
+<!-- end of article.module -->
+<!-- End of SCons DocBook V4.5-Based extension V1.0 XML document hierarchy module V4.5 -->
+<!-- ................................................................................. -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbnotnx.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbnotnx.xsd
new file mode 100644
index 0000000..36f690f
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbnotnx.xsd
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- SCons DocBook V4.5-Based extension V1.0 XML notations ................ -->
+<!-- File dbnotnx.xsd ..................................................... -->
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the DocBook notations module V4.5 with:
+
+ Copyright 1992-2004 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ $Id: dbnotnx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This module contains the notation declarations used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbnotn PUBLIC
+ "-//OASIS//ENTITIES DocBook Notations V4.5//EN"
+ "dbnotnx.mod">
+ %dbnotn;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <xs:simpleType name="notation.class">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="BMP"/>
+ <xs:enumeration value="CGM-CHAR"/>
+ <xs:enumeration value="CGM-BINARY"/>
+ <xs:enumeration value="CGM-CLEAR"/>
+ <xs:enumeration value="DITROFF"/>
+ <xs:enumeration value="DVI"/>
+ <xs:enumeration value="EPS"/>
+ <xs:enumeration value="EQN"/>
+ <xs:enumeration value="FAX"/>
+ <xs:enumeration value="GIF"/>
+ <xs:enumeration value="GIF87a"/>
+ <xs:enumeration value="GIF89a"/>
+ <xs:enumeration value="JPG"/>
+ <xs:enumeration value="JPEG"/>
+ <xs:enumeration value="IGES"/>
+ <xs:enumeration value="PCX"/>
+ <xs:enumeration value="PIC"/>
+ <xs:enumeration value="PNG"/>
+ <xs:enumeration value="PS"/>
+ <xs:enumeration value="SGML"/>
+ <xs:enumeration value="TBL"/>
+ <xs:enumeration value="TEX"/>
+ <xs:enumeration value="TIFF"/>
+ <xs:enumeration value="WMF"/>
+ <xs:enumeration value="WPG"/>
+ <xs:enumeration value="SVG"/>
+ <xs:enumeration value="PDF"/>
+ <xs:enumeration value="SWF"/>
+ <xs:enumeration value="linespecific"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
+<!-- WordPerfect Graphic format -->
+<!-- End of SCons DocBook V4.5-Based extension V1.0 XML notations ......... -->
+<!-- ...................................................................... -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbpoolx.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbpoolx.xsd
new file mode 100644
index 0000000..0ce5cb7
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/dbpoolx.xsd
@@ -0,0 +1,8682 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- SCons DocBook V4.5-Based extension V1.0 XML information pool module .. -->
+<!-- File dbpoolx.xsd ..................................................... -->
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the Docbook XML information pool
+ module V4.5 with:
+
+ Copyright 1992-2004 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ $Id: dbpoolx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This module contains the definitions for the objects, inline
+ elements, and so on that are available to be used as the main
+ content of DocBook documents. Some elements are useful for general
+ publishing, and others are useful specifically for computer
+ documentation.
+
+ This module has the following dependencies on other modules:
+
+ o It assumes that a %notation.class; entity is defined by the
+ driver file or other high-level module. This entity is
+ referenced in the NOTATION attributes for the graphic-related and
+ ModeSpec elements.
+
+ o It assumes that an appropriately parameterized table module is
+ available for use with the table-related elements.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbpool PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN"
+ "dbpoolx.mod">
+ %dbpool;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+<!-- ...................................................................... -->
+<!-- Forms entities ....................................................... -->
+<!-- These PEs provide the hook by which the forms module can be inserted -->
+<!-- into the DTD. -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:include schemaLocation="htmltblx.xsd"/>
+ <xs:include schemaLocation="calstblx.xsd"/>
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <!-- ...................................................................... -->
+ <!-- General-purpose semantics entities ................................... -->
+ <xs:simpleType name="yesorno.attvals">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <!-- ...................................................................... -->
+ <!-- Entities for module inclusions ....................................... -->
+ <!-- ...................................................................... -->
+ <!-- Entities for element classes and mixtures ............................ -->
+ <!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+ <xs:element name="ndxterm.class" abstract="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="primary"/>
+ <xs:choice minOccurs="0">
+ <xs:sequence>
+ <xs:element ref="secondary"/>
+ <xs:choice minOccurs="0">
+ <xs:sequence>
+ <xs:element ref="tertiary"/>
+ <xs:choice minOccurs="0">
+ <xs:element ref="see"/>
+ <xs:element maxOccurs="unbounded" ref="seealso"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element ref="see"/>
+ <xs:element maxOccurs="unbounded" ref="seealso"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:element ref="see"/>
+ <xs:element maxOccurs="unbounded" ref="seealso"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="indexterm.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- Object-level classes ................................................. -->
+ <xs:element name="list.class" abstract="true"/>
+ <xs:element name="admon.class" abstract="true"/>
+ <xs:element name="linespecific.class" abstract="true"/>
+ <xs:element name="method.synop.class" abstract="true" substitutionGroup="synop.class"/>
+ <xs:element name="synop.class" abstract="true"/>
+ <xs:element name="para.class" abstract="true"/>
+ <xs:element name="informal.class" abstract="true"/>
+ <xs:element name="formal.class" abstract="true"/>
+ <!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+ <!-- This PE provides the hook by which it can be inserted into the DTD. -->
+ <xs:element name="compound.class" abstract="true"/>
+ <xs:group name="genobj.class">
+ <xs:choice>
+ <xs:element ref="anchor"/>
+ <xs:element ref="bridgehead"/>
+ <xs:element ref="remark"/>
+ <xs:element ref="highlights"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="descobj.class">
+ <xs:choice>
+ <xs:element ref="abstract"/>
+ <xs:element ref="authorblurb"/>
+ <xs:element ref="epigraph"/>
+ </xs:choice>
+ </xs:group>
+ <!-- Character-level classes .............................................. -->
+ <xs:element name="xref.char.class" abstract="true"/>
+ <xs:element name="gen.char.class" abstract="true"/>
+ <xs:element name="link.char.class" abstract="true"/>
+ <!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+ <!-- This PE provides the hook by which it can be inserted into the DTD. -->
+ <xs:element name="tech.char.class" abstract="true"/>
+ <xs:group name="base.char.class">
+ <xs:sequence>
+ <xs:element ref="anchor"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:element name="docinfo.char.class" abstract="true"/>
+ <xs:group name="other.char.class">
+ <xs:choice>
+ <xs:element ref="remark"/>
+ <xs:element ref="subscript"/>
+ <xs:element ref="superscript"/>
+ </xs:choice>
+ </xs:group>
+ <xs:element name="inlineobj.char.class" abstract="true"/>
+ <!-- ...................................................................... -->
+ <!-- Entities for content models .......................................... -->
+ <xs:group name="formalobject.title.content">
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" ref="titleabbrev"/>
+ </xs:sequence>
+ </xs:group>
+ <!-- Redeclaration placeholder ............................................ -->
+ <!--
+ For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point
+ -->
+ <!-- Object-level mixtures ................................................ -->
+ <!--
+ list admn line synp para infm form cmpd gen desc
+ Component mixture X X X X X X X X X X
+ Sidebar mixture X X X X X X X a X
+ Footnote mixture X X X X X
+ Example mixture X X X X X
+ Highlights mixture X X X
+ Paragraph mixture X X X X
+ Admonition mixture X X X X X X b c
+ Figure mixture X X X
+ Table entry mixture X X X X d
+ Glossary def mixture X X X X X e
+ Legal notice mixture X X X X f
+
+ a. Just Procedure; not Sidebar itself or MsgSet.
+ b. No MsgSet.
+ c. No Highlights.
+ d. Just Graphic; no other informal objects.
+ e. No Anchor, BridgeHead, or Highlights.
+ f. Just BlockQuote; no other informal objects.
+ -->
+ <xs:group name="component.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="compound.class"/>
+ <xs:group ref="genobj.class"/>
+ <xs:group ref="descobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="sidebar.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="procedure"/>
+ <xs:group ref="genobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="qandaset.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="procedure"/>
+ <xs:group ref="genobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="revdescription.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="procedure"/>
+ <xs:group ref="genobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="footnote.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="example.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ <xs:element ref="procedure"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="highlights.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:group>
+ <!--
+ %formal.class; is explicitly excluded from many contexts in which
+ paragraphs are used
+ -->
+ <xs:group name="para.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="sconstruct"/>
+ <xs:element ref="scons_example"/>
+ <xs:element ref="scons_example_file"/>
+ <xs:element ref="scons_output"/>
+ <xs:element ref="sconsdoc"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="summary.mix">
+ <xs:choice>
+ <xs:element ref="example_commands"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="tool.mix">
+ <xs:choice>
+ <xs:element ref="summary"/>
+ <xs:element ref="sets"/>
+ <xs:element ref="uses"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="scons_function.mix">
+ <xs:choice>
+ <xs:element ref="arguments"/>
+ <xs:element ref="summary"/>
+ <xs:element ref="sets"/>
+ <xs:element ref="uses"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="admon.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="procedure"/>
+ <xs:element ref="sidebar"/>
+ <xs:element ref="anchor"/>
+ <xs:element ref="bridgehead"/>
+ <xs:element ref="remark"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="figure.mix">
+ <xs:choice>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="tabentry.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="graphic"/>
+ <xs:element ref="mediaobject"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="glossdef.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:element ref="formal.class"/>
+ <xs:element ref="remark"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="legalnotice.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="blockquote"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="textobject.mix">
+ <xs:choice>
+ <xs:element ref="list.class"/>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="blockquote"/>
+ </xs:choice>
+ </xs:group>
+ <xs:element name="mediaobject.mix" abstract="true"/>
+ <xs:group name="listpreamble.mix">
+ <xs:choice>
+ <xs:element ref="admon.class"/>
+ <xs:element ref="linespecific.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="para.class"/>
+ <xs:element ref="informal.class"/>
+ <xs:group ref="genobj.class"/>
+ <xs:group ref="descobj.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:group>
+ <!-- Character-level mixtures ............................................. -->
+ <!-- sgml.features -->
+ <!-- not [sgml.features[ -->
+ <!-- ]] not sgml.features -->
+ <!--
+ #PCD xref word link cptr base dnfo othr inob (synop)
+ para.char.mix X X X X X X X X X
+ title.char.mix X X X X X X X X X
+ ndxterm.char.mix X X X X X X X X a
+ cptr.char.mix X X X X X a
+ smallcptr.char.mix X b a
+ word.char.mix X c X X X a
+ docinfo.char.mix X d X b X a
+
+ a. Just InlineGraphic; no InlineEquation.
+ b. Just Replaceable; no other computer terms.
+ c. Just Emphasis and Trademark; no other word elements.
+ d. Just Acronym, Emphasis, and Trademark; no other word elements.
+ -->
+ <xs:group name="para.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="xref.char.class"/>
+ <xs:element ref="gen.char.class"/>
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:element ref="docinfo.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlineobj.char.class"/>
+ <xs:element ref="synop.class"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="title.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="xref.char.class"/>
+ <xs:element ref="gen.char.class"/>
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:element ref="docinfo.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlineobj.char.class"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="ndxterm.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="xref.char.class"/>
+ <xs:element ref="gen.char.class"/>
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:element ref="docinfo.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="cptr.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="smallcptr.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="replaceable"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="word.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="acronym"/>
+ <xs:element ref="emphasis"/>
+ <xs:element ref="trademark"/>
+ <xs:element ref="link.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="ndxterm.class"/>
+ <xs:element ref="beginpage"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="docinfo.char.mix">
+ <xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="emphasis"/>
+ <xs:element ref="trademark"/>
+ <xs:element ref="replaceable"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <!-- ENTITY % bibliocomponent.mix (see Bibliographic section, below) -->
+ <!-- ENTITY % person.ident.mix (see Bibliographic section, below) -->
+ <!-- ...................................................................... -->
+ <!-- Entities for attributes and attribute components ..................... -->
+ <!-- Effectivity attributes ............................................... -->
+ <!--
+ Arch: Computer or chip architecture to which element applies; no
+ default
+ -->
+ <xs:attributeGroup name="arch.attrib">
+ <xs:attribute name="arch"/>
+ </xs:attributeGroup>
+ <!-- Condition: General-purpose effectivity attribute -->
+ <xs:attributeGroup name="condition.attrib">
+ <xs:attribute name="condition"/>
+ </xs:attributeGroup>
+ <!-- Conformance: Standards conformance characteristics -->
+ <xs:attributeGroup name="conformance.attrib">
+ <xs:attribute name="conformance" type="xs:NMTOKENS"/>
+ </xs:attributeGroup>
+ <!-- OS: Operating system to which element applies; no default -->
+ <xs:attributeGroup name="os.attrib">
+ <xs:attribute name="os"/>
+ </xs:attributeGroup>
+ <!-- Revision: Editorial revision to which element belongs; no default -->
+ <xs:attributeGroup name="revision.attrib">
+ <xs:attribute name="revision"/>
+ </xs:attributeGroup>
+ <!-- Security: Security classification; no default -->
+ <xs:attributeGroup name="security.attrib">
+ <xs:attribute name="security"/>
+ </xs:attributeGroup>
+ <!--
+ UserLevel: Level of user experience to which element applies; no
+ default
+ -->
+ <xs:attributeGroup name="userlevel.attrib">
+ <xs:attribute name="userlevel"/>
+ </xs:attributeGroup>
+ <!-- Vendor: Computer vendor to which element applies; no default -->
+ <xs:attributeGroup name="vendor.attrib">
+ <xs:attribute name="vendor"/>
+ </xs:attributeGroup>
+ <!-- Wordsize: Computer word size (32 bit, 64 bit, etc.); no default -->
+ <xs:attributeGroup name="wordsize.attrib">
+ <xs:attribute name="wordsize"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="effectivity.attrib">
+ <xs:attributeGroup ref="arch.attrib"/>
+ <xs:attributeGroup ref="condition.attrib"/>
+ <xs:attributeGroup ref="conformance.attrib"/>
+ <xs:attributeGroup ref="os.attrib"/>
+ <xs:attributeGroup ref="revision.attrib"/>
+ <xs:attributeGroup ref="security.attrib"/>
+ <xs:attributeGroup ref="userlevel.attrib"/>
+ <xs:attributeGroup ref="vendor.attrib"/>
+ <xs:attributeGroup ref="wordsize.attrib"/>
+ </xs:attributeGroup>
+ <!-- Common attributes .................................................... -->
+ <!-- Id: Unique identifier of element; no default -->
+ <xs:attributeGroup name="id.attrib">
+ <xs:attribute name="id" type="xs:ID"/>
+ </xs:attributeGroup>
+ <!--
+ Id: Unique identifier of element; a value must be supplied; no
+ default
+ -->
+ <xs:attributeGroup name="idreq.attrib">
+ <xs:attribute name="id" use="required" type="xs:ID"/>
+ </xs:attributeGroup>
+ <!--
+ Lang: Indicator of language in which element is written, for
+ translation, character set management, etc.; no default
+ -->
+ <xs:attributeGroup name="lang.attrib">
+ <xs:attribute name="lang"/>
+ </xs:attributeGroup>
+ <!-- Remap: Previous role of element before conversion; no default -->
+ <xs:attributeGroup name="remap.attrib">
+ <xs:attribute name="remap"/>
+ </xs:attributeGroup>
+ <!-- Role: New role of element in local environment; no default -->
+ <xs:attributeGroup name="role.attrib">
+ <xs:attribute name="role"/>
+ </xs:attributeGroup>
+ <!--
+ XRefLabel: Alternate labeling string for XRef text generation;
+ default is usually title or other appropriate label text already
+ contained in element
+ -->
+ <xs:attributeGroup name="xreflabel.attrib">
+ <xs:attribute name="xreflabel"/>
+ </xs:attributeGroup>
+ <!--
+ RevisionFlag: Revision status of element; default is that element
+ wasn't revised
+ -->
+ <xs:attributeGroup name="revisionflag.attrib">
+ <xs:attribute name="revisionflag">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="changed"/>
+ <xs:enumeration value="added"/>
+ <xs:enumeration value="deleted"/>
+ <xs:enumeration value="off"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <!-- dir: Bidirectional override -->
+ <xs:attributeGroup name="dir.attrib">
+ <xs:attribute name="dir">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr"/>
+ <xs:enumeration value="rtl"/>
+ <xs:enumeration value="lro"/>
+ <xs:enumeration value="rlo"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <!-- xml:base: base URI -->
+ <xs:attributeGroup name="xml-base.attrib">
+ <xs:attribute ref="xml:base"/>
+ </xs:attributeGroup>
+ <!-- Role is included explicitly on each element -->
+ <xs:attributeGroup name="common.attrib">
+ <xs:attributeGroup ref="id.attrib"/>
+ <xs:attributeGroup ref="lang.attrib"/>
+ <xs:attributeGroup ref="remap.attrib"/>
+ <xs:attributeGroup ref="xreflabel.attrib"/>
+ <xs:attributeGroup ref="revisionflag.attrib"/>
+ <xs:attributeGroup ref="effectivity.attrib"/>
+ <xs:attributeGroup ref="dir.attrib"/>
+ <xs:attributeGroup ref="xml-base.attrib"/>
+ </xs:attributeGroup>
+ <!-- Role is included explicitly on each element -->
+ <xs:attributeGroup name="idreq.common.attrib">
+ <xs:attributeGroup ref="idreq.attrib"/>
+ <xs:attributeGroup ref="lang.attrib"/>
+ <xs:attributeGroup ref="remap.attrib"/>
+ <xs:attributeGroup ref="xreflabel.attrib"/>
+ <xs:attributeGroup ref="revisionflag.attrib"/>
+ <xs:attributeGroup ref="effectivity.attrib"/>
+ <xs:attributeGroup ref="dir.attrib"/>
+ <xs:attributeGroup ref="xml-base.attrib"/>
+ </xs:attributeGroup>
+ <!-- Semi-common attributes and other attribute entities .................. -->
+ <!--
+ EntityRef: Name of an external entity containing the content
+ of the graphic
+ -->
+ <!--
+ FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the graphic
+ -->
+ <!-- Format: Notation of the element content, if any -->
+ <!-- SrcCredit: Information about the source of the Graphic -->
+ <!-- Width: Same as CALS reprowid (desired width) -->
+ <!-- Depth: Same as CALS reprodep (desired depth) -->
+ <!--
+ Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific
+ -->
+ <!-- Scale: Conflation of CALS hscale and vscale -->
+ <!-- Scalefit: Same as CALS scalefit -->
+ <xs:attributeGroup name="graphics.attrib">
+ <xs:attribute name="entityref" type="xs:ENTITY"/>
+ <xs:attribute name="fileref"/>
+ <xs:attribute name="format" type="notation.class"/>
+ <xs:attribute name="srccredit"/>
+ <xs:attribute name="width"/>
+ <xs:attribute name="contentwidth"/>
+ <xs:attribute name="depth"/>
+ <xs:attribute name="contentdepth"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="scale"/>
+ <xs:attribute name="scalefit" type="yesorno.attvals"/>
+ </xs:attributeGroup>
+ <!--
+ Action: Key combination type; default is unspecified if one
+ child element, Simul if there is more than one; if value is
+ Other, the OtherAction attribute must have a nonempty value
+ -->
+ <!-- OtherAction: User-defined key combination type -->
+ <xs:attributeGroup name="keyaction.attrib">
+ <xs:attribute name="action">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="click"/>
+ <xs:enumeration value="double-click"/>
+ <xs:enumeration value="press"/>
+ <xs:enumeration value="seq"/>
+ <xs:enumeration value="simul"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otheraction"/>
+ </xs:attributeGroup>
+ <!--
+ Label: Identifying number or string; default is usually the
+ appropriate number or string autogenerated by a formatter
+ -->
+ <xs:attributeGroup name="label.attrib">
+ <xs:attribute name="label"/>
+ </xs:attributeGroup>
+ <!-- xml:space: whitespace treatment -->
+ <xs:attributeGroup name="xml-space.attrib">
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+ <!--
+ Format: whether element is assumed to contain significant white
+ space
+ -->
+ <xs:attributeGroup name="linespecific.attrib">
+ <xs:attribute name="format" default="linespecific">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="linespecific"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="xml-space.attrib"/>
+ <xs:attribute name="linenumbering">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="numbered"/>
+ <xs:enumeration value="unnumbered"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="continuation">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="continues"/>
+ <xs:enumeration value="restarts"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="startinglinenumber"/>
+ <xs:attribute name="language"/>
+ </xs:attributeGroup>
+ <!-- Linkend: link to related information; no default -->
+ <xs:attributeGroup name="linkend.attrib">
+ <xs:attribute name="linkend" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <!-- Linkend: required link to related information -->
+ <xs:attributeGroup name="linkendreq.attrib">
+ <xs:attribute name="linkend" use="required" type="xs:IDREF"/>
+ </xs:attributeGroup>
+ <!--
+ Linkends: link to one or more sets of related information; no
+ default
+ -->
+ <xs:attributeGroup name="linkends.attrib">
+ <xs:attribute name="linkends" type="xs:IDREFS"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="mark.attrib">
+ <xs:attribute name="mark"/>
+ </xs:attributeGroup>
+ <!-- MoreInfo: whether element's content has an associated RefEntry -->
+ <xs:attributeGroup name="moreinfo.attrib">
+ <xs:attribute name="moreinfo" default="none">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="refentry"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <!-- Pagenum: number of page on which element appears; no default -->
+ <xs:attributeGroup name="pagenum.attrib">
+ <xs:attribute name="pagenum"/>
+ </xs:attributeGroup>
+ <!--
+ Status: Editorial or publication status of the element
+ it applies to, such as "in review" or "approved for distribution"
+ -->
+ <xs:attributeGroup name="status.attrib">
+ <xs:attribute name="status"/>
+ </xs:attributeGroup>
+ <!--
+ Width: width of the longest line in the element to which it
+ pertains, in number of characters
+ -->
+ <xs:attributeGroup name="width.attrib">
+ <xs:attribute name="width"/>
+ </xs:attributeGroup>
+ <!-- ...................................................................... -->
+ <!-- Title elements ....................................................... -->
+ <xs:attributeGroup name="title.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The text of the title of a section of a document or of a formal block-level element. -->
+ <xs:element name="title">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="title.char.mix"/>
+ <xs:attributeGroup ref="title.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of title.element -->
+ <xs:attributeGroup name="title.attlist">
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="title.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of title.attlist -->
+ <!-- end of title.module -->
+ <xs:attributeGroup name="titleabbrev.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The abbreviation of a Title. -->
+ <xs:element name="titleabbrev">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="title.char.mix"/>
+ <xs:attributeGroup ref="titleabbrev.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of titleabbrev.element -->
+ <xs:attributeGroup name="titleabbrev.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="titleabbrev.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of titleabbrev.attlist -->
+ <!-- end of titleabbrev.module -->
+ <xs:attributeGroup name="subtitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The subtitle of a document. -->
+ <xs:element name="subtitle">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="title.char.mix"/>
+ <xs:attributeGroup ref="subtitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of subtitle.element -->
+ <xs:attributeGroup name="subtitle.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="subtitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of subtitle.attlist -->
+ <!-- end of subtitle.module -->
+ <!-- ...................................................................... -->
+ <!-- Bibliographic entities and elements .................................. -->
+ <!--
+ The bibliographic elements are typically used in the document
+ hierarchy. They do not appear in content models of information
+ pool elements. See also the document information elements,
+ below.
+ -->
+ <xs:group name="person.ident.mix">
+ <xs:choice>
+ <xs:element ref="honorific"/>
+ <xs:element ref="firstname"/>
+ <xs:element ref="surname"/>
+ <xs:element ref="lineage"/>
+ <xs:element ref="othername"/>
+ <xs:element ref="affiliation"/>
+ <xs:element ref="authorblurb"/>
+ <xs:element ref="contrib"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="bibliocomponent.mix">
+ <xs:choice>
+ <xs:element ref="abbrev"/>
+ <xs:element ref="abstract"/>
+ <xs:element ref="address"/>
+ <xs:element ref="artpagenums"/>
+ <xs:element ref="author"/>
+ <xs:element ref="authorgroup"/>
+ <xs:element ref="authorinitials"/>
+ <xs:element ref="bibliomisc"/>
+ <xs:element ref="biblioset"/>
+ <xs:element ref="collab"/>
+ <xs:element ref="confgroup"/>
+ <xs:element ref="contractnum"/>
+ <xs:element ref="contractsponsor"/>
+ <xs:element ref="copyright"/>
+ <xs:element ref="corpauthor"/>
+ <xs:element ref="corpname"/>
+ <xs:element ref="corpcredit"/>
+ <xs:element ref="date"/>
+ <xs:element ref="edition"/>
+ <xs:element ref="editor"/>
+ <xs:element ref="invpartnumber"/>
+ <xs:element ref="isbn"/>
+ <xs:element ref="issn"/>
+ <xs:element ref="issuenum"/>
+ <xs:element ref="orgname"/>
+ <xs:element ref="biblioid"/>
+ <xs:element ref="citebiblioid"/>
+ <xs:element ref="bibliosource"/>
+ <xs:element ref="bibliorelation"/>
+ <xs:element ref="bibliocoverage"/>
+ <xs:element ref="othercredit"/>
+ <xs:element ref="pagenums"/>
+ <xs:element ref="printhistory"/>
+ <xs:element ref="productname"/>
+ <xs:element ref="productnumber"/>
+ <xs:element ref="pubdate"/>
+ <xs:element ref="publisher"/>
+ <xs:element ref="publishername"/>
+ <xs:element ref="pubsnumber"/>
+ <xs:element ref="releaseinfo"/>
+ <xs:element ref="revhistory"/>
+ <xs:element ref="seriesvolnums"/>
+ <xs:element ref="subtitle"/>
+ <xs:element ref="title"/>
+ <xs:element ref="titleabbrev"/>
+ <xs:element ref="volumenum"/>
+ <xs:element ref="citetitle"/>
+ <xs:element ref="personname"/>
+ <xs:group ref="person.ident.mix"/>
+ <xs:element ref="ndxterm.class"/>
+ </xs:choice>
+ </xs:group>
+ <!-- I don't think this is well placed, but it needs to be here because of -->
+ <!-- the reference to bibliocomponent.mix -->
+ <xs:group name="info.class">
+ <xs:choice>
+ <xs:element ref="graphic"/>
+ <xs:element ref="mediaobject"/>
+ <xs:element ref="legalnotice"/>
+ <xs:element ref="modespec"/>
+ <xs:element ref="subjectset"/>
+ <xs:element ref="keywordset"/>
+ <xs:element ref="itermset"/>
+ <xs:group ref="bibliocomponent.mix"/>
+ </xs:choice>
+ </xs:group>
+ <!-- BiblioList ........................ -->
+ <xs:attributeGroup name="bibliolist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for a set of bibliography entries. -->
+ <xs:element name="bibliolist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="biblioentry"/>
+ <xs:element ref="bibliomixed"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="bibliolist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliolist.element -->
+ <xs:attributeGroup name="bibliolist.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliolist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliolist.attlist -->
+ <!-- end of bibliolist.module -->
+ <xs:attributeGroup name="biblioentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a Bibliography. -->
+ <xs:element name="biblioentry">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="articleinfo"/>
+ <xs:group ref="bibliocomponent.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="biblioentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of biblioentry.element -->
+ <xs:attributeGroup name="biblioentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="biblioentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of biblioentry.attlist -->
+ <!-- end of biblioentry.module -->
+ <xs:attributeGroup name="bibliomixed.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a Bibliography. -->
+ <xs:element name="bibliomixed">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="bibliocomponent.mix"/>
+ <xs:element ref="bibliomset"/>
+ </xs:choice>
+ <xs:attributeGroup ref="bibliomixed.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliomixed.element -->
+ <xs:attributeGroup name="bibliomixed.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliomixed.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliomixed.attlist -->
+ <!-- end of bibliomixed.module -->
+ <xs:attributeGroup name="articleinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for an Article. -->
+ <xs:element name="articleinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="articleinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of articleinfo.element -->
+ <xs:attributeGroup name="articleinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="articleinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of articleinfo.attlist -->
+ <!-- end of articleinfo.module -->
+ <xs:attributeGroup name="biblioset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A "raw" container for related bibliographic information. -->
+ <xs:element name="biblioset">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="bibliocomponent.mix"/>
+ <xs:attributeGroup ref="biblioset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of biblioset.element -->
+ <!-- Relation: Relationship of elements contained within BiblioSet -->
+ <xs:attributeGroup name="biblioset.attlist">
+ <xs:attribute name="relation"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="biblioset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of biblioset.attlist -->
+ <!-- end of biblioset.module -->
+ <xs:attributeGroup name="bibliomset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A "cooked" container for related bibliographic information. -->
+ <xs:element name="bibliomset">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="bibliocomponent.mix"/>
+ <xs:element ref="bibliomset"/>
+ </xs:choice>
+ <xs:attributeGroup ref="bibliomset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliomset.element -->
+ <!-- Relation: Relationship of elements contained within BiblioMSet -->
+ <xs:attributeGroup name="bibliomset.attlist">
+ <xs:attribute name="relation"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliomset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliomset.attlist -->
+ <!-- end of bibliomset.module -->
+ <xs:attributeGroup name="bibliomisc.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Untyped bibliographic information. -->
+ <xs:element name="bibliomisc">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="bibliomisc.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliomisc.element -->
+ <xs:attributeGroup name="bibliomisc.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliomisc.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliomisc.attlist -->
+ <!-- end of bibliomisc.module -->
+ <!-- ...................................................................... -->
+ <!-- Subject, Keyword, and ITermSet elements .............................. -->
+ <xs:attributeGroup name="subjectset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A set of terms describing the subject matter of a document. -->
+ <xs:element name="subjectset">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="subject"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="subjectset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of subjectset.element -->
+ <!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+ <xs:attributeGroup name="subjectset.attlist">
+ <xs:attribute name="scheme" type="xs:NMTOKEN"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="subjectset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of subjectset.attlist -->
+ <!-- end of subjectset.module -->
+ <xs:attributeGroup name="subject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:One of a group of terms describing the subject matter of a document. -->
+ <xs:element name="subject">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="subjectterm"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="subject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of subject.element -->
+ <!--
+ Weight: Ranking of this group of SubjectTerms relative
+ to others, 0 is low, no highest value specified
+ -->
+ <xs:attributeGroup name="subject.attlist">
+ <xs:attribute name="weight"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="subject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of subject.attlist -->
+ <!-- end of subject.module -->
+ <xs:attributeGroup name="subjectterm.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A term in a group of terms describing the subject matter of a document. -->
+ <xs:element name="subjectterm">
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="subjectterm.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of subjectterm.element -->
+ <xs:attributeGroup name="subjectterm.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="subjectterm.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of subjectterm.attlist -->
+ <!-- end of subjectterm.module -->
+ <!-- end of subjectset.content.module -->
+ <xs:attributeGroup name="keywordset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A set of keywords describing the content of a document. -->
+ <xs:element name="keywordset">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="keyword"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="keywordset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keywordset.element -->
+ <xs:attributeGroup name="keywordset.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keywordset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keywordset.attlist -->
+ <!-- end of keywordset.module -->
+ <xs:attributeGroup name="keyword.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:One of a set of keywords describing the content of a document. -->
+ <xs:element name="keyword">
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="keyword.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keyword.element -->
+ <xs:attributeGroup name="keyword.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keyword.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keyword.attlist -->
+ <!-- end of keyword.module -->
+ <!-- end of keywordset.content.module -->
+ <xs:attributeGroup name="itermset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A set of index terms in the meta-information of a document. -->
+ <xs:element name="itermset">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="indexterm"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="itermset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of itermset.element -->
+ <xs:attributeGroup name="itermset.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="itermset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of itermset.attlist -->
+ <!-- end of itermset.module -->
+ <!-- Bibliographic info for "blocks" -->
+ <xs:attributeGroup name="blockinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a block element. -->
+ <xs:element name="blockinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="blockinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of blockinfo.element -->
+ <xs:attributeGroup name="blockinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="blockinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of blockinfo.attlist -->
+ <!-- end of blockinfo.module -->
+ <!-- ...................................................................... -->
+ <!-- Compound (section-ish) elements ...................................... -->
+ <!-- Message set ...................... -->
+ <xs:attributeGroup name="msgset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A detailed set of messages, usually error messages. -->
+ <xs:element name="msgset" substitutionGroup="compound.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="msgentry"/>
+ <xs:element maxOccurs="unbounded" ref="simplemsgentry"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgset.element -->
+ <xs:attributeGroup name="msgset.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgset.attlist -->
+ <!-- end of msgset.module -->
+ <xs:attributeGroup name="msgentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for an entry in a message set. -->
+ <xs:element name="msgentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="msg"/>
+ <xs:element minOccurs="0" ref="msginfo"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="msgexplan"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgentry.element -->
+ <xs:attributeGroup name="msgentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgentry.attlist -->
+ <!-- end of msgentry.module -->
+ <xs:attributeGroup name="simplemsgentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for a simpler entry in a message set. -->
+ <xs:element name="simplemsgentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="msgtext"/>
+ <xs:element maxOccurs="unbounded" ref="msgexplan"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="simplemsgentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of simplemsgentry.element -->
+ <xs:attributeGroup name="simplemsgentry.attlist">
+ <xs:attribute name="audience"/>
+ <xs:attribute name="level"/>
+ <xs:attribute name="origin"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="simplemsgentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of simplemsgentry.attlist -->
+ <!-- end of simplemsgentry.module -->
+ <xs:attributeGroup name="msg.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A message in a message set. -->
+ <xs:element name="msg">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element ref="msgmain"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="msgsub"/>
+ <xs:element ref="msgrel"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="msg.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msg.element -->
+ <xs:attributeGroup name="msg.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msg.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msg.attlist -->
+ <!-- end of msg.module -->
+ <xs:attributeGroup name="msgmain.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The primary component of a message in a message set. -->
+ <xs:element name="msgmain">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element ref="msgtext"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgmain.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgmain.element -->
+ <xs:attributeGroup name="msgmain.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgmain.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgmain.attlist -->
+ <!-- end of msgmain.module -->
+ <xs:attributeGroup name="msgsub.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subcomponent of a message in a message set. -->
+ <xs:element name="msgsub">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element ref="msgtext"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgsub.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgsub.element -->
+ <xs:attributeGroup name="msgsub.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgsub.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgsub.attlist -->
+ <!-- end of msgsub.module -->
+ <xs:attributeGroup name="msgrel.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A related component of a message in a message set. -->
+ <xs:element name="msgrel">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element ref="msgtext"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgrel.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgrel.element -->
+ <xs:attributeGroup name="msgrel.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgrel.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgrel.attlist -->
+ <!-- end of msgrel.module -->
+ <!-- MsgText (defined in the Inlines section, below) -->
+ <xs:attributeGroup name="msginfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information about a message in a message set. -->
+ <xs:element name="msginfo">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="msglevel"/>
+ <xs:element ref="msgorig"/>
+ <xs:element ref="msgaud"/>
+ </xs:choice>
+ <xs:attributeGroup ref="msginfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msginfo.element -->
+ <xs:attributeGroup name="msginfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msginfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msginfo.attlist -->
+ <!-- end of msginfo.module -->
+ <xs:attributeGroup name="msglevel.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The level of importance or severity of a message in a message set. -->
+ <xs:element name="msglevel">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="msglevel.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msglevel.element -->
+ <xs:attributeGroup name="msglevel.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msglevel.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msglevel.attlist -->
+ <!-- end of msglevel.module -->
+ <xs:attributeGroup name="msgorig.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The origin of a message in a message set. -->
+ <xs:element name="msgorig">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="msgorig.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgorig.element -->
+ <xs:attributeGroup name="msgorig.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgorig.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgorig.attlist -->
+ <!-- end of msgorig.module -->
+ <xs:attributeGroup name="msgaud.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The audience to which a message in a message set is relevant. -->
+ <xs:element name="msgaud">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="msgaud.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgaud.element -->
+ <xs:attributeGroup name="msgaud.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgaud.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgaud.attlist -->
+ <!-- end of msgaud.module -->
+ <xs:attributeGroup name="msgexplan.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Explanatory material relating to a message in a message set. -->
+ <xs:element name="msgexplan">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="msgexplan.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgexplan.element -->
+ <xs:attributeGroup name="msgexplan.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgexplan.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgexplan.attlist -->
+ <!-- end of msgexplan.module -->
+ <!-- end of msgset.content.module -->
+ <xs:attributeGroup name="task.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A task to be completed. -->
+ <xs:element name="task" substitutionGroup="compound.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:group ref="formalobject.title.content"/>
+ <xs:element minOccurs="0" ref="tasksummary"/>
+ <xs:element minOccurs="0" ref="taskprerequisites"/>
+ <xs:element ref="procedure"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="example"/>
+ <xs:element minOccurs="0" ref="taskrelated"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="task.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of task.element -->
+ <xs:attributeGroup name="task.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="task.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of task.attlist -->
+ <!-- end of task.module -->
+ <xs:attributeGroup name="tasksummary.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A summary of a task. -->
+ <xs:element name="tasksummary">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tasksummary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tasksummary.element -->
+ <xs:attributeGroup name="tasksummary.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tasksummary.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tasksummary.attlist -->
+ <!-- end of tasksummary.module -->
+ <xs:attributeGroup name="taskprerequisites.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The prerequisites for a task. -->
+ <xs:element name="taskprerequisites">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="taskprerequisites.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of taskprerequisites.element -->
+ <xs:attributeGroup name="taskprerequisites.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="taskprerequisites.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of taskprerequisites.attlist -->
+ <!-- end of taskprerequisites.module -->
+ <xs:attributeGroup name="taskrelated.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information related to a task. -->
+ <xs:element name="taskrelated">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="taskrelated.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of taskrelated.element -->
+ <xs:attributeGroup name="taskrelated.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="taskrelated.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of taskrelated.attlist -->
+ <!-- end of taskrelated.module -->
+ <!-- end of task.content.module -->
+ <!-- QandASet ........................ -->
+ <xs:attributeGroup name="qandaset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A question-and-answer set. -->
+ <xs:element name="qandaset" substitutionGroup="compound.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="qandaset.mix"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="qandadiv"/>
+ <xs:element maxOccurs="unbounded" ref="qandaentry"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="qandaset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of qandaset.element -->
+ <xs:attributeGroup name="qandaset.attlist">
+ <xs:attribute name="defaultlabel">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="qanda"/>
+ <xs:enumeration value="number"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="qandaset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of qandaset.attlist -->
+ <!-- end of qandaset.module -->
+ <xs:attributeGroup name="qandadiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A titled division in a QandASet. -->
+ <xs:element name="qandadiv">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="qandaset.mix"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="qandadiv"/>
+ <xs:element maxOccurs="unbounded" ref="qandaentry"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="qandadiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of qandadiv.element -->
+ <xs:attributeGroup name="qandadiv.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="qandadiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of qandadiv.attlist -->
+ <!-- end of qandadiv.module -->
+ <xs:attributeGroup name="qandaentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A question/answer set within a QandASet. -->
+ <xs:element name="qandaentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:element minOccurs="0" ref="revhistory"/>
+ <xs:element ref="question"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="answer"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="qandaentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of qandaentry.element -->
+ <xs:attributeGroup name="qandaentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="qandaentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of qandaentry.attlist -->
+ <!-- end of qandaentry.module -->
+ <xs:attributeGroup name="question.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A question in a QandASet. -->
+ <xs:element name="question">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="label"/>
+ <xs:group maxOccurs="unbounded" ref="qandaset.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="question.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of question.element -->
+ <xs:attributeGroup name="question.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="question.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of question.attlist -->
+ <!-- end of question.module -->
+ <xs:attributeGroup name="answer.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An answer to a question posed in a QandASet. -->
+ <xs:element name="answer">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="label"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="qandaset.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="qandaentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="answer.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of answer.element -->
+ <xs:attributeGroup name="answer.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="answer.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of answer.attlist -->
+ <!-- end of answer.module -->
+ <xs:attributeGroup name="label.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A label on a Question or Answer. -->
+ <xs:element name="label">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="word.char.mix"/>
+ <xs:attributeGroup ref="label.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of label.element -->
+ <xs:attributeGroup name="label.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="label.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of label.attlist -->
+ <!-- end of label.module -->
+ <!-- end of qandaset.content.module -->
+ <!-- Procedure ........................ -->
+ <xs:attributeGroup name="procedure.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list of operations to be performed in a well-defined sequence. -->
+ <xs:element name="procedure" substitutionGroup="compound.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ <xs:element maxOccurs="unbounded" ref="step"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="procedure.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of procedure.element -->
+ <xs:attributeGroup name="procedure.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="procedure.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of procedure.attlist -->
+ <!-- end of procedure.module -->
+ <xs:attributeGroup name="step.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A unit of action in a procedure. -->
+ <xs:element name="step">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ <xs:sequence minOccurs="0">
+ <xs:choice>
+ <xs:element ref="substeps"/>
+ <xs:element ref="stepalternatives"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="substeps"/>
+ <xs:element ref="stepalternatives"/>
+ </xs:choice>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="step.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of step.element -->
+ <!-- Performance: Whether the Step must be performed -->
+ <!-- not #REQUIRED! -->
+ <xs:attributeGroup name="step.attlist">
+ <xs:attribute name="performance" default="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="optional"/>
+ <xs:enumeration value="required"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="step.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of step.attlist -->
+ <!-- end of step.module -->
+ <xs:attributeGroup name="substeps.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for steps that occur within steps in a procedure. -->
+ <xs:element name="substeps">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="step"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="substeps.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of substeps.element -->
+ <!-- Performance: whether entire set of substeps must be performed -->
+ <!-- not #REQUIRED! -->
+ <xs:attributeGroup name="substeps.attlist">
+ <xs:attribute name="performance" default="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="optional"/>
+ <xs:enumeration value="required"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="substeps.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of substeps.attlist -->
+ <!-- end of substeps.module -->
+ <xs:attributeGroup name="stepalternatives.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Alternative steps in a procedure. -->
+ <xs:element name="stepalternatives">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="step"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="stepalternatives.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of stepalternatives.element -->
+ <!-- Performance: Whether (one of) the alternatives must be performed -->
+ <!-- not #REQUIRED! -->
+ <xs:attributeGroup name="stepalternatives.attlist">
+ <xs:attribute name="performance" default="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="optional"/>
+ <xs:enumeration value="required"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="stepalternatives.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of stepalternatives.attlist -->
+ <!-- end of stepalternatives.module -->
+ <!-- end of procedure.content.module -->
+ <!-- Sidebar .......................... -->
+ <xs:attributeGroup name="sidebarinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for a Sidebar. -->
+ <xs:element name="sidebarinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="sidebarinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sidebarinfo.element -->
+ <xs:attributeGroup name="sidebarinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sidebarinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sidebarinfo.attlist -->
+ <!-- end of sidebarinfo.module -->
+ <xs:attributeGroup name="sidebar.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A portion of a document that is isolated from the main narrative flow. -->
+ <xs:element name="sidebar" substitutionGroup="compound.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="sidebarinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="sidebar.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sidebar.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sidebar.element -->
+ <xs:attributeGroup name="sidebar.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sidebar.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sidebar.attlist -->
+ <!-- end of sidebar.module -->
+ <!-- end of sidebar.content.model -->
+ <!-- ...................................................................... -->
+ <!-- Paragraph-related elements ........................................... -->
+ <xs:attributeGroup name="abstract.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A summary. -->
+ <xs:element name="abstract">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element maxOccurs="unbounded" ref="para.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="abstract.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of abstract.element -->
+ <xs:attributeGroup name="abstract.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="abstract.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of abstract.attlist -->
+ <!-- end of abstract.module -->
+ <xs:attributeGroup name="authorblurb.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A short description or note about an author. -->
+ <xs:element name="authorblurb">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element maxOccurs="unbounded" ref="para.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="authorblurb.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of authorblurb.element -->
+ <xs:attributeGroup name="authorblurb.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="authorblurb.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of authorblurb.attlist -->
+ <!-- end of authorblurb.module -->
+ <xs:attributeGroup name="personblurb.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A short description or note about a person. -->
+ <xs:element name="personblurb">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element maxOccurs="unbounded" ref="para.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="personblurb.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of personblurb.element -->
+ <xs:attributeGroup name="personblurb.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="personblurb.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of personblurb.attlist -->
+ <!-- end of personblurb.module -->
+ <xs:attributeGroup name="blockquote.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A quotation set off from the main text. -->
+ <xs:element name="blockquote" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:element minOccurs="0" ref="attribution"/>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="blockquote.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of blockquote.element -->
+ <xs:attributeGroup name="blockquote.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="blockquote.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of blockquote.attlist -->
+ <!-- end of blockquote.module -->
+ <xs:attributeGroup name="attribution.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The source of a block quote or epigraph. -->
+ <xs:element name="attribution">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="attribution.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of attribution.element -->
+ <xs:attributeGroup name="attribution.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="attribution.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of attribution.attlist -->
+ <!-- end of attribution.module -->
+ <xs:attributeGroup name="bridgehead.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A free-floating heading. -->
+ <xs:element name="bridgehead">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="title.char.mix"/>
+ <xs:attributeGroup ref="bridgehead.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bridgehead.element -->
+ <!--
+ Renderas: Indicates the format in which the BridgeHead
+ should appear
+ -->
+ <xs:attributeGroup name="bridgehead.attlist">
+ <xs:attribute name="renderas">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="other"/>
+ <xs:enumeration value="sect1"/>
+ <xs:enumeration value="sect2"/>
+ <xs:enumeration value="sect3"/>
+ <xs:enumeration value="sect4"/>
+ <xs:enumeration value="sect5"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bridgehead.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bridgehead.attlist -->
+ <!-- end of bridgehead.module -->
+ <xs:attributeGroup name="remark.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A remark (or comment) intended for presentation in a draft manuscript. -->
+ <xs:element name="remark">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="remark.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of remark.element -->
+ <xs:attributeGroup name="remark.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="remark.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of remark.attlist -->
+ <!-- end of remark.module -->
+ <xs:attributeGroup name="epigraph.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A short inscription at the beginning of a document or component. -->
+ <xs:element name="epigraph">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="attribution"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="para.class"/>
+ <xs:element ref="literallayout"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="epigraph.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of epigraph.element -->
+ <xs:attributeGroup name="epigraph.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="epigraph.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of epigraph.attlist -->
+ <!-- Attribution (defined above) -->
+ <!-- end of epigraph.module -->
+ <xs:attributeGroup name="footnote.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A footnote. -->
+ <xs:element name="footnote" substitutionGroup="gen.char.class">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="footnote.mix"/>
+ <xs:attributeGroup ref="footnote.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of footnote.element -->
+ <xs:attributeGroup name="footnote.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="footnote.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of footnote.attlist -->
+ <!-- end of footnote.module -->
+ <xs:attributeGroup name="highlights.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A summary of the main points of the discussed component. -->
+ <xs:element name="highlights">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="highlights.mix"/>
+ <xs:attributeGroup ref="highlights.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of highlights.element -->
+ <xs:attributeGroup name="highlights.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="highlights.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of highlights.attlist -->
+ <!-- end of highlights.module -->
+ <xs:attributeGroup name="formalpara.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph with a title. -->
+ <xs:element name="formalpara" substitutionGroup="para.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="title"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:element ref="para"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="formalpara.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of formalpara.element -->
+ <xs:attributeGroup name="formalpara.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="formalpara.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of formalpara.attlist -->
+ <!-- end of formalpara.module -->
+ <xs:attributeGroup name="para.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph. -->
+ <xs:element name="para" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:group ref="para.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="para.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of para.element -->
+ <xs:attributeGroup name="para.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="para.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of para.attlist -->
+ <!-- end of para.module -->
+ <xs:attributeGroup name="simpara.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph that contains only text and inline markup, no block elements. -->
+ <xs:element name="simpara" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="simpara.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of simpara.element -->
+ <xs:attributeGroup name="simpara.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="simpara.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of simpara.attlist -->
+ <!-- end of simpara.module -->
+ <xs:attributeGroup name="sconstruct.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An SConstruct example file. -->
+ <xs:element name="sconstruct" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="sconstruct.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sconstruct.element -->
+ <xs:attributeGroup name="sconstruct.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sconstruct.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sconstruct.attlist -->
+ <!-- end of sconstruct.module -->
+ <xs:attributeGroup name="scons_example.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An SCons example. -->
+ <xs:element name="scons_example" substitutionGroup="linespecific.class">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="file"/>
+ <xs:element ref="directory"/>
+ </xs:choice>
+ <xs:attributeGroup ref="scons_example.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of scons_example.element -->
+ <xs:attributeGroup name="scons_example.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="scons_example.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="printme" type="xs:int" use="optional" />
+ </xs:attributeGroup>
+ <!-- end of scons_example.attlist -->
+ <!-- end of scons_example.module -->
+ <xs:attributeGroup name="file.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An SCons example file. -->
+ <xs:element name="file" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="file.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of file.element -->
+ <xs:attributeGroup name="file.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="file.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="example" type="xs:string" use="optional" />
+ <xs:attribute name="chmod" type="xs:string" use="optional" />
+ <xs:attribute name="printme" type="xs:int" use="optional" />
+ </xs:attributeGroup>
+ <!-- end of file.attlist -->
+ <!-- end of file.module -->
+ <xs:attributeGroup name="directory.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An SCons example directory. -->
+ <xs:element name="directory" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="directory.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of directory.element -->
+ <xs:attributeGroup name="directory.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="directory.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of directory.attlist -->
+ <!-- end of directory.module -->
+ <xs:attributeGroup name="scons_example_file.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A SCons example file. -->
+ <xs:element name="scons_example_file" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="scons_example_file.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of scons_example_file.element -->
+ <xs:attributeGroup name="scons_example_file.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="scons_example_file.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="example" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of scons_example_file.attlist -->
+ <!-- end of scons_example_file.module -->
+ <xs:attributeGroup name="scons_output.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The output of a SCons command/example. -->
+ <xs:element name="scons_output" substitutionGroup="linespecific.class">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="scons_output_command"/>
+ </xs:choice>
+ <xs:attributeGroup ref="scons_output.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of scons_output.element -->
+ <xs:attributeGroup name="scons_output.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="scons_output.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="tools" type="xs:string" />
+ <xs:attribute name="example" type="xs:string" use="required" />
+ <xs:attribute name="suffix" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of scons_output.attlist -->
+ <!-- end of scons_output.module -->
+ <xs:attributeGroup name="scons_output_command.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A SCons example file. -->
+ <xs:element name="scons_output_command" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="scons_output_command.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of scons_output_command.element -->
+ <xs:attributeGroup name="scons_output_command.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="scons_output_command.role.attrib"/>
+ <xs:attribute name="edit" type="xs:string" use="optional" />
+ <xs:attribute name="environment" type="xs:string" use="optional" />
+ <xs:attribute name="output" type="xs:string" use="optional" />
+ </xs:attributeGroup>
+ <!-- end of scons_output_command.attlist -->
+ <!-- end of scons_output_command.module -->
+ <xs:attributeGroup name="sconsdoc.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A sconsdoc. -->
+ <xs:element name="sconsdoc" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="tool"/>
+ <xs:element ref="builder"/>
+ <xs:element ref="scons_function"/>
+ <xs:element ref="cvar"/>
+ </xs:choice>
+ <xs:attributeGroup ref="sconsdoc.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sconsdoc.element -->
+ <xs:attributeGroup name="sconsdoc.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sconsdoc.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sconsdoc.attlist -->
+ <!-- end of sconsdoc.module -->
+ <xs:attributeGroup name="example_commands.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Text that a user sees or might see on a computer screen. -->
+ <xs:element name="example_commands" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="example_commands.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of example_commands.element -->
+ <xs:attributeGroup name="example_commands.attlist">
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="example_commands.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of example_commands.attlist -->
+ <!-- end of example_commands.module -->
+ <xs:attributeGroup name="summary.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A summary. -->
+ <xs:element name="summary" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="component.mix"/>
+ <xs:group ref="summary.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="summary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of summary.element -->
+ <xs:attributeGroup name="summary.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="summary.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of summary.attlist -->
+ <!-- end of summary.module -->
+
+ <xs:attributeGroup name="item.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A item. -->
+ <xs:element name="item">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="item.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of item.element -->
+ <xs:attributeGroup name="item.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="item.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of item.attlist -->
+ <!-- end of item.module -->
+ <xs:attributeGroup name="sets.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list in which each entry is marked with a bullet or other dingbat. -->
+ <xs:element name="sets" substitutionGroup="list.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="listpreamble.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="sets.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sets.element -->
+ <!--
+ Spacing: Whether the vertical space in the list should be
+ compressed
+ -->
+ <!--
+ Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific
+ -->
+ <xs:attributeGroup name="sets.attlist">
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="mark.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sets.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sets.attlist -->
+ <!-- end of sets.module -->
+ <xs:attributeGroup name="uses.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list in which each entry is marked with a bullet or other dingbat. -->
+ <xs:element name="uses" substitutionGroup="list.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="listpreamble.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="item"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="uses.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of uses.element -->
+ <!--
+ Spacing: Whether the vertical space in the list should be
+ compressed
+ -->
+ <!--
+ Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific
+ -->
+ <xs:attributeGroup name="uses.attlist">
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="mark.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="uses.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of uses.attlist -->
+ <!-- end of uses.module -->
+ <xs:attributeGroup name="tool.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph. -->
+ <xs:element name="tool" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.mix"/>
+ <xs:group ref="tool.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="tool.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tool.element -->
+ <xs:attributeGroup name="tool.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="tool.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of tool.attlist -->
+ <!-- end of tool.module -->
+ <xs:attributeGroup name="builder.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph. -->
+ <xs:element name="builder" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.mix"/>
+ <xs:group ref="tool.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="builder.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of builder.element -->
+ <xs:attributeGroup name="builder.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="builder.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of builder.attlist -->
+ <!-- end of builder.module -->
+
+ <xs:attributeGroup name="cvar.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph. -->
+ <xs:element name="cvar" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.mix"/>
+ <xs:element ref="summary"/>
+ </xs:choice>
+ <xs:attributeGroup ref="cvar.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of cvar.element -->
+ <xs:attributeGroup name="cvar.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="cvar.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of cvar.attlist -->
+ <!-- end of cvar.module -->
+ <xs:attributeGroup name="arguments.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A general-purpose element for representing the syntax of commands or functions. -->
+ <xs:element name="arguments" substitutionGroup="synop.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="graphic"/>
+ <xs:element ref="mediaobject"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="arguments.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of arguments.element -->
+ <xs:attributeGroup name="arguments.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="arguments.role.attrib"/>
+ <xs:attribute name="signature" type="xs:string" use="optional" />
+ <xs:attribute name="both" type="xs:string" use="optional" />
+ </xs:attributeGroup>
+ <!-- end of arguments.attlist -->
+ <!-- end of arguments.module -->
+ <xs:attributeGroup name="scons_function.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A paragraph. -->
+ <xs:element name="scons_function" substitutionGroup="para.class">
+ <xs:complexType mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ TODO
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:group ref="para.mix"/>
+ <xs:group ref="scons_function.mix"/>
+ </xs:choice>
+ <xs:attributeGroup ref="scons_function.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of scons_function.element -->
+ <xs:attributeGroup name="scons_function.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="scons_function.role.attrib"/>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:attributeGroup>
+ <!-- end of scons_function.attlist -->
+ <!-- end of scons_function.module -->
+ <xs:attributeGroup name="admon.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A note of caution. -->
+ <xs:element name="caution" substitutionGroup="admon.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="admon.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="caution.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of caution.element -->
+ <xs:attributeGroup name="caution.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="admon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of caution.attlist -->
+ <!-- doc:An admonition set off from the text. -->
+ <xs:element name="important" substitutionGroup="admon.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="admon.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="important.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of important.element -->
+ <xs:attributeGroup name="important.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="admon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of important.attlist -->
+ <!-- doc:A message set off from the text. -->
+ <xs:element name="note" substitutionGroup="admon.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="admon.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="note.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of note.element -->
+ <xs:attributeGroup name="note.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="admon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of note.attlist -->
+ <!-- doc:A suggestion to the user, set off from the text. -->
+ <xs:element name="tip" substitutionGroup="admon.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="admon.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="tip.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tip.element -->
+ <xs:attributeGroup name="tip.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="admon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tip.attlist -->
+ <!-- doc:An admonition set off from the text. -->
+ <xs:element name="warning" substitutionGroup="admon.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="admon.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="warning.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of warning.element -->
+ <xs:attributeGroup name="warning.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="admon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of warning.attlist -->
+ <!-- end of admon.module -->
+ <!-- ...................................................................... -->
+ <!-- Lists ................................................................ -->
+ <!-- GlossList ........................ -->
+ <xs:attributeGroup name="glosslist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for a set of GlossEntrys. -->
+ <xs:element name="glosslist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:element maxOccurs="unbounded" ref="glossentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="glosslist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glosslist.element -->
+ <xs:attributeGroup name="glosslist.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glosslist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glosslist.attlist -->
+ <!-- end of glosslist.module -->
+ <xs:attributeGroup name="glossentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry in a Glossary or GlossList. -->
+ <xs:element name="glossentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="glossterm"/>
+ <xs:element minOccurs="0" ref="acronym"/>
+ <xs:element minOccurs="0" ref="abbrev"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:element minOccurs="0" ref="revhistory"/>
+ <xs:choice>
+ <xs:element ref="glosssee"/>
+ <xs:element maxOccurs="unbounded" ref="glossdef"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="glossentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossentry.element -->
+ <!--
+ SortAs: String by which the GlossEntry is to be sorted
+ (alphabetized) in lieu of its proper content
+ -->
+ <xs:attributeGroup name="glossentry.attlist">
+ <xs:attribute name="sortas"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossentry.attlist -->
+ <!-- end of glossentry.module -->
+ <!-- GlossTerm (defined in the Inlines section, below) -->
+ <xs:attributeGroup name="glossdef.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A definition in a GlossEntry. -->
+ <xs:element name="glossdef">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group maxOccurs="unbounded" ref="glossdef.mix"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="glossseealso"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="glossdef.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossdef.element -->
+ <!-- Subject: List of subjects; keywords for the definition -->
+ <xs:attributeGroup name="glossdef.attlist">
+ <xs:attribute name="subject"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossdef.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossdef.attlist -->
+ <!-- end of glossdef.module -->
+ <xs:attributeGroup name="glosssee.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross-reference from one GlossEntry to another. -->
+ <xs:element name="glosssee">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="glosssee.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glosssee.element -->
+ <!--
+ OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSee
+ -->
+ <xs:attributeGroup name="glosssee.attlist">
+ <xs:attribute name="otherterm" type="xs:IDREF"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glosssee.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glosssee.attlist -->
+ <!-- end of glosssee.module -->
+ <xs:attributeGroup name="glossseealso.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross-reference from one GlossEntry to another. -->
+ <xs:element name="glossseealso">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="glossseealso.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossseealso.element -->
+ <!--
+ OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSeeAlso
+ -->
+ <xs:attributeGroup name="glossseealso.attlist">
+ <xs:attribute name="otherterm" type="xs:IDREF"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossseealso.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossseealso.attlist -->
+ <!-- end of glossseealso.module -->
+ <!-- end of glossentry.content.module -->
+ <!-- ItemizedList and OrderedList ..... -->
+ <xs:attributeGroup name="itemizedlist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list in which each entry is marked with a bullet or other dingbat. -->
+ <xs:element name="itemizedlist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="listpreamble.mix"/>
+ <xs:element maxOccurs="unbounded" ref="listitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="itemizedlist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of itemizedlist.element -->
+ <!--
+ Spacing: Whether the vertical space in the list should be
+ compressed
+ -->
+ <!--
+ Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific
+ -->
+ <xs:attributeGroup name="itemizedlist.attlist">
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="mark.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="itemizedlist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of itemizedlist.attlist -->
+ <!-- end of itemizedlist.module -->
+ <xs:attributeGroup name="orderedlist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list in which each entry is marked with a sequentially incremented label. -->
+ <xs:element name="orderedlist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="listpreamble.mix"/>
+ <xs:element maxOccurs="unbounded" ref="listitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="orderedlist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of orderedlist.element -->
+ <!--
+ Numeration: Style of ListItem numbered; default is expected
+ to be Arabic
+ -->
+ <!--
+ InheritNum: Specifies for a nested list that the numbering
+ of ListItems should include the number of the item
+ within which they are nested (e.g., 1a and 1b within 1,
+ rather than a and b)
+ -->
+ <!--
+ Continuation: Where list numbering begins afresh (Restarts,
+ the default) or continues that of the immediately preceding
+ list (Continues)
+ -->
+ <!--
+ Spacing: Whether the vertical space in the list should be
+ compressed
+ -->
+ <xs:attributeGroup name="orderedlist.attlist">
+ <xs:attribute name="numeration">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="arabic"/>
+ <xs:enumeration value="upperalpha"/>
+ <xs:enumeration value="loweralpha"/>
+ <xs:enumeration value="upperroman"/>
+ <xs:enumeration value="lowerroman"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="inheritnum" default="ignore">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="inherit"/>
+ <xs:enumeration value="ignore"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="continuation" default="restarts">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="continues"/>
+ <xs:enumeration value="restarts"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="orderedlist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of orderedlist.attlist -->
+ <!-- end of orderedlist.module -->
+ <xs:attributeGroup name="listitem.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for the elements of a list item. -->
+ <xs:element name="listitem">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ <xs:attributeGroup ref="listitem.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of listitem.element -->
+ <!--
+ Override: Indicates the mark to be used for this ListItem
+ instead of the default mark or the mark specified by
+ the Mark attribute on the enclosing ItemizedList
+ -->
+ <xs:attributeGroup name="listitem.attlist">
+ <xs:attribute name="override"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="listitem.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of listitem.attlist -->
+ <!-- end of listitem.module -->
+ <!-- SegmentedList .................... -->
+ <xs:attributeGroup name="segmentedlist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A segmented list, a list of sets of elements. -->
+ <xs:element name="segmentedlist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:element maxOccurs="unbounded" ref="segtitle"/>
+ <xs:element maxOccurs="unbounded" ref="seglistitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="segmentedlist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of segmentedlist.element -->
+ <xs:attributeGroup name="segmentedlist.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="segmentedlist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of segmentedlist.attlist -->
+ <!-- end of segmentedlist.module -->
+ <xs:attributeGroup name="segtitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of an element of a list item in a segmented list. -->
+ <xs:element name="segtitle">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="title.char.mix"/>
+ <xs:attributeGroup ref="segtitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of segtitle.element -->
+ <xs:attributeGroup name="segtitle.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="segtitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of segtitle.attlist -->
+ <!-- end of segtitle.module -->
+ <xs:attributeGroup name="seglistitem.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list item in a segmented list. -->
+ <xs:element name="seglistitem">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="seg"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="seglistitem.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seglistitem.element -->
+ <xs:attributeGroup name="seglistitem.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seglistitem.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of seglistitem.attlist -->
+ <!-- end of seglistitem.module -->
+ <xs:attributeGroup name="seg.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An element of a list item in a segmented list. -->
+ <xs:element name="seg">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="seg.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seg.element -->
+ <xs:attributeGroup name="seg.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seg.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of seg.attlist -->
+ <!-- end of seg.module -->
+ <!-- end of segmentedlist.content.module -->
+ <!-- SimpleList ....................... -->
+ <xs:attributeGroup name="simplelist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An undecorated list of single words or short phrases. -->
+ <xs:element name="simplelist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="member"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="simplelist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of simplelist.element -->
+ <!-- Columns: The number of columns the array should contain -->
+ <!--
+ Type: How the Members of the SimpleList should be
+ formatted: Inline (members separated with commas etc.
+ inline), Vert (top to bottom in n Columns), or Horiz (in
+ the direction of text flow) in n Columns. If Column
+ is 1 or implied, Type=Vert and Type=Horiz give the same
+ results.
+ -->
+ <xs:attributeGroup name="simplelist.attlist">
+ <xs:attribute name="columns"/>
+ <xs:attribute name="type" default="vert">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="inline"/>
+ <xs:enumeration value="vert"/>
+ <xs:enumeration value="horiz"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="simplelist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of simplelist.attlist -->
+ <!-- end of simplelist.module -->
+ <xs:attributeGroup name="member.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An element of a simple list. -->
+ <xs:element name="member">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="member.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of member.element -->
+ <xs:attributeGroup name="member.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="member.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of member.attlist -->
+ <!-- end of member.module -->
+ <!-- end of simplelist.content.module -->
+ <!-- VariableList ..................... -->
+ <xs:attributeGroup name="variablelist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list in which each entry is composed of a set of one or more terms and an associated description. -->
+ <xs:element name="variablelist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="listpreamble.mix"/>
+ <xs:element maxOccurs="unbounded" ref="varlistentry"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="variablelist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of variablelist.element -->
+ <!--
+ TermLength: Length beyond which the presentation engine
+ may consider the Term too long and select an alternate
+ presentation of the Term and, or, its associated ListItem.
+ -->
+ <xs:attributeGroup name="variablelist.attlist">
+ <xs:attribute name="termlength"/>
+ <xs:attribute name="spacing">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="normal"/>
+ <xs:enumeration value="compact"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="variablelist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of variablelist.attlist -->
+ <!-- end of variablelist.module -->
+ <xs:attributeGroup name="varlistentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for a set of terms and the associated description in a variable list. -->
+ <xs:element name="varlistentry">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="term"/>
+ <xs:element ref="listitem"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="varlistentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of varlistentry.element -->
+ <xs:attributeGroup name="varlistentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="varlistentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of varlistentry.attlist -->
+ <!-- end of varlistentry.module -->
+ <xs:attributeGroup name="term.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The word or phrase being defined or described in a variable list. -->
+ <xs:element name="term">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="term.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of term.element -->
+ <xs:attributeGroup name="term.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="term.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of term.attlist -->
+ <!-- end of term.module -->
+ <!-- ListItem (defined above) -->
+ <!-- end of variablelist.content.module -->
+ <!-- CalloutList ...................... -->
+ <xs:attributeGroup name="calloutlist.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A list of Callouts. -->
+ <xs:element name="calloutlist" substitutionGroup="list.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:element maxOccurs="unbounded" ref="callout"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="calloutlist.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of calloutlist.element -->
+ <xs:attributeGroup name="calloutlist.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="calloutlist.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of calloutlist.attlist -->
+ <!-- end of calloutlist.module -->
+ <xs:attributeGroup name="callout.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A &ldquo;called out&rdquo; description of a marked Area. -->
+ <xs:element name="callout">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ <xs:attributeGroup ref="callout.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of callout.element -->
+ <!--
+ AreaRefs: IDs of one or more Areas or AreaSets described
+ by this Callout
+ -->
+ <xs:attributeGroup name="callout.attlist">
+ <xs:attribute name="arearefs" use="required" type="xs:IDREFS"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="callout.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of callout.attlist -->
+ <!-- end of callout.module -->
+ <!-- end of calloutlist.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Objects .............................................................. -->
+ <!-- Examples etc. .................... -->
+ <xs:attributeGroup name="example.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A formal example, with a title. -->
+ <xs:element name="example" substitutionGroup="formal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group ref="formalobject.title.content"/>
+ <xs:group maxOccurs="unbounded" ref="example.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="example.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of example.element -->
+ <xs:attributeGroup name="example.attlist">
+ <xs:attribute name="floatstyle"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="example.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of example.attlist -->
+ <!-- end of example.module -->
+ <xs:attributeGroup name="informalexample.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A displayed example without a title. -->
+ <xs:element name="informalexample" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group maxOccurs="unbounded" ref="example.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="informalexample.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of informalexample.element -->
+ <xs:attributeGroup name="informalexample.attlist">
+ <xs:attribute name="floatstyle"/>
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="informalexample.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of informalexample.attlist -->
+ <!-- end of informalexample.module -->
+ <xs:attributeGroup name="programlistingco.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A program listing with associated areas used in callouts. -->
+ <xs:element name="programlistingco" substitutionGroup="linespecific.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="areaspec"/>
+ <xs:element ref="programlisting"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="calloutlist"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="programlistingco.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of programlistingco.element -->
+ <xs:attributeGroup name="programlistingco.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="programlistingco.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of programlistingco.attlist -->
+ <!-- CalloutList (defined above in Lists) -->
+ <!-- end of informalexample.module -->
+ <xs:attributeGroup name="areaspec.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A collection of regions in a graphic or code example. -->
+ <xs:element name="areaspec">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="area"/>
+ <xs:element ref="areaset"/>
+ </xs:choice>
+ <xs:attributeGroup ref="areaspec.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of areaspec.element -->
+ <!--
+ Units: global unit of measure in which coordinates in
+ this spec are expressed:
+
+ - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+ coordinates in a rectangle describing repro area in which
+ graphic is placed, where X and Y dimensions are each some
+ number 0..10000 (taken from CALS graphic attributes)
+
+ - LineColumn "line column": line number and column number
+ at which to start callout text in "linespecific" content
+
+ - LineRange "startline endline": whole lines from startline
+ to endline in "linespecific" content
+
+ - LineColumnPair "line1 col1 line2 col2": starting and ending
+ points of area in "linespecific" content that starts at
+ first position and ends at second position (including the
+ beginnings of any intervening lines)
+
+ - Other: directive to look at value of OtherUnits attribute
+ to get implementation-specific keyword
+
+ The default is implementation-specific; usually dependent on
+ the parent element (GraphicCO gets CALSPair, ProgramListingCO
+ and ScreenCO get LineColumn)
+ -->
+ <!-- OtherUnits: User-defined units -->
+ <xs:attributeGroup name="areaspec.attlist">
+ <xs:attribute name="units">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="calspair"/>
+ <xs:enumeration value="linecolumn"/>
+ <xs:enumeration value="linerange"/>
+ <xs:enumeration value="linecolumnpair"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherunits" type="xs:NMTOKEN"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="areaspec.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of areaspec.attlist -->
+ <!-- end of areaspec.module -->
+ <xs:attributeGroup name="area.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A region defined for a Callout in a graphic or code example. -->
+ <xs:element name="area">
+ <xs:complexType>
+ <xs:attributeGroup ref="area.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of area.element -->
+ <!-- bug number/symbol override or initialization -->
+ <!-- to any related information -->
+ <!--
+ Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSet and AreaSpec
+ -->
+ <!-- OtherUnits: User-defined units -->
+ <xs:attributeGroup name="area.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attribute name="units">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="calspair"/>
+ <xs:enumeration value="linecolumn"/>
+ <xs:enumeration value="linerange"/>
+ <xs:enumeration value="linecolumnpair"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherunits" type="xs:NMTOKEN"/>
+ <xs:attribute name="coords" use="required"/>
+ <xs:attributeGroup ref="idreq.common.attrib"/>
+ <xs:attributeGroup ref="area.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of area.attlist -->
+ <!-- end of area.module -->
+ <xs:attributeGroup name="areaset.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A set of related areas in a graphic or code example. -->
+ <xs:element name="areaset">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="area"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="areaset.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of areaset.element -->
+ <!-- bug number/symbol override or initialization -->
+ <!--
+ Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSpec
+ -->
+ <xs:attributeGroup name="areaset.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attribute name="units">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="calspair"/>
+ <xs:enumeration value="linecolumn"/>
+ <xs:enumeration value="linerange"/>
+ <xs:enumeration value="linecolumnpair"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherunits" type="xs:NMTOKEN"/>
+ <xs:attribute name="coords" use="required"/>
+ <xs:attributeGroup ref="idreq.common.attrib"/>
+ <xs:attributeGroup ref="areaset.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of areaset.attlist -->
+ <!-- end of areaset.module -->
+ <!-- end of areaspec.content.module -->
+ <xs:attributeGroup name="programlisting.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A literal listing of all or part of a program. -->
+ <xs:element name="programlisting" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="lineannotation"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ <xs:attributeGroup ref="programlisting.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of programlisting.element -->
+ <xs:attributeGroup name="programlisting.attlist">
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="programlisting.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of programlisting.attlist -->
+ <!-- end of programlisting.module -->
+ <xs:attributeGroup name="literallayout.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A block of text in which line breaks and white space are to be reproduced faithfully. -->
+ <xs:element name="literallayout" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="literallayout.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of literallayout.element -->
+ <xs:attributeGroup name="literallayout.attlist">
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attribute name="class" default="normal">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="monospaced"/>
+ <xs:enumeration value="normal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="literallayout.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of literallayout.attlist -->
+ <!-- LineAnnotation (defined in the Inlines section, below) -->
+ <!-- end of literallayout.module -->
+ <xs:attributeGroup name="screenco.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A screen with associated areas used in callouts. -->
+ <xs:element name="screenco" substitutionGroup="linespecific.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="areaspec"/>
+ <xs:element ref="screen"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="calloutlist"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="screenco.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of screenco.element -->
+ <xs:attributeGroup name="screenco.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="screenco.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of screenco.attlist -->
+ <!-- AreaSpec (defined above) -->
+ <!-- CalloutList (defined above in Lists) -->
+ <!-- end of screenco.module -->
+ <xs:attributeGroup name="screen.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Text that a user sees or might see on a computer screen. -->
+ <xs:element name="screen" substitutionGroup="linespecific.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="screen.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of screen.element -->
+ <xs:attributeGroup name="screen.attlist">
+ <xs:attributeGroup ref="width.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="screen.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of screen.attlist -->
+ <!-- end of screen.module -->
+ <xs:attributeGroup name="screenshot.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A representation of what the user sees or might see on a computer screen. -->
+ <xs:element name="screenshot" substitutionGroup="linespecific.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="screeninfo"/>
+ <xs:choice>
+ <xs:element ref="graphic"/>
+ <xs:element ref="graphicco"/>
+ <xs:element ref="mediaobject"/>
+ <xs:element ref="mediaobjectco"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="screenshot.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of screenshot.element -->
+ <xs:attributeGroup name="screenshot.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="screenshot.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of screenshot.attlist -->
+ <!-- end of screenshot.module -->
+ <xs:attributeGroup name="screeninfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information about how a screen shot was produced. -->
+ <xs:element name="screeninfo">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="screeninfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of screeninfo.element -->
+ <xs:attributeGroup name="screeninfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="screeninfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of screeninfo.attlist -->
+ <!-- end of screeninfo.module -->
+ <!-- end of screenshot.content.module -->
+ <!-- Figures etc. ..................... -->
+ <xs:attributeGroup name="figure.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A formal figure, generally an illustration, with a title. -->
+ <xs:element name="figure" substitutionGroup="formal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group ref="formalobject.title.content"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="figure.mix"/>
+ <xs:element ref="link.char.class"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="figure.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of figure.element -->
+ <!--
+ Float: Whether the Figure is supposed to be rendered
+ where convenient (yes (1) value) or at the place it occurs
+ in the text (no (0) value, the default)
+ -->
+ <xs:attributeGroup name="figure.attlist">
+ <xs:attribute name="float" default="0" type="yesorno.attvals"/>
+ <xs:attribute name="floatstyle"/>
+ <xs:attribute name="pgwide" type="yesorno.attvals"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="figure.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of figure.attlist -->
+ <!-- end of figure.module -->
+ <xs:attributeGroup name="informalfigure.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A untitled figure. -->
+ <xs:element name="informalfigure" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="figure.mix"/>
+ <xs:element ref="link.char.class"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="informalfigure.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of informalfigure.element -->
+ <!--
+ Float: Whether the Figure is supposed to be rendered
+ where convenient (yes (1) value) or at the place it occurs
+ in the text (no (0) value, the default)
+ -->
+ <xs:attributeGroup name="informalfigure.attlist">
+ <xs:attribute name="float" default="0" type="yesorno.attvals"/>
+ <xs:attribute name="floatstyle"/>
+ <xs:attribute name="pgwide" type="yesorno.attvals"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="informalfigure.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of informalfigure.attlist -->
+ <!-- end of informalfigure.module -->
+ <xs:attributeGroup name="graphicco.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A graphic that contains callout areas. -->
+ <xs:element name="graphicco" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="areaspec"/>
+ <xs:element ref="graphic"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="calloutlist"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="graphicco.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of graphicco.element -->
+ <xs:attributeGroup name="graphicco.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="graphicco.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of graphicco.attlist -->
+ <!-- AreaSpec (defined above in Examples) -->
+ <!-- CalloutList (defined above in Lists) -->
+ <!-- end of graphicco.module -->
+ <!--
+ Graphical data can be the content of Graphic, or you can reference
+ an external file either as an entity (Entitref) or a filename
+ (Fileref).
+ -->
+ <xs:attributeGroup name="graphic.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A displayed graphical object (not an inline). -->
+ <xs:element name="graphic" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="graphic.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of graphic.element -->
+ <xs:attributeGroup name="graphic.attlist">
+ <xs:attributeGroup ref="graphics.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="graphic.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of graphic.attlist -->
+ <!-- end of graphic.module -->
+ <xs:attributeGroup name="inlinegraphic.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An object containing or pointing to graphical data that will be rendered inline. -->
+ <xs:element name="inlinegraphic" substitutionGroup="inlineobj.char.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="inlinegraphic.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of inlinegraphic.element -->
+ <xs:attributeGroup name="inlinegraphic.attlist">
+ <xs:attributeGroup ref="graphics.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="inlinegraphic.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of inlinegraphic.attlist -->
+ <!-- end of inlinegraphic.module -->
+ <xs:attributeGroup name="mediaobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A displayed media object (video, audio, image, etc.). -->
+ <xs:element name="mediaobject" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element maxOccurs="unbounded" ref="mediaobject.mix"/>
+ <xs:element minOccurs="0" ref="caption"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="mediaobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of mediaobject.element -->
+ <xs:attributeGroup name="mediaobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="mediaobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of mediaobject.attlist -->
+ <!-- end of mediaobject.module -->
+ <xs:attributeGroup name="inlinemediaobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inline media object (video, audio, image, and so on). -->
+ <xs:element name="inlinemediaobject" substitutionGroup="inlineobj.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element maxOccurs="unbounded" ref="mediaobject.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="inlinemediaobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of inlinemediaobject.element -->
+ <xs:attributeGroup name="inlinemediaobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="inlinemediaobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of inlinemediaobject.attlist -->
+ <!-- end of inlinemediaobject.module -->
+ <xs:attributeGroup name="videoobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for video data and its associated meta-information. -->
+ <xs:element name="videoobject" substitutionGroup="mediaobject.mix">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element ref="videodata"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="videoobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of videoobject.element -->
+ <xs:attributeGroup name="videoobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="videoobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of videoobject.attlist -->
+ <!-- end of videoobject.module -->
+ <xs:attributeGroup name="audioobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for audio data and its associated meta-information. -->
+ <xs:element name="audioobject" substitutionGroup="mediaobject.mix">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element ref="audiodata"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="audioobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of audioobject.element -->
+ <xs:attributeGroup name="audioobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="audioobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of audioobject.attlist -->
+ <!-- end of audioobject.module -->
+ <xs:attributeGroup name="imageobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for image data and its associated meta-information. -->
+ <xs:element name="imageobject" substitutionGroup="mediaobject.mix">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element ref="imagedata"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="imageobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of imageobject.element -->
+ <xs:attributeGroup name="imageobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="imageobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of imageobject.attlist -->
+ <!-- end of imageobject.module -->
+ <xs:attributeGroup name="textobject.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for a text description of an object and its associated meta-information. -->
+ <xs:element name="textobject" substitutionGroup="mediaobject.mix">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:choice>
+ <xs:element ref="phrase"/>
+ <xs:element ref="textdata"/>
+ <xs:group maxOccurs="unbounded" ref="textobject.mix"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="textobject.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of textobject.element -->
+ <xs:attributeGroup name="textobject.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="textobject.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of textobject.attlist -->
+ <!-- end of textobject.module -->
+ <xs:attributeGroup name="objectinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Meta-information for an object. -->
+ <xs:element name="objectinfo">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="info.class"/>
+ <xs:attributeGroup ref="objectinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of objectinfo.element -->
+ <xs:attributeGroup name="objectinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="objectinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of objectinfo.attlist -->
+ <!-- end of objectinfo.module -->
+ <!--
+ EntityRef: Name of an external entity containing the content
+ of the object data
+ -->
+ <!--
+ FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the object data
+ -->
+ <!-- Format: Notation of the element content, if any -->
+ <!-- SrcCredit: Information about the source of the image -->
+ <xs:attributeGroup name="objectdata.attrib">
+ <xs:attribute name="entityref" type="xs:ENTITY"/>
+ <xs:attribute name="fileref"/>
+ <xs:attribute name="format" type="notation.class"/>
+ <xs:attribute name="srccredit"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="videodata.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Pointer to external video data. -->
+ <xs:element name="videodata">
+ <xs:complexType>
+ <xs:attributeGroup ref="videodata.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of videodata.element -->
+ <!-- Width: Same as CALS reprowid (desired width) -->
+ <!-- Depth: Same as CALS reprodep (desired depth) -->
+ <!--
+ Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific
+ -->
+ <!-- Scale: Conflation of CALS hscale and vscale -->
+ <!-- Scalefit: Same as CALS scalefit -->
+ <xs:attributeGroup name="videodata.attlist">
+ <xs:attribute name="width"/>
+ <xs:attribute name="contentwidth"/>
+ <xs:attribute name="depth"/>
+ <xs:attribute name="contentdepth"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="scale"/>
+ <xs:attribute name="scalefit" type="yesorno.attvals"/>
+ <xs:attributeGroup ref="objectdata.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="videodata.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of videodata.attlist -->
+ <!-- end of videodata.module -->
+ <xs:attributeGroup name="audiodata.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Pointer to external audio data. -->
+ <xs:element name="audiodata">
+ <xs:complexType>
+ <xs:attributeGroup ref="audiodata.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of audiodata.element -->
+ <xs:attributeGroup name="audiodata.attlist">
+ <xs:attributeGroup ref="objectdata.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="audiodata.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of audiodata.attlist -->
+ <!-- end of audiodata.module -->
+ <xs:attributeGroup name="imagedata.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Pointer to external image data. -->
+ <xs:element name="imagedata">
+ <xs:complexType>
+ <xs:attributeGroup ref="imagedata.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of imagedata.element -->
+ <!-- Width: Same as CALS reprowid (desired width) -->
+ <!-- Depth: Same as CALS reprodep (desired depth) -->
+ <!--
+ Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific
+ -->
+ <!-- Scale: Conflation of CALS hscale and vscale -->
+ <!-- Scalefit: Same as CALS scalefit -->
+ <xs:attributeGroup name="imagedata.attlist">
+ <xs:attribute name="width"/>
+ <xs:attribute name="contentwidth"/>
+ <xs:attribute name="depth"/>
+ <xs:attribute name="contentdepth"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="center"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="scale"/>
+ <xs:attribute name="scalefit" type="yesorno.attvals"/>
+ <xs:attributeGroup ref="objectdata.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="imagedata.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of imagedata.attlist -->
+ <!-- end of imagedata.module -->
+ <xs:attributeGroup name="textdata.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Pointer to external text data. -->
+ <xs:element name="textdata">
+ <xs:complexType>
+ <xs:attributeGroup ref="textdata.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of textdata.element -->
+ <xs:attributeGroup name="textdata.attlist">
+ <xs:attribute name="encoding"/>
+ <xs:attributeGroup ref="objectdata.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="textdata.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of textdata.attlist -->
+ <!-- end of textdata.module -->
+ <xs:attributeGroup name="mediaobjectco.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A media object that contains callouts. -->
+ <xs:element name="mediaobjectco" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="objectinfo"/>
+ <xs:element ref="imageobjectco"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="imageobjectco"/>
+ <xs:element ref="textobject"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="mediaobjectco.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of mediaobjectco.element -->
+ <xs:attributeGroup name="mediaobjectco.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="mediaobjectco.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of mediaobjectco.attlist -->
+ <!-- end of mediaobjectco.module -->
+ <xs:attributeGroup name="imageobjectco.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for an image object with callouts. -->
+ <xs:element name="imageobjectco" substitutionGroup="mediaobject.mix">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="areaspec"/>
+ <xs:element ref="imageobject"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="calloutlist"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="imageobjectco.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of imageobjectco.element -->
+ <xs:attributeGroup name="imageobjectco.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="imageobjectco.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of imageobjectco.attlist -->
+ <!-- end of imageobjectco.module -->
+ <!-- end of mediaobject.content.module -->
+ <!-- Equations ........................ -->
+ <!-- This PE provides a mechanism for replacing equation content, -->
+ <!-- perhaps adding a new or different model (e.g., MathML) -->
+ <xs:group name="equation.content">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="alt"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="graphic"/>
+ <xs:element maxOccurs="unbounded" ref="mediaobject"/>
+ <xs:element maxOccurs="unbounded" ref="mathphrase"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:complexType name="inlineequation.content">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="alt"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="graphic"/>
+ <xs:element maxOccurs="unbounded" ref="inlinemediaobject"/>
+ <xs:element maxOccurs="unbounded" ref="mathphrase"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:attributeGroup name="equation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A displayed mathematical equation. -->
+ <xs:element name="equation" substitutionGroup="formal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group minOccurs="0" ref="formalobject.title.content"/>
+ <xs:choice>
+ <xs:element ref="informalequation"/>
+ <xs:group ref="equation.content"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="equation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of equation.element -->
+ <xs:attributeGroup name="equation.attlist">
+ <xs:attribute name="floatstyle"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="equation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of equation.attlist -->
+ <!-- end of equation.module -->
+ <xs:attributeGroup name="informalequation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A displayed mathematical equation without a title. -->
+ <xs:element name="informalequation" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group ref="equation.content"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="informalequation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of informalequation.element -->
+ <xs:attributeGroup name="informalequation.attlist">
+ <xs:attribute name="floatstyle"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="informalequation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of informalequation.attlist -->
+ <!-- end of informalequation.module -->
+ <xs:attributeGroup name="inlineequation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A mathematical equation or expression occurring inline. -->
+ <xs:element name="inlineequation" substitutionGroup="inlineobj.char.class">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="inlineequation.content">
+ <xs:attributeGroup ref="inlineequation.attlist"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of inlineequation.element -->
+ <xs:attributeGroup name="inlineequation.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="inlineequation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of inlineequation.attlist -->
+ <!-- end of inlineequation.module -->
+ <xs:attributeGroup name="alt.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Text representation for a graphical element. -->
+ <xs:element name="alt">
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="alt.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of alt.element -->
+ <xs:attributeGroup name="alt.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="alt.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of alt.attlist -->
+ <!-- end of alt.module -->
+ <xs:attributeGroup name="mathphrase.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup. -->
+ <xs:element name="mathphrase">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="subscript"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="emphasis"/>
+ </xs:choice>
+ <xs:attributeGroup ref="mathphrase.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of mathphrase.element -->
+ <xs:attributeGroup name="mathphrase.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="mathphrase.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of mathphrase.attlist -->
+ <!-- end of mathphrase.module -->
+ <!-- Tables ........................... -->
+ <!-- Choose a table model. CALS or OASIS XML Exchange -->
+ <!-- Do we allow the HTML table model as well? -->
+ <!-- ====================================================== -->
+ <!--
+ xhtmltbl.mod defines HTML tables and sets parameter
+ entities so that, when the CALS table module is read,
+ we end up allowing any table to be CALS or HTML.
+ i.e. This include must come first!
+ -->
+ <!-- ====================================================== -->
+ <!-- end of allow.html.tables -->
+ <!-- Add label and role attributes to table and informaltable -->
+ <!--
+ Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+ EntryTbl, and Entry (and InformalTable element).
+ -->
+ <!-- Content model for Table. -->
+ <!-- Allow either objects or inlines; beware of REs between elements. -->
+ <!-- Reference CALS Table Model -->
+ <!-- end of table.module -->
+ <!--
+ Note that InformalTable is dependent on some of the entity
+ declarations that customize Table.
+ -->
+ <!-- the following entity may have been declared by the XHTML table module -->
+ <!-- doc:A table without a title. -->
+ <xs:element name="informaltable" substitutionGroup="informal.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group ref="informal.tbl.table.mdl"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="informaltable.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of informaltable.element -->
+ <!--
+ Frame, Colsep, and Rowsep must be repeated because
+ they are not in entities in the table module.
+ -->
+ <!--
+ includes TabStyle, ToCentry, ShortEntry,
+ Orient, PgWide
+ -->
+ <!-- includes Label -->
+ <!-- includes common attributes -->
+ <xs:attributeGroup name="informaltable.attlist">
+ <xs:attribute name="frame" type="tbl.frame.attval"/>
+ <xs:attribute name="colsep" type="yesorno.attvals"/>
+ <xs:attribute name="rowsep" type="yesorno.attvals"/>
+ <xs:attributeGroup ref="common.table.attribs"/>
+ <xs:attributeGroup ref="tbl.table.att"/>
+ </xs:attributeGroup>
+ <!-- end of informaltable.attlist -->
+ <!-- end of informaltable.module -->
+ <xs:attributeGroup name="caption.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A caption. -->
+ <xs:element name="caption">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="textobject.mix"/>
+ <xs:attributeGroup ref="caption.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of caption.element -->
+ <!-- attrs comes from HTML tables ... -->
+ <!-- common.attrib, but without ID because ID is in attrs -->
+ <xs:attributeGroup name="caption.attlist.content">
+ <xs:attributeGroup ref="caption.role.attrib"/>
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="bottom"/>
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="caption.attlist">
+ <xs:attributeGroup ref="caption.attlist.content"/>
+ </xs:attributeGroup>
+ <!-- end of caption.attlist -->
+ <!-- end of caption.module -->
+ <!-- ...................................................................... -->
+ <!-- Synopses ............................................................. -->
+ <!-- Synopsis ......................... -->
+ <xs:attributeGroup name="synopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A general-purpose element for representing the syntax of commands or functions. -->
+ <xs:element name="synopsis" substitutionGroup="synop.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:element ref="graphic"/>
+ <xs:element ref="mediaobject"/>
+ <xs:element ref="co"/>
+ <xs:element ref="coref"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="synopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of synopsis.element -->
+ <xs:attributeGroup name="synopsis.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="synopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of synopsis.attlist -->
+ <!-- LineAnnotation (defined in the Inlines section, below) -->
+ <!-- end of synopsis.module -->
+ <!-- CmdSynopsis ...................... -->
+ <xs:attributeGroup name="cmdsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A syntax summary for a software command. -->
+ <xs:element name="cmdsynopsis" substitutionGroup="synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="command"/>
+ <xs:element ref="arg"/>
+ <xs:element ref="group"/>
+ <xs:element ref="sbr"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="synopfragment"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="cmdsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of cmdsynopsis.element -->
+ <!--
+ Sepchar: Character that should separate command and all
+ top-level arguments; alternate value might be e.g., &Delta;
+ -->
+ <xs:attributeGroup name="cmdsynopsis.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attribute name="sepchar" default=" "/>
+ <xs:attribute name="cmdlength"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="cmdsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of cmdsynopsis.attlist -->
+ <!-- end of cmdsynopsis.module -->
+ <xs:attributeGroup name="arg.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An argument in a CmdSynopsis. -->
+ <xs:element name="arg">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="arg"/>
+ <xs:element ref="group"/>
+ <xs:element ref="option"/>
+ <xs:element ref="synopfragmentref"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="sbr"/>
+ </xs:choice>
+ <xs:attributeGroup ref="arg.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of arg.element -->
+ <!--
+ Choice: Whether Arg must be supplied: Opt (optional to
+ supply, e.g. [arg]; the default), Req (required to supply,
+ e.g. {arg}), or Plain (required to supply, e.g. arg)
+ -->
+ <!--
+ Rep: whether Arg is repeatable: Norepeat (e.g. arg without
+ ellipsis; the default), or Repeat (e.g. arg...)
+ -->
+ <xs:attributeGroup name="arg.attlist">
+ <xs:attribute name="choice" default="opt">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="req"/>
+ <xs:enumeration value="plain"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rep" default="norepeat">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="norepeat"/>
+ <xs:enumeration value="repeat"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="arg.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of arg.attlist -->
+ <!-- end of arg.module -->
+ <xs:attributeGroup name="group.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A group of elements in a CmdSynopsis. -->
+ <xs:element name="group">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="arg"/>
+ <xs:element ref="group"/>
+ <xs:element ref="option"/>
+ <xs:element ref="synopfragmentref"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="sbr"/>
+ </xs:choice>
+ <xs:attributeGroup ref="group.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of group.element -->
+ <!--
+ Choice: Whether Group must be supplied: Opt (optional to
+ supply, e.g. [g1|g2|g3]; the default), Req (required to
+ supply, e.g. {g1|g2|g3}), Plain (required to supply,
+ e.g. g1|g2|g3), OptMult (can supply zero or more, e.g.
+ [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+ {{g1|g2|g3}})
+ -->
+ <!--
+ Rep: whether Group is repeatable: Norepeat (e.g. group
+ without ellipsis; the default), or Repeat (e.g. group...)
+ -->
+ <xs:attributeGroup name="group.attlist">
+ <xs:attribute name="choice" default="opt">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="req"/>
+ <xs:enumeration value="plain"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rep" default="norepeat">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="norepeat"/>
+ <xs:enumeration value="repeat"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="group.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of group.attlist -->
+ <!-- end of group.module -->
+ <!-- Synopsis break -->
+ <xs:attributeGroup name="sbr.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An explicit line break in a command synopsis. -->
+ <xs:element name="sbr">
+ <xs:complexType>
+ <xs:attributeGroup ref="sbr.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sbr.element -->
+ <xs:attributeGroup name="sbr.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sbr.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sbr.attlist -->
+ <!-- end of sbr.module -->
+ <xs:attributeGroup name="synopfragmentref.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A reference to a fragment of a command synopsis. -->
+ <xs:element name="synopfragmentref">
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="synopfragmentref.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of synopfragmentref.element -->
+ <!--
+ to SynopFragment of complex synopsis
+ material for separate referencing
+ -->
+ <xs:attributeGroup name="synopfragmentref.attlist">
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="synopfragmentref.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of synopfragmentref.attlist -->
+ <!-- end of synopfragmentref.module -->
+ <xs:attributeGroup name="synopfragment.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A portion of a CmdSynopsis broken out from the main body of the synopsis. -->
+ <xs:element name="synopfragment">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="arg"/>
+ <xs:element ref="group"/>
+ </xs:choice>
+ <xs:attributeGroup ref="synopfragment.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of synopfragment.element -->
+ <xs:attributeGroup name="synopfragment.attlist">
+ <xs:attributeGroup ref="idreq.common.attrib"/>
+ <xs:attributeGroup ref="synopfragment.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of synopfragment.attlist -->
+ <!-- end of synopfragment.module -->
+ <!-- Command (defined in the Inlines section, below) -->
+ <!-- Option (defined in the Inlines section, below) -->
+ <!-- Replaceable (defined in the Inlines section, below) -->
+ <!-- end of cmdsynopsis.content.module -->
+ <!-- FuncSynopsis ..................... -->
+ <xs:attributeGroup name="funcsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The syntax summary for a function definition. -->
+ <xs:element name="funcsynopsis" substitutionGroup="synop.class">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="funcsynopsisinfo"/>
+ <xs:element ref="funcprototype"/>
+ </xs:choice>
+ <xs:attributeGroup ref="funcsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of funcsynopsis.element -->
+ <xs:attributeGroup name="funcsynopsis.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="funcsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of funcsynopsis.attlist -->
+ <!-- end of funcsynopsis.module -->
+ <xs:attributeGroup name="funcsynopsisinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information supplementing the FuncDefs of a FuncSynopsis. -->
+ <xs:element name="funcsynopsisinfo">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="cptr.char.mix"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="funcsynopsisinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of funcsynopsisinfo.element -->
+ <xs:attributeGroup name="funcsynopsisinfo.attlist">
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="funcsynopsisinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of funcsynopsisinfo.attlist -->
+ <!-- end of funcsynopsisinfo.module -->
+ <xs:attributeGroup name="funcprototype.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The prototype of a function. -->
+ <xs:element name="funcprototype">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:element ref="funcdef"/>
+ <xs:choice>
+ <xs:element ref="void"/>
+ <xs:element ref="varargs"/>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="paramdef"/>
+ <xs:element minOccurs="0" ref="varargs"/>
+ </xs:sequence>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="funcprototype.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of funcprototype.element -->
+ <xs:attributeGroup name="funcprototype.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="funcprototype.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of funcprototype.attlist -->
+ <!-- end of funcprototype.module -->
+ <xs:attributeGroup name="funcdef.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A function (subroutine) name and its return type. -->
+ <xs:element name="funcdef">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="type"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="function"/>
+ </xs:choice>
+ <xs:attributeGroup ref="funcdef.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of funcdef.element -->
+ <xs:attributeGroup name="funcdef.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="funcdef.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of funcdef.attlist -->
+ <!-- end of funcdef.module -->
+ <xs:attributeGroup name="void.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An empty element in a function synopsis indicating that the function in question takes no arguments. -->
+ <xs:element name="void">
+ <xs:complexType>
+ <xs:attributeGroup ref="void.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of void.element -->
+ <xs:attributeGroup name="void.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="void.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of void.attlist -->
+ <!-- end of void.module -->
+ <xs:attributeGroup name="varargs.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An empty element in a function synopsis indicating a variable number of arguments. -->
+ <xs:element name="varargs">
+ <xs:complexType>
+ <xs:attributeGroup ref="varargs.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of varargs.element -->
+ <xs:attributeGroup name="varargs.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="varargs.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of varargs.attlist -->
+ <!-- end of varargs.module -->
+ <!--
+ Processing assumes that only one Parameter will appear in a
+ ParamDef, and that FuncParams will be used at most once, for
+ providing information on the "inner parameters" for parameters that
+ are pointers to functions.
+ -->
+ <xs:attributeGroup name="paramdef.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information about a function parameter in a programming language. -->
+ <xs:element name="paramdef">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="initializer"/>
+ <xs:element ref="type"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="parameter"/>
+ <xs:element ref="funcparams"/>
+ </xs:choice>
+ <xs:attributeGroup ref="paramdef.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of paramdef.element -->
+ <xs:attributeGroup name="paramdef.attlist">
+ <xs:attribute name="choice">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="req"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="paramdef.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of paramdef.attlist -->
+ <!-- end of paramdef.module -->
+ <xs:attributeGroup name="funcparams.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Parameters for a function referenced through a function pointer in a synopsis. -->
+ <xs:element name="funcparams">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="funcparams.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of funcparams.element -->
+ <xs:attributeGroup name="funcparams.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="funcparams.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of funcparams.attlist -->
+ <!-- end of funcparams.module -->
+ <!-- LineAnnotation (defined in the Inlines section, below) -->
+ <!-- Replaceable (defined in the Inlines section, below) -->
+ <!-- Function (defined in the Inlines section, below) -->
+ <!-- Parameter (defined in the Inlines section, below) -->
+ <!-- end of funcsynopsis.content.module -->
+ <!-- ClassSynopsis ..................... -->
+ <xs:attributeGroup name="classsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The syntax summary for a class definition. -->
+ <xs:element name="classsynopsis" substitutionGroup="synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="ooclass"/>
+ <xs:element ref="oointerface"/>
+ <xs:element ref="ooexception"/>
+ </xs:choice>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="classsynopsisinfo"/>
+ <xs:element ref="fieldsynopsis"/>
+ <xs:element ref="method.synop.class"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="classsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of classsynopsis.element -->
+ <xs:attributeGroup name="classsynopsis.attlist">
+ <xs:attribute name="language"/>
+ <xs:attribute name="class" default="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="class"/>
+ <xs:enumeration value="interface"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="classsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of classsynopsis.attlist -->
+ <!-- end of classsynopsis.module -->
+ <xs:attributeGroup name="classsynopsisinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information supplementing the contents of a ClassSynopsis. -->
+ <xs:element name="classsynopsisinfo">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="cptr.char.mix"/>
+ <xs:element ref="textobject"/>
+ <xs:element ref="lineannotation"/>
+ </xs:choice>
+ <xs:attributeGroup ref="classsynopsisinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of classsynopsisinfo.element -->
+ <xs:attributeGroup name="classsynopsisinfo.attlist">
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="classsynopsisinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of classsynopsisinfo.attlist -->
+ <!-- end of classsynopsisinfo.module -->
+ <xs:attributeGroup name="ooclass.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A class in an object-oriented programming language. -->
+ <xs:element name="ooclass" substitutionGroup="tech.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="modifier"/>
+ <xs:element ref="package"/>
+ </xs:choice>
+ <xs:element ref="classname"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ooclass.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of ooclass.element -->
+ <xs:attributeGroup name="ooclass.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ooclass.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of ooclass.attlist -->
+ <!-- end of ooclass.module -->
+ <xs:attributeGroup name="oointerface.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An interface in an object-oriented programming language. -->
+ <xs:element name="oointerface" substitutionGroup="tech.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="modifier"/>
+ <xs:element ref="package"/>
+ </xs:choice>
+ <xs:element ref="interfacename"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="oointerface.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of oointerface.element -->
+ <xs:attributeGroup name="oointerface.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="oointerface.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of oointerface.attlist -->
+ <!-- end of oointerface.module -->
+ <xs:attributeGroup name="ooexception.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An exception in an object-oriented programming language. -->
+ <xs:element name="ooexception" substitutionGroup="tech.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="modifier"/>
+ <xs:element ref="package"/>
+ </xs:choice>
+ <xs:element ref="exceptionname"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="ooexception.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of ooexception.element -->
+ <xs:attributeGroup name="ooexception.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ooexception.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of ooexception.attlist -->
+ <!-- end of ooexception.module -->
+ <xs:attributeGroup name="modifier.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Modifiers in a synopsis. -->
+ <xs:element name="modifier">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="modifier.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of modifier.element -->
+ <xs:attributeGroup name="modifier.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="modifier.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of modifier.attlist -->
+ <!-- end of modifier.module -->
+ <xs:attributeGroup name="interfacename.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of an interface. -->
+ <xs:element name="interfacename" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="interfacename.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of interfacename.element -->
+ <xs:attributeGroup name="interfacename.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="interfacename.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of interfacename.attlist -->
+ <!-- end of interfacename.module -->
+ <xs:attributeGroup name="exceptionname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of an exception. -->
+ <xs:element name="exceptionname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="exceptionname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of exceptionname.element -->
+ <xs:attributeGroup name="exceptionname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="exceptionname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of exceptionname.attlist -->
+ <!-- end of exceptionname.module -->
+ <xs:attributeGroup name="fieldsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a field in a class definition. -->
+ <xs:element name="fieldsynopsis" substitutionGroup="synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:element minOccurs="0" ref="type"/>
+ <xs:element ref="varname"/>
+ <xs:element minOccurs="0" ref="initializer"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="fieldsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of fieldsynopsis.element -->
+ <xs:attributeGroup name="fieldsynopsis.attlist">
+ <xs:attribute name="language"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="fieldsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of fieldsynopsis.attlist -->
+ <!-- end of fieldsynopsis.module -->
+ <xs:attributeGroup name="initializer.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The initializer for a FieldSynopsis. -->
+ <xs:element name="initializer">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="initializer.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of initializer.element -->
+ <xs:attributeGroup name="initializer.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="initializer.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of initializer.attlist -->
+ <!-- end of initializer.module -->
+ <xs:attributeGroup name="constructorsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A syntax summary for a constructor. -->
+ <xs:element name="constructorsynopsis" substitutionGroup="method.synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:element minOccurs="0" ref="methodname"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="methodparam"/>
+ <xs:element minOccurs="0" ref="void"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="exceptionname"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="constructorsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of constructorsynopsis.element -->
+ <xs:attributeGroup name="constructorsynopsis.attlist">
+ <xs:attribute name="language"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="constructorsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of constructorsynopsis.attlist -->
+ <!-- end of constructorsynopsis.module -->
+ <xs:attributeGroup name="destructorsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A syntax summary for a destructor. -->
+ <xs:element name="destructorsynopsis" substitutionGroup="method.synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:element minOccurs="0" ref="methodname"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="methodparam"/>
+ <xs:element minOccurs="0" ref="void"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="exceptionname"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="destructorsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of destructorsynopsis.element -->
+ <xs:attributeGroup name="destructorsynopsis.attlist">
+ <xs:attribute name="language"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="destructorsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of destructorsynopsis.attlist -->
+ <!-- end of destructorsynopsis.module -->
+ <xs:attributeGroup name="methodsynopsis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A syntax summary for a method. -->
+ <xs:element name="methodsynopsis" substitutionGroup="method.synop.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:choice minOccurs="0">
+ <xs:element ref="type"/>
+ <xs:element ref="void"/>
+ </xs:choice>
+ <xs:element ref="methodname"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="methodparam"/>
+ <xs:element minOccurs="0" ref="void"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="exceptionname"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="methodsynopsis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of methodsynopsis.element -->
+ <xs:attributeGroup name="methodsynopsis.attlist">
+ <xs:attribute name="language"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="methodsynopsis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of methodsynopsis.attlist -->
+ <!-- end of methodsynopsis.module -->
+ <xs:attributeGroup name="methodname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a method. -->
+ <xs:element name="methodname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="methodname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of methodname.element -->
+ <xs:attributeGroup name="methodname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="methodname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of methodname.attlist -->
+ <!-- end of methodname.module -->
+ <xs:attributeGroup name="methodparam.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Parameters to a method. -->
+ <xs:element name="methodparam">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ <xs:element minOccurs="0" ref="type"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element ref="parameter"/>
+ <xs:element minOccurs="0" ref="initializer"/>
+ </xs:sequence>
+ <xs:element ref="funcparams"/>
+ </xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="modifier"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="methodparam.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of methodparam.element -->
+ <xs:attributeGroup name="methodparam.attlist">
+ <xs:attribute name="choice" default="req">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="opt"/>
+ <xs:enumeration value="req"/>
+ <xs:enumeration value="plain"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rep" default="norepeat">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="norepeat"/>
+ <xs:enumeration value="repeat"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="methodparam.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of methodparam.attlist -->
+ <!-- end of methodparam.module -->
+ <!-- end of classsynopsis.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Document information entities and elements ........................... -->
+ <!--
+ The document information elements include some elements that are
+ currently used only in the document hierarchy module. They are
+ defined here so that they will be available for use in customized
+ document hierarchies.
+ -->
+ <!-- .................................. -->
+ <!-- Ackno ............................ -->
+ <xs:attributeGroup name="ackno.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Acknowledgements in an Article. -->
+ <xs:element name="ackno">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="ackno.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of ackno.element -->
+ <xs:attributeGroup name="ackno.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ackno.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of ackno.attlist -->
+ <!-- end of ackno.module -->
+ <!-- Address .......................... -->
+ <xs:attributeGroup name="address.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A real-world address, generally a postal address. -->
+ <xs:element name="address" substitutionGroup="informal.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="personname"/>
+ <xs:group ref="person.ident.mix"/>
+ <xs:element ref="street"/>
+ <xs:element ref="pob"/>
+ <xs:element ref="postcode"/>
+ <xs:element ref="city"/>
+ <xs:element ref="state"/>
+ <xs:element ref="country"/>
+ <xs:element ref="phone"/>
+ <xs:element ref="fax"/>
+ <xs:element ref="email"/>
+ <xs:element ref="otheraddr"/>
+ </xs:choice>
+ <xs:attributeGroup ref="address.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of address.element -->
+ <xs:attributeGroup name="address.attlist">
+ <xs:attributeGroup ref="linespecific.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="address.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of address.attlist -->
+ <!-- end of address.module -->
+ <xs:attributeGroup name="street.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A street address in an address. -->
+ <xs:element name="street">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="street.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of street.element -->
+ <xs:attributeGroup name="street.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="street.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of street.attlist -->
+ <!-- end of street.module -->
+ <xs:attributeGroup name="pob.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A post office box in an address. -->
+ <xs:element name="pob">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="pob.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of pob.element -->
+ <xs:attributeGroup name="pob.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="pob.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of pob.attlist -->
+ <!-- end of pob.module -->
+ <xs:attributeGroup name="postcode.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A postal code in an address. -->
+ <xs:element name="postcode">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="postcode.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of postcode.element -->
+ <xs:attributeGroup name="postcode.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="postcode.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of postcode.attlist -->
+ <!-- end of postcode.module -->
+ <xs:attributeGroup name="city.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a city in an address. -->
+ <xs:element name="city">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="city.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of city.element -->
+ <xs:attributeGroup name="city.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="city.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of city.attlist -->
+ <!-- end of city.module -->
+ <xs:attributeGroup name="state.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A state or province in an address. -->
+ <xs:element name="state">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="state.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of state.element -->
+ <xs:attributeGroup name="state.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="state.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of state.attlist -->
+ <!-- end of state.module -->
+ <xs:attributeGroup name="country.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a country. -->
+ <xs:element name="country">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="country.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of country.element -->
+ <xs:attributeGroup name="country.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="country.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of country.attlist -->
+ <!-- end of country.module -->
+ <xs:attributeGroup name="phone.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A telephone number. -->
+ <xs:element name="phone">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="phone.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of phone.element -->
+ <xs:attributeGroup name="phone.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="phone.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of phone.attlist -->
+ <!-- end of phone.module -->
+ <xs:attributeGroup name="fax.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A fax number. -->
+ <xs:element name="fax">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="fax.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of fax.element -->
+ <xs:attributeGroup name="fax.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="fax.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of fax.attlist -->
+ <!-- end of fax.module -->
+ <!-- Email (defined in the Inlines section, below) -->
+ <xs:attributeGroup name="otheraddr.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Uncategorized information in address. -->
+ <xs:element name="otheraddr">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="otheraddr.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of otheraddr.element -->
+ <xs:attributeGroup name="otheraddr.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="otheraddr.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of otheraddr.attlist -->
+ <!-- end of otheraddr.module -->
+ <!-- end of address.content.module -->
+ <!-- Affiliation ...................... -->
+ <xs:attributeGroup name="affiliation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The institutional affiliation of an individual. -->
+ <xs:element name="affiliation">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="shortaffil"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="jobtitle"/>
+ <xs:element minOccurs="0" ref="orgname"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="orgdiv"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="address"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="affiliation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of affiliation.element -->
+ <xs:attributeGroup name="affiliation.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="affiliation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of affiliation.attlist -->
+ <!-- end of affiliation.module -->
+ <xs:attributeGroup name="shortaffil.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A brief description of an affiliation. -->
+ <xs:element name="shortaffil">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="shortaffil.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of shortaffil.element -->
+ <xs:attributeGroup name="shortaffil.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="shortaffil.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of shortaffil.attlist -->
+ <!-- end of shortaffil.module -->
+ <xs:attributeGroup name="jobtitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of an individual in an organization. -->
+ <xs:element name="jobtitle">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="jobtitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of jobtitle.element -->
+ <xs:attributeGroup name="jobtitle.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="jobtitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of jobtitle.attlist -->
+ <!-- end of jobtitle.module -->
+ <!-- OrgName (defined elsewhere in this section) -->
+ <xs:attributeGroup name="orgdiv.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A division of an organization. -->
+ <xs:element name="orgdiv">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="orgdiv.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of orgdiv.element -->
+ <xs:attributeGroup name="orgdiv.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="orgdiv.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of orgdiv.attlist -->
+ <!-- end of orgdiv.module -->
+ <!-- Address (defined elsewhere in this section) -->
+ <!-- end of affiliation.content.module -->
+ <!-- ArtPageNums ...................... -->
+ <xs:attributeGroup name="artpagenums.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The page numbers of an article as published. -->
+ <xs:element name="artpagenums">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="artpagenums.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of artpagenums.element -->
+ <xs:attributeGroup name="artpagenums.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="artpagenums.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of artpagenums.attlist -->
+ <!-- end of artpagenums.module -->
+ <!-- PersonName -->
+ <xs:attributeGroup name="personname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The personal name of an individual. -->
+ <xs:element name="personname" substitutionGroup="gen.char.class">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="honorific"/>
+ <xs:element ref="firstname"/>
+ <xs:element ref="surname"/>
+ <xs:element ref="lineage"/>
+ <xs:element ref="othername"/>
+ </xs:choice>
+ <xs:attributeGroup ref="personname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of personname.element -->
+ <xs:attributeGroup name="personname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="personname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of personname.attlist -->
+ <!-- end of personname.module -->
+ <!-- Author ........................... -->
+ <xs:attributeGroup name="author.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of an individual author. -->
+ <xs:element name="author" substitutionGroup="docinfo.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="personname"/>
+ <xs:group maxOccurs="unbounded" ref="person.ident.mix"/>
+ </xs:choice>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="personblurb"/>
+ <xs:element ref="email"/>
+ <xs:element ref="address"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="author.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of author.element -->
+ <xs:attributeGroup name="author.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="author.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of author.attlist -->
+ <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+ <!-- end of author.module -->
+ <!-- AuthorGroup ...................... -->
+ <xs:attributeGroup name="authorgroup.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Wrapper for author information when a document has multiple authors or collabarators. -->
+ <xs:element name="authorgroup">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="author"/>
+ <xs:element ref="editor"/>
+ <xs:element ref="collab"/>
+ <xs:element ref="corpauthor"/>
+ <xs:element ref="corpcredit"/>
+ <xs:element ref="othercredit"/>
+ </xs:choice>
+ <xs:attributeGroup ref="authorgroup.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of authorgroup.element -->
+ <xs:attributeGroup name="authorgroup.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="authorgroup.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of authorgroup.attlist -->
+ <!-- end of authorgroup.module -->
+ <!-- Author (defined elsewhere in this section) -->
+ <!-- Editor (defined elsewhere in this section) -->
+ <xs:attributeGroup name="collab.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Identifies a collaborator. -->
+ <xs:element name="collab">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="collabname"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="affiliation"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="collab.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of collab.element -->
+ <xs:attributeGroup name="collab.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="collab.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of collab.attlist -->
+ <!-- end of collab.module -->
+ <xs:attributeGroup name="collabname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a collaborator. -->
+ <xs:element name="collabname">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="collabname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of collabname.element -->
+ <xs:attributeGroup name="collabname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="collabname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of collabname.attlist -->
+ <!-- end of collabname.module -->
+ <!-- Affiliation (defined elsewhere in this section) -->
+ <!-- end of collab.content.module -->
+ <!-- CorpAuthor (defined elsewhere in this section) -->
+ <!-- OtherCredit (defined elsewhere in this section) -->
+ <!-- end of authorgroup.content.module -->
+ <!-- AuthorInitials ................... -->
+ <xs:attributeGroup name="authorinitials.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The initials or other short identifier for an author. -->
+ <xs:element name="authorinitials" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="authorinitials.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of authorinitials.element -->
+ <xs:attributeGroup name="authorinitials.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="authorinitials.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of authorinitials.attlist -->
+ <!-- end of authorinitials.module -->
+ <!-- ConfGroup ........................ -->
+ <xs:attributeGroup name="confgroup.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for document meta-information about a conference. -->
+ <xs:element name="confgroup">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="confdates"/>
+ <xs:element ref="conftitle"/>
+ <xs:element ref="confnum"/>
+ <xs:element ref="address"/>
+ <xs:element ref="confsponsor"/>
+ </xs:choice>
+ <xs:attributeGroup ref="confgroup.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of confgroup.element -->
+ <xs:attributeGroup name="confgroup.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="confgroup.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of confgroup.attlist -->
+ <!-- end of confgroup.module -->
+ <xs:attributeGroup name="confdates.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The dates of a conference for which a document was written. -->
+ <xs:element name="confdates">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="confdates.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of confdates.element -->
+ <xs:attributeGroup name="confdates.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="confdates.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of confdates.attlist -->
+ <!-- end of confdates.module -->
+ <xs:attributeGroup name="conftitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of a conference for which a document was written. -->
+ <xs:element name="conftitle">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="conftitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of conftitle.element -->
+ <xs:attributeGroup name="conftitle.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="conftitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of conftitle.attlist -->
+ <!-- end of conftitle.module -->
+ <xs:attributeGroup name="confnum.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An identifier, frequently numerical, associated with a conference for which a document was written. -->
+ <xs:element name="confnum">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="confnum.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of confnum.element -->
+ <xs:attributeGroup name="confnum.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="confnum.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of confnum.attlist -->
+ <!-- end of confnum.module -->
+ <!-- Address (defined elsewhere in this section) -->
+ <xs:attributeGroup name="confsponsor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The sponsor of a conference for which a document was written. -->
+ <xs:element name="confsponsor">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="confsponsor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of confsponsor.element -->
+ <xs:attributeGroup name="confsponsor.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="confsponsor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of confsponsor.attlist -->
+ <!-- end of confsponsor.module -->
+ <!-- end of confgroup.content.module -->
+ <!-- ContractNum ...................... -->
+ <xs:attributeGroup name="contractnum.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The contract number of a document. -->
+ <xs:element name="contractnum">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="contractnum.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of contractnum.element -->
+ <xs:attributeGroup name="contractnum.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="contractnum.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of contractnum.attlist -->
+ <!-- end of contractnum.module -->
+ <!-- ContractSponsor .................. -->
+ <xs:attributeGroup name="contractsponsor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The sponsor of a contract. -->
+ <xs:element name="contractsponsor">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="contractsponsor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of contractsponsor.element -->
+ <xs:attributeGroup name="contractsponsor.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="contractsponsor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of contractsponsor.attlist -->
+ <!-- end of contractsponsor.module -->
+ <!-- Copyright ........................ -->
+ <xs:attributeGroup name="copyright.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Copyright information about a document. -->
+ <xs:element name="copyright">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="year"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="holder"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="copyright.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of copyright.element -->
+ <xs:attributeGroup name="copyright.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="copyright.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of copyright.attlist -->
+ <!-- end of copyright.module -->
+ <xs:attributeGroup name="year.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The year of publication of a document. -->
+ <xs:element name="year">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="year.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of year.element -->
+ <xs:attributeGroup name="year.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="year.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of year.attlist -->
+ <!-- end of year.module -->
+ <xs:attributeGroup name="holder.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of the individual or organization that holds a copyright. -->
+ <xs:element name="holder">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="holder.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of holder.element -->
+ <xs:attributeGroup name="holder.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="holder.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of holder.attlist -->
+ <!-- end of holder.module -->
+ <!-- end of copyright.content.module -->
+ <!-- CorpAuthor ....................... -->
+ <xs:attributeGroup name="corpauthor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A corporate author, as opposed to an individual. -->
+ <xs:element name="corpauthor" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="corpauthor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of corpauthor.element -->
+ <xs:attributeGroup name="corpauthor.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="corpauthor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of corpauthor.attlist -->
+ <!-- end of corpauthor.module -->
+ <!-- CorpCredit ...................... -->
+ <xs:attributeGroup name="corpcredit.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A corporation or organization credited in a document. -->
+ <xs:element name="corpcredit" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="corpcredit.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of corpcredit.element -->
+ <xs:attributeGroup name="corpcredit.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="graphicdesigner"/>
+ <xs:enumeration value="productioneditor"/>
+ <xs:enumeration value="copyeditor"/>
+ <xs:enumeration value="technicaleditor"/>
+ <xs:enumeration value="translator"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="corpcredit.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of corpcredit.attlist -->
+ <!-- end of corpcredit.module -->
+ <!-- CorpName ......................... -->
+ <!-- doc:The name of a corporation. -->
+ <xs:element name="corpname">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="corpname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of corpname.element -->
+ <xs:attributeGroup name="corpname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="corpname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="corpname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of corpname.attlist -->
+ <!-- end of corpname.module -->
+ <!-- Date ............................. -->
+ <xs:attributeGroup name="date.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The date of publication or revision of a document. -->
+ <xs:element name="date">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="date.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of date.element -->
+ <xs:attributeGroup name="date.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="date.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of date.attlist -->
+ <!-- end of date.module -->
+ <!-- Edition .......................... -->
+ <xs:attributeGroup name="edition.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name or number of an edition of a document. -->
+ <xs:element name="edition">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="edition.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of edition.element -->
+ <xs:attributeGroup name="edition.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="edition.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of edition.attlist -->
+ <!-- end of edition.module -->
+ <!-- Editor ........................... -->
+ <xs:attributeGroup name="editor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of the editor of a document. -->
+ <xs:element name="editor">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="personname"/>
+ <xs:group maxOccurs="unbounded" ref="person.ident.mix"/>
+ </xs:choice>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="personblurb"/>
+ <xs:element ref="email"/>
+ <xs:element ref="address"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="editor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of editor.element -->
+ <xs:attributeGroup name="editor.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="editor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of editor.attlist -->
+ <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+ <!-- end of editor.module -->
+ <!-- ISBN ............................. -->
+ <xs:attributeGroup name="isbn.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The International Standard Book Number of a document. -->
+ <xs:element name="isbn">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="isbn.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of isbn.element -->
+ <xs:attributeGroup name="isbn.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="isbn.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of isbn.attlist -->
+ <!-- end of isbn.module -->
+ <!-- ISSN ............................. -->
+ <xs:attributeGroup name="issn.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The International Standard Serial Number of a periodical. -->
+ <xs:element name="issn">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="issn.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of issn.element -->
+ <xs:attributeGroup name="issn.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="issn.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of issn.attlist -->
+ <!-- end of issn.module -->
+ <!-- BiblioId ................. -->
+ <xs:attributeGroup name="biblio.class.attrib">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="uri"/>
+ <xs:enumeration value="doi"/>
+ <xs:enumeration value="isbn"/>
+ <xs:enumeration value="isrn"/>
+ <xs:enumeration value="issn"/>
+ <xs:enumeration value="libraryofcongress"/>
+ <xs:enumeration value="pubnumber"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherclass"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="biblioid.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An identifier for a document. -->
+ <xs:element name="biblioid">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="biblioid.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of biblioid.element -->
+ <xs:attributeGroup name="biblioid.attlist">
+ <xs:attributeGroup ref="biblio.class.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="biblioid.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of biblioid.attlist -->
+ <!-- end of biblioid.module -->
+ <!-- CiteBiblioId ................. -->
+ <xs:attributeGroup name="citebiblioid.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A citation of a bibliographic identifier. -->
+ <xs:element name="citebiblioid" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="citebiblioid.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of citebiblioid.element -->
+ <xs:attributeGroup name="citebiblioid.attlist">
+ <xs:attributeGroup ref="biblio.class.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="citebiblioid.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of citebiblioid.attlist -->
+ <!-- end of citebiblioid.module -->
+ <!-- BiblioSource ................. -->
+ <xs:attributeGroup name="bibliosource.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The source of a document. -->
+ <xs:element name="bibliosource">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="bibliosource.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliosource.element -->
+ <xs:attributeGroup name="bibliosource.attlist">
+ <xs:attributeGroup ref="biblio.class.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliosource.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliosource.attlist -->
+ <!-- end of bibliosource.module -->
+ <!-- BiblioRelation ................. -->
+ <xs:attributeGroup name="bibliorelation.type.attrib">
+ <xs:attribute name="type">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="isversionof"/>
+ <xs:enumeration value="hasversion"/>
+ <xs:enumeration value="isreplacedby"/>
+ <xs:enumeration value="replaces"/>
+ <xs:enumeration value="isrequiredby"/>
+ <xs:enumeration value="requires"/>
+ <xs:enumeration value="ispartof"/>
+ <xs:enumeration value="haspart"/>
+ <xs:enumeration value="isreferencedby"/>
+ <xs:enumeration value="references"/>
+ <xs:enumeration value="isformatof"/>
+ <xs:enumeration value="hasformat"/>
+ <xs:enumeration value="othertype"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="othertype"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="bibliorelation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The relationship of a document to another. -->
+ <xs:element name="bibliorelation">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="bibliorelation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliorelation.element -->
+ <xs:attributeGroup name="bibliorelation.attlist">
+ <xs:attributeGroup ref="biblio.class.attrib"/>
+ <xs:attributeGroup ref="bibliorelation.type.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliorelation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliorelation.attlist -->
+ <!-- end of bibliorelation.module -->
+ <!-- BiblioCoverage ................. -->
+ <xs:attributeGroup name="bibliocoverage.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The spatial or temporal coverage of a document. -->
+ <xs:element name="bibliocoverage">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="bibliocoverage.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of bibliocoverage.element -->
+ <xs:attributeGroup name="bibliocoverage.attlist">
+ <xs:attribute name="spatial">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="dcmipoint"/>
+ <xs:enumeration value="iso3166"/>
+ <xs:enumeration value="dcmibox"/>
+ <xs:enumeration value="tgn"/>
+ <xs:enumeration value="otherspatial"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherspatial"/>
+ <xs:attribute name="temporal">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="dcmiperiod"/>
+ <xs:enumeration value="w3c-dtf"/>
+ <xs:enumeration value="othertemporal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="othertemporal"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="bibliocoverage.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of bibliocoverage.attlist -->
+ <!-- end of bibliocoverage.module -->
+ <!-- InvPartNumber .................... -->
+ <xs:attributeGroup name="invpartnumber.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inventory part number. -->
+ <xs:element name="invpartnumber">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="invpartnumber.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of invpartnumber.element -->
+ <xs:attributeGroup name="invpartnumber.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="invpartnumber.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of invpartnumber.attlist -->
+ <!-- end of invpartnumber.module -->
+ <!-- IssueNum ......................... -->
+ <xs:attributeGroup name="issuenum.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The number of an issue of a journal. -->
+ <xs:element name="issuenum">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="issuenum.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of issuenum.element -->
+ <xs:attributeGroup name="issuenum.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="issuenum.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of issuenum.attlist -->
+ <!-- end of issuenum.module -->
+ <!-- LegalNotice ...................... -->
+ <xs:attributeGroup name="legalnotice.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A statement of legal obligations or requirements. -->
+ <xs:element name="legalnotice">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:element minOccurs="0" ref="title"/>
+ <xs:group maxOccurs="unbounded" ref="legalnotice.mix"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="legalnotice.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of legalnotice.element -->
+ <xs:attributeGroup name="legalnotice.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="legalnotice.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of legalnotice.attlist -->
+ <!-- end of legalnotice.module -->
+ <!-- ModeSpec ......................... -->
+ <xs:attributeGroup name="modespec.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Application-specific information necessary for the completion of an OLink. -->
+ <xs:element name="modespec" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="modespec.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of modespec.element -->
+ <!--
+ Application: Type of action required for completion
+ of the links to which the ModeSpec is relevant (e.g.,
+ retrieval query)
+ -->
+ <xs:attributeGroup name="modespec.attlist">
+ <xs:attribute name="application" type="notation.class"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="modespec.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of modespec.attlist -->
+ <!-- end of modespec.module -->
+ <!-- OrgName .......................... -->
+ <xs:attributeGroup name="orgname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of an organization other than a corporation. -->
+ <xs:element name="orgname" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="orgname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of orgname.element -->
+ <xs:attributeGroup name="orgname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="corporation"/>
+ <xs:enumeration value="nonprofit"/>
+ <xs:enumeration value="consortium"/>
+ <xs:enumeration value="informal"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherclass"/>
+ <xs:attributeGroup ref="orgname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of orgname.attlist -->
+ <!-- end of orgname.module -->
+ <!-- OtherCredit ...................... -->
+ <xs:attributeGroup name="othercredit.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A person or entity, other than an author or editor, credited in a document. -->
+ <xs:element name="othercredit" substitutionGroup="docinfo.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="personname"/>
+ <xs:group maxOccurs="unbounded" ref="person.ident.mix"/>
+ </xs:choice>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="personblurb"/>
+ <xs:element ref="email"/>
+ <xs:element ref="address"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="othercredit.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of othercredit.element -->
+ <xs:attributeGroup name="othercredit.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="graphicdesigner"/>
+ <xs:enumeration value="productioneditor"/>
+ <xs:enumeration value="copyeditor"/>
+ <xs:enumeration value="technicaleditor"/>
+ <xs:enumeration value="translator"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="othercredit.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of othercredit.attlist -->
+ <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+ <!-- end of othercredit.module -->
+ <!-- PageNums ......................... -->
+ <xs:attributeGroup name="pagenums.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The numbers of the pages in a book, for use in a bibliographic entry. -->
+ <xs:element name="pagenums">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="pagenums.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of pagenums.element -->
+ <xs:attributeGroup name="pagenums.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="pagenums.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of pagenums.attlist -->
+ <!-- end of pagenums.module -->
+ <!-- Personal identity elements ....... -->
+ <!--
+ These elements are used only within Author, Editor, and
+ OtherCredit.
+ -->
+ <xs:attributeGroup name="contrib.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A summary of the contributions made to a document by a credited source. -->
+ <xs:element name="contrib">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="contrib.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of contrib.element -->
+ <xs:attributeGroup name="contrib.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="contrib.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of contrib.attlist -->
+ <!-- end of contrib.module -->
+ <xs:attributeGroup name="firstname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The first name of a person. -->
+ <xs:element name="firstname">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="firstname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of firstname.element -->
+ <xs:attributeGroup name="firstname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="firstname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of firstname.attlist -->
+ <!-- end of firstname.module -->
+ <xs:attributeGroup name="honorific.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of a person. -->
+ <xs:element name="honorific">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="honorific.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of honorific.element -->
+ <xs:attributeGroup name="honorific.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="honorific.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of honorific.attlist -->
+ <!-- end of honorific.module -->
+ <xs:attributeGroup name="lineage.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The portion of a person's name indicating a relationship to ancestors. -->
+ <xs:element name="lineage">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="lineage.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of lineage.element -->
+ <xs:attributeGroup name="lineage.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="lineage.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of lineage.attlist -->
+ <!-- end of lineage.module -->
+ <xs:attributeGroup name="othername.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A component of a persons name that is not a first name, surname, or lineage. -->
+ <xs:element name="othername">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="othername.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of othername.element -->
+ <xs:attributeGroup name="othername.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="othername.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of othername.attlist -->
+ <!-- end of othername.module -->
+ <xs:attributeGroup name="surname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A family name; in western cultures the last name. -->
+ <xs:element name="surname">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="surname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of surname.element -->
+ <xs:attributeGroup name="surname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="surname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of surname.attlist -->
+ <!-- end of surname.module -->
+ <!-- end of person.ident.module -->
+ <!-- PrintHistory ..................... -->
+ <xs:attributeGroup name="printhistory.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The printing history of a document. -->
+ <xs:element name="printhistory">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="para.class"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="printhistory.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of printhistory.element -->
+ <xs:attributeGroup name="printhistory.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="printhistory.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of printhistory.attlist -->
+ <!-- end of printhistory.module -->
+ <!-- ProductName ...................... -->
+ <xs:attributeGroup name="productname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The formal name of a product. -->
+ <xs:element name="productname" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="productname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of productname.element -->
+ <!-- Class: More precisely identifies the item the element names -->
+ <xs:attributeGroup name="productname.attlist">
+ <xs:attribute name="class" default="trade">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="service"/>
+ <xs:enumeration value="trade"/>
+ <xs:enumeration value="registered"/>
+ <xs:enumeration value="copyright"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="productname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of productname.attlist -->
+ <!-- end of productname.module -->
+ <!-- ProductNumber .................... -->
+ <xs:attributeGroup name="productnumber.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A number assigned to a product. -->
+ <xs:element name="productnumber" substitutionGroup="docinfo.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="productnumber.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of productnumber.element -->
+ <xs:attributeGroup name="productnumber.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="productnumber.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of productnumber.attlist -->
+ <!-- end of productnumber.module -->
+ <!-- PubDate .......................... -->
+ <xs:attributeGroup name="pubdate.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The date of publication of a document. -->
+ <xs:element name="pubdate">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="pubdate.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of pubdate.element -->
+ <xs:attributeGroup name="pubdate.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="pubdate.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of pubdate.attlist -->
+ <!-- end of pubdate.module -->
+ <!-- Publisher ........................ -->
+ <xs:attributeGroup name="publisher.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The publisher of a document. -->
+ <xs:element name="publisher">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="publishername"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="address"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="publisher.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of publisher.element -->
+ <xs:attributeGroup name="publisher.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="publisher.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of publisher.attlist -->
+ <!-- end of publisher.module -->
+ <xs:attributeGroup name="publishername.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of the publisher of a document. -->
+ <xs:element name="publishername">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="publishername.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of publishername.element -->
+ <xs:attributeGroup name="publishername.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="publishername.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of publishername.attlist -->
+ <!-- end of publishername.module -->
+ <!-- Address (defined elsewhere in this section) -->
+ <!-- end of publisher.content.module -->
+ <!-- PubsNumber ....................... -->
+ <xs:attributeGroup name="pubsnumber.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A number assigned to a publication other than an ISBN or ISSN or inventory part number. -->
+ <xs:element name="pubsnumber">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="pubsnumber.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of pubsnumber.element -->
+ <xs:attributeGroup name="pubsnumber.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="pubsnumber.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of pubsnumber.attlist -->
+ <!-- end of pubsnumber.module -->
+ <!-- ReleaseInfo ...................... -->
+ <xs:attributeGroup name="releaseinfo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Information about a particular release of a document. -->
+ <xs:element name="releaseinfo">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="releaseinfo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of releaseinfo.element -->
+ <xs:attributeGroup name="releaseinfo.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="releaseinfo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of releaseinfo.attlist -->
+ <!-- end of releaseinfo.module -->
+ <!-- RevHistory ....................... -->
+ <xs:attributeGroup name="revhistory.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A history of the revisions to a document. -->
+ <xs:element name="revhistory" substitutionGroup="docinfo.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="revision"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="revhistory.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of revhistory.element -->
+ <xs:attributeGroup name="revhistory.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="revhistory.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of revhistory.attlist -->
+ <!-- end of revhistory.module -->
+ <xs:attributeGroup name="revision.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An entry describing a single revision in the history of the revisions to a document. -->
+ <xs:element name="revision">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="revnumber"/>
+ <xs:element ref="date"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="author"/>
+ <xs:element ref="authorinitials"/>
+ </xs:choice>
+ <xs:choice minOccurs="0">
+ <xs:element ref="revremark"/>
+ <xs:element ref="revdescription"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="revision.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of revision.element -->
+ <xs:attributeGroup name="revision.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="revision.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of revision.attlist -->
+ <!-- end of revision.module -->
+ <xs:attributeGroup name="revnumber.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A document revision number. -->
+ <xs:element name="revnumber">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="revnumber.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of revnumber.element -->
+ <xs:attributeGroup name="revnumber.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="revnumber.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of revnumber.attlist -->
+ <!-- end of revnumber.module -->
+ <!-- Date (defined elsewhere in this section) -->
+ <!-- AuthorInitials (defined elsewhere in this section) -->
+ <xs:attributeGroup name="revremark.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A description of a revision to a document. -->
+ <xs:element name="revremark">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="revremark.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of revremark.element -->
+ <xs:attributeGroup name="revremark.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="revremark.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of revremark.attlist -->
+ <!-- end of revremark.module -->
+ <xs:attributeGroup name="revdescription.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A extended description of a revision to a document. -->
+ <xs:element name="revdescription">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="revdescription.mix"/>
+ <xs:attributeGroup ref="revdescription.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of revdescription.element -->
+ <xs:attributeGroup name="revdescription.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="revdescription.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of revdescription.attlist -->
+ <!-- end of revdescription.module -->
+ <!-- end of revhistory.content.module -->
+ <!-- SeriesVolNums .................... -->
+ <xs:attributeGroup name="seriesvolnums.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Numbers of the volumes in a series of books. -->
+ <xs:element name="seriesvolnums">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="seriesvolnums.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seriesvolnums.element -->
+ <xs:attributeGroup name="seriesvolnums.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seriesvolnums.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of seriesvolnums.attlist -->
+ <!-- end of seriesvolnums.module -->
+ <!-- VolumeNum ........................ -->
+ <xs:attributeGroup name="volumenum.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The volume number of a document in a set (as of books in a set or articles in a journal). -->
+ <xs:element name="volumenum">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="volumenum.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of volumenum.element -->
+ <xs:attributeGroup name="volumenum.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="volumenum.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of volumenum.attlist -->
+ <!-- end of volumenum.module -->
+ <!-- .................................. -->
+ <!-- end of docinfo.content.module -->
+ <!-- ...................................................................... -->
+ <!-- Inline, link, and ubiquitous elements ................................ -->
+ <!-- Technical and computer terms ......................................... -->
+ <xs:attributeGroup name="accel.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A graphical user interface (GUI) keyboard shortcut. -->
+ <xs:element name="accel">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="accel.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of accel.element -->
+ <xs:attributeGroup name="accel.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="accel.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of accel.attlist -->
+ <!-- end of accel.module -->
+ <xs:attributeGroup name="action.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A response to a user event. -->
+ <xs:element name="action" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="action.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of action.element -->
+ <xs:attributeGroup name="action.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="action.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of action.attlist -->
+ <!-- end of action.module -->
+ <xs:attributeGroup name="application.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a software program. -->
+ <xs:element name="application" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="application.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of application.element -->
+ <xs:attributeGroup name="application.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="hardware"/>
+ <xs:enumeration value="software"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="application.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of application.attlist -->
+ <!-- end of application.module -->
+ <xs:attributeGroup name="classname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a class, in the object-oriented programming sense. -->
+ <xs:element name="classname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="classname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of classname.element -->
+ <xs:attributeGroup name="classname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="classname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of classname.attlist -->
+ <!-- end of classname.module -->
+ <xs:attributeGroup name="package.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A package. -->
+ <xs:element name="package" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="package.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of package.element -->
+ <xs:attributeGroup name="package.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="package.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of package.attlist -->
+ <!-- end of package.module -->
+ <!--
+ CO is a callout area of the LineColumn unit type (a single character
+ position); the position is directly indicated by the location of CO.
+ -->
+ <xs:attributeGroup name="co.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The location of a callout embedded in text. -->
+ <xs:element name="co">
+ <xs:complexType>
+ <xs:attributeGroup ref="co.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of co.element -->
+ <!-- bug number/symbol override or initialization -->
+ <!-- to any related information -->
+ <xs:attributeGroup name="co.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linkends.attrib"/>
+ <xs:attributeGroup ref="idreq.common.attrib"/>
+ <xs:attributeGroup ref="co.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of co.attlist -->
+ <!-- end of co.module -->
+ <!-- COREF is a reference to a CO -->
+ <xs:attributeGroup name="coref.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross reference to a co. -->
+ <xs:element name="coref">
+ <xs:complexType>
+ <xs:attributeGroup ref="coref.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of coref.element -->
+ <!-- bug number/symbol override or initialization -->
+ <!-- to any related information -->
+ <xs:attributeGroup name="coref.attlist">
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="coref.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of coref.attlist -->
+ <!-- end of coref.module -->
+ <xs:attributeGroup name="command.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of an executable program or other software command. -->
+ <xs:element name="command" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="command.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of command.element -->
+ <xs:attributeGroup name="command.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="command.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of command.attlist -->
+ <!-- end of command.module -->
+ <xs:attributeGroup name="computeroutput.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Data, generally text, displayed or presented by a computer. -->
+ <xs:element name="computeroutput" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="cptr.char.mix"/>
+ <xs:element ref="co"/>
+ </xs:choice>
+ <xs:attributeGroup ref="computeroutput.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of computeroutput.element -->
+ <xs:attributeGroup name="computeroutput.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="computeroutput.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of computeroutput.attlist -->
+ <!-- end of computeroutput.module -->
+ <xs:attributeGroup name="database.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a database, or part of a database. -->
+ <xs:element name="database" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="database.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of database.element -->
+ <!-- Class: Type of database the element names; no default -->
+ <xs:attributeGroup name="database.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="name"/>
+ <xs:enumeration value="table"/>
+ <xs:enumeration value="field"/>
+ <xs:enumeration value="key1"/>
+ <xs:enumeration value="key2"/>
+ <xs:enumeration value="record"/>
+ <xs:enumeration value="index"/>
+ <xs:enumeration value="view"/>
+ <xs:enumeration value="primarykey"/>
+ <xs:enumeration value="secondarykey"/>
+ <xs:enumeration value="foreignkey"/>
+ <xs:enumeration value="altkey"/>
+ <xs:enumeration value="procedure"/>
+ <xs:enumeration value="datatype"/>
+ <xs:enumeration value="constraint"/>
+ <xs:enumeration value="rule"/>
+ <xs:enumeration value="user"/>
+ <xs:enumeration value="group"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="database.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of database.attlist -->
+ <!-- end of database.module -->
+ <xs:attributeGroup name="email.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An email address. -->
+ <xs:element name="email" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="docinfo.char.mix"/>
+ <xs:attributeGroup ref="email.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of email.element -->
+ <xs:attributeGroup name="email.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="email.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of email.attlist -->
+ <!-- end of email.module -->
+ <xs:attributeGroup name="envar.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A software environment variable. -->
+ <xs:element name="envar" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="envar.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of envar.element -->
+ <xs:attributeGroup name="envar.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="envar.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of envar.attlist -->
+ <!-- end of envar.module -->
+ <xs:attributeGroup name="errorcode.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An error code. -->
+ <xs:element name="errorcode" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="errorcode.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of errorcode.element -->
+ <xs:attributeGroup name="errorcode.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="errorcode.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of errorcode.attlist -->
+ <!-- end of errorcode.module -->
+ <xs:attributeGroup name="errorname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An error name. -->
+ <xs:element name="errorname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="errorname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of errorname.element -->
+ <xs:attributeGroup name="errorname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="errorname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of errorname.attlist -->
+ <!-- end of errorname.module -->
+ <xs:attributeGroup name="errortext.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An error message.. -->
+ <xs:element name="errortext" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="errortext.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of errortext.element -->
+ <xs:attributeGroup name="errortext.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="errortext.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of errortext.attlist -->
+ <!-- end of errortext.module -->
+ <xs:attributeGroup name="errortype.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The classification of an error message. -->
+ <xs:element name="errortype" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="errortype.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of errortype.element -->
+ <xs:attributeGroup name="errortype.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="errortype.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of errortype.attlist -->
+ <!-- end of errortype.module -->
+ <xs:attributeGroup name="filename.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a file. -->
+ <xs:element name="filename" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="filename.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of filename.element -->
+ <!-- Class: Type of filename the element names; no default -->
+ <!--
+ Path: Search path (possibly system-specific) in which
+ file can be found
+ -->
+ <xs:attributeGroup name="filename.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="headerfile"/>
+ <xs:enumeration value="partition"/>
+ <xs:enumeration value="devicefile"/>
+ <xs:enumeration value="libraryfile"/>
+ <xs:enumeration value="directory"/>
+ <xs:enumeration value="extension"/>
+ <xs:enumeration value="symlink"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="path"/>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="filename.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of filename.attlist -->
+ <!-- end of filename.module -->
+ <xs:attributeGroup name="function.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a function or subroutine, as in a programming language. -->
+ <xs:element name="function" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="function.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of function.element -->
+ <xs:attributeGroup name="function.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="function.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of function.attlist -->
+ <!-- end of function.module -->
+ <xs:attributeGroup name="guibutton.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The text on a button in a GUI. -->
+ <xs:element name="guibutton" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guibutton.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guibutton.element -->
+ <xs:attributeGroup name="guibutton.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guibutton.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guibutton.attlist -->
+ <!-- end of guibutton.module -->
+ <xs:attributeGroup name="guiicon.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Graphic and/or text appearing as a icon in a GUI. -->
+ <xs:element name="guiicon" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guiicon.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guiicon.element -->
+ <xs:attributeGroup name="guiicon.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guiicon.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guiicon.attlist -->
+ <!-- end of guiicon.module -->
+ <xs:attributeGroup name="guilabel.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The text of a label in a GUI. -->
+ <xs:element name="guilabel" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guilabel.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guilabel.element -->
+ <xs:attributeGroup name="guilabel.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guilabel.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guilabel.attlist -->
+ <!-- end of guilabel.module -->
+ <xs:attributeGroup name="guimenu.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a menu in a GUI. -->
+ <xs:element name="guimenu" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guimenu.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guimenu.element -->
+ <xs:attributeGroup name="guimenu.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guimenu.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guimenu.attlist -->
+ <!-- end of guimenu.module -->
+ <xs:attributeGroup name="guimenuitem.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a terminal menu item in a GUI. -->
+ <xs:element name="guimenuitem" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guimenuitem.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guimenuitem.element -->
+ <xs:attributeGroup name="guimenuitem.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guimenuitem.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guimenuitem.attlist -->
+ <!-- end of guimenuitem.module -->
+ <xs:attributeGroup name="guisubmenu.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a submenu in a GUI. -->
+ <xs:element name="guisubmenu" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ <xs:element ref="superscript"/>
+ <xs:element ref="subscript"/>
+ </xs:choice>
+ <xs:attributeGroup ref="guisubmenu.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of guisubmenu.element -->
+ <xs:attributeGroup name="guisubmenu.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="guisubmenu.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of guisubmenu.attlist -->
+ <!-- end of guisubmenu.module -->
+ <xs:attributeGroup name="hardware.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A physical part of a computer system. -->
+ <xs:element name="hardware" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="hardware.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of hardware.element -->
+ <xs:attributeGroup name="hardware.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="hardware.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of hardware.attlist -->
+ <!-- end of hardware.module -->
+ <xs:attributeGroup name="interface.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An element of a GUI. -->
+ <xs:element name="interface" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="accel"/>
+ </xs:choice>
+ <xs:attributeGroup ref="interface.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of interface.element -->
+ <!-- Class: Type of the Interface item; no default -->
+ <xs:attributeGroup name="interface.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="interface.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of interface.attlist -->
+ <!-- end of interface.module -->
+ <xs:attributeGroup name="keycap.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The text printed on a key on a keyboard. -->
+ <xs:element name="keycap" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="keycap.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keycap.element -->
+ <xs:attributeGroup name="keycap.attlist">
+ <xs:attribute name="function">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="alt"/>
+ <xs:enumeration value="control"/>
+ <xs:enumeration value="shift"/>
+ <xs:enumeration value="meta"/>
+ <xs:enumeration value="escape"/>
+ <xs:enumeration value="enter"/>
+ <xs:enumeration value="tab"/>
+ <xs:enumeration value="backspace"/>
+ <xs:enumeration value="command"/>
+ <xs:enumeration value="option"/>
+ <xs:enumeration value="space"/>
+ <xs:enumeration value="delete"/>
+ <xs:enumeration value="insert"/>
+ <xs:enumeration value="up"/>
+ <xs:enumeration value="down"/>
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="home"/>
+ <xs:enumeration value="end"/>
+ <xs:enumeration value="pageup"/>
+ <xs:enumeration value="pagedown"/>
+ <xs:enumeration value="other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="otherfunction"/>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keycap.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keycap.attlist -->
+ <!-- end of keycap.module -->
+ <xs:attributeGroup name="keycode.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The internal, frequently numeric, identifier for a key on a keyboard. -->
+ <xs:element name="keycode" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="keycode.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keycode.element -->
+ <xs:attributeGroup name="keycode.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keycode.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keycode.attlist -->
+ <!-- end of keycode.module -->
+ <xs:attributeGroup name="keycombo.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A combination of input actions. -->
+ <xs:element name="keycombo" substitutionGroup="tech.char.class">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="keycap"/>
+ <xs:element ref="keycombo"/>
+ <xs:element ref="keysym"/>
+ <xs:element ref="mousebutton"/>
+ </xs:choice>
+ <xs:attributeGroup ref="keycombo.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keycombo.element -->
+ <xs:attributeGroup name="keycombo.attlist">
+ <xs:attributeGroup ref="keyaction.attrib"/>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keycombo.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keycombo.attlist -->
+ <!-- end of keycombo.module -->
+ <xs:attributeGroup name="keysysm.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The symbolic name of a key on a keyboard. -->
+ <xs:element name="keysym" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="keysym.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of keysym.element -->
+ <xs:attributeGroup name="keysym.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="keysysm.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of keysym.attlist -->
+ <!-- end of keysym.module -->
+ <xs:attributeGroup name="lineannotation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A comment on a line in a verbatim listing. -->
+ <xs:element name="lineannotation">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="lineannotation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of lineannotation.element -->
+ <xs:attributeGroup name="lineannotation.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="lineannotation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of lineannotation.attlist -->
+ <!-- end of lineannotation.module -->
+ <xs:attributeGroup name="literal.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Inline text that is some literal value. -->
+ <xs:element name="literal" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="literal.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of literal.element -->
+ <xs:attributeGroup name="literal.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="literal.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of literal.attlist -->
+ <!-- end of literal.module -->
+ <xs:attributeGroup name="code.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inline code fragment. -->
+ <xs:element name="code" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="code.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of code.element -->
+ <xs:attributeGroup name="code.attlist">
+ <xs:attribute name="language"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="code.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of code.attlist -->
+ <!-- end of code.module -->
+ <xs:attributeGroup name="constant.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A programming or system constant. -->
+ <xs:element name="constant" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="constant.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of constant.element -->
+ <xs:attributeGroup name="constant.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="limit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="constant.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of constant.attlist -->
+ <!-- end of constant.module -->
+ <xs:attributeGroup name="varname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a variable. -->
+ <xs:element name="varname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="varname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of varname.element -->
+ <xs:attributeGroup name="varname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="varname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of varname.attlist -->
+ <!-- end of varname.module -->
+ <xs:attributeGroup name="markup.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A string of formatting markup in text that is to be represented literally. -->
+ <xs:element name="markup" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="markup.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of markup.element -->
+ <xs:attributeGroup name="markup.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="markup.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of markup.attlist -->
+ <!-- end of markup.module -->
+ <xs:attributeGroup name="medialabel.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A name that identifies the physical medium on which some information resides. -->
+ <xs:element name="medialabel" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="medialabel.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of medialabel.element -->
+ <!-- Class: Type of medium named by the element; no default -->
+ <xs:attributeGroup name="medialabel.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="cartridge"/>
+ <xs:enumeration value="cdrom"/>
+ <xs:enumeration value="disk"/>
+ <xs:enumeration value="tape"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="medialabel.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of medialabel.attlist -->
+ <!-- end of medialabel.module -->
+ <xs:attributeGroup name="menuchoice.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A selection or series of selections from a menu. -->
+ <xs:element name="menuchoice" substitutionGroup="tech.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="shortcut"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="guibutton"/>
+ <xs:element ref="guiicon"/>
+ <xs:element ref="guilabel"/>
+ <xs:element ref="guimenu"/>
+ <xs:element ref="guimenuitem"/>
+ <xs:element ref="guisubmenu"/>
+ <xs:element ref="interface"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="menuchoice.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of menuchoice.element -->
+ <xs:attributeGroup name="menuchoice.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="menuchoice.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of menuchoice.attlist -->
+ <!-- end of menuchoice.module -->
+ <!-- See also KeyCombo -->
+ <xs:attributeGroup name="shortcut.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A key combination for an action that is also accessible through a menu. -->
+ <xs:element name="shortcut">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="keycap"/>
+ <xs:element ref="keycombo"/>
+ <xs:element ref="keysym"/>
+ <xs:element ref="mousebutton"/>
+ </xs:choice>
+ <xs:attributeGroup ref="shortcut.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of shortcut.element -->
+ <xs:attributeGroup name="shortcut.attlist">
+ <xs:attributeGroup ref="keyaction.attrib"/>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="shortcut.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of shortcut.attlist -->
+ <!-- end of shortcut.module -->
+ <!-- end of menuchoice.content.module -->
+ <xs:attributeGroup name="mousebutton.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The conventional name of a mouse button. -->
+ <xs:element name="mousebutton" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="mousebutton.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of mousebutton.element -->
+ <xs:attributeGroup name="mousebutton.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="mousebutton.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of mousebutton.attlist -->
+ <!-- end of mousebutton.module -->
+ <xs:attributeGroup name="msgtext.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The actual text of a message component in a message set. -->
+ <xs:element name="msgtext">
+ <xs:complexType>
+ <xs:group maxOccurs="unbounded" ref="component.mix"/>
+ <xs:attributeGroup ref="msgtext.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of msgtext.element -->
+ <xs:attributeGroup name="msgtext.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="msgtext.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of msgtext.attlist -->
+ <!-- end of msgtext.module -->
+ <xs:attributeGroup name="option.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An option for a software command. -->
+ <xs:element name="option" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="option.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of option.element -->
+ <xs:attributeGroup name="option.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="option.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of option.attlist -->
+ <!-- end of option.module -->
+ <xs:attributeGroup name="optional.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Optional information. -->
+ <xs:element name="optional" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="optional.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of optional.element -->
+ <xs:attributeGroup name="optional.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="optional.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of optional.attlist -->
+ <!-- end of optional.module -->
+ <xs:attributeGroup name="parameter.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A value or a symbolic reference to a value. -->
+ <xs:element name="parameter" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="parameter.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of parameter.element -->
+ <!-- Class: Type of the Parameter; no default -->
+ <xs:attributeGroup name="parameter.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="command"/>
+ <xs:enumeration value="function"/>
+ <xs:enumeration value="option"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="parameter.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of parameter.attlist -->
+ <!-- end of parameter.module -->
+ <xs:attributeGroup name="prompt.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A character or string indicating the start of an input field in a computer display. -->
+ <xs:element name="prompt" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="smallcptr.char.mix"/>
+ <xs:element ref="co"/>
+ </xs:choice>
+ <xs:attributeGroup ref="prompt.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of prompt.element -->
+ <xs:attributeGroup name="prompt.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="prompt.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of prompt.attlist -->
+ <!-- end of prompt.module -->
+ <xs:attributeGroup name="property.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A unit of data associated with some part of a computer system. -->
+ <xs:element name="property" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="cptr.char.mix"/>
+ <xs:attributeGroup ref="property.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of property.element -->
+ <xs:attributeGroup name="property.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="property.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of property.attlist -->
+ <!-- end of property.module -->
+ <xs:attributeGroup name="replaceable.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Content that may or must be replaced by the user. -->
+ <xs:element name="replaceable" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="optional"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="co"/>
+ </xs:choice>
+ <xs:attributeGroup ref="replaceable.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of replaceable.element -->
+ <!--
+ Class: Type of information the element represents; no
+ default
+ -->
+ <xs:attributeGroup name="replaceable.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="command"/>
+ <xs:enumeration value="function"/>
+ <xs:enumeration value="option"/>
+ <xs:enumeration value="parameter"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="replaceable.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of replaceable.attlist -->
+ <!-- end of replaceable.module -->
+ <xs:attributeGroup name="returnvalue.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The value returned by a function. -->
+ <xs:element name="returnvalue" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="returnvalue.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of returnvalue.element -->
+ <xs:attributeGroup name="returnvalue.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="returnvalue.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of returnvalue.attlist -->
+ <!-- end of returnvalue.module -->
+ <xs:attributeGroup name="sgmltag.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A component of SGML markup. -->
+ <xs:element name="sgmltag" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="sgmltag.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of sgmltag.element -->
+ <!-- Class: Type of SGML construct the element names; no default -->
+ <xs:attributeGroup name="sgmltag.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="attribute"/>
+ <xs:enumeration value="attvalue"/>
+ <xs:enumeration value="element"/>
+ <xs:enumeration value="endtag"/>
+ <xs:enumeration value="emptytag"/>
+ <xs:enumeration value="genentity"/>
+ <xs:enumeration value="numcharref"/>
+ <xs:enumeration value="paramentity"/>
+ <xs:enumeration value="pi"/>
+ <xs:enumeration value="xmlpi"/>
+ <xs:enumeration value="starttag"/>
+ <xs:enumeration value="sgmlcomment"/>
+ <xs:enumeration value="prefix"/>
+ <xs:enumeration value="namespace"/>
+ <xs:enumeration value="localname"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="namespace"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="sgmltag.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of sgmltag.attlist -->
+ <!-- end of sgmltag.module -->
+ <xs:attributeGroup name="structfield.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A field in a structure (in the programming language sense). -->
+ <xs:element name="structfield" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="structfield.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of structfield.element -->
+ <xs:attributeGroup name="structfield.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="structfield.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of structfield.attlist -->
+ <!-- end of structfield.module -->
+ <xs:attributeGroup name="structname.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The name of a structure (in the programming language sense). -->
+ <xs:element name="structname" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="structname.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of structname.element -->
+ <xs:attributeGroup name="structname.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="structname.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of structname.attlist -->
+ <!-- end of structname.module -->
+ <xs:attributeGroup name="symbol.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A name that is replaced by a value before processing. -->
+ <xs:element name="symbol" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="symbol.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of symbol.element -->
+ <!-- Class: Type of symbol; no default -->
+ <xs:attributeGroup name="symbol.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="limit"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="symbol.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of symbol.attlist -->
+ <!-- end of symbol.module -->
+ <xs:attributeGroup name="systemitem.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A system-related item or term. -->
+ <xs:element name="systemitem" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="cptr.char.mix"/>
+ <xs:element ref="acronym"/>
+ <xs:element ref="co"/>
+ </xs:choice>
+ <xs:attributeGroup ref="systemitem.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of systemitem.element -->
+ <!-- Class: Type of system item the element names; no default -->
+ <xs:attributeGroup name="systemitem.attlist">
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="constant"/>
+ <xs:enumeration value="daemon"/>
+ <xs:enumeration value="domainname"/>
+ <xs:enumeration value="etheraddress"/>
+ <xs:enumeration value="event"/>
+ <xs:enumeration value="eventhandler"/>
+ <xs:enumeration value="filesystem"/>
+ <xs:enumeration value="fqdomainname"/>
+ <xs:enumeration value="groupname"/>
+ <xs:enumeration value="ipaddress"/>
+ <xs:enumeration value="library"/>
+ <xs:enumeration value="macro"/>
+ <xs:enumeration value="netmask"/>
+ <xs:enumeration value="newsgroup"/>
+ <xs:enumeration value="osname"/>
+ <xs:enumeration value="protocol"/>
+ <xs:enumeration value="resource"/>
+ <xs:enumeration value="systemname"/>
+ <xs:enumeration value="username"/>
+ <xs:enumeration value="process"/>
+ <xs:enumeration value="server"/>
+ <xs:enumeration value="service"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="systemitem.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of systemitem.attlist -->
+ <!-- end of systemitem.module -->
+ <xs:attributeGroup name="uri.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A Uniform Resource Identifier. -->
+ <xs:element name="uri" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="uri.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of uri.element -->
+ <!-- Type: Type of URI; no default -->
+ <xs:attributeGroup name="uri.attlist">
+ <xs:attribute name="type"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="uri.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of uri.attlist -->
+ <!-- end of uri.module -->
+ <xs:attributeGroup name="token.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A unit of information. -->
+ <xs:element name="token" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="token.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of token.element -->
+ <xs:attributeGroup name="token.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="token.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of token.attlist -->
+ <!-- end of token.module -->
+ <xs:attributeGroup name="type.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The classification of a value. -->
+ <xs:element name="type" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="smallcptr.char.mix"/>
+ <xs:attributeGroup ref="type.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of type.element -->
+ <xs:attributeGroup name="type.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="type.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of type.attlist -->
+ <!-- end of type.module -->
+ <xs:attributeGroup name="userinput.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Data entered by the user. -->
+ <xs:element name="userinput" substitutionGroup="tech.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="cptr.char.mix"/>
+ <xs:element ref="co"/>
+ </xs:choice>
+ <xs:attributeGroup ref="userinput.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of userinput.element -->
+ <xs:attributeGroup name="userinput.attlist">
+ <xs:attributeGroup ref="moreinfo.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="userinput.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of userinput.attlist -->
+ <!-- end of userinput.module -->
+ <xs:attributeGroup name="termdef.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inline definition of a term. -->
+ <xs:element name="termdef" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="termdef.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of termdef.element -->
+ <xs:attributeGroup name="termdef.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="termdef.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of termdef.attlist -->
+ <!-- end of termdef.module -->
+ <!-- General words and phrases ............................................ -->
+ <xs:attributeGroup name="abbrev.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An abbreviation, especially one followed by a period. -->
+ <xs:element name="abbrev" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="word.char.mix"/>
+ <xs:attributeGroup ref="abbrev.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of abbrev.element -->
+ <xs:attributeGroup name="abbrev.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="abbrev.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of abbrev.attlist -->
+ <!-- end of abbrev.module -->
+ <xs:attributeGroup name="acronym.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An often pronounceable word made from the initial (or selected) letters of a name or phrase. -->
+ <xs:element name="acronym" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="word.char.mix"/>
+ <xs:attributeGroup ref="acronym.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of acronym.element -->
+ <xs:attributeGroup name="acronym.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="acronym.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of acronym.attlist -->
+ <!-- end of acronym.module -->
+ <xs:attributeGroup name="citation.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inline bibliographic reference to another published work. -->
+ <xs:element name="citation" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="citation.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of citation.element -->
+ <xs:attributeGroup name="citation.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="citation.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of citation.attlist -->
+ <!-- end of citation.module -->
+ <xs:attributeGroup name="citerefentry.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A citation to a reference page. -->
+ <xs:element name="citerefentry" substitutionGroup="gen.char.class">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="refentrytitle"/>
+ <xs:element minOccurs="0" ref="manvolnum"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="citerefentry.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of citerefentry.element -->
+ <xs:attributeGroup name="citerefentry.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="citerefentry.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of citerefentry.attlist -->
+ <!-- end of citerefentry.module -->
+ <xs:attributeGroup name="refentrytitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of a reference page. -->
+ <xs:element name="refentrytitle">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="refentrytitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of refentrytitle.element -->
+ <xs:attributeGroup name="refentrytitle.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="refentrytitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of refentrytitle.attlist -->
+ <!-- end of refentrytitle.module -->
+ <xs:attributeGroup name="namvolnum.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A reference volume number. -->
+ <xs:element name="manvolnum">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="word.char.mix"/>
+ <xs:attributeGroup ref="manvolnum.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of manvolnum.element -->
+ <xs:attributeGroup name="manvolnum.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="namvolnum.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of manvolnum.attlist -->
+ <!-- end of manvolnum.module -->
+ <xs:attributeGroup name="citetitle.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The title of a cited work. -->
+ <xs:element name="citetitle" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="citetitle.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of citetitle.element -->
+ <!-- Pubwork: Genre of published work cited; no default -->
+ <xs:attributeGroup name="citetitle.attlist">
+ <xs:attribute name="pubwork">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="article"/>
+ <xs:enumeration value="book"/>
+ <xs:enumeration value="chapter"/>
+ <xs:enumeration value="part"/>
+ <xs:enumeration value="refentry"/>
+ <xs:enumeration value="section"/>
+ <xs:enumeration value="journal"/>
+ <xs:enumeration value="series"/>
+ <xs:enumeration value="set"/>
+ <xs:enumeration value="manuscript"/>
+ <xs:enumeration value="cdrom"/>
+ <xs:enumeration value="dvd"/>
+ <xs:enumeration value="wiki"/>
+ <xs:enumeration value="gopher"/>
+ <xs:enumeration value="bbs"/>
+ <xs:enumeration value="emailmessage"/>
+ <xs:enumeration value="webpage"/>
+ <xs:enumeration value="newsposting"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="citetitle.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of citetitle.attlist -->
+ <!-- end of citetitle.module -->
+ <xs:attributeGroup name="emphasis.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Emphasized text. -->
+ <xs:element name="emphasis" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="emphasis.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of emphasis.element -->
+ <xs:attributeGroup name="emphasis.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="emphasis.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of emphasis.attlist -->
+ <!-- end of emphasis.module -->
+ <xs:attributeGroup name="foreignphrase.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A word or phrase in a language other than the primary language of the document. -->
+ <xs:element name="foreignphrase" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="foreignphrase.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of foreignphrase.element -->
+ <xs:attributeGroup name="foreignphrase.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="foreignphrase.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of foreignphrase.attlist -->
+ <!-- end of foreignphrase.module -->
+ <xs:attributeGroup name="glossterm.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A glossary term. -->
+ <xs:element name="glossterm" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="glossterm.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of glossterm.element -->
+ <!-- to GlossEntry if Glossterm used in text -->
+ <!--
+ BaseForm: Provides the form of GlossTerm to be used
+ for indexing
+ -->
+ <xs:attributeGroup name="glossterm.attlist">
+ <xs:attribute name="baseform"/>
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="glossterm.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of glossterm.attlist -->
+ <!-- end of glossterm.module -->
+ <xs:attributeGroup name="firstterm.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The first occurrence of a term. -->
+ <xs:element name="firstterm" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="firstterm.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of firstterm.element -->
+ <!-- to GlossEntry or other explanation -->
+ <xs:attributeGroup name="firstterm.attlist">
+ <xs:attribute name="baseform"/>
+ <xs:attributeGroup ref="linkend.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="firstterm.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of firstterm.attlist -->
+ <!-- end of firstterm.module -->
+ <xs:attributeGroup name="phrase.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A span of text. -->
+ <xs:element name="phrase" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="phrase.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of phrase.element -->
+ <xs:attributeGroup name="phrase.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="phrase.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of phrase.attlist -->
+ <!-- end of phrase.module -->
+ <xs:attributeGroup name="quote.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:An inline quotation. -->
+ <xs:element name="quote" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="quote.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of quote.element -->
+ <xs:attributeGroup name="quote.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="quote.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of quote.attlist -->
+ <!-- end of quote.module -->
+ <xs:attributeGroup name="ssscript.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A subscript (as in H{^2}O, the molecular formula for water). -->
+ <xs:element name="subscript">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="emphasis"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="symbol"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ </xs:choice>
+ <xs:attributeGroup ref="subscript.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of subscript.element -->
+ <xs:attributeGroup name="subscript.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ssscript.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of subscript.attlist -->
+ <!-- doc:A superscript (as in x^2, the mathematical notation for x multiplied by itself). -->
+ <xs:element name="superscript">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="emphasis"/>
+ <xs:element ref="replaceable"/>
+ <xs:element ref="symbol"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ </xs:choice>
+ <xs:attributeGroup ref="superscript.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of superscript.element -->
+ <xs:attributeGroup name="superscript.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ssscript.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of superscript.attlist -->
+ <!-- end of ssscript.module -->
+ <xs:attributeGroup name="trademark.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A trademark. -->
+ <xs:element name="trademark" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="link.char.class"/>
+ <xs:element ref="tech.char.class"/>
+ <xs:group ref="base.char.class"/>
+ <xs:group ref="other.char.class"/>
+ <xs:element ref="inlinegraphic"/>
+ <xs:element ref="inlinemediaobject"/>
+ <xs:element ref="emphasis"/>
+ </xs:choice>
+ <xs:attributeGroup ref="trademark.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of trademark.element -->
+ <!-- Class: More precisely identifies the item the element names -->
+ <xs:attributeGroup name="trademark.attlist">
+ <xs:attribute name="class" default="trade">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="service"/>
+ <xs:enumeration value="trade"/>
+ <xs:enumeration value="registered"/>
+ <xs:enumeration value="copyright"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="trademark.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of trademark.attlist -->
+ <!-- end of trademark.module -->
+ <xs:attributeGroup name="wordasword.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A word meant specifically as a word and not representing anything else. -->
+ <xs:element name="wordasword" substitutionGroup="gen.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="word.char.mix"/>
+ <xs:attributeGroup ref="wordasword.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of wordasword.element -->
+ <xs:attributeGroup name="wordasword.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="wordasword.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of wordasword.attlist -->
+ <!-- end of wordasword.module -->
+ <!-- Links and cross-references ........................................... -->
+ <xs:attributeGroup name="link.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A hypertext link. -->
+ <xs:element name="link" substitutionGroup="link.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="link.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of link.element -->
+ <!--
+ Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element
+ -->
+ <!-- to linked-to object -->
+ <!-- Type: Freely assignable parameter -->
+ <xs:attributeGroup name="link.attlist">
+ <xs:attribute name="endterm" type="xs:IDREF"/>
+ <xs:attribute name="xrefstyle"/>
+ <xs:attribute name="type"/>
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="link.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of link.attlist -->
+ <!-- end of link.module -->
+ <xs:attributeGroup name="olink.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A link that addresses its target indirectly, through an entity. -->
+ <xs:element name="olink" substitutionGroup="link.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="olink.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of olink.element -->
+ <!-- TargetDocEnt: Name of an entity to be the target of the link -->
+ <!--
+ LinkMode: ID of a ModeSpec containing instructions for
+ operating on the entity named by TargetDocEnt
+ -->
+ <!-- LocalInfo: Information that may be passed to ModeSpec -->
+ <!-- Type: Freely assignable parameter -->
+ <xs:attributeGroup name="olink.attlist">
+ <xs:attribute name="targetdocent" type="xs:ENTITY"/>
+ <xs:attribute name="linkmode" type="xs:IDREF"/>
+ <xs:attribute name="localinfo"/>
+ <xs:attribute name="type"/>
+ <xs:attribute name="targetdoc"/>
+ <xs:attribute name="targetptr"/>
+ <xs:attribute name="xrefstyle"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="olink.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of olink.attlist -->
+ <!-- end of olink.module -->
+ <xs:attributeGroup name="ulink.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A link that addresses its target by means of a URL (Uniform Resource Locator). -->
+ <xs:element name="ulink" substitutionGroup="link.char.class">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="para.char.mix"/>
+ <xs:attributeGroup ref="ulink.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of ulink.element -->
+ <!-- URL: uniform resource locator; the target of the ULink -->
+ <!-- Type: Freely assignable parameter -->
+ <xs:attributeGroup name="ulink.attlist">
+ <xs:attribute name="url" use="required"/>
+ <xs:attribute name="type"/>
+ <xs:attribute name="xrefstyle"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="ulink.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of ulink.attlist -->
+ <!-- end of ulink.module -->
+ <xs:attributeGroup name="footnoteref.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross reference to a footnote (a footnote mark). -->
+ <xs:element name="footnoteref" substitutionGroup="xref.char.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="footnoteref.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of footnoteref.element -->
+ <!-- to footnote content supplied elsewhere -->
+ <xs:attributeGroup name="footnoteref.attlist">
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="label.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="footnoteref.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of footnoteref.attlist -->
+ <!-- end of footnoteref.module -->
+ <xs:attributeGroup name="xref.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross reference to another part of the document. -->
+ <xs:element name="xref" substitutionGroup="xref.char.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="xref.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of xref.element -->
+ <!--
+ Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element
+ -->
+ <!-- to linked-to object -->
+ <xs:attributeGroup name="xref.attlist">
+ <xs:attribute name="endterm" type="xs:IDREF"/>
+ <xs:attribute name="xrefstyle"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="xref.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of xref.attlist -->
+ <!-- end of xref.module -->
+ <xs:attributeGroup name="biblioref.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A cross reference to a bibliographic entry. -->
+ <xs:element name="biblioref" substitutionGroup="xref.char.class">
+ <xs:complexType>
+ <xs:attributeGroup ref="biblioref.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of biblioref.element -->
+ <xs:attributeGroup name="biblioref.attlist">
+ <xs:attribute name="endterm" type="xs:IDREF"/>
+ <xs:attribute name="xrefstyle"/>
+ <xs:attribute name="units"/>
+ <xs:attribute name="begin"/>
+ <xs:attribute name="end"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="linkendreq.attrib"/>
+ <xs:attributeGroup ref="biblioref.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of biblioref.attlist -->
+ <!-- end of biblioref.module -->
+ <!-- Ubiquitous elements .................................................. -->
+ <xs:attributeGroup name="anchor.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A spot in the document. -->
+ <xs:element name="anchor">
+ <xs:complexType>
+ <xs:attributeGroup ref="anchor.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of anchor.element -->
+ <!-- required -->
+ <!-- replaces Lang -->
+ <xs:attributeGroup name="anchor.attlist">
+ <xs:attributeGroup ref="idreq.attrib"/>
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="remap.attrib"/>
+ <xs:attributeGroup ref="xreflabel.attrib"/>
+ <xs:attributeGroup ref="revisionflag.attrib"/>
+ <xs:attributeGroup ref="effectivity.attrib"/>
+ <xs:attributeGroup ref="anchor.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of anchor.attlist -->
+ <!-- end of anchor.module -->
+ <xs:attributeGroup name="beginpage.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The location of a page break in a print version of the document. -->
+ <xs:element name="beginpage">
+ <xs:complexType>
+ <xs:attributeGroup ref="beginpage.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of beginpage.element -->
+ <!-- PageNum: Number of page that begins at this point -->
+ <xs:attributeGroup name="beginpage.attlist">
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="beginpage.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of beginpage.attlist -->
+ <!-- end of beginpage.module -->
+ <!--
+ IndexTerms appear in the text flow for generating or linking an
+ index.
+ -->
+ <xs:attributeGroup name="indexterm.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:A wrapper for terms to be indexed. -->
+ <xs:element name="indexterm" substitutionGroup="ndxterm.class"/>
+ <!-- end of indexterm.element -->
+ <!--
+ Scope: Indicates which generated indices the IndexTerm
+ should appear in: Global (whole document set), Local (this
+ document only), or All (both)
+ -->
+ <!--
+ Significance: Whether this IndexTerm is the most pertinent
+ of its series (Preferred) or not (Normal, the default)
+ -->
+ <!--
+ Class: Indicates type of IndexTerm; default is Singular,
+ or EndOfRange if StartRef is supplied; StartOfRange value
+ must be supplied explicitly on starts of ranges
+ -->
+ <!--
+ StartRef: ID of the IndexTerm that starts the indexing
+ range ended by this IndexTerm
+ -->
+ <!--
+ Zone: IDs of the elements to which the IndexTerm applies,
+ and indicates that the IndexTerm applies to those entire
+ elements rather than the point at which the IndexTerm
+ occurs
+ -->
+ <xs:attributeGroup name="indexterm.attlist">
+ <xs:attributeGroup ref="pagenum.attrib"/>
+ <xs:attribute name="scope">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="all"/>
+ <xs:enumeration value="global"/>
+ <xs:enumeration value="local"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="significance" default="normal">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="preferred"/>
+ <xs:enumeration value="normal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="class">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="singular"/>
+ <xs:enumeration value="startofrange"/>
+ <xs:enumeration value="endofrange"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="startref" type="xs:IDREF"/>
+ <xs:attribute name="zone" type="xs:IDREFS"/>
+ <xs:attribute name="type"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="indexterm.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of indexterm.attlist -->
+ <!-- end of indexterm.module -->
+ <xs:attributeGroup name="primsecter.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:The primary word or phrase under which an index term should be sorted. -->
+ <xs:element name="primary">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="primary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of primary.element -->
+ <!--
+ SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14"
+ -->
+ <xs:attributeGroup name="primary.attlist">
+ <xs:attribute name="sortas"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecter.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of primary.attlist -->
+ <!-- doc:A secondary word or phrase in an index term. -->
+ <xs:element name="secondary">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="secondary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of secondary.element -->
+ <!--
+ SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14"
+ -->
+ <xs:attributeGroup name="secondary.attlist">
+ <xs:attribute name="sortas"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecter.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of secondary.attlist -->
+ <!-- doc:A tertiary word or phrase in an index term. -->
+ <xs:element name="tertiary">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="tertiary.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of tertiary.element -->
+ <!--
+ SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14"
+ -->
+ <xs:attributeGroup name="tertiary.attlist">
+ <xs:attribute name="sortas"/>
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="primsecter.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of tertiary.attlist -->
+ <!-- end of primsecter.module -->
+ <xs:attributeGroup name="seeseealso.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- doc:Part of an index term directing the reader instead to another entry in the index. -->
+ <xs:element name="see">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="see.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of see.element -->
+ <xs:attributeGroup name="see.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seeseealso.role.attrib"/>
+ </xs:attributeGroup>
+ <!-- end of see.attlist -->
+ <!-- doc:Part of an index term directing the reader also to another entry in the index. -->
+ <xs:element name="seealso">
+ <xs:complexType mixed="true">
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="ndxterm.char.mix"/>
+ <xs:attributeGroup ref="seealso.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- end of seealso.element -->
+ <xs:attributeGroup name="seealso.attlist">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attributeGroup ref="seeseealso.role.attrib"/>
+ </xs:attributeGroup>
+</xs:schema>
+<!-- end of seealso.attlist -->
+<!-- end of seeseealso.module -->
+<!-- end of indexterm.content.module -->
+<!-- End of SCons DocBook V4.5-Based extension V1.0 XML information pool module ... -->
+<!-- .............................................................................. -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/htmltblx.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/htmltblx.xsd
new file mode 100644
index 0000000..9f82a02
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/htmltblx.xsd
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- SCons DocBook V4.5-Based extension V1.0 XML HTML Table Module ........ -->
+<!-- File htmltblx.xsd .................................................... -->
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the DocBook XML HTML Table
+ Module V4.5 with:
+
+ Copyright 2003-2006 ArborText, Inc., Norman Walsh, Sun Microsystems,
+ Inc., and the Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ $Id: htmltblx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This module contains the definitions for elements that are
+ isomorphic to the HTML elements. One could argue we should
+ instead have based ourselves on the XHTML Table Module, but the
+ HTML one is more like what browsers are likely to accept today
+ and users are likely to use.
+
+ This module has been developed for use with the DocBook V4.5
+ "union table model" in which elements and attlists common to both
+ models are defined (as the union) in the CALS table module by
+ setting various parameter entities appropriately in this file.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % htmltbl PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN"
+ "htmltblx.mod">
+ %htmltbl;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+<!-- ======================= XHTML Tables ======================================= -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
+ <xs:attributeGroup name="html.coreattrs">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attribute name="class"/>
+ <xs:attribute name="style"/>
+ <xs:attribute name="title"/>
+ </xs:attributeGroup>
+ <!-- Does not contain lang or dir because they are in %common.attribs -->
+ <xs:attributeGroup name="i18n">
+ <xs:attribute ref="xml:lang"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="events">
+ <xs:attribute name="onclick"/>
+ <xs:attribute name="ondblclick"/>
+ <xs:attribute name="onmousedown"/>
+ <xs:attribute name="onmouseup"/>
+ <xs:attribute name="onmouseover"/>
+ <xs:attribute name="onmousemove"/>
+ <xs:attribute name="onmouseout"/>
+ <xs:attribute name="onkeypress"/>
+ <xs:attribute name="onkeydown"/>
+ <xs:attribute name="onkeyup"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="attrs">
+ <xs:attributeGroup ref="html.coreattrs"/>
+ <xs:attributeGroup ref="i18n"/>
+ <xs:attributeGroup ref="events"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="cellhalign">
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ <xs:enumeration value="justify"/>
+ <xs:enumeration value="char"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char"/>
+ <xs:attribute name="charoff"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="cellvalign">
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="middle"/>
+ <xs:enumeration value="bottom"/>
+ <xs:enumeration value="baseline"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <!-- doc:A group of columns in an HTML table. -->
+ <xs:element name="colgroup">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="colgroup.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- doc:Specifications for a column in an HTML table. -->
+ <xs:element name="col">
+ <xs:complexType>
+ <xs:attributeGroup ref="col.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- doc:A row in an HTML table. -->
+ <xs:element name="tr">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="th"/>
+ <xs:element ref="td"/>
+ </xs:choice>
+ <xs:attributeGroup ref="tr.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- doc:A table header entry in an HTML table. -->
+ <xs:element name="th">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:group ref="tabentry.mix"/>
+ <xs:element ref="table"/>
+ <xs:element ref="informaltable"/>
+ </xs:choice>
+ <xs:attributeGroup ref="th.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <!-- doc:A table ntry in an HTML table. -->
+ <xs:element name="td">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="para.char.mix"/>
+ <xs:group ref="tabentry.mix"/>
+ <xs:element ref="table"/>
+ <xs:element ref="informaltable"/>
+ </xs:choice>
+ <xs:attributeGroup ref="td.attlist"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="colgroup.attlist">
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attribute name="span" default="1"/>
+ <xs:attribute name="width"/>
+ <xs:attributeGroup ref="cellhalign"/>
+ <xs:attributeGroup ref="cellvalign"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="col.attlist">
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attribute name="span" default="1"/>
+ <xs:attribute name="width"/>
+ <xs:attributeGroup ref="cellhalign"/>
+ <xs:attributeGroup ref="cellvalign"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="tr.attlist">
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attributeGroup ref="cellhalign"/>
+ <xs:attributeGroup ref="cellvalign"/>
+ <xs:attribute name="bgcolor"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="th.attlist">
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attribute name="abbr"/>
+ <xs:attribute name="axis"/>
+ <xs:attribute name="headers" type="xs:IDREFS"/>
+ <xs:attribute name="scope">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="row"/>
+ <xs:enumeration value="col"/>
+ <xs:enumeration value="rowgroup"/>
+ <xs:enumeration value="colgroup"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rowspan" default="1"/>
+ <xs:attribute name="colspan" default="1"/>
+ <xs:attributeGroup ref="cellhalign"/>
+ <xs:attributeGroup ref="cellvalign"/>
+ <xs:attribute name="nowrap">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="nowrap"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="bgcolor"/>
+ <xs:attribute name="width"/>
+ <xs:attribute name="height"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="td.attlist">
+ <xs:attributeGroup ref="attrs"/>
+ <xs:attribute name="abbr"/>
+ <xs:attribute name="axis"/>
+ <xs:attribute name="headers" type="xs:IDREFS"/>
+ <xs:attribute name="scope">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="row"/>
+ <xs:enumeration value="col"/>
+ <xs:enumeration value="rowgroup"/>
+ <xs:enumeration value="colgroup"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="rowspan" default="1"/>
+ <xs:attribute name="colspan" default="1"/>
+ <xs:attributeGroup ref="cellhalign"/>
+ <xs:attributeGroup ref="cellvalign"/>
+ <xs:attribute name="nowrap">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="nowrap"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="bgcolor"/>
+ <xs:attribute name="width"/>
+ <xs:attribute name="height"/>
+ </xs:attributeGroup>
+ <!-- ====================================================== -->
+ <!--
+ Set up to read in the CALS model configured to
+ merge with the XHTML table model
+ -->
+ <!-- ====================================================== -->
+ <xs:attributeGroup name="tables.role.attrib">
+ <xs:attributeGroup ref="role.attrib"/>
+ </xs:attributeGroup>
+ <!-- Add label and role attributes to table and informaltable -->
+ <xs:attributeGroup name="bodyatt">
+ <xs:attribute name="floatstyle"/>
+ <xs:attribute name="rowheader">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="firstcol"/>
+ <xs:enumeration value="norowheader"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="label.attrib"/>
+ </xs:attributeGroup>
+ <!--
+ Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+ EntryTbl, and Entry (and InformalTable element).
+ -->
+ <xs:attributeGroup name="secur">
+ <xs:attributeGroup ref="common.attrib"/>
+ <xs:attribute name="class"/>
+ <xs:attribute name="style"/>
+ <xs:attribute name="title"/>
+ <xs:attributeGroup ref="i18n"/>
+ <xs:attributeGroup ref="events"/>
+ <xs:attributeGroup ref="tables.role.attrib"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="common.table.attribs">
+ <xs:attributeGroup ref="bodyatt"/>
+ <xs:attributeGroup ref="secur"/>
+ </xs:attributeGroup>
+ <!-- Content model for Table (that also allows HTML tables) -->
+ <xs:complexType name="tbl.table.mdl">
+ <xs:choice>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="blockinfo"/>
+ <xs:group ref="formalobject.title.content"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="ndxterm.class"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="textobject"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="graphic"/>
+ <xs:element maxOccurs="unbounded" ref="mediaobject"/>
+ <xs:element maxOccurs="unbounded" ref="tgroup"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element ref="caption"/>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element minOccurs="0" ref="tfoot"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tbody"/>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:choice>
+ </xs:complexType>
+ <xs:group name="informal.tbl.table.mdl">
+ <xs:choice>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="textobject"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="graphic"/>
+ <xs:element maxOccurs="unbounded" ref="mediaobject"/>
+ <xs:element maxOccurs="unbounded" ref="tgroup"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead"/>
+ <xs:element minOccurs="0" ref="tfoot"/>
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tbody"/>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:choice>
+ </xs:group>
+ <!-- Attributes for Table (including HTML ones) -->
+ <!-- N.B. rules = (none | groups | rows | cols | all) but it can't be spec'd -->
+ <!-- that way because 'all' already occurs in a different enumeration in -->
+ <!-- CALS tables (frame). -->
+ <xs:attributeGroup name="tbl.table.att">
+ <xs:attribute name="tabstyle"/>
+ <xs:attribute name="tocentry" type="yesorno.attvals"/>
+ <xs:attribute name="shortentry" type="yesorno.attvals"/>
+ <xs:attribute name="orient">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="port"/>
+ <xs:enumeration value="land"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="pgwide" type="yesorno.attvals"/>
+ <xs:attribute name="summary"/>
+ <xs:attribute name="width"/>
+ <xs:attribute name="border"/>
+ <xs:attribute name="rules"/>
+ <xs:attribute name="cellspacing"/>
+ <xs:attribute name="cellpadding"/>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left"/>
+ <xs:enumeration value="center"/>
+ <xs:enumeration value="right"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="bgcolor"/>
+ </xs:attributeGroup>
+ <xs:simpleType name="tbl.frame.attval">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="void"/>
+ <xs:enumeration value="above"/>
+ <xs:enumeration value="below"/>
+ <xs:enumeration value="hsides"/>
+ <xs:enumeration value="lhs"/>
+ <xs:enumeration value="rhs"/>
+ <xs:enumeration value="vsides"/>
+ <xs:enumeration value="box"/>
+ <xs:enumeration value="border"/>
+ <xs:enumeration value="top"/>
+ <xs:enumeration value="bottom"/>
+ <xs:enumeration value="topbot"/>
+ <xs:enumeration value="all"/>
+ <xs:enumeration value="sides"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Allow either objects or inlines; beware of REs between elements. -->
+ <xs:group name="tbl.entry.mdl">
+ <xs:choice>
+ <xs:group ref="para.char.mix"/>
+ <xs:group ref="tabentry.mix"/>
+ </xs:choice>
+ </xs:group>
+ <!--
+ thead, tfoot, and tbody are defined in both table models,
+ so we set up parameter entities to define union models for them
+ -->
+ <xs:complexType name="tbl.hdft.mdl">
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colspec"/>
+ <xs:element maxOccurs="unbounded" ref="row"/>
+ </xs:sequence>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="tbl.tbody.mdl">
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tr"/>
+ <xs:element maxOccurs="unbounded" ref="row"/>
+ </xs:choice>
+ </xs:complexType>
+</xs:schema>
+<!-- End of SCons DocBook V4.5-Based extension V1.0 XML HTML Table Module . -->
+<!-- ...................................................................... -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/scons.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/scons.xsd
new file mode 100644
index 0000000..481c2d4
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/scons.xsd
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- SCons DocBook V4.5-Based extension V1.0 .............................. -->
+<!-- File scons.xsd ....................................................... -->
+<!-- Copyright (c) 2001-7,2010,2011,2012 The SCons Foundation
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ This DTD extension is based on the DocBook V4.5 DTD with:
+
+ Copyright 1992-2006 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ See also http://docbook.org/specs/
+
+ $Id: docbookx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+ For the modified SCons extension files
+
+ scons.xsd, dbpoolx.xsd,
+
+ you can write to its developer mailing list. Check out
+ http://www.scons.org/ and http://www.scons.org/lists.php.
+
+-->
+<!-- ...................................................................... -->
+<!--
+ This is the driver file for V4.5 of the DocBook DTD.
+ Please use the following formal public identifier to identify it:
+
+ "-//OASIS//DTD DocBook XML V4.5//EN"
+
+ For example, if your document's top-level element is Book, and
+ you are using DocBook directly, use the FPI in the DOCTYPE
+ declaration:
+
+ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
+ [...]>
+
+ Or, if you have a higher-level driver file that customizes DocBook,
+ use the FPI in the parameter entity declaration:
+
+ <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+ %DocBookDTD;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+<!-- ...................................................................... -->
+<!-- Enable SGML features ................................................. -->
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.scons.org/dbxsd/v1.0"
+ elementFormDefault="qualified">
+ <xs:include schemaLocation="dbnotnx.xsd"/>
+ <xs:include schemaLocation="dbpoolx.xsd"/>
+ <xs:include schemaLocation="dbhierx.xsd"/>
+ <!-- ...................................................................... -->
+ <!-- ISO character entity sets ............................................ -->
+ <!-- euro sign, U+20AC NEW -->
+ <!-- ...................................................................... -->
+ <!-- DTD modules .......................................................... -->
+ <!-- Information pool .............. -->
+ <!-- Redeclaration placeholder ..... -->
+ <!-- Document hierarchy ............ -->
+</xs:schema>
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+<!-- End of SCons DocBook V4.5-Based extension V1.0 ....................... -->
+<!-- ...................................................................... -->
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/xml.xsd b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/xml.xsd
new file mode 100644
index 0000000..600f399
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/scons_xsd/xml.xsd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://www.w3.org/XML/1998/namespace">
+ <xs:import schemaLocation="scons.xsd"/>
+ <xs:attribute name="base"/>
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="lang" type="xs:NMTOKEN"/>
+</xs:schema>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/toolBar.incl b/doc/editor_configs/xmlmind5/addon/config/scons/toolBar.incl
new file mode 100644
index 0000000..a610a2d
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/toolBar.incl
@@ -0,0 +1,189 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<configuration
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
+
+ <toolBar>
+ <button toolTip="Convert to emphasis"
+ icon="../common/icons/emphasisText_menu.png">
+ <menu>
+ <item label="emphasis"
+ command="convert"
+ parameter="[implicitElement] emphasis" />
+ <item label="emphasis[bold]"
+ command="docb.convertWithAttribute"
+ parameter="emphasis role bold" />
+ <item label="firstterm" command="convert"
+ parameter="[implicitElement] firstterm" />
+ <item label="replaceable" command="convert"
+ parameter="[implicitElement] replaceable" />
+ <separator />
+ <item label="literal" command="convert"
+ parameter="[implicitElement] literal" />
+ <item label="filename" command="convert"
+ parameter="[implicitElement] filename" />
+ <separator />
+ <item label="trademark" command="convert"
+ parameter="[implicitElement] trademark" />
+ <item label="trademark[registered]" command="docb.convertWithAttribute"
+ parameter="trademark class registered" />
+ <separator />
+ <item label="guilabel" command="convert"
+ parameter="[implicitElement] guilabel" />
+ <item label="guibutton" command="convert"
+ parameter="[implicitElement] guibutton" />
+ <item label="guimenuitem" command="convert"
+ parameter="[implicitElement] guimenuitem" />
+ <item label="guisubmenu" command="convert"
+ parameter="[implicitElement] guisubmenu" />
+ <item label="guimenu" command="convert"
+ parameter="[implicitElement] guimenu" />
+ <separator />
+ <item label="keycap" command="convert"
+ parameter="[implicitElement] keycap" />
+ <item label="keysym" command="convert"
+ parameter="[implicitElement] keysym" />
+ <separator />
+ <item label="sgmltag[element]" command="docb.convertWithAttribute"
+ parameter="sgmltag class element" />
+ <item label="sgmltag[attribute]" command="docb.convertWithAttribute"
+ parameter="sgmltag class attribute" />
+ <item label="sgmltag[attvalue]" command="docb.convertWithAttribute"
+ parameter="sgmltag class attvalue" />
+ </menu>
+ </button>
+
+ <button toolTip="Convert to link"
+ icon="../common/icons/hyperText_menu.png">
+ <menu>
+ <item label="link" command="convert"
+ parameter="[implicitElement] link" />
+ <item label="ulink" command="convert"
+ parameter="[implicitElement] ulink" />
+ </menu>
+ </button>
+
+ <button toolTip="Convert to plain text"
+ icon="../common/icons/plainText.png">
+ <command name="convert" parameter="[implicitElement] #text" />
+ </button>
+
+ <separator />
+
+ <button toolTip="Add para" icon="../common/icons/paragraph.png">
+ <command name="docb.addAfter" parameter="para" />
+ </button>
+
+ <button toolTip="Add listitem or varlistentry [Ctrl-Enter]"
+ icon="../common/icons/addListItem.png">
+ <command name="docb.addListItem" parameter="After" />
+ </button>
+
+ <button toolTip="Add itemizedlist"
+ icon="../common/icons/itemizedList.png">
+ <command name="docb.addAfter" parameter="itemizedlist" />
+ </button>
+
+ <button toolTip="Add orderedlist"
+ icon="../common/icons/orderedList.png">
+ <command name="docb.addAfter" parameter="orderedlist" />
+ </button>
+
+ <button toolTip="Add variablelist"
+ icon="../common/icons/definitionList.png">
+ <command name="docb.addAfter" parameter="variablelist" />
+ </button>
+
+ <button toolTip="Add table" icon="../common/icons/table_menu.png">
+ <menu>
+ <item label="informaltable" command="docb.addAfter"
+ parameter="informaltable" />
+ <item label="informaltable(head_row)" command="docb.addAfter"
+ parameter="#template(informaltable,head_row)" />
+ <item label="informaltable(head_column)" command="docb.addAfter"
+ parameter="#template(informaltable,head_column)" />
+ <item label="informaltable(head_row_column)" command="docb.addAfter"
+ parameter="#template(informaltable,head_row_column)" />
+ <separator />
+ <item label="table" command="docb.addAfter"
+ parameter="table" />
+ <item label="table(head_row)" command="docb.addAfter"
+ parameter="#template(table,head_row)" />
+ <item label="table(head_column)" command="docb.addAfter"
+ parameter="#template(table,head_column)" />
+ <item label="table(head_row_column)" command="docb.addAfter"
+ parameter="#template(table,head_row_column)" />
+
+ <separator />
+
+ <item label="informaltable(HTML)" command="docb.addAfter"
+ parameter="#template(informaltable,HTML)" />
+ <item label="informaltable(HTML_head_row)" command="docb.addAfter"
+ parameter="#template(informaltable,HTML_head_row)" />
+ <item label="informaltable(HTML_head_column)" command="docb.addAfter"
+ parameter="#template(informaltable,HTML_head_column)" />
+ <item label="informaltable(HTML_head_row_column)"
+ command="docb.addAfter"
+ parameter="#template(informaltable,HTML_head_row_column)" />
+ <separator />
+ <item label="table(HTML)" command="docb.addAfter"
+ parameter="#template(table,HTML)" />
+ <item label="table(HTML_head_row)" command="docb.addAfter"
+ parameter="#template(table,HTML_head_row)" />
+ <item label="table(HTML_head_column)" command="docb.addAfter"
+ parameter="#template(table,HTML_head_column)" />
+ <item label="table(HTML_head_row_column)" command="docb.addAfter"
+ parameter="#template(table,HTML_head_row_column)" />
+ </menu>
+ </button>
+
+ <button toolTip="Add image" icon="../common/icons/figure_menu.png">
+ <menu>
+ <item label="inlinemediaobject" command="insert"
+ parameter="into inlinemediaobject" />
+ <separator />
+ <item label="mediaobject" command="docb.addAfter"
+ parameter="mediaobject" />
+ <separator />
+ <item label="screenshot" command="docb.addAfter"
+ parameter="screenshot" />
+ <separator />
+ <item label="figure" command="docb.addAfter"
+ parameter="figure" />
+ <item label="figure(screenshot)" command="docb.addAfter"
+ parameter="#template(figure,screenshot)" />
+ </menu>
+ </button>
+
+ <button toolTip="Add section" icon="../common/icons/section_menu.png">
+ <menu>
+ <item label="chapter" command="add"
+ parameter="after[implicitElement] chapter" />
+ <separator />
+ <item label="section" command="add"
+ parameter="after[implicitElement] section" />
+ <item label="sect1" command="add"
+ parameter="after[implicitElement] sect1" />
+ <item label="sect2" command="add"
+ parameter="after[implicitElement] sect2" />
+ <item label="sect3" command="add"
+ parameter="after[implicitElement] sect3" />
+ <item label="sect4" command="add"
+ parameter="after[implicitElement] sect4" />
+ <item label="sect5" command="add"
+ parameter="after[implicitElement] sect5" />
+ <separator />
+ <item label="appendix" command="add"
+ parameter="after[implicitElement] appendix" />
+ </menu>
+ </button>
+
+ <separator />
+
+ <button toolTip="Go to opposite link end"
+ icon="../common/icons/navigate.png">
+ <command name="selectById" parameter="swapIdAndReference" />
+ </button>
+ </toolBar>
+
+</configuration>
diff --git a/doc/editor_configs/xmlmind5/addon/config/scons/xslMenu.incl b/doc/editor_configs/xmlmind5/addon/config/scons/xslMenu.incl
new file mode 100644
index 0000000..8b639fb
--- /dev/null
+++ b/doc/editor_configs/xmlmind5/addon/config/scons/xslMenu.incl
@@ -0,0 +1,688 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<configuration
+ xmlns="http://www.xmlmind.com/xmleditor/schema/configuration"
+ xmlns:cfg="http://www.xmlmind.com/xmleditor/schema/configuration">
+
+ <!-- ====== First step used by most process commands defined here ====== -->
+
+ <command name="docb.convertStep1">
+ <process>
+ <mkdir dir="resources" />
+ <mkdir dir="raw" />
+
+ <copyDocument to="__doc.xml">
+ <resources match="(https|http|ftp)://.*" />
+
+ <!-- Support for textdata/@fileref.
+ add your favorite text file extensions here: -->
+ <resources
+ match=".+\.(txt|text|htm|html|xml|h|c|cpp|java|js|tcl|py|pl|rb)"
+ copyTo="." />
+
+ <resources match=".+\.(png|jpg|jpeg|gif)"
+ copyTo="resources" />
+ <resources match="(?:.+/)?(.+)\.(\w+)"
+ copyTo="raw" referenceAs="resources/$1.png" />
+ <resources match=".+"
+ copyTo="resources" />
+ </copyDocument>
+
+ <convertImage from="raw" to="resources" format="png" />
+
+ <mkdir dir="images/callouts" />
+ <copyProcessResources resources="xsl/images/draft.png" to="images" />
+ <copyProcessResources resources="@xsl/images/callouts/png_callouts.list"
+ to="images/callouts" />
+ </process>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toHTML">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <copyProcessResources resources="xsl/css/html.css" to="html.css"
+ name="css" />
+
+ <transform stylesheet="xsl/html/chunk.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to multi-page HTML"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="base.dir">%W%S</parameter>
+ <parameter name="chunk.first.sections">1</parameter>
+ <parameter name="chunk.section.depth">1</parameter>
+
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">1</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">html.css</parameter>
+
+ <parameterGroup name="docb.toHTML.transformParameters" />
+ </transform>
+
+ <!-- The real HTML file is index.html -->
+ <delete files="__doc.*" />
+
+ <upload base="%0/">
+ <copyFiles files="*.*" toDir="." />
+ <copyFiles files="resources/*" toDir="resources" />
+ <copyFiles files="images/*" toDir="images" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToHTML">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveDirectoryURL" />
+ <command name="docb.toHTML" parameter='"%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toHTML1">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <copyProcessResources resources="xsl/css/html.css" to="html.css"
+ name="css" />
+
+ <transform stylesheet="xsl/html/docbook.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to single-page HTML"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="generate.toc">%0</parameter>
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">%1</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">html.css</parameter>
+
+ <parameterGroup name="docb.toHTML1.transformParameters" />
+ </transform>
+
+ <upload base="%2">
+ <copyFile file="__doc.html" to="%2" />
+ <copyFile file="html.css" to="html.css" />
+ <copyFiles files="resources/*" toDir="resources" />
+ <copyFiles files="images/*" toDir="images" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToHTML1">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=html" />
+ <command name="docb.toHTML1" parameter='"%0" "%1" "%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toHTMLHelp">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <copyProcessResources resources="xsl/css/htmlhelp.css"
+ to="htmlhelp.css" name="css" />
+
+ <transform stylesheet="xsl/htmlhelp/htmlhelp.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to HTML Help"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="base.dir">%W%S</parameter>
+ <parameter name="manifest.in.base.dir">1</parameter>
+
+ <parameter name="chunk.first.sections">1</parameter>
+ <parameter name="chunk.section.depth">1</parameter>
+
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">1</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">htmlhelp.css</parameter>
+
+ <parameterGroup name="docb.toHTMLHelp.transformParameters" />
+ </transform>
+
+ <!-- Not useful. -->
+ <delete files="__doc.*" />
+
+ <!-- "C:\Program Files\HTML Help Workshop\hhc.exe" is the
+ HTML Help compiler.
+ hhc.exe exit code is 1 even when the compilation is successful.
+ Its exit code should be 0. That's why, without "|| exit 0",
+ the process command thinks hhc.exe has failed. -->
+
+ <shell command="helper(.hhp) htmlhelp.hhp || exit 0"
+ platform="Windows" />
+
+ <upload base="%0">
+ <copyFile file="htmlhelp.chm" to="%0" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToHTMLHelp">
+ <macro>
+ <sequence>
+ <!-- path.separator==';' only on Windows. -->
+ <test expression="system-property('path.separator') = ';'" />
+
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=chm" />
+ <command name="docb.toHTMLHelp" parameter='"%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toJavaHelpStep1">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <copyProcessResources resources="xsl/css/javahelp.css"
+ to="javahelp.css" name="css" />
+
+ <transform stylesheet="xsl/javahelp/javahelp.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to Java Help"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="base.dir">%W%S</parameter>
+
+ <parameter name="chunk.first.sections">1</parameter>
+ <parameter name="chunk.section.depth">2</parameter>
+
+ <parameter name="generate.toc"> </parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">javahelp.css</parameter>
+
+ <parameterGroup name="docb.toJavaHelp.transformParameters" />
+ </transform>
+
+ <!-- The real file is not __doc.html -->
+ <delete files="__doc.*" />
+
+ <shell command="helper(application/x-java-help-index) ." />
+ </process>
+ </command>
+
+ <command name="docb.toJavaHelp">
+ <process>
+ <subProcess name="docb.toJavaHelpStep1" />
+
+ <jar archive="__help_jar__">
+ <add files="*.*" />
+ <add files="resources/*" />
+ <add files="images/*" />
+ <add files="JavaHelpSearch/*" />
+ </jar>
+
+ <upload base="%0">
+ <copyFile file="__help_jar__" to="%0" />
+ </upload>
+ </process>
+ </command>
+
+ <!-- Useful when the application merges several HelpSets -->
+ <command name="docb.toJavaHelpWithPrefix">
+ <process>
+ <subProcess name="docb.toJavaHelpStep1" />
+
+ <mkdir dir="%1" />
+ <copy files="*.*" to="%1" />
+ <copy recurse="true" files="resources" to="%1" />
+ <copy recurse="true" files="images" to="%1" />
+ <copy recurse="true" files="JavaHelpSearch" to="%1" />
+
+ <jar archive="__help_jar__">
+ <add files="%1/*" />
+ </jar>
+
+ <upload base="%0">
+ <copyFile file="__help_jar__" to="%0" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToJavaHelp">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=jar" />
+ <command name="docb.toJavaHelp" parameter='"%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toEclipseHelp">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <copyProcessResources resources="xsl/css/eclipsehelp.css"
+ to="eclipsehelp.css" name="css" />
+
+ <transform stylesheet="xsl/eclipse/eclipse.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to Eclipse Help"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="base.dir">%W%S</parameter>
+ <parameter name="manifest.in.base.dir">1</parameter>
+
+ <parameter name="chunk.first.sections">1</parameter>
+ <parameter name="chunk.section.depth">3</parameter>
+
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">1</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">eclipsehelp.css</parameter>
+
+ <parameter name="eclipse.plugin.name"
+ >REDEFINE THIS: title of this help</parameter>
+ <parameter name="eclipse.plugin.id"
+ >REDEFINE THIS: unique.id.of.this.plugin</parameter>
+ <parameter name="eclipse.plugin.provider"
+ >REDEFINE THIS: author, company or organization</parameter>
+
+ <parameterGroup name="docb.toEclipseHelp.transformParameters" />
+ </transform>
+
+ <!-- Not useful. -->
+ <delete files="__doc.*" />
+
+ <upload base="%0/">
+ <copyFiles files="*.*" toDir="." />
+ <copyFiles files="resources/*" toDir="resources" />
+ <copyFiles files="images/*" toDir="images" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToEclipseHelp">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveDirectoryURL" />
+ <command name="docb.toEclipseHelp" parameter='"%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toEpub">
+ <process>
+ <mkdir dir="raw" />
+ <mkdir dir="images" />
+ <mkdir dir="META-INF" />
+
+ <copyDocument to="__doc.xml">
+ <resources match="(https|http|ftp)://.*" />
+
+ <!-- Support for textdata/@fileref.
+ add your favorite text file extensions here: -->
+ <resources
+ match=".+\.(txt|text|htm|html|xml|h|c|cpp|java|js|tcl|py|pl|rb)"
+ copyTo="." />
+
+ <resources match=".+\.(png|jpg|jpeg|gif)"
+ copyTo="images" />
+ <resources match="(?:.+/)?(.+)\.(\w+)"
+ copyTo="raw" referenceAs="images/$1.png" />
+ <resources match=".+"
+ copyTo="images" />
+ </copyDocument>
+
+ <convertImage from="raw" to="images" format="png" />
+
+ <mkdir dir="images/callouts" />
+ <copyProcessResources resources="xsl/images/draft.png"
+ to="images" />
+ <copyProcessResources resources="@xsl/images/callouts/png_callouts.list"
+ to="images/callouts" />
+
+ <copyProcessResources resources="xsl/css/epub.css"
+ to="epub.css" name="css" />
+ <copyProcessResources resources="xsl/epub/mimetype"
+ to="mimetype" />
+ <copyProcessResources resources="xsl/epub/META-INF/container.xml"
+ to="META-INF/container.xml" />
+
+ <transform stylesheet="xsl/epub/epub.xsl"
+ file="__doc.xml" to="__doc.html"
+ label="Convert to Epub"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/html/%{parameter.name|html.stylesheet}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="base.dir">%W%S</parameter>
+
+ <parameter name="chunk.first.sections">1</parameter>
+ <parameter name="chunk.section.depth">3</parameter>
+
+ <parameter name="generate.toc"> </parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="html.stylesheet">epub.css</parameter>
+
+ <parameterGroup name="docb.toEpub.transformParameters" />
+ </transform>
+
+ <!-- Not useful. -->
+ <delete files="__doc.*" />
+
+ <zip archive="epub.zip">
+ <add files="mimetype" store="true" />
+ <add files="META-INF/*" />
+ <add files="*.html" />
+ <add files="*.css" />
+ <add files="images/*" />
+ <add files="content.opf" />
+ <add files="toc.ncx" />
+ </zip>
+
+ <upload base="%0">
+ <copyFile file="epub.zip" to="%0" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToEpub">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=epub" />
+ <command name="docb.toEpub" parameter='"%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toRTF">
+ <process>
+ <subProcess name="docb.convertStep1" />
+
+ <transform stylesheet="xsl/fo/docbook.xsl"
+ file="__doc.xml" to="__doc.fo"
+ label="Convert to RTF, WordprocessingML, OOXML, OpenDocument"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/fo/%{parameter.name|paper.type}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="paper.type">A4</parameter>
+
+ <parameter name="generate.toc">%2</parameter>
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">%3</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="shade.verbatim">1</parameter>
+
+ <parameter name="ulink.show">0</parameter>
+
+ <parameterGroup name="docb.toRTF.transformParameters" />
+ </transform>
+
+ <processFO processor="XFC" file="__doc.fo" to="__doc.%0">
+ <parameter name="outputFormat">%0</parameter>
+ <parameter name="outputEncoding">%1</parameter>
+ <parameter name="imageResolution">120</parameter>
+ <parameter name="prescaleImages">false</parameter>
+ <parameterGroup name="docb.toRTF.XFCParameters" />
+ </processFO>
+
+ <upload base="%4">
+ <copyFile file="__doc.%0" to="%4" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToRTF">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=%4" />
+ <command name="docb.toRTF" parameter='"%0" "%1" "%2" "%3" "%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toPS">
+ <process>
+ <mkdir dir="resources" />
+ <mkdir dir="raw" />
+
+ <copyDocument to="__doc.xml">
+ <resources match="(https|http|ftp)://.*" />
+
+ <!-- Support for textdata/@fileref.
+ add your favorite text file extensions here: -->
+ <resources
+ match=".+\.(txt|text|htm|html|xml|h|c|cpp|java|js|tcl|py|pl|rb)"
+ copyTo="." />
+
+ <!-- referenceAs=absolute_URL is used as a workaround for
+ FOP 0.20.5 ``really strange'' image managment.
+ (This is harmless for XEP.) -->
+
+ <resources match="(?:.+/)?(.+)\.(png|jpg|jpeg|gif|mml|svg|svgz%1)"
+ copyTo="resources" referenceAs="%w/resources/$1.$2" />
+ <resources match="(?:.+/)?(.+)\.tex"
+ copyTo="raw" referenceAs="%w/resources/$1.%0" />
+ <resources match="(?:.+/)?(.+)\.(\w+)"
+ copyTo="raw" referenceAs="%w/resources/$1.png" />
+ <resources match="(?:.+/)?(.+)"
+ copyTo="resources" referenceAs="%w/resources/$1" />
+ </copyDocument>
+
+ <convertImage from="raw" to="resources" format="%0 png" />
+
+ <mkdir dir="images/callouts" />
+ <copyProcessResources resources="xsl/images/draft.png" to="images" />
+ <copyProcessResources resources="@xsl/images/callouts/png_callouts.list"
+ to="images/callouts" />
+
+ <transform stylesheet="xsl/fo/docbook.xsl"
+ file="__doc.xml" to="__doc.fo"
+ label="Convert to PDF, PostScript"
+ documentation="http://docbook.sourceforge.net/release/xsl/current/doc/fo/%{parameter.name|paper.type}.html">
+ <parameter name="use.extensions">1</parameter>
+ <!-- Cannot work and generates a lot of error messages. -->
+ <parameter name="graphicsize.extension">0</parameter>
+
+ <parameter name="paper.type">A4</parameter>
+
+ <parameter name="generate.toc">%2</parameter>
+ <parameter name="toc.section.depth">3</parameter>
+ <parameter name="section.autolabel">%3</parameter>
+
+ <parameter name="callout.graphics">1</parameter>
+
+ <parameter name="shade.verbatim">1</parameter>
+
+ <parameter name="ulink.show">0</parameter>
+
+ <parameterGroup name="docb.toPS.transformParameters" />
+ </transform>
+
+ <processFO processor="XEP" file="__doc.fo" to="__doc.%0">
+ <parameter name="OUTPUT_FORMAT">%0</parameter>
+ <parameter name="PS.LANGUAGE_LEVEL">2</parameter>
+ <parameterGroup name="docb.toPS.XEPParameters" />
+
+ <!-- If XEP plug-in has not been installed, try FOP plug-in. -->
+ <processFO processor="FOP" file="__doc.fo" to="__doc.%0">
+ <parameter name="renderer">%0</parameter>
+ <parameter name="strict-validation">false</parameter>
+ <parameterGroup name="docb.toPS.FOPParameters" />
+ </processFO>
+ </processFO>
+ </process>
+ </command>
+
+ <command name="docb.toPSFile">
+ <process>
+ <subProcess name="docb.toPS" parameter='"%0" "%1" "%2" "%3"' />
+
+ <upload base="%4">
+ <copyFile file="__doc.%0" to="%4" />
+ </upload>
+ </process>
+ </command>
+
+ <command name="docb.convertToPS">
+ <macro>
+ <sequence>
+ <command name="selectConvertedFile"
+ parameter="saveFileURLWithExtension=%0" />
+ <command name="docb.toPSFile" parameter='"%0" "%1" "%2" "%3" "%_"' />
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.toPSPrinter">
+ <process>
+ <subProcess name="docb.toPS" parameter='"%0" "%1" "%2" "%3"' />
+
+ <print file="__doc.%0" printer="%4" />
+ </process>
+ </command>
+
+ <command name="docb.printPS">
+ <macro>
+ <sequence>
+ <command name="selectPrinter" parameter="%0" />
+ <command name="docb.toPSPrinter" parameter='"%0" "%1" "%2" "%3" "%_"'/>
+ </sequence>
+ </macro>
+ </command>
+
+ <!-- =================================================================== -->
+
+ <menu label="_DocBook"
+ insert="ifDefined(XXE.Edition.Unrestricted)after ##last">
+ <separator />
+ <menu label="_Convert Document">
+ <item label="Convert to _HTML..."
+ command="docb.convertToHTML" />
+ <item label="Convert to HTML [_one page]..."
+ command="docb.convertToHTML1"
+ parameter='"/book toc /article toc" 1' />
+ <item label="Convert to HTML [one page, _no TOC]..."
+ command="docb.convertToHTML1" parameter='" " 0' />
+ <separator />
+ <item label="Convert to HTM_L Help..."
+ command="docb.convertToHTMLHelp" />
+ <separator />
+ <item label="Convert to _Java Help..."
+ command="docb.convertToJavaHelp" />
+ <separator />
+ <item label="Convert to _Eclipse Help..."
+ command="docb.convertToEclipseHelp" />
+ <separator />
+ <item label="Convert to Epu_b..."
+ command="docb.convertToEpub" />
+ <separator />
+ <item label="Convert to _RTF (Word 2000+)..."
+ command="docb.convertToRTF"
+ parameter='rtf Cp1252 "/book toc /article toc" 1 rtf' />
+ <item label="Convert to R_TF [no TOC]..."
+ command="docb.convertToRTF"
+ parameter='rtf Cp1252 " " 0 rtf' />
+ <separator />
+ <item label="Convert to _WordprocessingML (Word 2003+)..."
+ command="docb.convertToRTF"
+ parameter='wml UTF-8 "/book toc /article toc" 1 wml' />
+ <item label="Convert to Wordprocessing_ML [no TOC]..."
+ command="docb.convertToRTF"
+ parameter='wml UTF-8 " " 0 wml' />
+ <separator />
+ <item label="Convert to Office Open _XML (Word 2007+)..."
+ command="docb.convertToRTF"
+ parameter='docx UTF-8 "/book toc /article toc" 1 docx' />
+ <item label="Con_vert to Office Open XML [no TOC]..."
+ command="docb.convertToRTF"
+ parameter='docx UTF-8 " " 0 docx' />
+ <separator />
+ <item label="Convert to Open_Document (OpenOffice.org 2+)..."
+ command="docb.convertToRTF"
+ parameter='odt UTF-8 "/book toc /article toc" 1 odt' />
+ <item label="Convert to OpenDoc_ument [no TOC]..."
+ command="docb.convertToRTF"
+ parameter='odt UTF-8 " " 0 odt' />
+ <separator />
+ <item label="Print Post_Script..."
+ command="docb.printPS"
+ parameter='ps |eps|ps "/book toc /article toc" 1' />
+ <item label="Print PostScr_ipt [no TOC]..."
+ command="docb.printPS"
+ parameter='ps |eps|ps " " 0' />
+ <separator />
+ <item label="Convert to _PDF..."
+ command="docb.convertToPS"
+ parameter='pdf |pdf "/book toc /article toc" 1' />
+ <item label="Convert to PD_F [no TOC]..."
+ command="docb.convertToPS"
+ parameter='pdf |pdf " " 0' />
+ </menu>
+ </menu>
+
+ <!-- =================================================================== -->
+
+ <command name="docb.conversionPreferences">
+ <class>com.xmlmind.xmleditext.docbook.ConversionPreferences</class>
+ </command>
+
+ <menu name="customizeConfig" label="_Customize Configuration">
+ <item label="Document Conversion _Preferences..."
+ command="docb.conversionPreferences" />
+ </menu>
+
+</configuration>
diff --git a/doc/generated/builders.gen b/doc/generated/builders.gen
index 41239d4..7621945 100644
--- a/doc/generated/builders.gen
+++ b/doc/generated/builders.gen
@@ -12,7 +12,7 @@
%variables-mod;
]>
-<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<varlistentry id="b-CFile">
<term>
<function>CFile()</function>
diff --git a/doc/generated/examples/EnumVariable_map_1.xml b/doc/generated/examples/EnumVariable_map_1.xml
index 2b10a0f..4380be0 100644
--- a/doc/generated/examples/EnumVariable_map_1.xml
+++ b/doc/generated/examples/EnumVariable_map_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=navy foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=navy foo.o</userinput>
cc -o foo.o -c -DCOLOR="blue" foo.c
</screen>
diff --git a/doc/generated/examples/addmethod_ex1_1.xml b/doc/generated/examples/addmethod_ex1_1.xml
index 8d46cc5..84dfd20 100644
--- a/doc/generated/examples/addmethod_ex1_1.xml
+++ b/doc/generated/examples/addmethod_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q /</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q /</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
Install file: "hello" as "/usr/bin/hello"
diff --git a/doc/generated/examples/addmethod_ex2_1.xml b/doc/generated/examples/addmethod_ex2_1.xml
index 08cf5b4..3930341 100644
--- a/doc/generated/examples/addmethod_ex2_1.xml
+++ b/doc/generated/examples/addmethod_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o test_stuff.o -c test_stuff.c
cc -o tests/test_stuff test_stuff.o
</screen>
diff --git a/doc/generated/examples/addmethod_ex2_2.xml b/doc/generated/examples/addmethod_ex2_2.xml
index f7b2110..15ae6e0 100644
--- a/doc/generated/examples/addmethod_ex2_2.xml
+++ b/doc/generated/examples/addmethod_ex2_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
rc /fores.res res.rc
cl /Fotest_stuff.obj /c test_stuff.c /nologo
link /nologo /OUT:tests\test_stuff.exe test_stuff.obj res.res
diff --git a/doc/generated/examples/alias_ex1_1.xml b/doc/generated/examples/alias_ex1_1.xml
index a250016..3ee3f1b 100644
--- a/doc/generated/examples/alias_ex1_1.xml
+++ b/doc/generated/examples/alias_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q install</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q install</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
Install file: "hello" as "/usr/bin/hello"
diff --git a/doc/generated/examples/alias_ex2_1.xml b/doc/generated/examples/alias_ex2_1.xml
index e49ba93..3fa7dfd 100644
--- a/doc/generated/examples/alias_ex2_1.xml
+++ b/doc/generated/examples/alias_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q install-bin</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q install-bin</userinput>
cc -o foo.o -c foo.c
cc -o foo foo.o
Install file: "foo" as "/usr/bin/foo"
diff --git a/doc/generated/examples/buildersbuiltin_ex1_1.xml b/doc/generated/examples/buildersbuiltin_ex1_1.xml
index d3d4a8f..74cc779 100644
--- a/doc/generated/examples/buildersbuiltin_ex1_1.xml
+++ b/doc/generated/examples/buildersbuiltin_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q .</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q .</userinput>
tar -c -f out1.tar file1 file2
tar -c -f out2.tar directory
</screen>
diff --git a/doc/generated/examples/buildersbuiltin_ex2_1.xml b/doc/generated/examples/buildersbuiltin_ex2_1.xml
index 4afbe11..6c66d7b 100644
--- a/doc/generated/examples/buildersbuiltin_ex2_1.xml
+++ b/doc/generated/examples/buildersbuiltin_ex2_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q .</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q .</userinput>
tar -c -z -f out.tar.gz directory
</screen>
diff --git a/doc/generated/examples/buildersbuiltin_ex3_1.xml b/doc/generated/examples/buildersbuiltin_ex3_1.xml
index 0d2937c..4d281e5 100644
--- a/doc/generated/examples/buildersbuiltin_ex3_1.xml
+++ b/doc/generated/examples/buildersbuiltin_ex3_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q .</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q .</userinput>
tar -c -z -f out.tgz directory
</screen>
diff --git a/doc/generated/examples/buildersbuiltin_ex4_1.xml b/doc/generated/examples/buildersbuiltin_ex4_1.xml
index e9a170d..856f024 100644
--- a/doc/generated/examples/buildersbuiltin_ex4_1.xml
+++ b/doc/generated/examples/buildersbuiltin_ex4_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q .</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q .</userinput>
zip(["out.zip"], ["file1", "file2"])
</screen>
diff --git a/doc/generated/examples/buildersbuiltin_libs_1.xml b/doc/generated/examples/buildersbuiltin_libs_1.xml
index 031e551..8e1ee49 100644
--- a/doc/generated/examples/buildersbuiltin_libs_1.xml
+++ b/doc/generated/examples/buildersbuiltin_libs_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o goodbye.o -c goodbye.c
cc -o hello.o -c hello.c
cc -o hello hello.o goodbye.o -L/usr/dir1 -Ldir2 -lfoo1 -lfoo2
diff --git a/doc/generated/examples/buildersbuiltin_libs_2.xml b/doc/generated/examples/buildersbuiltin_libs_2.xml
index 5c3c1ea..41a9c1e 100644
--- a/doc/generated/examples/buildersbuiltin_libs_2.xml
+++ b/doc/generated/examples/buildersbuiltin_libs_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fogoodbye.obj /c goodbye.c /nologo
cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe /LIBPATH:\usr\dir1 /LIBPATH:dir2 foo1.lib foo2.lib hello.obj goodbye.obj
diff --git a/doc/generated/examples/builderscommands_ex1_1.xml b/doc/generated/examples/builderscommands_ex1_1.xml
index 32ab8b8..8782773 100644
--- a/doc/generated/examples/builderscommands_ex1_1.xml
+++ b/doc/generated/examples/builderscommands_ex1_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
sed 's/x/y/' &lt; foo.in &gt; foo.out
</screen>
diff --git a/doc/generated/examples/builderscommands_ex2_1.xml b/doc/generated/examples/builderscommands_ex2_1.xml
index fbacb6c..3fc1dde 100644
--- a/doc/generated/examples/builderscommands_ex2_1.xml
+++ b/doc/generated/examples/builderscommands_ex2_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
build(["foo.out"], ["foo.in"])
</screen>
diff --git a/doc/generated/examples/builderswriting_MY_EMITTER_1.xml b/doc/generated/examples/builderswriting_MY_EMITTER_1.xml
index da454e8..440b105 100644
--- a/doc/generated/examples/builderswriting_MY_EMITTER_1.xml
+++ b/doc/generated/examples/builderswriting_MY_EMITTER_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
my_command file1.input modify1.in &gt; file1.foo
my_command file2.input modify2.in &gt; file2.foo
</screen>
diff --git a/doc/generated/examples/builderswriting_ex1_1.xml b/doc/generated/examples/builderswriting_ex1_1.xml
index 879bb91..cefcfa2 100644
--- a/doc/generated/examples/builderswriting_ex1_1.xml
+++ b/doc/generated/examples/builderswriting_ex1_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
foobuild &lt; file.input &gt; file.foo
</screen>
diff --git a/doc/generated/examples/builderswriting_ex2_1.xml b/doc/generated/examples/builderswriting_ex2_1.xml
index 15f7a79..445dfb0 100644
--- a/doc/generated/examples/builderswriting_ex2_1.xml
+++ b/doc/generated/examples/builderswriting_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
AttributeError: 'SConsEnvironment' object has no attribute 'Program':
File "/home/my/project/SConstruct", line 4:
env.Program('hello.c')
diff --git a/doc/generated/examples/builderswriting_ex3_1.xml b/doc/generated/examples/builderswriting_ex3_1.xml
index b4e2cf7..2d8bcac 100644
--- a/doc/generated/examples/builderswriting_ex3_1.xml
+++ b/doc/generated/examples/builderswriting_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
foobuild &lt; file.input &gt; file.foo
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/builderswriting_ex4_1.xml b/doc/generated/examples/builderswriting_ex4_1.xml
index 87563c2..cc71b19 100644
--- a/doc/generated/examples/builderswriting_ex4_1.xml
+++ b/doc/generated/examples/builderswriting_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
foobuild &lt; file1.input &gt; file1.foo
foobuild &lt; file2.input &gt; file2.foo
</screen>
diff --git a/doc/generated/examples/builderswriting_ex5_1.xml b/doc/generated/examples/builderswriting_ex5_1.xml
index 0131734..d0aa83b 100644
--- a/doc/generated/examples/builderswriting_ex5_1.xml
+++ b/doc/generated/examples/builderswriting_ex5_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
build_function(["file.foo"], ["file.input"])
</screen>
diff --git a/doc/generated/examples/builderswriting_ex6_1.xml b/doc/generated/examples/builderswriting_ex6_1.xml
index 879bb91..cefcfa2 100644
--- a/doc/generated/examples/builderswriting_ex6_1.xml
+++ b/doc/generated/examples/builderswriting_ex6_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
foobuild &lt; file.input &gt; file.foo
</screen>
diff --git a/doc/generated/examples/builderswriting_ex7_1.xml b/doc/generated/examples/builderswriting_ex7_1.xml
index 34ef7e1..f14d598 100644
--- a/doc/generated/examples/builderswriting_ex7_1.xml
+++ b/doc/generated/examples/builderswriting_ex7_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
foobuild file.foo new_target - file.input new_source
</screen>
diff --git a/doc/generated/examples/caching_ex-random_1.xml b/doc/generated/examples/caching_ex-random_1.xml
index c70dcb6..cfa55a1 100644
--- a/doc/generated/examples/caching_ex-random_1.xml
+++ b/doc/generated/examples/caching_ex-random_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f2.o -c f2.c
cc -o f5.o -c f5.c
cc -o f4.o -c f4.c
diff --git a/doc/generated/examples/caching_ex1_1.xml b/doc/generated/examples/caching_ex1_1.xml
index 93ce35d..38eaf82 100644
--- a/doc/generated/examples/caching_ex1_1.xml
+++ b/doc/generated/examples/caching_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q -c</userinput>
diff --git a/doc/generated/examples/caching_ex1_2.xml b/doc/generated/examples/caching_ex1_2.xml
index e975cf5..2f0bcde 100644
--- a/doc/generated/examples/caching_ex1_2.xml
+++ b/doc/generated/examples/caching_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q -c</userinput>
diff --git a/doc/generated/examples/caching_ex1_4.xml b/doc/generated/examples/caching_ex1_4.xml
index bca1d53..922f1b6 100644
--- a/doc/generated/examples/caching_ex1_4.xml
+++ b/doc/generated/examples/caching_ex1_4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q -c</userinput>
diff --git a/doc/generated/examples/caching_ex1_5.xml b/doc/generated/examples/caching_ex1_5.xml
index 0d7d00c..968727f 100644
--- a/doc/generated/examples/caching_ex1_5.xml
+++ b/doc/generated/examples/caching_ex1_5.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --cache-disable</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --cache-disable</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q -c</userinput>
diff --git a/doc/generated/examples/commandline_ARGLIST_1.xml b/doc/generated/examples/commandline_ARGLIST_1.xml
index 071b8a1..e094bc0 100644
--- a/doc/generated/examples/commandline_ARGLIST_1.xml
+++ b/doc/generated/examples/commandline_ARGLIST_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q define=FOO</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q define=FOO</userinput>
cc -o prog.o -c -DFOO prog.c
% <userinput>scons -Q define=FOO define=BAR</userinput>
cc -o prog.o -c -DFOO -DBAR prog.c
diff --git a/doc/generated/examples/commandline_ARGUMENTS_1.xml b/doc/generated/examples/commandline_ARGUMENTS_1.xml
index 710fa57..6aa4ed2 100644
--- a/doc/generated/examples/commandline_ARGUMENTS_1.xml
+++ b/doc/generated/examples/commandline_ARGUMENTS_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q debug=0</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q debug=0</userinput>
cc -o prog.o -c prog.c
cc -o prog prog.o
% <userinput>scons -Q debug=0</userinput>
diff --git a/doc/generated/examples/commandline_AddOption_1.xml b/doc/generated/examples/commandline_AddOption_1.xml
index 302f247..55df25a 100644
--- a/doc/generated/examples/commandline_AddOption_1.xml
+++ b/doc/generated/examples/commandline_AddOption_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q -n</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q -n</userinput>
Install file: "foo.in" as "/usr/bin/foo.in"
</screen>
diff --git a/doc/generated/examples/commandline_AddOption_2.xml b/doc/generated/examples/commandline_AddOption_2.xml
index 640fb4e..7d0b978 100644
--- a/doc/generated/examples/commandline_AddOption_2.xml
+++ b/doc/generated/examples/commandline_AddOption_2.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q -n --prefix=/tmp/install</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q -n --prefix=/tmp/install</userinput>
Install file: "foo.in" as "/tmp/install/usr/bin/foo.in"
</screen>
diff --git a/doc/generated/examples/commandline_BUILD_TARGETS_1_1.xml b/doc/generated/examples/commandline_BUILD_TARGETS_1_1.xml
index ac2674f..bd51961 100644
--- a/doc/generated/examples/commandline_BUILD_TARGETS_1_1.xml
+++ b/doc/generated/examples/commandline_BUILD_TARGETS_1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
BUILD_TARGETS is ['prog1']
cc -o prog1.o -c prog1.c
cc -o prog1 prog1.o
diff --git a/doc/generated/examples/commandline_BoolVariable_1.xml b/doc/generated/examples/commandline_BoolVariable_1.xml
index 2c17325..e4c1792 100644
--- a/doc/generated/examples/commandline_BoolVariable_1.xml
+++ b/doc/generated/examples/commandline_BoolVariable_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=yes foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=yes foo.o</userinput>
cc -o foo.o -c -DRELEASE_BUILD=True foo.c
</screen>
diff --git a/doc/generated/examples/commandline_BoolVariable_2.xml b/doc/generated/examples/commandline_BoolVariable_2.xml
index 86bb6d9..dc1e068 100644
--- a/doc/generated/examples/commandline_BoolVariable_2.xml
+++ b/doc/generated/examples/commandline_BoolVariable_2.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=t foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=t foo.o</userinput>
cc -o foo.o -c -DRELEASE_BUILD=True foo.c
</screen>
diff --git a/doc/generated/examples/commandline_BoolVariable_3.xml b/doc/generated/examples/commandline_BoolVariable_3.xml
index f85dd56..0750fb5 100644
--- a/doc/generated/examples/commandline_BoolVariable_3.xml
+++ b/doc/generated/examples/commandline_BoolVariable_3.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=no foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=no foo.o</userinput>
cc -o foo.o -c -DRELEASE_BUILD=False foo.c
</screen>
diff --git a/doc/generated/examples/commandline_BoolVariable_4.xml b/doc/generated/examples/commandline_BoolVariable_4.xml
index 2a7cb5f..84e4639 100644
--- a/doc/generated/examples/commandline_BoolVariable_4.xml
+++ b/doc/generated/examples/commandline_BoolVariable_4.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=f foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=f foo.o</userinput>
cc -o foo.o -c -DRELEASE_BUILD=False foo.c
</screen>
diff --git a/doc/generated/examples/commandline_BoolVariable_5.xml b/doc/generated/examples/commandline_BoolVariable_5.xml
index 387f5ca..81f1d4e 100644
--- a/doc/generated/examples/commandline_BoolVariable_5.xml
+++ b/doc/generated/examples/commandline_BoolVariable_5.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=bad_value foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=bad_value foo.o</userinput>
scons: *** Error converting option: RELEASE
Invalid value for boolean option: bad_value
diff --git a/doc/generated/examples/commandline_COMMAND_LINE_TARGETS_1.xml b/doc/generated/examples/commandline_COMMAND_LINE_TARGETS_1.xml
index 646635e..1812f74 100644
--- a/doc/generated/examples/commandline_COMMAND_LINE_TARGETS_1.xml
+++ b/doc/generated/examples/commandline_COMMAND_LINE_TARGETS_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o foo.o -c foo.c
cc -o foo foo.o
% <userinput>scons -Q bar</userinput>
diff --git a/doc/generated/examples/commandline_DEFAULT_TARGETS_1_1.xml b/doc/generated/examples/commandline_DEFAULT_TARGETS_1_1.xml
index 69a30cb..f92f160 100644
--- a/doc/generated/examples/commandline_DEFAULT_TARGETS_1_1.xml
+++ b/doc/generated/examples/commandline_DEFAULT_TARGETS_1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
DEFAULT_TARGETS is ['prog1']
scons: done reading SConscript files.
diff --git a/doc/generated/examples/commandline_DEFAULT_TARGETS_2_1.xml b/doc/generated/examples/commandline_DEFAULT_TARGETS_2_1.xml
index 1fd1bc7..01e953b 100644
--- a/doc/generated/examples/commandline_DEFAULT_TARGETS_2_1.xml
+++ b/doc/generated/examples/commandline_DEFAULT_TARGETS_2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
DEFAULT_TARGETS is now ['prog1']
DEFAULT_TARGETS is now ['prog1', 'prog2']
diff --git a/doc/generated/examples/commandline_Default1_1.xml b/doc/generated/examples/commandline_Default1_1.xml
index edc1812..18008d8 100644
--- a/doc/generated/examples/commandline_Default1_1.xml
+++ b/doc/generated/examples/commandline_Default1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q</userinput>
diff --git a/doc/generated/examples/commandline_Default1_2.xml b/doc/generated/examples/commandline_Default1_2.xml
index cb5907d..0f1a93e 100644
--- a/doc/generated/examples/commandline_Default1_2.xml
+++ b/doc/generated/examples/commandline_Default1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q .</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q .</userinput>
cc -o goodbye.o -c goodbye.c
cc -o goodbye goodbye.o
cc -o hello.o -c hello.c
diff --git a/doc/generated/examples/commandline_Default2_1.xml b/doc/generated/examples/commandline_Default2_1.xml
index 1cf267a..606ed67 100644
--- a/doc/generated/examples/commandline_Default2_1.xml
+++ b/doc/generated/examples/commandline_Default2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog1.o -c prog1.c
cc -o prog1 prog1.o
cc -o prog3.o -c prog3.c
diff --git a/doc/generated/examples/commandline_Default3_1.xml b/doc/generated/examples/commandline_Default3_1.xml
index 5409437..d18575c 100644
--- a/doc/generated/examples/commandline_Default3_1.xml
+++ b/doc/generated/examples/commandline_Default3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog1/foo.o -c prog1/foo.c
cc -o prog1/main.o -c prog1/main.c
cc -o prog1/main prog1/main.o prog1/foo.o
diff --git a/doc/generated/examples/commandline_Default4_1.xml b/doc/generated/examples/commandline_Default4_1.xml
index 81acde4..61d449e 100644
--- a/doc/generated/examples/commandline_Default4_1.xml
+++ b/doc/generated/examples/commandline_Default4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
scons: *** No targets specified and no Default() targets found. Stop.
% <userinput>scons -Q .</userinput>
cc -o prog1.o -c prog1.c
diff --git a/doc/generated/examples/commandline_EnumVariable_1.xml b/doc/generated/examples/commandline_EnumVariable_1.xml
index d1d4bed..d658f69 100644
--- a/doc/generated/examples/commandline_EnumVariable_1.xml
+++ b/doc/generated/examples/commandline_EnumVariable_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=red foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=red foo.o</userinput>
cc -o foo.o -c -DCOLOR="red" foo.c
% <userinput>scons -Q COLOR=blue foo.o</userinput>
cc -o foo.o -c -DCOLOR="blue" foo.c
diff --git a/doc/generated/examples/commandline_EnumVariable_2.xml b/doc/generated/examples/commandline_EnumVariable_2.xml
index e3310ae..a8a18df 100644
--- a/doc/generated/examples/commandline_EnumVariable_2.xml
+++ b/doc/generated/examples/commandline_EnumVariable_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=magenta foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=magenta foo.o</userinput>
scons: *** Invalid value for option COLOR: magenta. Valid values are: ('red', 'green', 'blue')
File "/home/my/project/SConstruct", line 5, in &lt;module&gt;
diff --git a/doc/generated/examples/commandline_EnumVariable_3.xml b/doc/generated/examples/commandline_EnumVariable_3.xml
index a3928dc..bb9a6d5 100644
--- a/doc/generated/examples/commandline_EnumVariable_3.xml
+++ b/doc/generated/examples/commandline_EnumVariable_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
scons: *** Invalid value for option COLOR: Red. Valid values are: ('red', 'green', 'blue')
File "/home/my/project/SConstruct", line 5, in &lt;module&gt;
diff --git a/doc/generated/examples/commandline_EnumVariable_ic1_1.xml b/doc/generated/examples/commandline_EnumVariable_ic1_1.xml
index 4e2a45a..db786e5 100644
--- a/doc/generated/examples/commandline_EnumVariable_ic1_1.xml
+++ b/doc/generated/examples/commandline_EnumVariable_ic1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
cc -o foo.o -c -DCOLOR="Red" foo.c
% <userinput>scons -Q COLOR=BLUE foo.o</userinput>
cc -o foo.o -c -DCOLOR="BLUE" foo.c
diff --git a/doc/generated/examples/commandline_EnumVariable_ic2_1.xml b/doc/generated/examples/commandline_EnumVariable_ic2_1.xml
index 407419a..5596608 100644
--- a/doc/generated/examples/commandline_EnumVariable_ic2_1.xml
+++ b/doc/generated/examples/commandline_EnumVariable_ic2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLOR=Red foo.o</userinput>
cc -o foo.o -c -DCOLOR="red" foo.c
% <userinput>scons -Q COLOR=nAvY foo.o</userinput>
cc -o foo.o -c -DCOLOR="blue" foo.c
diff --git a/doc/generated/examples/commandline_ListVariable_1.xml b/doc/generated/examples/commandline_ListVariable_1.xml
index 48adb7d..6e245a3 100644
--- a/doc/generated/examples/commandline_ListVariable_1.xml
+++ b/doc/generated/examples/commandline_ListVariable_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLORS=red,blue foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLORS=red,blue foo.o</userinput>
cc -o foo.o -c -DCOLORS="red blue" foo.c
% <userinput>scons -Q COLORS=blue,green,red foo.o</userinput>
cc -o foo.o -c -DCOLORS="blue green red" foo.c
diff --git a/doc/generated/examples/commandline_ListVariable_2.xml b/doc/generated/examples/commandline_ListVariable_2.xml
index 67f3361..b964669 100644
--- a/doc/generated/examples/commandline_ListVariable_2.xml
+++ b/doc/generated/examples/commandline_ListVariable_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLORS=all foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLORS=all foo.o</userinput>
cc -o foo.o -c -DCOLORS="red green blue" foo.c
% <userinput>scons -Q COLORS=none foo.o</userinput>
cc -o foo.o -c -DCOLORS="" foo.c
diff --git a/doc/generated/examples/commandline_ListVariable_3.xml b/doc/generated/examples/commandline_ListVariable_3.xml
index f03f4fe..ae13d8b 100644
--- a/doc/generated/examples/commandline_ListVariable_3.xml
+++ b/doc/generated/examples/commandline_ListVariable_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q COLORS=magenta foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q COLORS=magenta foo.o</userinput>
scons: *** Error converting option: COLORS
Invalid value(s) for option: magenta
diff --git a/doc/generated/examples/commandline_PackageVariable_1.xml b/doc/generated/examples/commandline_PackageVariable_1.xml
index 03de914..b83fd80 100644
--- a/doc/generated/examples/commandline_PackageVariable_1.xml
+++ b/doc/generated/examples/commandline_PackageVariable_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q foo.o</userinput>
cc -o foo.o -c -DPACKAGE="/opt/location" foo.c
% <userinput>scons -Q PACKAGE=/usr/local/location foo.o</userinput>
cc -o foo.o -c -DPACKAGE="/usr/local/location" foo.c
diff --git a/doc/generated/examples/commandline_PathVariable_1.xml b/doc/generated/examples/commandline_PathVariable_1.xml
index f80a299..81693b9 100644
--- a/doc/generated/examples/commandline_PathVariable_1.xml
+++ b/doc/generated/examples/commandline_PathVariable_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q foo.o</userinput>
cc -o foo.o -c -DCONFIG_FILE="/etc/my_config" foo.c
% <userinput>scons -Q CONFIG=/usr/local/etc/other_config foo.o</userinput>
scons: `foo.o' is up to date.
diff --git a/doc/generated/examples/commandline_PathVariable_2.xml b/doc/generated/examples/commandline_PathVariable_2.xml
index e24f8f2..7dde5b1 100644
--- a/doc/generated/examples/commandline_PathVariable_2.xml
+++ b/doc/generated/examples/commandline_PathVariable_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q CONFIG=/does/not/exist foo.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q CONFIG=/does/not/exist foo.o</userinput>
scons: *** Path for option CONFIG does not exist: /does/not/exist
File "/home/my/project/SConstruct", line 6, in &lt;module&gt;
diff --git a/doc/generated/examples/commandline_SCONSFLAGS_1.xml b/doc/generated/examples/commandline_SCONSFLAGS_1.xml
index 4261677..35e366c 100644
--- a/doc/generated/examples/commandline_SCONSFLAGS_1.xml
+++ b/doc/generated/examples/commandline_SCONSFLAGS_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/commandline_SetOption_1.xml b/doc/generated/examples/commandline_SetOption_1.xml
index c3b878e..bac0cf4 100644
--- a/doc/generated/examples/commandline_SetOption_1.xml
+++ b/doc/generated/examples/commandline_SetOption_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
running with -j 2
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/commandline_SetOption_2.xml b/doc/generated/examples/commandline_SetOption_2.xml
index d7bbf30..b00e073 100644
--- a/doc/generated/examples/commandline_SetOption_2.xml
+++ b/doc/generated/examples/commandline_SetOption_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>export NUM_CPU="4"</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>export NUM_CPU="4"</userinput>
% <userinput>scons -Q</userinput>
running with -j 4
scons: `.' is up to date.
diff --git a/doc/generated/examples/commandline_SetOption_3.xml b/doc/generated/examples/commandline_SetOption_3.xml
index f4ca2f1..df42ff0 100644
--- a/doc/generated/examples/commandline_SetOption_3.xml
+++ b/doc/generated/examples/commandline_SetOption_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q -j 7</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q -j 7</userinput>
running with -j 7
scons: `.' is up to date.
% <userinput>export NUM_CPU="4"</userinput>
diff --git a/doc/generated/examples/commandline_UnknownVariables_1.xml b/doc/generated/examples/commandline_UnknownVariables_1.xml
index c6880d6..272a954 100644
--- a/doc/generated/examples/commandline_UnknownVariables_1.xml
+++ b/doc/generated/examples/commandline_UnknownVariables_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q NOT_KNOWN=foo</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q NOT_KNOWN=foo</userinput>
Unknown variables: ['NOT_KNOWN']
</screen>
diff --git a/doc/generated/examples/commandline_Variables1_1.xml b/doc/generated/examples/commandline_Variables1_1.xml
index 22754a3..512ae65 100644
--- a/doc/generated/examples/commandline_Variables1_1.xml
+++ b/doc/generated/examples/commandline_Variables1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q RELEASE=1</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q RELEASE=1</userinput>
cc -o bar.o -c -DRELEASE_BUILD=1 bar.c
cc -o foo.o -c -DRELEASE_BUILD=1 foo.c
cc -o foo foo.o bar.o
diff --git a/doc/generated/examples/commandline_Variables_Help_1.xml b/doc/generated/examples/commandline_Variables_Help_1.xml
index 0134479..db171eb 100644
--- a/doc/generated/examples/commandline_Variables_Help_1.xml
+++ b/doc/generated/examples/commandline_Variables_Help_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q -h</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q -h</userinput>
RELEASE: Set to 1 to build for release
default: 0
diff --git a/doc/generated/examples/commandline_Variables_custom_py_1_1.xml b/doc/generated/examples/commandline_Variables_custom_py_1_1.xml
index 77d3564..4ef4d48 100644
--- a/doc/generated/examples/commandline_Variables_custom_py_1_1.xml
+++ b/doc/generated/examples/commandline_Variables_custom_py_1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar.o -c -DRELEASE_BUILD=1 bar.c
cc -o foo.o -c -DRELEASE_BUILD=1 foo.c
cc -o foo foo.o bar.o
diff --git a/doc/generated/examples/commandline_Variables_custom_py_2_1.xml b/doc/generated/examples/commandline_Variables_custom_py_2_1.xml
index 7ab5d74..5961d0a 100644
--- a/doc/generated/examples/commandline_Variables_custom_py_2_1.xml
+++ b/doc/generated/examples/commandline_Variables_custom_py_2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar.o -c -DRELEASE_BUILD=0 bar.c
cc -o foo.o -c -DRELEASE_BUILD=0 foo.c
cc -o foo foo.o bar.o
diff --git a/doc/generated/examples/depends_AlwaysBuild_1.xml b/doc/generated/examples/depends_AlwaysBuild_1.xml
index 534c297..86700fe 100644
--- a/doc/generated/examples/depends_AlwaysBuild_1.xml
+++ b/doc/generated/examples/depends_AlwaysBuild_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q</userinput>
diff --git a/doc/generated/examples/depends_AlwaysBuild_2.xml b/doc/generated/examples/depends_AlwaysBuild_2.xml
index 9a7325f..d1bdd6d 100644
--- a/doc/generated/examples/depends_AlwaysBuild_2.xml
+++ b/doc/generated/examples/depends_AlwaysBuild_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q hello.o</userinput>
diff --git a/doc/generated/examples/depends_Requires_1.xml b/doc/generated/examples/depends_Requires_1.xml
index 50b2f56..04bfc35 100644
--- a/doc/generated/examples/depends_Requires_1.xml
+++ b/doc/generated/examples/depends_Requires_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o version.o -c version.c
cc -o hello.o -c hello.c
cc -o hello version.o hello.o
diff --git a/doc/generated/examples/depends_ex1_1.xml b/doc/generated/examples/depends_ex1_1.xml
index f9b35dd..25355c9 100644
--- a/doc/generated/examples/depends_ex1_1.xml
+++ b/doc/generated/examples/depends_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q</userinput>
diff --git a/doc/generated/examples/depends_ex1_2.xml b/doc/generated/examples/depends_ex1_2.xml
index 254f641..09ecc73 100644
--- a/doc/generated/examples/depends_ex1_2.xml
+++ b/doc/generated/examples/depends_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q hello</userinput>
diff --git a/doc/generated/examples/depends_ex1_3.xml b/doc/generated/examples/depends_ex1_3.xml
index a4cf4e3..20062df 100644
--- a/doc/generated/examples/depends_ex1_3.xml
+++ b/doc/generated/examples/depends_ex1_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>touch hello.c</userinput>
diff --git a/doc/generated/examples/depends_ex1_4.xml b/doc/generated/examples/depends_ex1_4.xml
index 7e1f860..31aa5bd 100644
--- a/doc/generated/examples/depends_ex1_4.xml
+++ b/doc/generated/examples/depends_ex1_4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% [CHANGE THE CONTENTS OF hello.c]
diff --git a/doc/generated/examples/depends_ex1_5.xml b/doc/generated/examples/depends_ex1_5.xml
index abbe64e..776bda2 100644
--- a/doc/generated/examples/depends_ex1_5.xml
+++ b/doc/generated/examples/depends_ex1_5.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% [CHANGE A COMMENT IN hello.c]
diff --git a/doc/generated/examples/depends_ex1_6.xml b/doc/generated/examples/depends_ex1_6.xml
index 75e1f80..7493627 100644
--- a/doc/generated/examples/depends_ex1_6.xml
+++ b/doc/generated/examples/depends_ex1_6.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --implicit-cache hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --implicit-cache hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q hello</userinput>
diff --git a/doc/generated/examples/depends_ex1_7.xml b/doc/generated/examples/depends_ex1_7.xml
index 2b7e30a..22b56d3 100644
--- a/doc/generated/examples/depends_ex1_7.xml
+++ b/doc/generated/examples/depends_ex1_7.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --implicit-deps-changed hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --implicit-deps-changed hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q hello</userinput>
diff --git a/doc/generated/examples/depends_ex1_8.xml b/doc/generated/examples/depends_ex1_8.xml
index 957707d..d60db97 100644
--- a/doc/generated/examples/depends_ex1_8.xml
+++ b/doc/generated/examples/depends_ex1_8.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --implicit-deps-unchanged hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --implicit-deps-unchanged hello</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q hello</userinput>
diff --git a/doc/generated/examples/depends_ex5_1.xml b/doc/generated/examples/depends_ex5_1.xml
index 2d1f868..e81cb0c 100644
--- a/doc/generated/examples/depends_ex5_1.xml
+++ b/doc/generated/examples/depends_ex5_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c -Iinclude -I/home/project/inc hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/depends_ex5_2.xml b/doc/generated/examples/depends_ex5_2.xml
index 57da64f..ea78590 100644
--- a/doc/generated/examples/depends_ex5_2.xml
+++ b/doc/generated/examples/depends_ex5_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q hello.exe</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q hello.exe</userinput>
cl /Fohello.obj /c hello.c /nologo /Iinclude /I\home\project\inc
link /nologo /OUT:hello.exe hello.obj
embedManifestExeCheck(target, source, env)
diff --git a/doc/generated/examples/depends_ignore_explicit_1.xml b/doc/generated/examples/depends_ignore_explicit_1.xml
index 2607131..a45a852 100644
--- a/doc/generated/examples/depends_ignore_explicit_1.xml
+++ b/doc/generated/examples/depends_ignore_explicit_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
scons: `.' is up to date.
% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
diff --git a/doc/generated/examples/depends_include_1.xml b/doc/generated/examples/depends_include_1.xml
index 6f63e9a..e22bd03 100644
--- a/doc/generated/examples/depends_include_1.xml
+++ b/doc/generated/examples/depends_include_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c -I. hello.c
cc -o hello hello.o
% <userinput>scons -Q hello</userinput>
diff --git a/doc/generated/examples/depends_macroinc_1.xml b/doc/generated/examples/depends_macroinc_1.xml
index 8f211cc..95d4e0b 100644
--- a/doc/generated/examples/depends_macroinc_1.xml
+++ b/doc/generated/examples/depends_macroinc_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c -I. hello.c
cc -o hello hello.o
% [CHANGE CONTENTS OF foo.h]
diff --git a/doc/generated/examples/depends_match_1.xml b/doc/generated/examples/depends_match_1.xml
index c024b2a..7dc3831 100644
--- a/doc/generated/examples/depends_match_1.xml
+++ b/doc/generated/examples/depends_match_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello.o</userinput>
cc -o hello.o -c hello.c
% <userinput>touch -t 198901010000 hello.c</userinput>
% <userinput>scons -Q hello.o</userinput>
diff --git a/doc/generated/examples/depends_mixing_1.xml b/doc/generated/examples/depends_mixing_1.xml
index 10152b2..258dc90 100644
--- a/doc/generated/examples/depends_mixing_1.xml
+++ b/doc/generated/examples/depends_mixing_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o program1.o -c -I. program1.c
cc -o prog-MD5 program1.o
cc -o program2.o -c -I. program2.c
diff --git a/doc/generated/examples/depends_newer_1.xml b/doc/generated/examples/depends_newer_1.xml
index 9f13c31..28cb427 100644
--- a/doc/generated/examples/depends_newer_1.xml
+++ b/doc/generated/examples/depends_newer_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello.o</userinput>
cc -o hello.o -c hello.c
% <userinput>touch hello.c</userinput>
% <userinput>scons -Q hello.o</userinput>
diff --git a/doc/generated/examples/depends_no-Requires_1.xml b/doc/generated/examples/depends_no-Requires_1.xml
index 5e9bb00..8e2729f 100644
--- a/doc/generated/examples/depends_no-Requires_1.xml
+++ b/doc/generated/examples/depends_no-Requires_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q hello</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q hello</userinput>
cc -o hello.o -c hello.c
cc -o version.o -c version.c
cc -o hello hello.o version.o
diff --git a/doc/generated/examples/depends_parsedep_1.xml b/doc/generated/examples/depends_parsedep_1.xml
index 585e89c..910930b1 100644
--- a/doc/generated/examples/depends_parsedep_1.xml
+++ b/doc/generated/examples/depends_parsedep_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c -MD -MF hello.d -I. hello.c
cc -o hello hello.o
% [CHANGE CONTENTS OF foo.h]
diff --git a/doc/generated/examples/environments_Append-nonexistent_1.xml b/doc/generated/examples/environments_Append-nonexistent_1.xml
index 6597dd4..bb15965 100644
--- a/doc/generated/examples/environments_Append-nonexistent_1.xml
+++ b/doc/generated/examples/environments_Append-nonexistent_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
NEW_VARIABLE = added
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/environments_Prepend-nonexistent_1.xml b/doc/generated/examples/environments_Prepend-nonexistent_1.xml
index 6597dd4..bb15965 100644
--- a/doc/generated/examples/environments_Prepend-nonexistent_1.xml
+++ b/doc/generated/examples/environments_Prepend-nonexistent_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
NEW_VARIABLE = added
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/environments_Replace-nonexistent_1.xml b/doc/generated/examples/environments_Replace-nonexistent_1.xml
index eb8b95c..c4480b5 100644
--- a/doc/generated/examples/environments_Replace-nonexistent_1.xml
+++ b/doc/generated/examples/environments_Replace-nonexistent_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
NEW_VARIABLE = xyzzy
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/environments_Replace1_1.xml b/doc/generated/examples/environments_Replace1_1.xml
index 372d6ae..54f4976 100644
--- a/doc/generated/examples/environments_Replace1_1.xml
+++ b/doc/generated/examples/environments_Replace1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o foo.o -c -DDEFINE2 foo.c
cc -o foo foo.o
</screen>
diff --git a/doc/generated/examples/environments_Replace2_1.xml b/doc/generated/examples/environments_Replace2_1.xml
index fe949ef..9ad257b 100644
--- a/doc/generated/examples/environments_Replace2_1.xml
+++ b/doc/generated/examples/environments_Replace2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
CCFLAGS = -DDEFINE1
CCFLAGS = -DDEFINE2
diff --git a/doc/generated/examples/environments_ex1_1.xml b/doc/generated/examples/environments_ex1_1.xml
index 28bc8ca..84d22b8 100644
--- a/doc/generated/examples/environments_ex1_1.xml
+++ b/doc/generated/examples/environments_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
gcc -o foo.o -c -O2 foo.c
gcc -o foo foo.o
</screen>
diff --git a/doc/generated/examples/environments_ex2_1.xml b/doc/generated/examples/environments_ex2_1.xml
index 248cd28..eb86c9e 100644
--- a/doc/generated/examples/environments_ex2_1.xml
+++ b/doc/generated/examples/environments_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar.o -c -g bar.c
cc -o bar bar.o
cc -o foo.o -c -O2 foo.c
diff --git a/doc/generated/examples/environments_ex3_1.xml b/doc/generated/examples/environments_ex3_1.xml
index 1c2d620..3262302 100644
--- a/doc/generated/examples/environments_ex3_1.xml
+++ b/doc/generated/examples/environments_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
scons: *** Two environments with different actions were specified for the same target: foo.o
File "/home/my/project/SConstruct", line 6, in &lt;module&gt;
diff --git a/doc/generated/examples/environments_ex4_1.xml b/doc/generated/examples/environments_ex4_1.xml
index 69ac649..286f46f 100644
--- a/doc/generated/examples/environments_ex4_1.xml
+++ b/doc/generated/examples/environments_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o foo-dbg.o -c -g foo.c
cc -o foo-dbg foo-dbg.o
cc -o foo-opt.o -c -O2 foo.c
diff --git a/doc/generated/examples/environments_ex5_1.xml b/doc/generated/examples/environments_ex5_1.xml
index d50f349..d6f0094 100644
--- a/doc/generated/examples/environments_ex5_1.xml
+++ b/doc/generated/examples/environments_ex5_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
gcc -o foo.o -c foo.c
gcc -o foo foo.o
gcc -o foo-dbg.o -c -g foo.c
diff --git a/doc/generated/examples/environments_ex6_1.xml b/doc/generated/examples/environments_ex6_1.xml
index bef56a3..af8667f 100644
--- a/doc/generated/examples/environments_ex6_1.xml
+++ b/doc/generated/examples/environments_ex6_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
CC is: cc
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/environments_ex6b_1.xml b/doc/generated/examples/environments_ex6b_1.xml
index dbcc502..47a499a 100644
--- a/doc/generated/examples/environments_ex6b_1.xml
+++ b/doc/generated/examples/environments_ex6b_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
key = OBJSUFFIX, value = .o
key = LIBSUFFIX, value = .a
key = PROGSUFFIX, value =
diff --git a/doc/generated/examples/environments_ex6b_2.xml b/doc/generated/examples/environments_ex6b_2.xml
index f6fb554..73a6d19 100644
--- a/doc/generated/examples/environments_ex6b_2.xml
+++ b/doc/generated/examples/environments_ex6b_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
key = OBJSUFFIX, value = .obj
key = LIBSUFFIX, value = .lib
key = PROGSUFFIX, value = .exe
diff --git a/doc/generated/examples/environments_ex8_1.xml b/doc/generated/examples/environments_ex8_1.xml
index 1749195..68ebac4 100644
--- a/doc/generated/examples/environments_ex8_1.xml
+++ b/doc/generated/examples/environments_ex8_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o foo.o -c -DMY_VALUE -DLAST foo.c
cc -o foo foo.o
</screen>
diff --git a/doc/generated/examples/environments_ex9_1.xml b/doc/generated/examples/environments_ex9_1.xml
index aebefcc..3e31c3f 100644
--- a/doc/generated/examples/environments_ex9_1.xml
+++ b/doc/generated/examples/environments_ex9_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o foo.o -c -DFIRST -DMY_VALUE foo.c
cc -o foo foo.o
</screen>
diff --git a/doc/generated/examples/environments_missing1_1.xml b/doc/generated/examples/environments_missing1_1.xml
index d58b27b..edf136f 100644
--- a/doc/generated/examples/environments_missing1_1.xml
+++ b/doc/generated/examples/environments_missing1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
value is: -&gt;&lt;-
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/environments_missing2_1.xml b/doc/generated/examples/environments_missing2_1.xml
index 911ecd2..019099f 100644
--- a/doc/generated/examples/environments_missing2_1.xml
+++ b/doc/generated/examples/environments_missing2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
value is:
scons: *** NameError `MISSING' trying to evaluate `$MISSING'
File "/home/my/project/SConstruct", line 3, in &lt;module&gt;
diff --git a/doc/generated/examples/environments_missing3_1.xml b/doc/generated/examples/environments_missing3_1.xml
index d58b27b..edf136f 100644
--- a/doc/generated/examples/environments_missing3_1.xml
+++ b/doc/generated/examples/environments_missing3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
value is: -&gt;&lt;-
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/factories_Chmod_1.xml b/doc/generated/examples/factories_Chmod_1.xml
index 59bccf5..a324ed4 100644
--- a/doc/generated/examples/factories_Chmod_1.xml
+++ b/doc/generated/examples/factories_Chmod_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("file.out", "file.in")
Chmod("file.out", 0755)
</screen>
diff --git a/doc/generated/examples/factories_Copy1_1.xml b/doc/generated/examples/factories_Copy1_1.xml
index c0be7f8..852412f 100644
--- a/doc/generated/examples/factories_Copy1_1.xml
+++ b/doc/generated/examples/factories_Copy1_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("file.out", "file.in")
</screen>
diff --git a/doc/generated/examples/factories_Copy2_1.xml b/doc/generated/examples/factories_Copy2_1.xml
index c0be7f8..852412f 100644
--- a/doc/generated/examples/factories_Copy2_1.xml
+++ b/doc/generated/examples/factories_Copy2_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("file.out", "file.in")
</screen>
diff --git a/doc/generated/examples/factories_Copy3_1.xml b/doc/generated/examples/factories_Copy3_1.xml
index 20702c8..bcb41ff 100644
--- a/doc/generated/examples/factories_Copy3_1.xml
+++ b/doc/generated/examples/factories_Copy3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("tempfile", "file.in")
modify tempfile
Copy("file.out", "tempfile")
diff --git a/doc/generated/examples/factories_Delete1_1.xml b/doc/generated/examples/factories_Delete1_1.xml
index 5cfde55..e9a287e 100644
--- a/doc/generated/examples/factories_Delete1_1.xml
+++ b/doc/generated/examples/factories_Delete1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Delete("tempfile")
Copy("tempfile", "file.in")
modify tempfile
diff --git a/doc/generated/examples/factories_Delete2_1.xml b/doc/generated/examples/factories_Delete2_1.xml
index 3bdb3f1..2be3c3a 100644
--- a/doc/generated/examples/factories_Delete2_1.xml
+++ b/doc/generated/examples/factories_Delete2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Delete("file.out")
Copy("file.out", "file.in")
</screen>
diff --git a/doc/generated/examples/factories_Execute_1.xml b/doc/generated/examples/factories_Execute_1.xml
index 1956439..a7ae0c7 100644
--- a/doc/generated/examples/factories_Execute_1.xml
+++ b/doc/generated/examples/factories_Execute_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
Mkdir("/tmp/my_temp_directory")
scons: done reading SConscript files.
diff --git a/doc/generated/examples/factories_Mkdir_1.xml b/doc/generated/examples/factories_Mkdir_1.xml
index ae58dac..ea3d79d 100644
--- a/doc/generated/examples/factories_Mkdir_1.xml
+++ b/doc/generated/examples/factories_Mkdir_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Delete("tempdir")
Mkdir("tempdir")
Copy("tempdir/file.in", "file.in")
diff --git a/doc/generated/examples/factories_Move_1.xml b/doc/generated/examples/factories_Move_1.xml
index 2bd008d..a5e4ccd 100644
--- a/doc/generated/examples/factories_Move_1.xml
+++ b/doc/generated/examples/factories_Move_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("tempfile", "file.in")
modify tempfile
Move("file.out", "tempfile")
diff --git a/doc/generated/examples/factories_Touch_1.xml b/doc/generated/examples/factories_Touch_1.xml
index aacde9e..7417fa4 100644
--- a/doc/generated/examples/factories_Touch_1.xml
+++ b/doc/generated/examples/factories_Touch_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Copy("file.out", "file.in")
Touch("file.out")
</screen>
diff --git a/doc/generated/examples/fileremoval_clean-ex1_1.xml b/doc/generated/examples/fileremoval_clean-ex1_1.xml
index bb09707..c76a7e5 100644
--- a/doc/generated/examples/fileremoval_clean-ex1_1.xml
+++ b/doc/generated/examples/fileremoval_clean-ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
build -o foo.out foo.in
% <userinput>scons -Q -c</userinput>
Removed foo.out
diff --git a/doc/generated/examples/fileremoval_noclean-ex1_1.xml b/doc/generated/examples/fileremoval_noclean-ex1_1.xml
index ab36c3f..45bd878 100644
--- a/doc/generated/examples/fileremoval_noclean-ex1_1.xml
+++ b/doc/generated/examples/fileremoval_noclean-ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.o -c f1.c
cc -o f2.o -c f2.c
cc -o f3.o -c f3.c
diff --git a/doc/generated/examples/fileremoval_precious-ex1_1.xml b/doc/generated/examples/fileremoval_precious-ex1_1.xml
index e8227e6..36e5a25 100644
--- a/doc/generated/examples/fileremoval_precious-ex1_1.xml
+++ b/doc/generated/examples/fileremoval_precious-ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.o -c f1.c
cc -o f2.o -c f2.c
cc -o f3.o -c f3.c
diff --git a/doc/generated/examples/hierarchy_Return_1.xml b/doc/generated/examples/hierarchy_Return_1.xml
index 64b981a..e5ab7f7 100644
--- a/doc/generated/examples/hierarchy_Return_1.xml
+++ b/doc/generated/examples/hierarchy_Return_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar/bar.o -c bar/bar.c
cc -o foo/foo.o -c foo/foo.c
ar rc libprog.a foo/foo.o bar/bar.o
diff --git a/doc/generated/examples/hierarchy_ex1_1.xml b/doc/generated/examples/hierarchy_ex1_1.xml
index 50beb93..bb5cc7b 100644
--- a/doc/generated/examples/hierarchy_ex1_1.xml
+++ b/doc/generated/examples/hierarchy_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog1/foo1.o -c prog1/foo1.c
cc -o prog1/foo2.o -c prog1/foo2.c
cc -o prog1/main.o -c prog1/main.c
diff --git a/doc/generated/examples/hierarchy_ex2_1.xml b/doc/generated/examples/hierarchy_ex2_1.xml
index 1f781f8..800a921 100644
--- a/doc/generated/examples/hierarchy_ex2_1.xml
+++ b/doc/generated/examples/hierarchy_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o lib/foo1.o -c lib/foo1.c
cc -o src/prog/foo2.o -c src/prog/foo2.c
cc -o src/prog/main.o -c src/prog/main.c
diff --git a/doc/generated/examples/hierarchy_ex3_1.xml b/doc/generated/examples/hierarchy_ex3_1.xml
index cb5a0ce..473c9f4 100644
--- a/doc/generated/examples/hierarchy_ex3_1.xml
+++ b/doc/generated/examples/hierarchy_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o src/prog/foo2.o -c src/prog/foo2.c
cc -o src/prog/main.o -c src/prog/main.c
cc -o /usr/joe/lib/foo1.o -c /usr/joe/lib/foo1.c
diff --git a/doc/generated/examples/install_ex1_1.xml b/doc/generated/examples/install_ex1_1.xml
index 69a9f28..776f7e8 100644
--- a/doc/generated/examples/install_ex1_1.xml
+++ b/doc/generated/examples/install_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q /usr/bin</userinput>
diff --git a/doc/generated/examples/install_ex2_1.xml b/doc/generated/examples/install_ex2_1.xml
index 66caba3..98de9c4 100644
--- a/doc/generated/examples/install_ex2_1.xml
+++ b/doc/generated/examples/install_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
% <userinput>scons -Q install</userinput>
diff --git a/doc/generated/examples/install_ex3_1.xml b/doc/generated/examples/install_ex3_1.xml
index 5e79808..e306111 100644
--- a/doc/generated/examples/install_ex3_1.xml
+++ b/doc/generated/examples/install_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q install</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q install</userinput>
cc -o goodbye.o -c goodbye.c
cc -o goodbye goodbye.o
Install file: "goodbye" as "/usr/bin/goodbye"
diff --git a/doc/generated/examples/install_ex4_1.xml b/doc/generated/examples/install_ex4_1.xml
index 277ab7a..36cd90c 100644
--- a/doc/generated/examples/install_ex4_1.xml
+++ b/doc/generated/examples/install_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q install</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q install</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
Install file: "hello" as "/usr/bin/hello-new"
diff --git a/doc/generated/examples/install_ex5_1.xml b/doc/generated/examples/install_ex5_1.xml
index 9cfc178..89f7c56 100644
--- a/doc/generated/examples/install_ex5_1.xml
+++ b/doc/generated/examples/install_ex5_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q install</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q install</userinput>
cc -o goodbye.o -c goodbye.c
cc -o goodbye goodbye.o
Install file: "goodbye" as "/usr/bin/goodbye-new"
diff --git a/doc/generated/examples/java_JAVACLASSDIR_1.xml b/doc/generated/examples/java_JAVACLASSDIR_1.xml
index e87345e..5e0709a 100644
--- a/doc/generated/examples/java_JAVACLASSDIR_1.xml
+++ b/doc/generated/examples/java_JAVACLASSDIR_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src/pkg/sub src/pkg/sub/Example1.java src/pkg/sub/Example2.java src/pkg/sub/Example3.java
javah -d native -classpath classes pkg.sub.Example1 pkg.sub.Example2 pkg.sub.Example3
</screen>
diff --git a/doc/generated/examples/java_RMIC_1.xml b/doc/generated/examples/java_RMIC_1.xml
index be8c953..4db895e 100644
--- a/doc/generated/examples/java_RMIC_1.xml
+++ b/doc/generated/examples/java_RMIC_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src/pkg/sub src/pkg/sub/Example1.java src/pkg/sub/Example2.java
rmic -d outdir -classpath classes pkg.sub.Example1 pkg.sub.Example2
</screen>
diff --git a/doc/generated/examples/java_jar1_1.xml b/doc/generated/examples/java_jar1_1.xml
index 6f5afa0..de93227 100644
--- a/doc/generated/examples/java_jar1_1.xml
+++ b/doc/generated/examples/java_jar1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src src/Example1.java src/Example2.java src/Example3.java
jar cf test.jar classes
</screen>
diff --git a/doc/generated/examples/java_jar2_1.xml b/doc/generated/examples/java_jar2_1.xml
index 70e161b..9e942e2 100644
--- a/doc/generated/examples/java_jar2_1.xml
+++ b/doc/generated/examples/java_jar2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath prog1 prog1/Example1.java prog1/Example2.java
javac -d classes -sourcepath prog2 prog2/Example3.java prog2/Example4.java
jar cf prog1.jar -C classes Example1.class -C classes Example2.class
diff --git a/doc/generated/examples/java_java-classes_1.xml b/doc/generated/examples/java_java-classes_1.xml
index 2ebc85c..6f02f5f 100644
--- a/doc/generated/examples/java_java-classes_1.xml
+++ b/doc/generated/examples/java_java-classes_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src src/Example1.java src/Example2.java src/Example3.java
% <userinput>scons -Q classes</userinput>
scons: `classes' is up to date.
diff --git a/doc/generated/examples/java_java-classes_2.xml b/doc/generated/examples/java_java-classes_2.xml
index 9a24f70..31f6028 100644
--- a/doc/generated/examples/java_java-classes_2.xml
+++ b/doc/generated/examples/java_java-classes_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src src/Example1.java src/Example2.java src/Example3.java
% <userinput>scons -Q -c classes</userinput>
Removed classes/Example1.class
diff --git a/doc/generated/examples/java_java_1.xml b/doc/generated/examples/java_java_1.xml
index a6e69c1..551a5d4 100644
--- a/doc/generated/examples/java_java_1.xml
+++ b/doc/generated/examples/java_java_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src src/Example1.java src/Example2.java src/Example3.java
</screen>
diff --git a/doc/generated/examples/java_javah_1.xml b/doc/generated/examples/java_javah_1.xml
index e87345e..5e0709a 100644
--- a/doc/generated/examples/java_javah_1.xml
+++ b/doc/generated/examples/java_javah_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src/pkg/sub src/pkg/sub/Example1.java src/pkg/sub/Example2.java src/pkg/sub/Example3.java
javah -d native -classpath classes pkg.sub.Example1 pkg.sub.Example2 pkg.sub.Example3
</screen>
diff --git a/doc/generated/examples/java_javah_file_1.xml b/doc/generated/examples/java_javah_file_1.xml
index a0e74d5..163a53d 100644
--- a/doc/generated/examples/java_javah_file_1.xml
+++ b/doc/generated/examples/java_javah_file_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
javac -d classes -sourcepath src/pkg/sub src/pkg/sub/Example1.java src/pkg/sub/Example2.java src/pkg/sub/Example3.java
javah -o native.h -classpath classes pkg.sub.Example1 pkg.sub.Example2 pkg.sub.Example3
</screen>
diff --git a/doc/generated/examples/lesssimple_ex2_1.xml b/doc/generated/examples/lesssimple_ex2_1.xml
index 834f88c..6093f0c 100644
--- a/doc/generated/examples/lesssimple_ex2_1.xml
+++ b/doc/generated/examples/lesssimple_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o file1.o -c file1.c
cc -o file2.o -c file2.c
cc -o prog.o -c prog.c
diff --git a/doc/generated/examples/lesssimple_ex3_1.xml b/doc/generated/examples/lesssimple_ex3_1.xml
index 415205b..b3ac2f0 100644
--- a/doc/generated/examples/lesssimple_ex3_1.xml
+++ b/doc/generated/examples/lesssimple_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o file1.o -c file1.c
cc -o file2.o -c file2.c
cc -o prog.o -c prog.c
diff --git a/doc/generated/examples/lesssimple_ex3_2.xml b/doc/generated/examples/lesssimple_ex3_2.xml
index 2eee32b..835f048 100644
--- a/doc/generated/examples/lesssimple_ex3_2.xml
+++ b/doc/generated/examples/lesssimple_ex3_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fofile1.obj /c file1.c /nologo
cl /Fofile2.obj /c file2.c /nologo
cl /Foprog.obj /c prog.c /nologo
diff --git a/doc/generated/examples/lesssimple_ex4_1.xml b/doc/generated/examples/lesssimple_ex4_1.xml
index 4d9267e..87af41d 100644
--- a/doc/generated/examples/lesssimple_ex4_1.xml
+++ b/doc/generated/examples/lesssimple_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar1.o -c bar1.c
cc -o bar2.o -c bar2.c
cc -o bar bar1.o bar2.o
diff --git a/doc/generated/examples/lesssimple_ex5_1.xml b/doc/generated/examples/lesssimple_ex5_1.xml
index e1c35d4..0043e11 100644
--- a/doc/generated/examples/lesssimple_ex5_1.xml
+++ b/doc/generated/examples/lesssimple_ex5_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o bar1.o -c bar1.c
cc -o bar2.o -c bar2.c
cc -o common1.o -c common1.c
diff --git a/doc/generated/examples/lesssimple_target_1.xml b/doc/generated/examples/lesssimple_target_1.xml
index 76f0de9..a958acb 100644
--- a/doc/generated/examples/lesssimple_target_1.xml
+++ b/doc/generated/examples/lesssimple_target_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o new_hello hello.o
</screen>
diff --git a/doc/generated/examples/lesssimple_target_2.xml b/doc/generated/examples/lesssimple_target_2.xml
index 0babd04..ef7b241 100644
--- a/doc/generated/examples/lesssimple_target_2.xml
+++ b/doc/generated/examples/lesssimple_target_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:new_hello.exe hello.obj
embedManifestExeCheck(target, source, env)
diff --git a/doc/generated/examples/libraries_SharedLibrary_1.xml b/doc/generated/examples/libraries_SharedLibrary_1.xml
index 80df708..2300891 100644
--- a/doc/generated/examples/libraries_SharedLibrary_1.xml
+++ b/doc/generated/examples/libraries_SharedLibrary_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.os -c f1.c
cc -o f2.os -c f2.c
cc -o f3.os -c f3.c
diff --git a/doc/generated/examples/libraries_SharedLibrary_2.xml b/doc/generated/examples/libraries_SharedLibrary_2.xml
index c2894d5..b6b484d 100644
--- a/doc/generated/examples/libraries_SharedLibrary_2.xml
+++ b/doc/generated/examples/libraries_SharedLibrary_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fof1.obj /c f1.c /nologo
cl /Fof2.obj /c f2.c /nologo
cl /Fof3.obj /c f3.c /nologo
diff --git a/doc/generated/examples/libraries_ex1_1.xml b/doc/generated/examples/libraries_ex1_1.xml
index 0449b31..bfd69b4 100644
--- a/doc/generated/examples/libraries_ex1_1.xml
+++ b/doc/generated/examples/libraries_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.o -c f1.c
cc -o f2.o -c f2.c
cc -o f3.o -c f3.c
diff --git a/doc/generated/examples/libraries_ex1_2.xml b/doc/generated/examples/libraries_ex1_2.xml
index 9256d4f..912e7ad 100644
--- a/doc/generated/examples/libraries_ex1_2.xml
+++ b/doc/generated/examples/libraries_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fof1.obj /c f1.c /nologo
cl /Fof2.obj /c f2.c /nologo
cl /Fof3.obj /c f3.c /nologo
diff --git a/doc/generated/examples/libraries_ex2_1.xml b/doc/generated/examples/libraries_ex2_1.xml
index 7389203..c43f7e9 100644
--- a/doc/generated/examples/libraries_ex2_1.xml
+++ b/doc/generated/examples/libraries_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.o -c f1.c
cc -o f2.o -c f2.c
cc -o f3.o -c f3.c
diff --git a/doc/generated/examples/libraries_ex2_2.xml b/doc/generated/examples/libraries_ex2_2.xml
index 17ec5b5..84b4d75 100644
--- a/doc/generated/examples/libraries_ex2_2.xml
+++ b/doc/generated/examples/libraries_ex2_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fof1.obj /c f1.c /nologo
cl /Fof2.obj /c f2.c /nologo
cl /Fof3.obj /c f3.c /nologo
diff --git a/doc/generated/examples/libraries_ex3_1.xml b/doc/generated/examples/libraries_ex3_1.xml
index 1b4fb3c..9dd6ca9 100644
--- a/doc/generated/examples/libraries_ex3_1.xml
+++ b/doc/generated/examples/libraries_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog.o -c prog.c
cc -o prog prog.o -L/usr/lib -L/usr/local/lib -lm
</screen>
diff --git a/doc/generated/examples/libraries_ex3_2.xml b/doc/generated/examples/libraries_ex3_2.xml
index 2a64da1..e5ec4ce 100644
--- a/doc/generated/examples/libraries_ex3_2.xml
+++ b/doc/generated/examples/libraries_ex3_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Foprog.obj /c prog.c /nologo
link /nologo /OUT:prog.exe /LIBPATH:\usr\lib /LIBPATH:\usr\local\lib m.lib prog.obj
embedManifestExeCheck(target, source, env)
diff --git a/doc/generated/examples/libraries_objects_1.xml b/doc/generated/examples/libraries_objects_1.xml
index 97623d9..5d732da 100644
--- a/doc/generated/examples/libraries_objects_1.xml
+++ b/doc/generated/examples/libraries_objects_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f1.o -c f1.c
cc -o f3.o -c f3.c
ar rc libfoo.a f1.o f2.o f3.o f4.o
diff --git a/doc/generated/examples/mergeflags_MergeFlags1_1.xml b/doc/generated/examples/mergeflags_MergeFlags1_1.xml
index a5a6915..8f18fd8 100644
--- a/doc/generated/examples/mergeflags_MergeFlags1_1.xml
+++ b/doc/generated/examples/mergeflags_MergeFlags1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
['-option', '-O1', '-whatever', '-O3']
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/mergeflags_MergeFlags2_1.xml b/doc/generated/examples/mergeflags_MergeFlags2_1.xml
index d807d66..8cae827 100644
--- a/doc/generated/examples/mergeflags_MergeFlags2_1.xml
+++ b/doc/generated/examples/mergeflags_MergeFlags2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
['/include', '/usr/local/include', '/usr/include', '/usr/opt/include']
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/mergeflags_MergeFlags3_1.xml b/doc/generated/examples/mergeflags_MergeFlags3_1.xml
index 324d960..d4f23d4 100644
--- a/doc/generated/examples/mergeflags_MergeFlags3_1.xml
+++ b/doc/generated/examples/mergeflags_MergeFlags3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
['-option', '-O1', '-whatever', '-O3']
['/include', '/usr/local/include', '/usr/include', '/usr/opt/include']
scons: `.' is up to date.
diff --git a/doc/generated/examples/misc_Exit_1.xml b/doc/generated/examples/misc_Exit_1.xml
index 65ccf9b..6af378f 100644
--- a/doc/generated/examples/misc_Exit_1.xml
+++ b/doc/generated/examples/misc_Exit_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q FUTURE=1</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q FUTURE=1</userinput>
The FUTURE option is not supported yet!
% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
diff --git a/doc/generated/examples/misc_FindFile1a_1.xml b/doc/generated/examples/misc_FindFile1a_1.xml
index 2b18f6e..eca0328 100644
--- a/doc/generated/examples/misc_FindFile1a_1.xml
+++ b/doc/generated/examples/misc_FindFile1a_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
None
&lt;class 'SCons.Node.FS.File'&gt; exists
scons: `.' is up to date.
diff --git a/doc/generated/examples/misc_FindFile1b_1.xml b/doc/generated/examples/misc_FindFile1b_1.xml
index f16dc95..894b483 100644
--- a/doc/generated/examples/misc_FindFile1b_1.xml
+++ b/doc/generated/examples/misc_FindFile1b_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
nonesuch.h: None
config.h: config.h
private.h: src/include/private.h
diff --git a/doc/generated/examples/misc_FindFile1d_1.xml b/doc/generated/examples/misc_FindFile1d_1.xml
index e0e8e8d..5ab499f 100644
--- a/doc/generated/examples/misc_FindFile1d_1.xml
+++ b/doc/generated/examples/misc_FindFile1d_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
sub1/multiple
sub2/multiple
sub3/multiple
diff --git a/doc/generated/examples/misc_FindFile2_1.xml b/doc/generated/examples/misc_FindFile2_1.xml
index 5aea252..149c5d5 100644
--- a/doc/generated/examples/misc_FindFile2_1.xml
+++ b/doc/generated/examples/misc_FindFile2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
leaf
derived
cat &gt; derived leaf
diff --git a/doc/generated/examples/misc_FindFile2_2.xml b/doc/generated/examples/misc_FindFile2_2.xml
index 5aea252..149c5d5 100644
--- a/doc/generated/examples/misc_FindFile2_2.xml
+++ b/doc/generated/examples/misc_FindFile2_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
leaf
derived
cat &gt; derived leaf
diff --git a/doc/generated/examples/misc_FindFile3_1.xml b/doc/generated/examples/misc_FindFile3_1.xml
index 026212c..2c09fed 100644
--- a/doc/generated/examples/misc_FindFile3_1.xml
+++ b/doc/generated/examples/misc_FindFile3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
build/leaf
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/misc_Flatten1_1.xml b/doc/generated/examples/misc_Flatten1_1.xml
index b25ef5f..54720bb 100644
--- a/doc/generated/examples/misc_Flatten1_1.xml
+++ b/doc/generated/examples/misc_Flatten1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o prog1.o -c prog1.c
cc -o prog2.o -c -DFOO prog2.c
cc -o prog1 prog1.o prog2.o
diff --git a/doc/generated/examples/misc_Flatten2_1.xml b/doc/generated/examples/misc_Flatten2_1.xml
index 5c9502d..58ffe6b 100644
--- a/doc/generated/examples/misc_Flatten2_1.xml
+++ b/doc/generated/examples/misc_Flatten2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
AttributeError: 'NodeList' object has no attribute 'abspath':
File "/home/my/project/SConstruct", line 8:
print object_file.abspath
diff --git a/doc/generated/examples/nodes_GetBuildPath_1.xml b/doc/generated/examples/nodes_GetBuildPath_1.xml
index d8160f3..376f65e 100644
--- a/doc/generated/examples/nodes_GetBuildPath_1.xml
+++ b/doc/generated/examples/nodes_GetBuildPath_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
['foo.c', 'sub/dir/value']
scons: `.' is up to date.
</screen>
diff --git a/doc/generated/examples/nodes_ex1_1.xml b/doc/generated/examples/nodes_ex1_1.xml
index fc72480..e7eb8c4 100644
--- a/doc/generated/examples/nodes_ex1_1.xml
+++ b/doc/generated/examples/nodes_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o goodbye.o -c -DGOODBYE goodbye.c
cc -o hello.o -c -DHELLO hello.c
cc -o hello hello.o goodbye.o
diff --git a/doc/generated/examples/nodes_ex1_2.xml b/doc/generated/examples/nodes_ex1_2.xml
index cc92ae6..a1ed1fb 100644
--- a/doc/generated/examples/nodes_ex1_2.xml
+++ b/doc/generated/examples/nodes_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fogoodbye.obj /c goodbye.c -DGOODBYE
cl /Fohello.obj /c hello.c -DHELLO
link /nologo /OUT:hello.exe hello.obj goodbye.obj
diff --git a/doc/generated/examples/nodes_exists_1.xml b/doc/generated/examples/nodes_exists_1.xml
index c618a6c..a290b1c 100644
--- a/doc/generated/examples/nodes_exists_1.xml
+++ b/doc/generated/examples/nodes_exists_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
hello does not exist!
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/nodes_print_1.xml b/doc/generated/examples/nodes_print_1.xml
index dd8fcbb..11a3f45 100644
--- a/doc/generated/examples/nodes_print_1.xml
+++ b/doc/generated/examples/nodes_print_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
The object file is: hello.o
The program file is: hello
cc -o hello.o -c hello.c
diff --git a/doc/generated/examples/nodes_print_2.xml b/doc/generated/examples/nodes_print_2.xml
index 58bb703..a62b522 100644
--- a/doc/generated/examples/nodes_print_2.xml
+++ b/doc/generated/examples/nodes_print_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
The object file is: hello.obj
The program file is: hello.exe
cl /Fohello.obj /c hello.c /nologo
diff --git a/doc/generated/examples/output_Progress-TARGET_1.xml b/doc/generated/examples/output_Progress-TARGET_1.xml
index 29abc9f..b233c6e 100644
--- a/doc/generated/examples/output_Progress-TARGET_1.xml
+++ b/doc/generated/examples/output_Progress-TARGET_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
Evaluating SConstruct
Evaluating f1.c
Evaluating f1.o
diff --git a/doc/generated/examples/output_ex1_1.xml b/doc/generated/examples/output_ex1_1.xml
index 2576b31..535960b 100644
--- a/doc/generated/examples/output_ex1_1.xml
+++ b/doc/generated/examples/output_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -h</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -h</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
diff --git a/doc/generated/examples/output_ex2_1.xml b/doc/generated/examples/output_ex2_1.xml
index e206c33..e951c3a 100644
--- a/doc/generated/examples/output_ex2_1.xml
+++ b/doc/generated/examples/output_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -h</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -h</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
diff --git a/doc/generated/examples/output_ex2_2.xml b/doc/generated/examples/output_ex2_2.xml
index 126fc54..8dca6c3 100644
--- a/doc/generated/examples/output_ex2_2.xml
+++ b/doc/generated/examples/output_ex2_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -h</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -h</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
diff --git a/doc/generated/examples/output_gbf2_1.xml b/doc/generated/examples/output_gbf2_1.xml
index e72965f..c31b41a 100644
--- a/doc/generated/examples/output_gbf2_1.xml
+++ b/doc/generated/examples/output_gbf2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
scons: `.' is up to date.
Build succeeded.
% <userinput>scons -Q fail=1</userinput>
diff --git a/doc/generated/examples/parseflags_ex1_1.xml b/doc/generated/examples/parseflags_ex1_1.xml
index d385662..d6e4d96 100644
--- a/doc/generated/examples/parseflags_ex1_1.xml
+++ b/doc/generated/examples/parseflags_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
CPPPATH ['/opt/include']
LIBPATH ['/opt/lib']
LIBS ['foo']
diff --git a/doc/generated/examples/parseflags_ex1_2.xml b/doc/generated/examples/parseflags_ex1_2.xml
index 29985a2..4c115d0 100644
--- a/doc/generated/examples/parseflags_ex1_2.xml
+++ b/doc/generated/examples/parseflags_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
CPPPATH ['/opt/include']
LIBPATH ['/opt/lib']
LIBS ['foo']
diff --git a/doc/generated/examples/parseflags_ex2_1.xml b/doc/generated/examples/parseflags_ex2_1.xml
index 8026ca0..da84ee3 100644
--- a/doc/generated/examples/parseflags_ex2_1.xml
+++ b/doc/generated/examples/parseflags_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
CCFLAGS -whatever
cc -o f1.o -c -whatever f1.c
cc -o f1 f1.o
diff --git a/doc/generated/examples/parseflags_ex3_1.xml b/doc/generated/examples/parseflags_ex3_1.xml
index d385662..d6e4d96 100644
--- a/doc/generated/examples/parseflags_ex3_1.xml
+++ b/doc/generated/examples/parseflags_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
CPPPATH ['/opt/include']
LIBPATH ['/opt/lib']
LIBS ['foo']
diff --git a/doc/generated/examples/parseflags_ex4_1.xml b/doc/generated/examples/parseflags_ex4_1.xml
index d385662..d6e4d96 100644
--- a/doc/generated/examples/parseflags_ex4_1.xml
+++ b/doc/generated/examples/parseflags_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
CPPPATH ['/opt/include']
LIBPATH ['/opt/lib']
LIBS ['foo']
diff --git a/doc/generated/examples/repositories_CPPPATH3_1.xml b/doc/generated/examples/repositories_CPPPATH3_1.xml
index 558678d..d53ffdb 100644
--- a/doc/generated/examples/repositories_CPPPATH3_1.xml
+++ b/doc/generated/examples/repositories_CPPPATH3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c -Idir1 -I/r1/dir1 -I/r2/dir1 -Idir2 -I/r1/dir2 -I/r2/dir2 -Idir3 -I/r1/dir3 -I/r2/dir3 hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/repositories_CPPPATH_1.xml b/doc/generated/examples/repositories_CPPPATH_1.xml
index f5ad671..6c5a2d1 100644
--- a/doc/generated/examples/repositories_CPPPATH_1.xml
+++ b/doc/generated/examples/repositories_CPPPATH_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c -I. -I/usr/repository1 hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/repositories_ex1_1.xml b/doc/generated/examples/repositories_ex1_1.xml
index d1250c2..a21fdc8 100644
--- a/doc/generated/examples/repositories_ex1_1.xml
+++ b/doc/generated/examples/repositories_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/repositories_ex2_1.xml b/doc/generated/examples/repositories_ex2_1.xml
index 146a074..819c936 100644
--- a/doc/generated/examples/repositories_ex2_1.xml
+++ b/doc/generated/examples/repositories_ex2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c /usr/repository1/hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/repositories_ex3_1.xml b/doc/generated/examples/repositories_ex3_1.xml
index b3f07a2..76d69cd 100644
--- a/doc/generated/examples/repositories_ex3_1.xml
+++ b/doc/generated/examples/repositories_ex3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c /usr/repository2/hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/repositories_ex4_1.xml b/doc/generated/examples/repositories_ex4_1.xml
index 1d3e41a..8911683 100644
--- a/doc/generated/examples/repositories_ex4_1.xml
+++ b/doc/generated/examples/repositories_ex4_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>cd /usr/repository1</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>cd /usr/repository1</userinput>
% <userinput>scons -Q</userinput>
cc -o file1.o -c file1.c
cc -o file2.o -c file2.c
diff --git a/doc/generated/examples/repositories_quote1_1.xml b/doc/generated/examples/repositories_quote1_1.xml
index e9f362d..d2ba624 100644
--- a/doc/generated/examples/repositories_quote1_1.xml
+++ b/doc/generated/examples/repositories_quote1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o hello.o -c -I. -I/usr/repository1 /usr/repository1/hello.c
cc -o hello hello.o
</screen>
diff --git a/doc/generated/examples/separate_builddir_1.xml b/doc/generated/examples/separate_builddir_1.xml
index e470a6d..a763172 100644
--- a/doc/generated/examples/separate_builddir_1.xml
+++ b/doc/generated/examples/separate_builddir_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>ls src</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>ls src</userinput>
hello.c
% <userinput>scons -Q</userinput>
cc -o build/hello.o -c build/hello.c
diff --git a/doc/generated/examples/separate_builddir_sconscript_1.xml b/doc/generated/examples/separate_builddir_sconscript_1.xml
index 34a07bd..5694a56 100644
--- a/doc/generated/examples/separate_builddir_sconscript_1.xml
+++ b/doc/generated/examples/separate_builddir_sconscript_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>ls src</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>ls src</userinput>
SConscript hello.c
% <userinput>scons -Q</userinput>
cc -o build/hello.o -c build/hello.c
diff --git a/doc/generated/examples/separate_duplicate0_1.xml b/doc/generated/examples/separate_duplicate0_1.xml
index 13a25d3..207c5d7 100644
--- a/doc/generated/examples/separate_duplicate0_1.xml
+++ b/doc/generated/examples/separate_duplicate0_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>ls src</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>ls src</userinput>
hello.c
% <userinput>scons -Q</userinput>
cc -o build/hello.o -c src/hello.c
diff --git a/doc/generated/examples/separate_ex1_1.xml b/doc/generated/examples/separate_ex1_1.xml
index 34a07bd..5694a56 100644
--- a/doc/generated/examples/separate_ex1_1.xml
+++ b/doc/generated/examples/separate_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>ls src</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>ls src</userinput>
SConscript hello.c
% <userinput>scons -Q</userinput>
cc -o build/hello.o -c build/hello.c
diff --git a/doc/generated/examples/separate_glob_builddir_sconscript_1.xml b/doc/generated/examples/separate_glob_builddir_sconscript_1.xml
index 95b7650..7cdb420 100644
--- a/doc/generated/examples/separate_glob_builddir_sconscript_1.xml
+++ b/doc/generated/examples/separate_glob_builddir_sconscript_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>ls src</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>ls src</userinput>
SConscript f1.c f2.c f2.h
% <userinput>scons -Q</userinput>
cc -o build/f1.o -c build/f1.c
diff --git a/doc/generated/examples/sideeffect_parallel_1.xml b/doc/generated/examples/sideeffect_parallel_1.xml
index 18f834a..9478c52 100644
--- a/doc/generated/examples/sideeffect_parallel_1.xml
+++ b/doc/generated/examples/sideeffect_parallel_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
echo &gt; file1.out data1
echo &gt; file2.out data2
</screen>
diff --git a/doc/generated/examples/sideeffect_shared_1.xml b/doc/generated/examples/sideeffect_shared_1.xml
index 11cfec7..2abb806 100644
--- a/doc/generated/examples/sideeffect_shared_1.xml
+++ b/doc/generated/examples/sideeffect_shared_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
./build --log logfile.txt file1.in file1.out
./build --log logfile.txt file2.in file2.out
</screen>
diff --git a/doc/generated/examples/sideeffect_simple_1.xml b/doc/generated/examples/sideeffect_simple_1.xml
index 9fdf074..e88630c 100644
--- a/doc/generated/examples/sideeffect_simple_1.xml
+++ b/doc/generated/examples/sideeffect_simple_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --jobs=2</userinput>
File "/home/my/project/SConstruct", line 4
'echo &gt;$TARGET data1; echo &gt;log updated file1'))
diff --git a/doc/generated/examples/simple_Object_1.xml b/doc/generated/examples/simple_Object_1.xml
index 33a86a7..6d5c80d 100644
--- a/doc/generated/examples/simple_Object_1.xml
+++ b/doc/generated/examples/simple_Object_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_Object_2.xml b/doc/generated/examples/simple_Object_2.xml
index 42b773a..3686006 100644
--- a/doc/generated/examples/simple_Object_2.xml
+++ b/doc/generated/examples/simple_Object_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_clean_1.xml b/doc/generated/examples/simple_clean_1.xml
index 0affa24..21adbe7 100644
--- a/doc/generated/examples/simple_clean_1.xml
+++ b/doc/generated/examples/simple_clean_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_clean_2.xml b/doc/generated/examples/simple_clean_2.xml
index 3ccedf4..26f3c37 100644
--- a/doc/generated/examples/simple_clean_2.xml
+++ b/doc/generated/examples/simple_clean_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_declarative_1.xml b/doc/generated/examples/simple_declarative_1.xml
index effcd54..01061cf 100644
--- a/doc/generated/examples/simple_declarative_1.xml
+++ b/doc/generated/examples/simple_declarative_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
Calling Program('hello.c')
Calling Program('goodbye.c')
diff --git a/doc/generated/examples/simple_ex1_1.xml b/doc/generated/examples/simple_ex1_1.xml
index a855deb..5833ede 100644
--- a/doc/generated/examples/simple_ex1_1.xml
+++ b/doc/generated/examples/simple_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_ex1_2.xml b/doc/generated/examples/simple_ex1_2.xml
index b3d11cd..f0e07a1 100644
--- a/doc/generated/examples/simple_ex1_2.xml
+++ b/doc/generated/examples/simple_ex1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_ex1_3.xml b/doc/generated/examples/simple_ex1_3.xml
index b3d11cd..f0e07a1 100644
--- a/doc/generated/examples/simple_ex1_3.xml
+++ b/doc/generated/examples/simple_ex1_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/simple_ex1_4.xml b/doc/generated/examples/simple_ex1_4.xml
index 4087bcf..80c7b63 100644
--- a/doc/generated/examples/simple_ex1_4.xml
+++ b/doc/generated/examples/simple_ex1_4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q</userinput>
cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
embedManifestExeCheck(target, source, env)
diff --git a/doc/generated/examples/simple_java_1.xml b/doc/generated/examples/simple_java_1.xml
index 53cc8aa..75cc6cc 100644
--- a/doc/generated/examples/simple_java_1.xml
+++ b/doc/generated/examples/simple_java_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
diff --git a/doc/generated/examples/sourcecode_bitkeeper_1.xml b/doc/generated/examples/sourcecode_bitkeeper_1.xml
index c02c973..a070ada 100644
--- a/doc/generated/examples/sourcecode_bitkeeper_1.xml
+++ b/doc/generated/examples/sourcecode_bitkeeper_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
bk get hello.c
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/sourcecode_cvs_1.xml b/doc/generated/examples/sourcecode_cvs_1.xml
index c2165cb..9ec7cd4 100644
--- a/doc/generated/examples/sourcecode_cvs_1.xml
+++ b/doc/generated/examples/sourcecode_cvs_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cvs -d /usr/local/CVS co hello.c
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/sourcecode_rcs_1.xml b/doc/generated/examples/sourcecode_rcs_1.xml
index 75def9c..5e120eb 100644
--- a/doc/generated/examples/sourcecode_rcs_1.xml
+++ b/doc/generated/examples/sourcecode_rcs_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
co hello.c
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/sourcecode_sccs_1.xml b/doc/generated/examples/sourcecode_sccs_1.xml
index 0be5f83..354b680 100644
--- a/doc/generated/examples/sourcecode_sccs_1.xml
+++ b/doc/generated/examples/sourcecode_sccs_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
sccs get hello.c
cc -o hello.o -c hello.c
cc -o hello hello.o
diff --git a/doc/generated/examples/tasks_ex1_1.xml b/doc/generated/examples/tasks_ex1_1.xml
index f8b323e..5760a45 100644
--- a/doc/generated/examples/tasks_ex1_1.xml
+++ b/doc/generated/examples/tasks_ex1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o app main.cpp
cat &lt; foo.bar2 &gt; foo.cpp
cc -o app2 main2.cpp foo.cpp
diff --git a/doc/generated/examples/troubleshoot_Dump_1.xml b/doc/generated/examples/troubleshoot_Dump_1.xml
index d1191eb..5b39280 100644
--- a/doc/generated/examples/troubleshoot_Dump_1.xml
+++ b/doc/generated/examples/troubleshoot_Dump_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
{ 'BUILDERS': {'_InternalInstall': &lt;function InstallBuilderWrapper at 0x700000&amp;gt;, '_InternalInstallVersionedLib': &lt;function InstallVersionedBuilderWrapper at 0x700000&amp;gt;, '_InternalInstallAs': &lt;function InstallAsBuilderWrapper at 0x700000&amp;gt;},
'CONFIGUREDIR': '#/.sconf_temp',
diff --git a/doc/generated/examples/troubleshoot_Dump_2.xml b/doc/generated/examples/troubleshoot_Dump_2.xml
index 2fdb1bc..a6515b0 100644
--- a/doc/generated/examples/troubleshoot_Dump_2.xml
+++ b/doc/generated/examples/troubleshoot_Dump_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
{ 'BUILDERS': {'_InternalInstallVersionedLib': &lt;function InstallVersionedBuilderWrapper at 0x700000&amp;gt;, '_InternalInstall': &lt;function InstallBuilderWrapper at 0x700000&amp;gt;, 'Object': &lt;SCons.Builder.CompositeBuilder object at 0x700000&amp;gt;, 'PCH': &lt;SCons.Builder.BuilderBase object at 0x700000&amp;gt;, 'RES': &lt;SCons.Builder.BuilderBase object at 0x700000&amp;gt;, 'SharedObject': &lt;SCons.Builder.CompositeBuilder object at 0x700000&amp;gt;, 'StaticObject': &lt;SCons.Builder.CompositeBuilder object at 0x700000&amp;gt;, '_InternalInstallAs': &lt;function InstallAsBuilderWrapper at 0x700000&amp;gt;},
'CC': 'cl',
diff --git a/doc/generated/examples/troubleshoot_Dump_ENV_1.xml b/doc/generated/examples/troubleshoot_Dump_ENV_1.xml
index 818bbcc..786491f 100644
--- a/doc/generated/examples/troubleshoot_Dump_ENV_1.xml
+++ b/doc/generated/examples/troubleshoot_Dump_ENV_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons</userinput>
scons: Reading SConscript files ...
{ 'PATH': '/usr/local/bin:/opt/bin:/bin:/usr/bin'}
scons: done reading SConscript files.
diff --git a/doc/generated/examples/troubleshoot_Dump_ENV_2.xml b/doc/generated/examples/troubleshoot_Dump_ENV_2.xml
index 4ea3a2f..eb6b735 100644
--- a/doc/generated/examples/troubleshoot_Dump_ENV_2.xml
+++ b/doc/generated/examples/troubleshoot_Dump_ENV_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons</userinput>
scons: Reading SConscript files ...
{ 'PATH': 'C:\\WINDOWS\\System32',
'PATHEXT': '.COM;.EXE;.BAT;.CMD',
diff --git a/doc/generated/examples/troubleshoot_explain1_1.xml b/doc/generated/examples/troubleshoot_explain1_1.xml
index 50fb303..2a9547d 100644
--- a/doc/generated/examples/troubleshoot_explain1_1.xml
+++ b/doc/generated/examples/troubleshoot_explain1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cp file.in file.oout
% <userinput>scons -Q</userinput>
cp file.in file.oout
diff --git a/doc/generated/examples/troubleshoot_explain1_2.xml b/doc/generated/examples/troubleshoot_explain1_2.xml
index a58a2d3..9864cd7 100644
--- a/doc/generated/examples/troubleshoot_explain1_2.xml
+++ b/doc/generated/examples/troubleshoot_explain1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --debug=explain</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --debug=explain</userinput>
scons: building `file.out' because it doesn't exist
cp file.in file.oout
</screen>
diff --git a/doc/generated/examples/troubleshoot_explain1_3.xml b/doc/generated/examples/troubleshoot_explain1_3.xml
index b62be87..0879b11 100644
--- a/doc/generated/examples/troubleshoot_explain1_3.xml
+++ b/doc/generated/examples/troubleshoot_explain1_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --warn=target-not-built</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --warn=target-not-built</userinput>
scons: building `file.out' because it doesn't exist
cp file.in file.oout
diff --git a/doc/generated/examples/troubleshoot_explain2_1.xml b/doc/generated/examples/troubleshoot_explain2_1.xml
index 3b5374f..cd95a44 100644
--- a/doc/generated/examples/troubleshoot_explain2_1.xml
+++ b/doc/generated/examples/troubleshoot_explain2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o file1.o -c file1.c
cc -o file2.o -c file2.c
cc -o file3.o -c file3.c
diff --git a/doc/generated/examples/troubleshoot_explain3_1.xml b/doc/generated/examples/troubleshoot_explain3_1.xml
index 7e89a26..bacb7e8 100644
--- a/doc/generated/examples/troubleshoot_explain3_1.xml
+++ b/doc/generated/examples/troubleshoot_explain3_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o file1.o -c -I. file1.c
cc -o file2.o -c -I. file2.c
cc -o file3.o -c -I. file3.c
diff --git a/doc/generated/examples/troubleshoot_findlibs_1.xml b/doc/generated/examples/troubleshoot_findlibs_1.xml
index 0b34b73..8fc4e5f 100644
--- a/doc/generated/examples/troubleshoot_findlibs_1.xml
+++ b/doc/generated/examples/troubleshoot_findlibs_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --debug=findlibs</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --debug=findlibs</userinput>
findlibs: looking for 'libfoo.a' in 'libs1' ...
findlibs: ... FOUND 'libfoo.a' in 'libs1'
findlibs: looking for 'libfoo.so' in 'libs1' ...
diff --git a/doc/generated/examples/troubleshoot_stacktrace_1.xml b/doc/generated/examples/troubleshoot_stacktrace_1.xml
index 7228f77..cc3ca7b 100644
--- a/doc/generated/examples/troubleshoot_stacktrace_1.xml
+++ b/doc/generated/examples/troubleshoot_stacktrace_1.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
scons: *** [prog.o] Source `prog.c' not found, needed by target `prog.o'.
</screen>
diff --git a/doc/generated/examples/troubleshoot_stacktrace_2.xml b/doc/generated/examples/troubleshoot_stacktrace_2.xml
index 6b88dd1..6286d45 100644
--- a/doc/generated/examples/troubleshoot_stacktrace_2.xml
+++ b/doc/generated/examples/troubleshoot_stacktrace_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --debug=stacktrace</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --debug=stacktrace</userinput>
scons: *** [prog.o] Source `prog.c' not found, needed by target `prog.o'.
scons: internal stack trace:
File "bootstrap/src/engine/SCons/Job.py", line 199, in start
diff --git a/doc/generated/examples/troubleshoot_taskmastertrace_1.xml b/doc/generated/examples/troubleshoot_taskmastertrace_1.xml
index f1c2582..578951d 100644
--- a/doc/generated/examples/troubleshoot_taskmastertrace_1.xml
+++ b/doc/generated/examples/troubleshoot_taskmastertrace_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --taskmastertrace=- prog</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --taskmastertrace=- prog</userinput>
Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node &lt;no_state 0 'prog'&gt; and its children:
diff --git a/doc/generated/examples/troubleshoot_tree1_1.xml b/doc/generated/examples/troubleshoot_tree1_1.xml
index c082c0e..4ccadc6 100644
--- a/doc/generated/examples/troubleshoot_tree1_1.xml
+++ b/doc/generated/examples/troubleshoot_tree1_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=all</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=all</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/troubleshoot_tree1_2.xml b/doc/generated/examples/troubleshoot_tree1_2.xml
index 0a27f8b..0bd4874 100644
--- a/doc/generated/examples/troubleshoot_tree1_2.xml
+++ b/doc/generated/examples/troubleshoot_tree1_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=all f2.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=all f2.o</userinput>
cc -o f2.o -c -I. f2.c
+-f2.o
+-f2.c
diff --git a/doc/generated/examples/troubleshoot_tree1_3.xml b/doc/generated/examples/troubleshoot_tree1_3.xml
index 7d26ee9..75fa841 100644
--- a/doc/generated/examples/troubleshoot_tree1_3.xml
+++ b/doc/generated/examples/troubleshoot_tree1_3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=all f1.o f3.o</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=all f1.o f3.o</userinput>
cc -o f1.o -c -I. f1.c
+-f1.o
+-f1.c
diff --git a/doc/generated/examples/troubleshoot_tree1_4.xml b/doc/generated/examples/troubleshoot_tree1_4.xml
index 0d974db..409bce9 100644
--- a/doc/generated/examples/troubleshoot_tree1_4.xml
+++ b/doc/generated/examples/troubleshoot_tree1_4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=status</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=status</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/troubleshoot_tree1_5.xml b/doc/generated/examples/troubleshoot_tree1_5.xml
index a219aef..b852ab0 100644
--- a/doc/generated/examples/troubleshoot_tree1_5.xml
+++ b/doc/generated/examples/troubleshoot_tree1_5.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=derived</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=derived</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/troubleshoot_tree1_6.xml b/doc/generated/examples/troubleshoot_tree1_6.xml
index 4d3c972..a0d42d7 100644
--- a/doc/generated/examples/troubleshoot_tree1_6.xml
+++ b/doc/generated/examples/troubleshoot_tree1_6.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=derived,status</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=derived,status</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/troubleshoot_tree2_1.xml b/doc/generated/examples/troubleshoot_tree2_1.xml
index 7b786e3..85febf5 100644
--- a/doc/generated/examples/troubleshoot_tree2_1.xml
+++ b/doc/generated/examples/troubleshoot_tree2_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=all</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=all</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/troubleshoot_tree2_2.xml b/doc/generated/examples/troubleshoot_tree2_2.xml
index 2338622..5380fad 100644
--- a/doc/generated/examples/troubleshoot_tree2_2.xml
+++ b/doc/generated/examples/troubleshoot_tree2_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q --tree=prune</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --tree=prune</userinput>
cc -o f1.o -c -I. f1.c
cc -o f2.o -c -I. f2.c
cc -o f3.o -c -I. f3.c
diff --git a/doc/generated/examples/variants_ex_1.xml b/doc/generated/examples/variants_ex_1.xml
index cbc47ab..12a14d6 100644
--- a/doc/generated/examples/variants_ex_1.xml
+++ b/doc/generated/examples/variants_ex_1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">% <userinput>scons -Q OS=linux</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q OS=linux</userinput>
Install file: "build/linux/world/world.h" as "export/linux/include/world.h"
cc -o build/linux/hello/hello.o -c -Iexport/linux/include build/linux/hello/hello.c
cc -o build/linux/world/world.o -c -Iexport/linux/include build/linux/world/world.c
diff --git a/doc/generated/examples/variants_ex_2.xml b/doc/generated/examples/variants_ex_2.xml
index ac883de..c129cc4 100644
--- a/doc/generated/examples/variants_ex_2.xml
+++ b/doc/generated/examples/variants_ex_2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">C:\&gt;<userinput>scons -Q OS=windows</userinput>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">C:\&gt;<userinput>scons -Q OS=windows</userinput>
Install file: "build/windows/world/world.h" as "export/windows/include/world.h"
cl /Fobuild\windows\hello\hello.obj /c build\windows\hello\hello.c /nologo /Iexport\windows\include
cl /Fobuild\windows\world\world.obj /c build\windows\world\world.c /nologo /Iexport\windows\include
diff --git a/doc/generated/functions.gen b/doc/generated/functions.gen
index 072b91c..62a9ab3 100644
--- a/doc/generated/functions.gen
+++ b/doc/generated/functions.gen
@@ -12,7 +12,7 @@
%variables-mod;
]>
-<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<varlistentry id="f-Action">
<term>
<literal>Action(action, [cmd/str/fun, [var, ...]] [option=value, ...])</literal>
diff --git a/doc/generated/tools.gen b/doc/generated/tools.gen
index a0a709e..02349b8 100644
--- a/doc/generated/tools.gen
+++ b/doc/generated/tools.gen
@@ -12,7 +12,7 @@
%variables-mod;
]>
-<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<varlistentry id="t-386asm">
<term>386asm</term>
<listitem>
diff --git a/doc/generated/variables.gen b/doc/generated/variables.gen
index efdac8e..832c4a3 100644
--- a/doc/generated/variables.gen
+++ b/doc/generated/variables.gen
@@ -12,7 +12,7 @@
%variables-mod;
]>
-<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+<variablelist xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<varlistentry id="cv-AR">
<term>AR</term>
<listitem>
diff --git a/doc/man/html.xsl b/doc/man/html.xsl
index 864af88..714412a 100644
--- a/doc/man/html.xsl
+++ b/doc/man/html.xsl
@@ -32,6 +32,7 @@
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/man/pdf.xsl b/doc/man/pdf.xsl
index f314103..c821dde 100644
--- a/doc/man/pdf.xsl
+++ b/doc/man/pdf.xsl
@@ -33,6 +33,7 @@
<xsl:include href="scons_title.xsl"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"></xsl:param>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="paper.type" select="'letter'"></xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param>
<xsl:param name="shade.verbatim" select="1"></xsl:param>
diff --git a/doc/man/scons-time.xml b/doc/man/scons-time.xml
index 1e35c17..a1ecadf 100644
--- a/doc/man/scons-time.xml
+++ b/doc/man/scons-time.xml
@@ -1,39 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- lifted from troff+man by doclifter -->
-<refentry id='sconstime1'
- xmlns="http://www.scons.org/dbxsd/v1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
-<!-- __COPYRIGHT__ -->
+<!--
-<!-- Permission is hereby granted, free of charge, to any person obtaining -->
-<!-- a copy of this software and associated documentation files (the -->
-<!-- "Software"), to deal in the Software without restriction, including -->
-<!-- without limitation the rights to use, copy, modify, merge, publish, -->
-<!-- distribute, sublicense, and/or sell copies of the Software, and to -->
-<!-- permit persons to whom the Software is furnished to do so, subject to -->
-<!-- the following conditions: -->
+ __COPYRIGHT__
-<!-- The above copyright notice and this permission notice shall be included -->
-<!-- in all copies or substantial portions of the Software. -->
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
-<!-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -->
-<!-- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -->
-<!-- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -->
-<!-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -->
-<!-- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -->
-<!-- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -->
-<!-- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
-<!-- __FILE__ __REVISION__ __DATE__ __DEVELOPER__ -->
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-<!-- ES \- Example Start \- indents and turns off line fill -->
-<!-- EE \- Example End \- ends indent and turns line fill back on -->
-<!-- '\"========================================================================== -->
-<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
-<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
-<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
-<!-- '\"\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- -->
+-->
+
+<!-- lifted from troff+man by doclifter -->
+<refentry id='sconstime1'
+ xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<refmeta>
<refentrytitle>SCONS-TIME</refentrytitle>
<manvolnum>1</manvolnum>
diff --git a/doc/man/scons.css b/doc/man/scons.css
index 6941abb..ff9b5a1 100644
--- a/doc/man/scons.css
+++ b/doc/man/scons.css
@@ -6,11 +6,11 @@ body {
}
-a {
+a:link {
color: #80572a;
}
-a:hover {
+a:link:hover {
color: #d72816;
text-decoration: none;
}
diff --git a/doc/man/scons.xml b/doc/man/scons.xml
index 5560847..d726796 100644
--- a/doc/man/scons.xml
+++ b/doc/man/scons.xml
@@ -1,4 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ __COPYRIGHT__
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-->
<!DOCTYPE reference [
<!ENTITY % version SYSTEM "../version.xml">
@@ -17,29 +41,7 @@
<!-- lifted from troff+man by doclifter -->
<reference xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
-<!-- __COPYRIGHT__ -->
-
-<!-- Permission is hereby granted, free of charge, to any person obtaining -->
-<!-- a copy of this software and associated documentation files (the -->
-<!-- "Software"), to deal in the Software without restriction, including -->
-<!-- without limitation the rights to use, copy, modify, merge, publish, -->
-<!-- distribute, sublicense, and/or sell copies of the Software, and to -->
-<!-- permit persons to whom the Software is furnished to do so, subject to -->
-<!-- the following conditions: -->
-
-<!-- The above copyright notice and this permission notice shall be included -->
-<!-- in all copies or substantial portions of the Software. -->
-
-<!-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -->
-<!-- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -->
-<!-- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -->
-<!-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -->
-<!-- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -->
-<!-- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -->
-<!-- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
-
-<!-- __FILE__ __REVISION__ __DATE__ __DEVELOPER__ -->
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<referenceinfo>
<title>SCons &buildversion;</title>
diff --git a/doc/man/sconsign.xml b/doc/man/sconsign.xml
index e376e8f..ca99db6 100644
--- a/doc/man/sconsign.xml
+++ b/doc/man/sconsign.xml
@@ -1,36 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ __COPYRIGHT__
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-->
+
<!-- lifted from troff+man by doclifter -->
<refentry id='sconsign1'
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
-<!-- __COPYRIGHT__ -->
-
-<!-- Permission is hereby granted, free of charge, to any person obtaining -->
-<!-- a copy of this software and associated documentation files (the -->
-<!-- "Software"), to deal in the Software without restriction, including -->
-<!-- without limitation the rights to use, copy, modify, merge, publish, -->
-<!-- distribute, sublicense, and/or sell copies of the Software, and to -->
-<!-- permit persons to whom the Software is furnished to do so, subject to -->
-<!-- the following conditions: -->
-
-<!-- The above copyright notice and this permission notice shall be included -->
-<!-- in all copies or substantial portions of the Software. -->
-
-<!-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -->
-<!-- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -->
-<!-- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -->
-<!-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -->
-<!-- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -->
-<!-- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -->
-<!-- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -->
-
-<!-- __FILE__ __REVISION__ __DATE__ __DEVELOPER__ -->
-
-<!-- ES \- Example Start \- indents and turns off line fill -->
-<!-- ES listing suppressed (not used) -->
-<!-- EE \- Example End \- ends indent and turns line fill back on -->
-<!-- EE listing suppressed (not used) -->
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<refmeta>
<refentrytitle>SCONSIGN</refentrytitle>
<manvolnum>1</manvolnum>
diff --git a/doc/python10/abstract.xml b/doc/python10/abstract.xml
index 9da7d5f..d2d4bb8 100644
--- a/doc/python10/abstract.xml
+++ b/doc/python10/abstract.xml
@@ -6,7 +6,7 @@
<abstract xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/python10/acks.xml b/doc/python10/acks.xml
index 898a177..8a182b7 100644
--- a/doc/python10/acks.xml
+++ b/doc/python10/acks.xml
@@ -7,7 +7,7 @@
<section id="sect-acks"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Acknowledgements</title>
<!--
diff --git a/doc/python10/copyright.xml b/doc/python10/copyright.xml
index 3151991..46fbbe1 100644
--- a/doc/python10/copyright.xml
+++ b/doc/python10/copyright.xml
@@ -6,7 +6,7 @@
<legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/python10/design.xml b/doc/python10/design.xml
index beee696..bd571ba 100644
--- a/doc/python10/design.xml
+++ b/doc/python10/design.xml
@@ -7,7 +7,7 @@
<section id="sect-design"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Architecture</title>
<!--
diff --git a/doc/python10/future.xml b/doc/python10/future.xml
index 5f80e39..d7c7932 100644
--- a/doc/python10/future.xml
+++ b/doc/python10/future.xml
@@ -7,7 +7,7 @@
<section id="sect-future"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Future Directions</title>
<!--
diff --git a/doc/python10/install.xml b/doc/python10/install.xml
index d77ceea..c00b100 100644
--- a/doc/python10/install.xml
+++ b/doc/python10/install.xml
@@ -7,7 +7,7 @@
<section id="sect-install"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Installation</title>
<!--
diff --git a/doc/python10/intro.xml b/doc/python10/intro.xml
index a273f2a..007195d 100644
--- a/doc/python10/intro.xml
+++ b/doc/python10/intro.xml
@@ -7,7 +7,7 @@
<section id="sect-intro"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Introduction</title>
<!--
diff --git a/doc/python10/main.xml b/doc/python10/main.xml
index b53f64b..6093852 100644
--- a/doc/python10/main.xml
+++ b/doc/python10/main.xml
@@ -9,7 +9,7 @@
<article xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/python10/process.xml b/doc/python10/process.xml
index 201352f..24645e6 100644
--- a/doc/python10/process.xml
+++ b/doc/python10/process.xml
@@ -7,7 +7,7 @@
<section id="sect-process"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Development Process</title>
<!--
diff --git a/doc/python10/summary.xml b/doc/python10/summary.xml
index e9b44b4..a8f8767 100644
--- a/doc/python10/summary.xml
+++ b/doc/python10/summary.xml
@@ -7,7 +7,7 @@
<section id="sect-summary"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Summary</title>
<!--
diff --git a/doc/reference/Alias.xml b/doc/reference/Alias.xml
index a89f8f9..5240696 100644
--- a/doc/reference/Alias.xml
+++ b/doc/reference/Alias.xml
@@ -7,7 +7,7 @@
<section id="sect-Alias"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Alias Builder</title>
<!--
diff --git a/doc/reference/CFile.xml b/doc/reference/CFile.xml
index adff341..1344e28 100644
--- a/doc/reference/CFile.xml
+++ b/doc/reference/CFile.xml
@@ -7,7 +7,7 @@
<section id="sect-CFile"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The CFile Builder</title>
<!--
diff --git a/doc/reference/CXXFile.xml b/doc/reference/CXXFile.xml
index 918721f..a97ea34 100644
--- a/doc/reference/CXXFile.xml
+++ b/doc/reference/CXXFile.xml
@@ -7,7 +7,7 @@
<section id="sect-CXXFile"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The CXXFile Builder</title>
<!--
diff --git a/doc/reference/Command.xml b/doc/reference/Command.xml
index 9585116..5abf908 100644
--- a/doc/reference/Command.xml
+++ b/doc/reference/Command.xml
@@ -7,7 +7,7 @@
<section id="sect-Command"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Command Builder</title>
<!--
diff --git a/doc/reference/Install.xml b/doc/reference/Install.xml
index b5dd4fa..46fd978 100644
--- a/doc/reference/Install.xml
+++ b/doc/reference/Install.xml
@@ -7,7 +7,7 @@
<section id="sect-Install"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Install Builder</title>
<!--
diff --git a/doc/reference/InstallAs.xml b/doc/reference/InstallAs.xml
index 2bf21ed..c86e4b2 100644
--- a/doc/reference/InstallAs.xml
+++ b/doc/reference/InstallAs.xml
@@ -7,7 +7,7 @@
<section id="sect-InstallAs"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The InstallAs Builder</title>
<!--
diff --git a/doc/reference/Library.xml b/doc/reference/Library.xml
index 4021744..e79f920 100644
--- a/doc/reference/Library.xml
+++ b/doc/reference/Library.xml
@@ -7,7 +7,7 @@
<section id="sect-Library"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Library Builder</title>
<!--
diff --git a/doc/reference/Object.xml b/doc/reference/Object.xml
index 61e9737..1710617 100644
--- a/doc/reference/Object.xml
+++ b/doc/reference/Object.xml
@@ -7,7 +7,7 @@
<section id="sect-Object"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Object Builder</title>
<!--
diff --git a/doc/reference/PCH.xml b/doc/reference/PCH.xml
index 2108e36..63ce32b 100644
--- a/doc/reference/PCH.xml
+++ b/doc/reference/PCH.xml
@@ -7,7 +7,7 @@
<section id="sect-PCH"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The PCH Builder</title>
<!--
diff --git a/doc/reference/PDF.xml b/doc/reference/PDF.xml
index 9a0100c..bdbb0d6 100644
--- a/doc/reference/PDF.xml
+++ b/doc/reference/PDF.xml
@@ -7,7 +7,7 @@
<section id="sect-PDF"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The PDF Builder</title>
<!--
diff --git a/doc/reference/PostScript.xml b/doc/reference/PostScript.xml
index 0e5b69b..332c82d 100644
--- a/doc/reference/PostScript.xml
+++ b/doc/reference/PostScript.xml
@@ -7,7 +7,7 @@
<section id="sect-PostScript"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The PDF Builder</title>
<!--
diff --git a/doc/reference/Program.xml b/doc/reference/Program.xml
index 1d9dccd..4dd9e41 100644
--- a/doc/reference/Program.xml
+++ b/doc/reference/Program.xml
@@ -7,7 +7,7 @@
<section id="sect-Program"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The Program Builder</title>
<!--
diff --git a/doc/reference/RES.xml b/doc/reference/RES.xml
index 70c6461..f8aa903 100644
--- a/doc/reference/RES.xml
+++ b/doc/reference/RES.xml
@@ -7,7 +7,7 @@
<section id="sect-RES"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The RES Builder</title>
<!--
diff --git a/doc/reference/SharedLibrary.xml b/doc/reference/SharedLibrary.xml
index 0ebd8f0..345a076 100644
--- a/doc/reference/SharedLibrary.xml
+++ b/doc/reference/SharedLibrary.xml
@@ -7,7 +7,7 @@
<section id="sect-SharedLibrary"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The SharedLibrary Builder</title>
<!--
diff --git a/doc/reference/SharedObject.xml b/doc/reference/SharedObject.xml
index 22a8808..ad75592 100644
--- a/doc/reference/SharedObject.xml
+++ b/doc/reference/SharedObject.xml
@@ -7,7 +7,7 @@
<section id="sect-SharedObject"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The SharedObject Builder</title>
<!--
diff --git a/doc/reference/StaticLibrary.xml b/doc/reference/StaticLibrary.xml
index d42b890..15744be 100644
--- a/doc/reference/StaticLibrary.xml
+++ b/doc/reference/StaticLibrary.xml
@@ -7,7 +7,7 @@
<section id="sect-StaticLibrary"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The StaticLibrary Builder</title>
<!--
diff --git a/doc/reference/StaticObject.xml b/doc/reference/StaticObject.xml
index 7a37a5b..c7e5168 100644
--- a/doc/reference/StaticObject.xml
+++ b/doc/reference/StaticObject.xml
@@ -7,7 +7,7 @@
<section id="sect-StaticObject"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>The StaticObject Builder</title>
<!--
diff --git a/doc/reference/chtml.xsl b/doc/reference/chtml.xsl
index 722aec1..d85874d 100644
--- a/doc/reference/chtml.xsl
+++ b/doc/reference/chtml.xsl
@@ -33,6 +33,7 @@
<xsl:param name="base.dir" select="'scons-reference/'"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/reference/copyright.xml b/doc/reference/copyright.xml
index f33707e..dcf169d 100644
--- a/doc/reference/copyright.xml
+++ b/doc/reference/copyright.xml
@@ -6,7 +6,7 @@
<legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/reference/errors.xml b/doc/reference/errors.xml
index 0532f93..6a7a7c9 100644
--- a/doc/reference/errors.xml
+++ b/doc/reference/errors.xml
@@ -7,7 +7,7 @@
<chapter id="chap-errors"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Errors Generated by &SCons;</title>
<!--
diff --git a/doc/reference/html.xsl b/doc/reference/html.xsl
index 74ea529..9efc458 100644
--- a/doc/reference/html.xsl
+++ b/doc/reference/html.xsl
@@ -32,6 +32,7 @@
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/reference/main.xml b/doc/reference/main.xml
index 07f9cd6..1ac8fe6 100644
--- a/doc/reference/main.xml
+++ b/doc/reference/main.xml
@@ -12,7 +12,7 @@
<book xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/reference/pdf.xsl b/doc/reference/pdf.xsl
index 652975f..33100d2 100644
--- a/doc/reference/pdf.xsl
+++ b/doc/reference/pdf.xsl
@@ -33,6 +33,7 @@
<xsl:include href="scons_title.xsl"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"></xsl:param>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="paper.type" select="'letter'"></xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param>
<xsl:param name="shade.verbatim" select="1"></xsl:param>
diff --git a/doc/reference/preface.xml b/doc/reference/preface.xml
index 426fe05..dd3d006 100644
--- a/doc/reference/preface.xml
+++ b/doc/reference/preface.xml
@@ -7,7 +7,7 @@
<chapter id="chap-preface"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Preface</title>
<!--
diff --git a/doc/reference/scons.css b/doc/reference/scons.css
index 6941abb..ff9b5a1 100644
--- a/doc/reference/scons.css
+++ b/doc/reference/scons.css
@@ -6,11 +6,11 @@ body {
}
-a {
+a:link {
color: #80572a;
}
-a:hover {
+a:link:hover {
color: #d72816;
text-decoration: none;
}
diff --git a/doc/user/actions.xml b/doc/user/actions.xml
index eab9c10..c980f9c 100644
--- a/doc/user/actions.xml
+++ b/doc/user/actions.xml
@@ -17,7 +17,7 @@
<chapter id="chap-actions"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>&SCons; Actions</title>
<!--
diff --git a/doc/user/add-method.xml b/doc/user/add-method.xml
index c50786c..495bc40 100644
--- a/doc/user/add-method.xml
+++ b/doc/user/add-method.xml
@@ -17,7 +17,7 @@
<chapter id="chap-add-method"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Pseudo-Builders: the AddMethod function</title>
<!--
diff --git a/doc/user/alias.xml b/doc/user/alias.xml
index 6325316..2fcdf4a 100644
--- a/doc/user/alias.xml
+++ b/doc/user/alias.xml
@@ -17,7 +17,7 @@
<chapter id="chap-alias"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Alias Targets</title>
<!--
diff --git a/doc/user/ant.xml b/doc/user/ant.xml
index e2b525a..e829d0e 100644
--- a/doc/user/ant.xml
+++ b/doc/user/ant.xml
@@ -17,7 +17,7 @@
<appendix id="app-ant"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Converting From Ant</title>
<!--
diff --git a/doc/user/build-install.xml b/doc/user/build-install.xml
index c6f8e6d..ca40b04 100644
--- a/doc/user/build-install.xml
+++ b/doc/user/build-install.xml
@@ -21,7 +21,7 @@
<chapter id="chap-build-install"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Building and Installing &SCons;</title>
<!--
diff --git a/doc/user/builders-built-in.xml b/doc/user/builders-built-in.xml
index 2fcf313..06e6253 100644
--- a/doc/user/builders-built-in.xml
+++ b/doc/user/builders-built-in.xml
@@ -17,7 +17,7 @@
<chapter id="chap-builders-built-in"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Built-In Builders</title>
<!--
diff --git a/doc/user/builders-commands.xml b/doc/user/builders-commands.xml
index d496ef1..5d378b3 100644
--- a/doc/user/builders-commands.xml
+++ b/doc/user/builders-commands.xml
@@ -17,7 +17,7 @@
<chapter id="chap-builders-commands"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Not Writing a Builder: the &Command; Builder</title>
<!--
diff --git a/doc/user/builders-writing.xml b/doc/user/builders-writing.xml
index e6e2aaf..f3713f2 100644
--- a/doc/user/builders-writing.xml
+++ b/doc/user/builders-writing.xml
@@ -17,7 +17,7 @@
<chapter id="chap-builders-writing"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Writing Your Own Builders</title>
<!--
diff --git a/doc/user/builders.xml b/doc/user/builders.xml
index c772458..9fd83d7 100644
--- a/doc/user/builders.xml
+++ b/doc/user/builders.xml
@@ -16,7 +16,7 @@
<appendix id="app-builders"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Builders</title>
<!--
diff --git a/doc/user/caching.xml b/doc/user/caching.xml
index 9c66c31..19ade49 100644
--- a/doc/user/caching.xml
+++ b/doc/user/caching.xml
@@ -17,7 +17,7 @@
<chapter id="chap-caching"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Caching Built Files</title>
<!--
diff --git a/doc/user/chtml.xsl b/doc/user/chtml.xsl
index e292c88..e855c31 100644
--- a/doc/user/chtml.xsl
+++ b/doc/user/chtml.xsl
@@ -33,6 +33,7 @@
<xsl:param name="base.dir" select="'scons-user/'"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/user/command-line.xml b/doc/user/command-line.xml
index f410b3e..85c2da0 100644
--- a/doc/user/command-line.xml
+++ b/doc/user/command-line.xml
@@ -17,7 +17,7 @@
<chapter id="chap-command-line"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Controlling a Build From the Command Line</title>
<!--
diff --git a/doc/user/copyright.xml b/doc/user/copyright.xml
index 87844cf..22deeaa 100644
--- a/doc/user/copyright.xml
+++ b/doc/user/copyright.xml
@@ -6,7 +6,7 @@
<legalnotice xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
diff --git a/doc/user/depends.xml b/doc/user/depends.xml
index a5639a1..f5f2270 100644
--- a/doc/user/depends.xml
+++ b/doc/user/depends.xml
@@ -17,7 +17,7 @@
<chapter id="chap-depends"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Dependencies</title>
<!--
diff --git a/doc/user/environments.xml b/doc/user/environments.xml
index b9585cb..66abdcc 100644
--- a/doc/user/environments.xml
+++ b/doc/user/environments.xml
@@ -17,7 +17,7 @@
<chapter id="chap-environments"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Environments</title>
<!--
diff --git a/doc/user/errors.xml b/doc/user/errors.xml
index ae9b102..a6a27de 100644
--- a/doc/user/errors.xml
+++ b/doc/user/errors.xml
@@ -17,7 +17,7 @@
<chapter id="chap-errors"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Errors</title>
<!--
diff --git a/doc/user/example.xml b/doc/user/example.xml
index 0af2bb2..a4e3b99 100644
--- a/doc/user/example.xml
+++ b/doc/user/example.xml
@@ -17,7 +17,7 @@
<appendix id="app-example"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Complex &SCons; Example</title>
<!--
diff --git a/doc/user/factories.xml b/doc/user/factories.xml
index 93283bb..08f20e6 100644
--- a/doc/user/factories.xml
+++ b/doc/user/factories.xml
@@ -17,7 +17,7 @@
<chapter id="chap-factories"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Platform-Independent File System Manipulation</title>
<!--
diff --git a/doc/user/file-removal.xml b/doc/user/file-removal.xml
index ebf7cc9..c6c695f 100644
--- a/doc/user/file-removal.xml
+++ b/doc/user/file-removal.xml
@@ -17,7 +17,7 @@
<chapter id="chap-file-removal"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Controlling Removal of Targets</title>
<!--
diff --git a/doc/user/functions.xml b/doc/user/functions.xml
index e855497..8044310 100644
--- a/doc/user/functions.xml
+++ b/doc/user/functions.xml
@@ -16,7 +16,7 @@
<appendix id="app-functions"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Functions and Environment Methods</title>
<!--
diff --git a/doc/user/gettext.xml b/doc/user/gettext.xml
index 4b1e9ea..331ec33 100644
--- a/doc/user/gettext.xml
+++ b/doc/user/gettext.xml
@@ -17,7 +17,7 @@
<chapter id="chap-gettext"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Internationalization and localization with gettext</title>
<!--
diff --git a/doc/user/hierarchy.xml b/doc/user/hierarchy.xml
index 9aaecc2..e5a8470 100644
--- a/doc/user/hierarchy.xml
+++ b/doc/user/hierarchy.xml
@@ -17,7 +17,7 @@
<chapter id="chap-hierarchical"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Hierarchical Builds</title>
<!--
diff --git a/doc/user/html.xsl b/doc/user/html.xsl
index c275c3d..17dc189 100644
--- a/doc/user/html.xsl
+++ b/doc/user/html.xsl
@@ -32,6 +32,7 @@
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="html.stylesheet" select="'scons.css'"/>
<xsl:param name="generate.toc">
/appendix toc,title
diff --git a/doc/user/install.xml b/doc/user/install.xml
index 159b886..8c224d4 100644
--- a/doc/user/install.xml
+++ b/doc/user/install.xml
@@ -17,7 +17,7 @@
<chapter id="chap-install"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Installing Files in Other Directories: the &Install; Builder</title>
<!--
diff --git a/doc/user/java.xml b/doc/user/java.xml
index 40a82a3..e3c55b1 100644
--- a/doc/user/java.xml
+++ b/doc/user/java.xml
@@ -16,7 +16,7 @@
<chapter id="chap-java"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Java Builds</title>
<!--
diff --git a/doc/user/less-simple.xml b/doc/user/less-simple.xml
index 41a1f3d..cca6033 100644
--- a/doc/user/less-simple.xml
+++ b/doc/user/less-simple.xml
@@ -16,7 +16,7 @@
<chapter id="chap-less-simple"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Less Simple Things to Do With Builds</title>
<!--
diff --git a/doc/user/libraries.xml b/doc/user/libraries.xml
index 63d4544..626e939 100644
--- a/doc/user/libraries.xml
+++ b/doc/user/libraries.xml
@@ -16,7 +16,7 @@
<chapter id="chap-libraries"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Building and Linking with Libraries</title>
<!--
diff --git a/doc/user/main.xml b/doc/user/main.xml
index 60dd8c9..ae515fa 100644
--- a/doc/user/main.xml
+++ b/doc/user/main.xml
@@ -62,7 +62,7 @@
<book xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<bookinfo>
<title>SCons &buildversion;</title>
<subtitle>User Guide</subtitle>
@@ -74,15 +74,15 @@
<corpauthor>Steven Knight</corpauthor>
- <pubdate>2004, 2005, 2006, 2007, 2008, 2009, 2010</pubdate>
+ <pubdate>2004 - 2014</pubdate>
<copyright>
- <year>2004, 2005, 2006, 2007, 2008, 2009, 2010</year>
- <holder>Steven Knight</holder>
+ <year>2004 - 2014</year>
+ <holder>The SCons Foundation</holder>
</copyright>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
-
+
<releaseinfo>version &buildversion;</releaseinfo>
<mediaobject role="cover"><imageobject><imagedata fileref="cover.jpg" format="JPG"/></imageobject></mediaobject>
@@ -96,7 +96,7 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="nodes.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="depends.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="environments.xml"/>
-
+
<chapter id="chap-manip-options">
<title>Automatically Putting Command-line Options into their Construction Variables</title>
<!-- TODO: This intro paragraph should describe at a high-level
diff --git a/doc/user/make.xml b/doc/user/make.xml
index 2aa05b0..7df8f6a 100644
--- a/doc/user/make.xml
+++ b/doc/user/make.xml
@@ -16,7 +16,7 @@
<appendix id="app-make"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Converting From Make</title>
<!--
diff --git a/doc/user/mergeflags.xml b/doc/user/mergeflags.xml
index 1143ee9..280eb82 100644
--- a/doc/user/mergeflags.xml
+++ b/doc/user/mergeflags.xml
@@ -16,7 +16,7 @@
<section id="sect-mergeflags"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Merging Options into the Environment: the &MergeFlags; Function</title>
<!--
diff --git a/doc/user/misc.xml b/doc/user/misc.xml
index d0aeb59..a71663f 100644
--- a/doc/user/misc.xml
+++ b/doc/user/misc.xml
@@ -16,7 +16,7 @@
<chapter id="chap-misc"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Miscellaneous Functionality</title>
<!--
diff --git a/doc/user/nodes.xml b/doc/user/nodes.xml
index 1c9b4fd..a04b6ad 100644
--- a/doc/user/nodes.xml
+++ b/doc/user/nodes.xml
@@ -16,7 +16,7 @@
<chapter id="chap-nodes"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Node Objects</title>
<!--
diff --git a/doc/user/output.xml b/doc/user/output.xml
index 069d525..cdb28d7 100644
--- a/doc/user/output.xml
+++ b/doc/user/output.xml
@@ -16,7 +16,7 @@
<chapter id="chap-output"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Controlling Build Output</title>
<!--
diff --git a/doc/user/parseconfig.xml b/doc/user/parseconfig.xml
index 6125812..1ddd42d 100644
--- a/doc/user/parseconfig.xml
+++ b/doc/user/parseconfig.xml
@@ -16,7 +16,7 @@
<section id="sect-parseconfig"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Finding Installed Library Information: the &ParseConfig; Function</title>
<!--
diff --git a/doc/user/parseflags.xml b/doc/user/parseflags.xml
index a3462a5..fa35d49 100644
--- a/doc/user/parseflags.xml
+++ b/doc/user/parseflags.xml
@@ -16,7 +16,7 @@
<section id="sect-parseflags"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Separating Compile Arguments into their Variables: the &ParseFlags; Function</title>
<!--
diff --git a/doc/user/pdf.xsl b/doc/user/pdf.xsl
index 9c54592..2c0d086 100644
--- a/doc/user/pdf.xsl
+++ b/doc/user/pdf.xsl
@@ -33,6 +33,7 @@
<xsl:include href="scons_title.xsl"/>
<xsl:param name="l10n.gentext.default.language" select="'en'"/>
<xsl:param name="section.autolabel" select="1"></xsl:param>
+<xsl:param name="section.label.includes.component.label" select="1"/>
<xsl:param name="paper.type" select="'letter'"></xsl:param>
<xsl:param name="body.start.indent">0pt</xsl:param>
<xsl:param name="shade.verbatim" select="1"></xsl:param>
diff --git a/doc/user/preface.xml b/doc/user/preface.xml
index a60feac..cf3637b 100644
--- a/doc/user/preface.xml
+++ b/doc/user/preface.xml
@@ -16,7 +16,7 @@
<preface id="chap-preface"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Preface</title>
<!--
diff --git a/doc/user/python.xml b/doc/user/python.xml
index 46103ce..cac61a1 100644
--- a/doc/user/python.xml
+++ b/doc/user/python.xml
@@ -17,7 +17,7 @@
<appendix id="app-python"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Python overview</title>
<!--
diff --git a/doc/user/repositories.xml b/doc/user/repositories.xml
index 4ff8b93..32a0b5b 100644
--- a/doc/user/repositories.xml
+++ b/doc/user/repositories.xml
@@ -16,7 +16,7 @@
<chapter id="chap-repositories"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Building From Code Repositories</title>
<!--
diff --git a/doc/user/run.xml b/doc/user/run.xml
index 1206d5e..3025afb 100644
--- a/doc/user/run.xml
+++ b/doc/user/run.xml
@@ -16,7 +16,7 @@
<chapter id="chap-run"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>How to Run &SCons;</title>
<!--
diff --git a/doc/user/scanners.xml b/doc/user/scanners.xml
index 758a849..14733db 100644
--- a/doc/user/scanners.xml
+++ b/doc/user/scanners.xml
@@ -16,7 +16,7 @@
<chapter id="chap-scanners"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Writing Scanners</title>
<!--
diff --git a/doc/user/sconf.xml b/doc/user/sconf.xml
index 31bd45e..ff39b6b 100644
--- a/doc/user/sconf.xml
+++ b/doc/user/sconf.xml
@@ -16,7 +16,7 @@
<chapter id="chap-sconf"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Multi-Platform Configuration (&Autoconf; Functionality)</title>
<!--
diff --git a/doc/user/scons.css b/doc/user/scons.css
index 6941abb..ff9b5a1 100644
--- a/doc/user/scons.css
+++ b/doc/user/scons.css
@@ -6,11 +6,11 @@ body {
}
-a {
+a:link {
color: #80572a;
}
-a:hover {
+a:link:hover {
color: #d72816;
text-decoration: none;
}
diff --git a/doc/user/separate.xml b/doc/user/separate.xml
index 0a2e0db..c276545 100644
--- a/doc/user/separate.xml
+++ b/doc/user/separate.xml
@@ -16,7 +16,7 @@
<chapter id="chap-separate"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Separating Source and Build Directories</title>
<!--
diff --git a/doc/user/sideeffect.xml b/doc/user/sideeffect.xml
index cf959af..ffbfde7 100644
--- a/doc/user/sideeffect.xml
+++ b/doc/user/sideeffect.xml
@@ -16,7 +16,7 @@
<chapter id="chap-sideeffect"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Sideeffect files</title>
<!--
diff --git a/doc/user/simple.xml b/doc/user/simple.xml
index 33b9e27..a015c91 100644
--- a/doc/user/simple.xml
+++ b/doc/user/simple.xml
@@ -16,7 +16,7 @@
<chapter id="chap-simple"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Simple Builds</title>
<!--
diff --git a/doc/user/sourcecode.xml b/doc/user/sourcecode.xml
index c6d645f..5905cc5 100644
--- a/doc/user/sourcecode.xml
+++ b/doc/user/sourcecode.xml
@@ -16,7 +16,7 @@
<chapter id="chap-sourcecode"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Fetching Files From Source Code Management Systems</title>
<!--
diff --git a/doc/user/tasks.xml b/doc/user/tasks.xml
index 4a58c00..0bdf678 100644
--- a/doc/user/tasks.xml
+++ b/doc/user/tasks.xml
@@ -16,7 +16,7 @@
<appendix id="app-tasks"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Handling Common Tasks</title>
<!--
diff --git a/doc/user/tools.xml b/doc/user/tools.xml
index 0b98eac..5aa88ea 100644
--- a/doc/user/tools.xml
+++ b/doc/user/tools.xml
@@ -16,7 +16,7 @@
<appendix id="app-tools"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Tools</title>
<!--
diff --git a/doc/user/troubleshoot.xml b/doc/user/troubleshoot.xml
index 65c9199..feac970 100644
--- a/doc/user/troubleshoot.xml
+++ b/doc/user/troubleshoot.xml
@@ -16,7 +16,7 @@
<chapter id="chap-troubleshooting"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Troubleshooting</title>
<!--
diff --git a/doc/user/variables.xml b/doc/user/variables.xml
index 935acc1..0677450 100644
--- a/doc/user/variables.xml
+++ b/doc/user/variables.xml
@@ -16,7 +16,7 @@
<appendix id="app-variables"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Construction Variables</title>
<!--
diff --git a/doc/user/variants.xml b/doc/user/variants.xml
index 74a155b..0c83b04 100644
--- a/doc/user/variants.xml
+++ b/doc/user/variants.xml
@@ -16,7 +16,7 @@
<chapter id="chap-variants"
xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<title>Variant Builds</title>
<!--
diff --git a/runtest.py b/runtest.py
index 2b7f7ce..b7cbdc6 100755
--- a/runtest.py
+++ b/runtest.py
@@ -4,26 +4,24 @@
#
# runtest.py - wrapper script for running SCons tests
#
-# This script mainly exists to set PYTHONPATH to the right list of
-# directories to test the SCons modules.
+# SCons test suite consists of:
#
-# By default, it directly uses the modules in the local tree:
-# ./src/ (source files we ship) and ./QMTest/ (other modules we don't).
+# - unit tests - included in *Tests.py files from src/ dir
+# - end-to-end tests - these are *.py files in test/ directory that
+# require custom SCons framework from QMTest/
#
-# When any -p option is specified, this script assumes it's in a
-# directory in which a build has been performed, and sets PYTHONPATH
-# so that it *only* references the modules that have unpacked from
-# the specified built package, to test whether the packages are good.
+# This script adds src/ and QMTest/ directories to PYTHONPATH,
+# performs test discovery and processes them according to options.
#
-# Options:
+# With -p (--package) option, script tests specified package from
+# build directory and sets PYTHONPATH to reference modules unpacked
+# during build process for testing purposes (build/test-*).
#
# -3 Run with the python -3 option,
#
-# -a Run all tests; does a virtual 'find' for
-# all SCons tests under the current directory.
-# You can also specify a list of subdirectories
-# (not available with the "--qmtest" option!). Then,
-# only the given folders are searched for test files.
+# -a Run all tests found under the current directory.
+# It is also possible to specify a list of
+# subdirectories to search.
#
# -d Debug. Runs the script under the Python
# debugger (pdb.py) so you don't have to
@@ -35,8 +33,6 @@
# -f file Only execute the tests listed in the specified
# file.
#
-# -h Print the help and exit.
-#
# -k Suppress printing of count and percent progress for
# the single tests.
#
@@ -115,7 +111,6 @@ print_passed_summary = None
python3incompatibilities = None
scons = None
scons_exec = None
-qmtest = None
testlistfile = None
version = ''
print_times = None
@@ -127,29 +122,30 @@ suppress_stderr = False
allow_pipe_files = True
quit_on_failure = False
-helpstr = """\
+usagestr = """\
Usage: runtest.py [OPTIONS] [TEST ...]
+ runtest.py -h|--help
+"""
+helpstr = usagestr + """\
Options:
-3 Warn about Python 3.x incompatibilities.
- -a, --all Run all tests.
- -b BASE, --baseline BASE Run test scripts against baseline BASE.
- --builddir DIR Directory in which packages were built.
- -d, --debug Run test scripts under the Python debugger.
- -e, --external Run the script in external mode (for testing separate Tools)
- -f FILE, --file FILE Run tests in specified FILE.
- -h, --help Print this message and exit.
- -k, --no-progress Suppress count and percent progress messages.
- -l, --list List available tests and exit.
- -n, --no-exec No execute, just print command lines.
- --nopipefiles Doesn't use the "file pipe" workaround for subprocess.Popen()
+ -a --all Run all tests.
+ -b --baseline BASE Run test scripts against baseline BASE.
+ --builddir DIR Directory in which packages were built.
+ -d --debug Run test scripts under the Python debugger.
+ -e --external Run the script in external mode (for testing separate Tools)
+ -f --file FILE Run tests in specified FILE.
+ -k --no-progress Suppress count and percent progress messages.
+ -l --list List available tests and exit.
+ -n --no-exec No execute, just print command lines.
+ --nopipefiles Doesn't use the "file pipe" workaround for subprocess.Popen()
for starting tests. WARNING: Only use this when too much file
traffic is giving you trouble AND you can be sure that none of
your tests create output that exceed 65K chars! You might
run into some deadlocks else.
- -o FILE, --output FILE Save the output from a test run to the log file.
- -P Python Use the specified Python interpreter.
- -p PACKAGE, --package PACKAGE
- Test against the specified PACKAGE:
+ -o --output FILE Save the output from a test run to the log file.
+ -P PYTHON Use the specified Python interpreter.
+ -p --package PACKAGE Test against the specified PACKAGE:
deb Debian
local-tar-gz .tar.gz standalone package
local-zip .zip standalone package
@@ -158,26 +154,26 @@ Options:
src-zip .zip source package
tar-gz .tar.gz distribution
zip .zip distribution
- --passed Summarize which tests passed.
- --qmtest Run using the QMTest harness (deprecated).
- -q, --quiet Don't print the test being executed.
- --quit-on-failure Quit on any test failure
- -s, --short-progress Short progress, prints only the command line
+ --passed Summarize which tests passed.
+ -q --quiet Don't print the test being executed.
+ --quit-on-failure Quit on any test failure
+ --runner CLASS Alternative test runner class for unit tests
+ -s --short-progress Short progress, prints only the command line
and a percentage value, based on the total and
current number of tests.
- -t, --time Print test execution time.
- -v version Specify the SCons version.
- --verbose=LEVEL Set verbose level: 1 = print executed commands,
+ -t --time Print test execution time.
+ -v VERSION Specify the SCons version.
+ --verbose=LEVEL Set verbose level: 1 = print executed commands,
2 = print commands and non-zero output,
3 = print commands and all output.
-X Test script is executable, don't feed to Python.
- -x SCRIPT, --exec SCRIPT Test SCRIPT.
- --xml file Save results to file in SCons XML format.
+ -x --exec SCRIPT Test SCRIPT.
+ --xml file Save results to file in SCons XML format.
Environment Variables:
PRESERVE, PRESERVE_{PASS,FAIL,NO_RESULT}: preserve test subdirs
- TESTCMD_VERBOSE: turn on verbosity in TestCommand
+ TESTCMD_VERBOSE: turn on verbosity in TestCommand\
"""
@@ -204,6 +200,8 @@ parser.add_option('-a', '--all', action='store_true',
help="Run all tests.")
parser.add_option('-o', '--output',
help="Save the output from a test run to the log file.")
+parser.add_option('--runner', metavar='class',
+ help="Test runner class for unit tests.")
parser.add_option('--xml',
help="Save results to file in SCons XML format.")
(options, args) = parser.parse_args()
@@ -217,7 +215,7 @@ opts, args = getopt.getopt(args, "3b:def:hj:klnP:p:qsv:Xx:t",
'debug', 'external', 'file=', 'help', 'no-progress',
'jobs=',
'list', 'no-exec', 'nopipefiles',
- 'package=', 'passed', 'python=', 'qmtest',
+ 'package=', 'passed', 'python=',
'quiet',
'quit-on-failure',
'short-progress', 'time',
@@ -264,12 +262,6 @@ for o, a in opts:
print_passed_summary = 1
elif o in ['-P', '--python']:
python = a
- elif o in ['--qmtest']:
- if sys.platform == 'win32':
- # typically in c:/PythonXX/Scripts
- qmtest = 'qmtest.py'
- else:
- qmtest = 'qmtest'
elif o in ['-q', '--quiet']:
printcommand = 0
suppress_stdout = True
@@ -291,15 +283,6 @@ for o, a in opts:
elif o in ['-x', '--exec']:
scons = a
-if not args and not options.all and not testlistfile:
- sys.stderr.write("""\
-runtest.py: No tests were specified.
- List one or more tests on the command line, use the
- -f option to specify a file containing a list of tests,
- or use the -a option to find and run all tests.
-
-""")
- sys.exit(1)
# --- setup stdout/stderr ---
@@ -573,15 +556,6 @@ else:
if not baseline or baseline == '.':
base = cwd
elif baseline == '-':
- # Tentative code for fetching information directly from the
- # QMTest context file.
- #
- #import qm.common
- #import qm.test.context
- #qm.rc.Load("test")
- #context = qm.test.context.Context()
- #context.Read('context')
-
url = None
svn_info = os.popen("svn info 2>&1", "r").read()
match = re.search('URL: (.*)', svn_info)
@@ -641,14 +615,17 @@ old_pythonpath = os.environ.get('PYTHONPATH')
# FIXME: the following is necessary to pull in half of the testing
# harness from $srcdir/etc. Those modules should be transfered
-# to QMTest/ once we completely cut over to using that as
-# the harness, in which case this manipulation of PYTHONPATH
+# to testing/, in which case this manipulation of PYTHONPATH
# should be able to go away.
pythonpaths = [ pythonpath_dir ]
# Add path of the QMTest folder to PYTHONPATH
+# [ ] move used parts from QMTest to testing/framework/
scriptpath = os.path.dirname(os.path.realpath(__file__))
pythonpaths.append(os.path.join(scriptpath, 'QMTest'))
+# Add path for testing framework to PYTHONPATH
+pythonpaths.append(os.path.join(scriptpath, 'testing', 'framework'))
+
os.environ['PYTHONPATH'] = os.pathsep.join(pythonpaths)
@@ -660,9 +637,16 @@ if old_pythonpath:
if python3incompatibilities:
os.environ['SCONS_HORRIBLE_REGRESSION_TEST_HACK'] = '1'
+
+# ---[ test discovery ]------------------------------------
+
tests = []
+unittests = []
+endtests = []
+
def find_Tests_py(directory):
+ """ Look for unit tests """
result = []
for dirpath, dirnames, filenames in os.walk(directory):
# Skip folders containing a sconstest.skip file
@@ -674,6 +658,7 @@ def find_Tests_py(directory):
return sorted(result)
def find_py(directory):
+ """ Look for end-to-end tests """
result = []
for dirpath, dirnames, filenames in os.walk(directory):
# Skip folders containing a sconstest.skip file
@@ -691,27 +676,20 @@ def find_py(directory):
result.append(os.path.join(dirpath, fname))
return sorted(result)
-if args:
- for a in args:
- for path in glob.glob(a):
- if os.path.isdir(path):
- if path[:3] == 'src':
- tests.extend(find_Tests_py(path))
- elif path[:4] == 'test':
- tests.extend(find_py(path))
- else:
- tests.append(path)
-elif testlistfile:
+if testlistfile:
tests = open(testlistfile, 'r').readlines()
tests = [x for x in tests if x[0] != '#']
tests = [x[:-1] for x in tests]
tests = [x.strip() for x in tests]
-elif options.all and not qmtest:
- # Find all of the SCons functional tests in the local directory
- # tree. This is anything under the 'src' subdirectory that ends
- # with 'Tests.py', or any Python script (*.py) under the 'test'
- # subdirectory.
+
+else:
+ testpaths = []
+
+ # Each test path specifies a test file, or a directory to search for
+ # SCons tests. SCons code layout assumes that any file under the 'src'
+ # subdirectory that ends with 'Tests.py' is a unit test, and Python
+ # script (*.py) under the 'test' subdirectory an end-to-end test.
#
# Note that there are some tests under 'src' that *begin* with
# 'test_', but they're packaging and installation tests, not
@@ -719,66 +697,41 @@ elif options.all and not qmtest:
# still be executed by hand, though, and are routinely executed
# by the Aegis packaging build to make sure that we're building
# things correctly.)
- tests.extend(find_Tests_py('src'))
- tests.extend(find_py('test'))
+
+ if options.all:
+ testpaths = ['src', 'test']
+ elif args:
+ testpaths = args
+
+ for tp in testpaths:
+ for path in glob.glob(tp):
+ if os.path.isdir(path):
+ if path.startswith('src'):
+ for p in find_Tests_py(path):
+ unittests.append(p)
+ elif path.startswith('test'):
+ for p in find_py(path):
+ endtests.append(p)
+ else:
+ if path.endswith("Tests.py"):
+ unittests.append(path)
+ else:
+ endtests.append(path)
+
+ tests.extend(unittests)
+ tests.extend(endtests)
tests.sort()
if not tests:
- sys.stderr.write("""\
+ sys.stderr.write(usagestr + """
runtest.py: No tests were found.
+ Tests can be specified on the command line, read from file
+ with -f option, or discovered with -a to run all tests.
""")
sys.exit(1)
-if qmtest:
- if baseline:
- aegis_result_stream = 'scons_tdb.AegisBaselineStream'
- qmr_file = 'baseline.qmr'
- else:
- aegis_result_stream = 'scons_tdb.AegisChangeStream'
- qmr_file = 'results.qmr'
-
- if print_times:
- aegis_result_stream = aegis_result_stream + "(print_time='1')"
-
- qmtest_args = [ qmtest, ]
-
- qmtest_args.extend([
- 'run',
- '--output %s' % qmr_file,
- '--format none',
- '--result-stream="%s"' % aegis_result_stream,
- ])
-
- if python:
- qmtest_args.append('--context python="%s"' % python)
- if options.xml:
- rsclass = 'scons_tdb.SConsXMLResultStream'
- qof = "r'" + options.xml + "'"
- rs = '--result-stream="%s(filename=%s)"' % (rsclass, qof)
- qmtest_args.append(rs)
-
- os.environ['SCONS'] = os.path.join(cwd, 'src', 'script', 'scons.py')
-
- cmd = ' '.join(qmtest_args + tests)
- if printcommand:
- sys.stdout.write(cmd + '\n')
- sys.stdout.flush()
- status = 0
- if execute_tests:
- status = os.system(cmd)
- try:
- wexitstatus = os.WEXITSTATUS
- except AttributeError:
- pass
- else:
- status = wexitstatus(status)
- sys.exit(status)
-
-#try:
-# os.chdir(scons_script_dir)
-#except OSError:
-# pass
+# ---[ test processing ]-----------------------------------
tests = [Test(t) for t in tests]
@@ -787,7 +740,6 @@ if list_only:
sys.stdout.write(t.path + "\n")
sys.exit(0)
-#
if not python:
if os.name == 'java':
python = os.path.join(sys.prefix, 'jython')
@@ -822,6 +774,9 @@ def run_test(t, io_lock, async=True):
if debug:
command_args.append(debug)
command_args.append(t.path)
+ if options.runner and t.path in unittests:
+ # For example --runner TestUnit.TAPTestRunner
+ command_args.append('--runner ' + options.runner)
t.command_args = [python] + command_args
t.command_str = " ".join([escape(python)] + command_args)
if printcommand:
diff --git a/src/Announce.txt b/src/Announce.txt
index 7bc62ab..cccf6c9 100644
--- a/src/Announce.txt
+++ b/src/Announce.txt
@@ -26,6 +26,25 @@ RELEASE 2.3.1.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
since last release. This announcement highlights only the important
changes.
+ Please note the following important changes since release 2.3.0:
+
+ -- Fix failure to relink when LINKCOM or libs change, introduced in
+ 2.3.0.
+
+ -- Fix MSVC defaulting TARGET_ARCH to HOST_ARCH and other MSVC
+ issues.
+
+ -- Reduced memory consumption in large builds, which should speed
+ them up as well.
+
+ -- Add new cyglink linker for use with cygwin.
+
+ -- Fix leaking file handles to subprocesses
+
+ -- Support read-only cache (--cache-readonly)
+
+ -- Add Pseudo command to mark targets that shouldn't exist after building
+
Please note the following important changes since release 2.2.0:
-- SUPPORT FOR PYTHON VERSIONS BEFORE 2.7 IS NOW DEPRECATED
@@ -1072,20 +1091,9 @@ RELEASE 2.3.1.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
Thank you for your interest, and please let us know how we can help
improve SCons for your needs.
-Steven Knight
-knight at baldmt dot com
-http://www.baldmt.com/~knight/
-
-With plenty of help from the SCons Development team:
- Chad Austin
- Charles Crain
- Bill Deegan
- Steve Leblanc
- Greg Noel
- Gary Oberbrunner
- Anthony Roach
- Greg Spencer
- Christoph Wiedemann
+-- The SCons Development Team
+ Gary Oberbrunner and Bill Deegan, maintainers
+ Thanks to all the contributors for all your help!
__COPYRIGHT__
__FILE__ __REVISION__ __DATE__ __DEVELOPER__
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 978c82c..73b8f0c 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -4,7 +4,39 @@
Change Log
-RELEASE 2.3.1.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
+RELEASE 2.3.2.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
+
+ From Russel Winder:
+ - Revamp of the D language support. Tools for DMD, GDC and LDC provided
+ and integrated with the C and C++ linking. NB This is only tested with
+ D v2, D v1 is now deprecated.
+
+ From Paweł Tomulik:
+ - Fix SConf tests that write output
+
+ From Gary Oberbrunner:
+ - get default RPM architecture more robustly when building RPMs
+
+ From Shane Gannon:
+ - Support for Visual Studio 2013 (12.0)
+
+ From Sye van der Veen:
+ - Support for Visual Studio 12.0Exp, and fixes for earlier MSVS
+ versions.
+
+ From Anatoly Techtonik:
+ - Several improvements for running scons.py from source:
+ * engine files form source directory take priority over all other
+ importable versions
+ * message about scons.py running from source is removed to fix tests
+ that were failing because of this extra line in the output
+ * error message when SCons import fails now lists lookup paths
+ - Remove support for QMTest harness from runtest.py
+
+ From Dirk Baechle:
+ - Update XML doc editor configuration
+
+RELEASE 2.3.1
From Andrew Featherstone:
- Added support for EPUB output format to the DocBook tool.
@@ -49,13 +81,17 @@ RELEASE 2.3.1.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
- Added release_target_info() to File nodes, which helps to
reduce memory consumption in clean builds and update runs
of large projects.
+ - Fixed the handling of long options in the command-line
+ parsing (#2929).
+ - Fixed misspelled variable in intelc.py (#2928).
From Gary Oberbrunner:
- Test harness: fail_test() can now print a message to help debugging.
From Anatoly Techtonik:
- - require rpmbuild when building SCons package.
- - print full stack on certain errors, for debugging.
+ - Require rpmbuild when building SCons package.
+ - Print full stack on certain errors, for debugging.
+ - Improve documentation for Textfile builder.
From William Deegan:
- VS2012 & VS2010 Resolve initialization issues by adding path to reg.exe
diff --git a/src/RELEASE.txt b/src/RELEASE.txt
index db886fa..63445c2 100644
--- a/src/RELEASE.txt
+++ b/src/RELEASE.txt
@@ -1,47 +1,65 @@
- A new SCons release, 2.3.0, is now available
+ A new SCons release, 2.3.1, is now available
on the SCons download page:
http://www.scons.org/download.php
- This release adds several new features and fixes many issues.
+ This release adds several new features and fixes many issues,
+ including a serious regression in linking (failure to re-link if
+ linker options are changed).
- Here is a summary of the changes since 2.2:
+ Here is a summary of the changes since 2.3.0:
NEW FUNCTIONALITY
- - Versioned shared library support for Linux and Mac:
- Add SHLIBVERSION as an option that tells SharedLibrary to build
- a versioned shared library and create the required symlinks.
- Add builder InstallVersionedLib to create the required symlinks
- installing a versioned shared library.
+ - Add Pseudo command to mark targets which should not exist after
+ they are built.
+ - Add support for a readonly cache (--cache-readonly)
+ - Added cyglink linker that uses Cygwin naming conventions for
+ shared libraries and automatically generates import libraries.
+ - Added optional ZIPROOT to Zip tool.
DEPRECATED FUNCTIONALITY
- - Removed a lot of Python 2.3 and older support code
- - Hide deprecated --debug={dtree,stree,tree} from --help output
+ -
CHANGED/ENHANCED EXISTING FUNCTIONALITY
- - No changes
+ - DocBook tool can now output EPUB format
+ - Allow multiple options to be specified with --debug=a,b,c
+ - Update bootstrap.py so it can be used from any dir, to run
+ SCons from a source (non-installed) dir.
+ - Added release_target_info() to File nodes, which helps to
+ reduce memory consumption in clean builds and update runs
+ of large projects.
+ - Print full stack on certain errors, for debugging.
+ - Improve documentation for Textfile builder.
FIXES
- - Fix subprocess spawning on Windows. Work around a Windows
- bug that can crash python occasionally when using -jN. (#2449)
- - Fix nested LIBPATH expansion by flattening sequences in subst_path.
- - Fix WiX Tool to use .wixobj rather than .wxiobj for compiler output
- - Add MSVC10 and MSVC11 support to get_output low-level bat script runner.
- - Fix MSVS solution generation for VS11, and fixed tests.
-
- IMPROVEMENTS
-
- - Error messages from option parser now include hints about valid choices
- - Support building with WiX releases after 2.0
- - Print target name with command execution time with --debug=time
- - Updated the TeX builder to support the \newglossary command
- in LaTeX's glossaries package and the files it creates.
- - Improve support for new versions of biblatex in the TeX builder
- so biber is called automatically if biblatex requires it.
+ - Stop leaking file handles to subprocesses by switching to using subprocess
+ always.
+ - Generally try harder to print out a message on build errors
+ - Added a switch to warn on missing targets
+ - Always print stats if requested
+ - Check for 8.3 filenames on cygwin as well as win32 to make variant_dir work properly.
+ - Make sure SharedLibrary depends on all dependent libs (by depending on SHLINKCOM)
+ - Fixed the setup of linker flags for a versioned SharedLibrary
+ under OpenBSD (#2916).
+ - Improve error if Visual Studio bat file not found.
+ - Allow Subst.Literal string objects to be compared with each other,
+ so they work better in AddUnique() and Remove().
+ - Fixed the handling of long options in the command-line
+ parsing (#2929).
+ - Fixed misspelled variable in intelc.py (#2928).
+ - VS2012 & VS2010: Resolve initialization issues by adding path to reg.exe
+ in shell used to run batch files.
+ - MSVC Support: fixed defaulting TARGET_ARCH to HOST_ARCH. It should be
+ None if not explicitly set.
+ - MSVC: Fixed issue where if more than one Architectures compilers are
+ detected, it would take the last one found, and not the first.
+ - Fixed spelling errors in MAN pages (#2897).
+ - Fixed description of ignore_case for EnumVariable in the
+ MAN page (#2774).
PACKAGING
@@ -49,47 +67,57 @@
DEVELOPMENT
- - Updated test framework to support dir and file fixtures and
- added ability to test external (out-of-tree) tools.
- See doc in QMTest/test-framework.rst.
- - Added ability to run scripts/scons.py directly from source checkout
- - Several fixes for runtest.py
- - Fixed several errors in the test suite.
- - Add -jN support to runtest.py to run tests in parallel
-
+ - Count statistics of instances are now collected only when
+ the --debug=count command-line option is used (#2922).
+ - Test harness: fail_test() can now print a message to help debugging.
+ - Require rpmbuild when building SCons package.
+ - Replaced old SGML-based documentation toolchain with a more modern
+ approach, that also requires less external dependencies (programs and
+ Python packages). Added a customized Docbook XSD for strict validation of
+ all input XML files.
Thanks to:
Dirk Baechle,
Vincent Beffar,
Thomas Berg,
+ Antonio Cavallo,
Jean-François Colson,
Bauke Conijn,
Bill Deegan,
Ken Deeter,
dubcanada on Bitbucket,
Luca Falavigna,
+ Andrew Featherstone,
+ Alexandre Feblot,
Alexander Goomenyuk,
Justin Gullingsrud,
Joshua Hughes,
Alexey Klimkin,
Steven Knight,
Arve Knudsen,
+ Philipp Kraus,
Jean-Baptiste Lab,
Juan Lang,
Rob Managan,
+ Michael McDougall,
Mortoray,
+ Manuel Francisco Naranjo,
Gary Oberbrunner,
Alexey Petruchik,
Evgeny Podjachev,
+ David Rothenberger,
smallbub on Bitbucket,
Sohail Somani,
+ Stefan Sperling,
+ Tom Tanner,
Anatoly Techtonik,
+ Bogdan Tenea,
Paweł Tomulik,
Greg Ward,
Allen Weeks,
Russel Winder,
Joe Zuntz
- for their contributions to this release.
+ for their contributions to this and prior releases.
__COPYRIGHT__
__FILE__ __REVISION__ __DATE__ __DEVELOPER__
diff --git a/src/engine/MANIFEST.in b/src/engine/MANIFEST.in
index 0afda50..f62d16e 100644
--- a/src/engine/MANIFEST.in
+++ b/src/engine/MANIFEST.in
@@ -65,6 +65,7 @@ SCons/Tool/cc.py
SCons/Tool/cyglink.py
SCons/Tool/cvf.py
SCons/Tool/CVS.py
+SCons/Tool/DCommon.py
SCons/Tool/default.py
SCons/Tool/dmd.py
SCons/Tool/docbook/__init__.py
@@ -82,6 +83,7 @@ SCons/Tool/g++.py
SCons/Tool/g77.py
SCons/Tool/gas.py
SCons/Tool/gcc.py
+SCons/Tool/gdc.py
SCons/Tool/gfortran.py
SCons/Tool/gnulink.py
SCons/Tool/gs.py
@@ -102,6 +104,7 @@ SCons/Tool/JavaCommon.py
SCons/Tool/javac.py
SCons/Tool/javah.py
SCons/Tool/latex.py
+SCons/Tool/ldc.py
SCons/Tool/lex.py
SCons/Tool/link.py
SCons/Tool/linkloc.py
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py
index a6dbb7c..33d8790 100644
--- a/src/engine/SCons/Action.py
+++ b/src/engine/SCons/Action.py
@@ -679,7 +679,7 @@ def _subproc(scons_env, cmd, error = 'ignore', **kw):
# return a dummy Popen instance that only returns error
class dummyPopen(object):
def __init__(self, e): self.exception = e
- def communicate(self): return ('','')
+ def communicate(self,input=None): return ('','')
def wait(self): return -self.exception.errno
stdin = None
class f(object):
diff --git a/src/engine/SCons/Action.xml b/src/engine/SCons/Action.xml
index 690d12e..ab42958 100644
--- a/src/engine/SCons/Action.xml
+++ b/src/engine/SCons/Action.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name="IMPLICIT_COMMAND_DEPENDENCIES">
<summary>
@@ -143,4 +143,4 @@ in which the command should be executed.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index 13c3b6c..809e5ce 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -49,6 +49,7 @@ import SCons.Environment
import SCons.Errors
import TestCmd
+import TestUnit
# Initial setup of the common environment for all tests,
# a temporary working directory containing a
@@ -185,9 +186,8 @@ class DummyNode(object):
if os.name == 'java':
python = os.path.join(sys.prefix, 'jython')
else:
- python = sys.executable
-
-_python_ = '"' + python + '"'
+ python = os.environ.get('python_executable', sys.executable)
+_python_ = test.escape(python)
_null = SCons.Action._null
@@ -2109,8 +2109,8 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/BuilderTests.py b/src/engine/SCons/BuilderTests.py
index 766b8fe..70a7a3f 100644
--- a/src/engine/SCons/BuilderTests.py
+++ b/src/engine/SCons/BuilderTests.py
@@ -40,6 +40,7 @@ import sys
import unittest
import TestCmd
+import TestUnit
import SCons.Action
import SCons.Builder
@@ -1632,8 +1633,8 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/CacheDirTests.py b/src/engine/SCons/CacheDirTests.py
index 21b435a..7ac97ef 100644
--- a/src/engine/SCons/CacheDirTests.py
+++ b/src/engine/SCons/CacheDirTests.py
@@ -29,6 +29,7 @@ import sys
import unittest
from TestCmd import TestCmd
+import TestUnit
import SCons.CacheDir
@@ -287,8 +288,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Conftest.py b/src/engine/SCons/Conftest.py
index d466278..e9702ff 100644
--- a/src/engine/SCons/Conftest.py
+++ b/src/engine/SCons/Conftest.py
@@ -156,7 +156,7 @@ def CheckCC(context):
too, so that it can test against non working flags.
"""
- context.Display("Checking whether the C compiler works")
+ context.Display("Checking whether the C compiler works... ")
text = """
int main()
{
@@ -176,7 +176,7 @@ def CheckSHCC(context):
too, so that it can test against non working flags.
"""
- context.Display("Checking whether the (shared) C compiler works")
+ context.Display("Checking whether the (shared) C compiler works... ")
text = """
int foo()
{
@@ -196,7 +196,7 @@ def CheckCXX(context):
too, so that it can test against non working flags.
"""
- context.Display("Checking whether the C++ compiler works")
+ context.Display("Checking whether the C++ compiler works... ")
text = """
int main()
{
@@ -216,7 +216,7 @@ def CheckSHCXX(context):
too, so that it can test against non working flags.
"""
- context.Display("Checking whether the (shared) C++ compiler works")
+ context.Display("Checking whether the (shared) C++ compiler works... ")
text = """
int main()
{
diff --git a/src/engine/SCons/Defaults.py b/src/engine/SCons/Defaults.py
index a99bcc7..563e5a8 100644
--- a/src/engine/SCons/Defaults.py
+++ b/src/engine/SCons/Defaults.py
@@ -144,6 +144,9 @@ ShCAction = SCons.Action.Action("$SHCCCOM", "$SHCCCOMSTR")
CXXAction = SCons.Action.Action("$CXXCOM", "$CXXCOMSTR")
ShCXXAction = SCons.Action.Action("$SHCXXCOM", "$SHCXXCOMSTR")
+DAction = SCons.Action.Action("$DCOM", "$DCOMSTR")
+ShDAction = SCons.Action.Action("$SHDCOM", "$SHDCOMSTR")
+
ASAction = SCons.Action.Action("$ASCOM", "$ASCOMSTR")
ASPPAction = SCons.Action.Action("$ASPPCOM", "$ASPPCOMSTR")
@@ -321,7 +324,7 @@ def _stripixes(prefix, itms, suffix, stripprefixes, stripsuffixes, env, c=None):
where it finds them. This is used by tools (like the GNU linker)
that need to turn something like 'libfoo.a' into '-lfoo'.
"""
-
+
if not itms:
return itms
@@ -335,7 +338,7 @@ def _stripixes(prefix, itms, suffix, stripprefixes, stripsuffixes, env, c=None):
c = env_c
else:
c = _concat_ixes
-
+
stripprefixes = list(map(env.subst, SCons.Util.flatten(stripprefixes)))
stripsuffixes = list(map(env.subst, SCons.Util.flatten(stripsuffixes)))
@@ -413,7 +416,7 @@ def _defines(prefix, defs, suffix, env, c=_concat_ixes):
"""
return c(prefix, env.subst_path(processDefines(defs)), suffix, env)
-
+
class NullCmdGenerator(object):
"""This is a callable class that can be used in place of other
command generators if you don't want them to do anything.
@@ -449,7 +452,7 @@ class Variable_Method_Caller(object):
self.method = method
def __call__(self, *args, **kw):
try: 1//0
- except ZeroDivisionError:
+ except ZeroDivisionError:
# Don't start iterating with the current stack-frame to
# prevent creating reference cycles (f_back is safe).
frame = sys.exc_info()[2].tb_frame.f_back
diff --git a/src/engine/SCons/Defaults.xml b/src/engine/SCons/Defaults.xml
index c0a5ffb..23a68dc 100644
--- a/src/engine/SCons/Defaults.xml
+++ b/src/engine/SCons/Defaults.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name ="_concat">
<summary>
@@ -583,4 +583,4 @@ from source code management systems.
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/DefaultsTests.py b/src/engine/SCons/DefaultsTests.py
index fd10c12..8b9fb4e 100644
--- a/src/engine/SCons/DefaultsTests.py
+++ b/src/engine/SCons/DefaultsTests.py
@@ -32,6 +32,7 @@ import unittest
from collections import UserDict
import TestCmd
+import TestUnit
import SCons.Errors
@@ -82,8 +83,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Environment.xml b/src/engine/SCons/Environment.xml
index fc9a312..b3b132e 100644
--- a/src/engine/SCons/Environment.xml
+++ b/src/engine/SCons/Environment.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!-- Construction variables -->
@@ -3624,4 +3624,4 @@ list, if any.
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py
index 7fa8af4..5235342 100644
--- a/src/engine/SCons/EnvironmentTests.py
+++ b/src/engine/SCons/EnvironmentTests.py
@@ -29,10 +29,12 @@ import copy
import io
import os
import sys
-import TestCmd
import unittest
from collections import UserDict as UD, UserList as UL
+import TestCmd
+import TestUnit
+
from SCons.Environment import *
import SCons.Warnings
@@ -3999,8 +4001,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/ErrorsTests.py b/src/engine/SCons/ErrorsTests.py
index 9c8b925..d57faa5 100644
--- a/src/engine/SCons/ErrorsTests.py
+++ b/src/engine/SCons/ErrorsTests.py
@@ -25,6 +25,9 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+
+import TestUnit
+
import SCons.Errors
@@ -99,8 +102,7 @@ class ErrorsTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(ErrorsTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/ExecutorTests.py b/src/engine/SCons/ExecutorTests.py
index 6268984..9df0b2d 100644
--- a/src/engine/SCons/ExecutorTests.py
+++ b/src/engine/SCons/ExecutorTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Executor
@@ -455,8 +457,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/JobTests.py b/src/engine/SCons/JobTests.py
index e92bdbe..dd2c7aa 100644
--- a/src/engine/SCons/JobTests.py
+++ b/src/engine/SCons/JobTests.py
@@ -25,10 +25,14 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import unittest
import random
import math
-import SCons.Job
import sys
import time
+import TestUnit
+
+import SCons.Job
+
+
# a large number
num_sines = 10000
@@ -521,8 +525,8 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
+ runner = TestUnit.cli.get_runner()
+ result = runner().run(suite())
if (len(result.failures) == 0
and len(result.errors) == 1
and isinstance(result.errors[0][0], SerialTestCase)
diff --git a/src/engine/SCons/MemoizeTests.py b/src/engine/SCons/MemoizeTests.py
index 9876c27..3606d57 100644
--- a/src/engine/SCons/MemoizeTests.py
+++ b/src/engine/SCons/MemoizeTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Memoize
@@ -180,8 +182,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Node/AliasTests.py b/src/engine/SCons/Node/AliasTests.py
index b0efea7..2d11bdf 100644
--- a/src/engine/SCons/Node/AliasTests.py
+++ b/src/engine/SCons/Node/AliasTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Node.Alias
@@ -120,8 +122,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index aaa5b47..219718c 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -2779,7 +2779,7 @@ class File(Base):
if not hasattr(self.attributes, 'keep_targetinfo'):
# Cache some required values, before releasing
# stuff like env, executor and builder...
- self.changed()
+ self.changed(allowcache=True)
self.get_contents_sig()
self.get_build_env()
# Now purge unneeded stuff to free memory...
@@ -3023,7 +3023,8 @@ class File(Base):
SCons.Node.Node.built(self)
- if not hasattr(self.attributes, 'keep_targetinfo'):
+ if (not SCons.Node.interactive and
+ not hasattr(self.attributes, 'keep_targetinfo')):
# Ensure that the build infos get computed and cached...
self.store_info()
# ... then release some more variables.
@@ -3034,7 +3035,7 @@ class File(Base):
self.scanner_paths = None
- def changed(self, node=None):
+ def changed(self, node=None, allowcache=False):
"""
Returns if the node is up-to-date with respect to the BuildInfo
stored last time it was built.
@@ -3042,6 +3043,8 @@ class File(Base):
For File nodes this is basically a wrapper around Node.changed(),
but we allow the return value to get cached after the reference
to the Executor got released in release_target_info().
+
+ @see: Node.changed()
"""
if node is None:
try:
@@ -3050,7 +3053,8 @@ class File(Base):
pass
has_changed = SCons.Node.Node.changed(self, node)
- self._memo['changed'] = has_changed
+ if allowcache:
+ self._memo['changed'] = has_changed
return has_changed
def changed_content(self, target, prev_ni):
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index a60b8a4..c4dc2ce 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -31,10 +31,12 @@ import os.path
import sys
import time
import unittest
-from TestCmd import TestCmd
import shutil
import stat
+from TestCmd import TestCmd
+import TestUnit
+
import SCons.Errors
import SCons.Node.FS
import SCons.Util
@@ -3755,8 +3757,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index 076ca65..da502b0 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -30,6 +30,8 @@ import re
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Node
import SCons.Util
@@ -1311,8 +1313,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Node/PythonTests.py b/src/engine/SCons/Node/PythonTests.py
index 8b08c52..fcdfe77 100644
--- a/src/engine/SCons/Node/PythonTests.py
+++ b/src/engine/SCons/Node/PythonTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Node.Python
@@ -120,8 +122,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index d6dbf2e..1f62971 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -1049,7 +1049,7 @@ class Node(object):
def Decider(self, function):
SCons.Util.AddMethod(self, function, 'changed_since_last_build')
- def changed(self, node=None):
+ def changed(self, node=None, allowcache=False):
"""
Returns if the node is up-to-date with respect to the BuildInfo
stored last time it was built. The default behavior is to compare
@@ -1062,6 +1062,15 @@ class Node(object):
any difference, but we now rely on checking every dependency
to make sure that any necessary Node information (for example,
the content signature of an #included .h file) is updated.
+
+ The allowcache option was added for supporting the early
+ release of the executor/builder structures, right after
+ a File target was built. When set to true, the return
+ value of this changed method gets cached for File nodes.
+ Like this, the executor isn't needed any longer for subsequent
+ calls to changed().
+
+ @see: FS.File.changed(), FS.File.release_target_info()
"""
t = 0
if t: Trace('changed(%s [%s], %s)' % (self, classname(self), node))
diff --git a/src/engine/SCons/PathListTests.py b/src/engine/SCons/PathListTests.py
index e83fc50..b5989bb 100644
--- a/src/engine/SCons/PathListTests.py
+++ b/src/engine/SCons/PathListTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.PathList
@@ -196,8 +198,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Platform/PlatformTests.py b/src/engine/SCons/Platform/PlatformTests.py
index 6841272..515382a 100644
--- a/src/engine/SCons/Platform/PlatformTests.py
+++ b/src/engine/SCons/Platform/PlatformTests.py
@@ -29,6 +29,8 @@ import collections
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Platform
@@ -118,8 +120,7 @@ class PlatformTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(PlatformTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Platform/__init__.xml b/src/engine/SCons/Platform/__init__.xml
index d95d11d..0802369 100644
--- a/src/engine/SCons/Platform/__init__.xml
+++ b/src/engine/SCons/Platform/__init__.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name="ESCAPE">
<summary>
@@ -241,4 +241,4 @@ or '-via' for ARM toolchain.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Platform/posix.xml b/src/engine/SCons/Platform/posix.xml
index 8bdaa5d..e96dd63 100644
--- a/src/engine/SCons/Platform/posix.xml
+++ b/src/engine/SCons/Platform/posix.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name="RPATH">
<summary>
@@ -77,4 +77,4 @@ when the &cv-_RPATH; variable is automatically generated.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Platform/sunos.xml b/src/engine/SCons/Platform/sunos.xml
index 7b2f25f..4921f4c 100644
--- a/src/engine/SCons/Platform/sunos.xml
+++ b/src/engine/SCons/Platform/sunos.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name="PKGCHK">
@@ -52,4 +52,4 @@ The default is
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Platform/win32.xml b/src/engine/SCons/Platform/win32.xml
index 472797b..ca6dc4d 100644
--- a/src/engine/SCons/Platform/win32.xml
+++ b/src/engine/SCons/Platform/win32.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<cvar name="MAXLINELENGTH">
<summary>
@@ -34,4 +34,4 @@ are linked via a temporary file name.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py
index 7a8a0c2..068af3a 100644
--- a/src/engine/SCons/SConf.py
+++ b/src/engine/SCons/SConf.py
@@ -180,7 +180,13 @@ class Streamer(object):
def write(self, str):
if self.orig:
self.orig.write(str)
- self.s.write(str)
+ try:
+ self.s.write(str)
+ except TypeError as e:
+ if e.message.startswith('unicode argument expected'):
+ self.s.write(str.decode())
+ else:
+ raise
def writelines(self, lines):
for l in lines:
diff --git a/src/engine/SCons/SConfTests.py b/src/engine/SCons/SConfTests.py
index 1cfb05b..1c4b401 100644
--- a/src/engine/SCons/SConfTests.py
+++ b/src/engine/SCons/SConfTests.py
@@ -33,6 +33,8 @@ from types import *
import unittest
import TestCmd
+import TestUnit
+
sys.stdout = io.StringIO()
@@ -752,9 +754,7 @@ int main() {
if __name__ == "__main__":
suite = unittest.makeSuite(SConfTestCase, 'test_')
- res = unittest.TextTestRunner().run(suite)
- if not res.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/SConsignTests.py b/src/engine/SCons/SConsignTests.py
index ec063c2..f71e53e 100644
--- a/src/engine/SCons/SConsignTests.py
+++ b/src/engine/SCons/SConsignTests.py
@@ -25,9 +25,11 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
import sys
-import TestCmd
import unittest
+import TestCmd
+import TestUnit
+
import SCons.dblite
import SCons.SConsign
@@ -387,8 +389,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/CTests.py b/src/engine/SCons/Scanner/CTests.py
index 5523f10..6418754 100644
--- a/src/engine/SCons/Scanner/CTests.py
+++ b/src/engine/SCons/Scanner/CTests.py
@@ -28,9 +28,11 @@ import SCons.compat
import collections
import os
import sys
-import TestCmd
import unittest
+import TestCmd
+import TestUnit
+
import SCons.Node.FS
import SCons.Warnings
@@ -457,10 +459,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/DirTests.py b/src/engine/SCons/Scanner/DirTests.py
index 968d5d3..9701921 100644
--- a/src/engine/SCons/Scanner/DirTests.py
+++ b/src/engine/SCons/Scanner/DirTests.py
@@ -28,6 +28,8 @@ import sys
import unittest
import TestCmd
+import TestUnit
+
import SCons.Node.FS
import SCons.Scanner.Dir
@@ -126,10 +128,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/FortranTests.py b/src/engine/SCons/Scanner/FortranTests.py
index 3388ffc..252da64 100644
--- a/src/engine/SCons/Scanner/FortranTests.py
+++ b/src/engine/SCons/Scanner/FortranTests.py
@@ -33,6 +33,7 @@ import SCons.Node.FS
import SCons.Warnings
import TestCmd
+import TestUnit
original = os.getcwd()
@@ -531,10 +532,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/IDLTests.py b/src/engine/SCons/Scanner/IDLTests.py
index c696722..675c70c 100644
--- a/src/engine/SCons/Scanner/IDLTests.py
+++ b/src/engine/SCons/Scanner/IDLTests.py
@@ -23,12 +23,15 @@
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import TestCmd
-import SCons.Scanner.IDL
import unittest
import sys
import os
import os.path
+
+import TestCmd
+import TestUnit
+
+import SCons.Scanner.IDL
import SCons.Node.FS
import SCons.Warnings
@@ -441,10 +444,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/LaTeXTests.py b/src/engine/SCons/Scanner/LaTeXTests.py
index 8cea63f..49553cf 100644
--- a/src/engine/SCons/Scanner/LaTeXTests.py
+++ b/src/engine/SCons/Scanner/LaTeXTests.py
@@ -31,6 +31,8 @@ import sys
import unittest
import TestCmd
+import TestUnit
+
import SCons.Node.FS
import SCons.Scanner.LaTeX
@@ -150,10 +152,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/ProgTests.py b/src/engine/SCons/Scanner/ProgTests.py
index 411e035..144addb 100644
--- a/src/engine/SCons/Scanner/ProgTests.py
+++ b/src/engine/SCons/Scanner/ProgTests.py
@@ -28,6 +28,8 @@ import sys
import unittest
import TestCmd
+import TestUnit
+
import SCons.Node.FS
import SCons.Scanner.Prog
@@ -249,10 +251,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/RCTests.py b/src/engine/SCons/Scanner/RCTests.py
index 8802885..2864026 100644
--- a/src/engine/SCons/Scanner/RCTests.py
+++ b/src/engine/SCons/Scanner/RCTests.py
@@ -23,12 +23,15 @@
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import TestCmd
-import SCons.Scanner.RC
import unittest
import sys
import collections
import os
+
+import TestCmd
+import TestUnit
+
+import SCons.Scanner.RC
import SCons.Node.FS
import SCons.Warnings
@@ -164,10 +167,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py
index ee26922..2496534 100644
--- a/src/engine/SCons/Scanner/ScannerTests.py
+++ b/src/engine/SCons/Scanner/ScannerTests.py
@@ -28,6 +28,8 @@ import collections
import sys
import unittest
+import TestUnit
+
import SCons.Scanner
class DummyFS(object):
@@ -593,10 +595,7 @@ def suite():
return suite
if __name__ == "__main__":
- runner = unittest.TextTestRunner()
- result = runner.run(suite())
- if not result.wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite())
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Scanner/__init__.xml b/src/engine/SCons/Scanner/__init__.xml
index 10246c4..470e045 100644
--- a/src/engine/SCons/Scanner/__init__.xml
+++ b/src/engine/SCons/Scanner/__init__.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<scons_function name="FindPathDirs">
@@ -88,4 +88,4 @@ scanner = Scanner(name = 'myscanner',
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Script/Main.xml b/src/engine/SCons/Script/Main.xml
index 147e778..07dce9a 100644
--- a/src/engine/SCons/Script/Main.xml
+++ b/src/engine/SCons/Script/Main.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<scons_function name="AddOption">
diff --git a/src/engine/SCons/Script/MainTests.py b/src/engine/SCons/Script/MainTests.py
index c44c426..fd6aaf4 100644
--- a/src/engine/SCons/Script/MainTests.py
+++ b/src/engine/SCons/Script/MainTests.py
@@ -24,6 +24,9 @@
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import unittest
+
+import TestUnit
+
import SCons.Errors
import SCons.Script.Main
@@ -43,8 +46,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Script/SConsOptions.py b/src/engine/SCons/Script/SConsOptions.py
index 62033ba..d7262a9 100644
--- a/src/engine/SCons/Script/SConsOptions.py
+++ b/src/engine/SCons/Script/SConsOptions.py
@@ -337,6 +337,71 @@ class SConsOptionParser(optparse.OptionParser):
option.process(opt, value, values, self)
+ def reparse_local_options(self):
+ """
+ Re-parse the leftover command-line options stored
+ in self.largs, so that any value overridden on the
+ command line is immediately available if the user turns
+ around and does a GetOption() right away.
+
+ We mimic the processing of the single args
+ in the original OptionParser._process_args(), but here we
+ allow exact matches for long-opts only (no partial
+ argument names!).
+
+ Else, this would lead to problems in add_local_option()
+ below. When called from there, we try to reparse the
+ command-line arguments that
+ 1. haven't been processed so far (self.largs), but
+ 2. are possibly not added to the list of options yet.
+
+ So, when we only have a value for "--myargument" yet,
+ a command-line argument of "--myarg=test" would set it.
+ Responsible for this behaviour is the method
+ _match_long_opt(), which allows for partial matches of
+ the option name, as long as the common prefix appears to
+ be unique.
+ This would lead to further confusion, because we might want
+ to add another option "--myarg" later on (see issue #2929).
+
+ """
+ rargs = []
+ largs_restore = []
+ # Loop over all remaining arguments
+ skip = False
+ for l in self.largs:
+ if skip:
+ # Accept all remaining arguments as they are
+ largs_restore.append(l)
+ else:
+ if len(l) > 2 and l[0:2] == "--":
+ # Check long option
+ lopt = (l,)
+ if "=" in l:
+ # Split into option and value
+ lopt = l.split("=", 1)
+
+ if lopt[0] in self._long_opt:
+ # Argument is already known
+ rargs.append('='.join(lopt))
+ else:
+ # Not known yet, so reject for now
+ largs_restore.append('='.join(lopt))
+ else:
+ if l == "--" or l == "-":
+ # Stop normal processing and don't
+ # process the rest of the command-line opts
+ largs_restore.append(l)
+ skip = True
+ else:
+ rargs.append(l)
+
+ # Parse the filtered list
+ self.parse_args(rargs, self.values)
+ # Restore the list of remaining arguments for the
+ # next call of AddOption/add_local_option...
+ self.largs = self.largs + largs_restore
+
def add_local_option(self, *args, **kw):
"""
Adds a local option to the parser.
@@ -364,7 +429,7 @@ class SConsOptionParser(optparse.OptionParser):
# available if the user turns around and does a GetOption()
# right away.
setattr(self.values.__defaults__, result.dest, result.default)
- self.parse_args(self.largs, self.values)
+ self.reparse_local_options()
return result
diff --git a/src/engine/SCons/Script/SConscript.xml b/src/engine/SCons/Script/SConscript.xml
index 3f2341a..c74ad5e 100644
--- a/src/engine/SCons/Script/SConscript.xml
+++ b/src/engine/SCons/Script/SConscript.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<scons_function name="Default">
@@ -593,4 +593,4 @@ SConscript('src/SConscript', variant_dir='build/ppc', duplicate=0)
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Subst.xml b/src/engine/SCons/Subst.xml
index 829c011..e9ec599 100644
--- a/src/engine/SCons/Subst.xml
+++ b/src/engine/SCons/Subst.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<scons_function name="AllowSubstExceptions">
@@ -70,4 +70,4 @@ AllowSubstExceptions(IndexError, NameError, ZeroDivisionError)
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/SubstTests.py b/src/engine/SCons/SubstTests.py
index ee9f3db..6f2eb3f 100644
--- a/src/engine/SCons/SubstTests.py
+++ b/src/engine/SCons/SubstTests.py
@@ -31,6 +31,8 @@ import unittest
from collections import UserDict
+import TestUnit
+
import SCons.Errors
from SCons.Subst import *
@@ -1233,8 +1235,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py
index e875158..1d81992 100644
--- a/src/engine/SCons/TaskmasterTests.py
+++ b/src/engine/SCons/TaskmasterTests.py
@@ -30,6 +30,8 @@ import copy
import sys
import unittest
+import TestUnit
+
import SCons.Taskmaster
import SCons.Errors
@@ -1223,8 +1225,7 @@ Taskmaster: No candidate anymore.
if __name__ == "__main__":
suite = unittest.makeSuite(TaskmasterTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Tool/386asm.xml b/src/engine/SCons/Tool/386asm.xml
index 5863689..c592ed8 100644
--- a/src/engine/SCons/Tool/386asm.xml
+++ b/src/engine/SCons/Tool/386asm.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="386asm">
<summary>
@@ -45,4 +45,4 @@ for the Phar Lap ETS embedded operating system.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/BitKeeper.xml b/src/engine/SCons/Tool/BitKeeper.xml
index 9481bd2..30a5e77 100644
--- a/src/engine/SCons/Tool/BitKeeper.xml
+++ b/src/engine/SCons/Tool/BitKeeper.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="BitKeeper">
<summary>
@@ -120,4 +120,4 @@ env.SourceCode('.', env.BitKeeper())
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/CVS.xml b/src/engine/SCons/Tool/CVS.xml
index b3477f5..1e695c5 100644
--- a/src/engine/SCons/Tool/CVS.xml
+++ b/src/engine/SCons/Tool/CVS.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="CVS">
<summary>
@@ -156,4 +156,4 @@ env.SourceCode('.', env.CVS('/usr/local/CVSROOT', 'foo/bar'))
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/DCommon.py b/src/engine/SCons/Tool/DCommon.py
new file mode 100644
index 0000000..02a5e73
--- /dev/null
+++ b/src/engine/SCons/Tool/DCommon.py
@@ -0,0 +1,56 @@
+"""SCons.Tool.DCommon
+
+Common code for the various D tools.
+
+Coded by Russel Winder (russel@winder.org.uk)
+2012-09-06
+"""
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import os.path
+
+def isD(env, source):
+ if not source:
+ return 0
+ for s in source:
+ if s.sources:
+ ext = os.path.splitext(str(s.sources[0]))[1]
+ if ext == '.d':
+ return 1
+ return 0
+
+def addDPATHToEnv(env, executable):
+ dPath = env.WhereIs(executable)
+ if dPath:
+ phobosDir = dPath[:dPath.rindex(executable)] + '/../src/phobos'
+ if os.path.isdir(phobosDir):
+ env.Append(DPATH=[phobosDir])
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/src/engine/SCons/Tool/JavaCommonTests.py b/src/engine/SCons/Tool/JavaCommonTests.py
index 76944c1..902030d 100644
--- a/src/engine/SCons/Tool/JavaCommonTests.py
+++ b/src/engine/SCons/Tool/JavaCommonTests.py
@@ -27,6 +27,9 @@ import os.path
import sys
import unittest
+import TestUnit
+
+import SCons.Scanner.IDL
import SCons.Tool.JavaCommon
@@ -570,8 +573,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Tool/MSCommon/vc.py b/src/engine/SCons/Tool/MSCommon/vc.py
index 72e7c77..97cb349 100644
--- a/src/engine/SCons/Tool/MSCommon/vc.py
+++ b/src/engine/SCons/Tool/MSCommon/vc.py
@@ -89,6 +89,7 @@ _ARCH_TO_CANONICAL = {
_HOST_TARGET_ARCH_TO_BAT_ARCH = {
("x86", "x86"): "x86",
("x86", "amd64"): "x86_amd64",
+ ("x86", "x86_amd64"): "x86_amd64",
("amd64", "x86_amd64"): "x86_amd64", # This is present in (at least) VS2012 express
("amd64", "amd64"): "amd64",
("amd64", "x86"): "x86",
@@ -131,9 +132,15 @@ def get_host_target(env):
return (host, target,req_target_platform)
-_VCVER = ["11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
+# If you update this, update SupportedVSList in Tool/MSCommon/vs.py, and the
+# MSVC_VERSION documentation in Tool/msvc.xml.
+_VCVER = ["12.0", "12.0Exp", "11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
_VCVER_TO_PRODUCT_DIR = {
+ '12.0' : [
+ r'Microsoft\VisualStudio\12.0\Setup\VC\ProductDir'],
+ '12.0Exp' : [
+ r'Microsoft\VCExpress\12.0\Setup\VC\ProductDir'],
'11.0': [
r'Microsoft\VisualStudio\11.0\Setup\VC\ProductDir'],
'11.0Exp' : [
diff --git a/src/engine/SCons/Tool/MSCommon/vs.py b/src/engine/SCons/Tool/MSCommon/vs.py
index d5bf2c3..2ec403b 100644
--- a/src/engine/SCons/Tool/MSCommon/vs.py
+++ b/src/engine/SCons/Tool/MSCommon/vs.py
@@ -73,7 +73,7 @@ class VisualStudio(object):
debug('find_vs_dir(): no installed VC %s' % self.vc_version)
return None
return dir
-
+
def find_vs_dir_by_reg(self):
root = 'Software\\'
@@ -91,13 +91,13 @@ class VisualStudio(object):
debug('find_vs_dir_by_reg(): found VS in registry: %s' % comps)
return comps
return None
-
+
def find_vs_dir(self):
""" Can use registry or location of VC to find vs dir
First try to find by registry, and if that fails find via VC dir
"""
-
-
+
+
if True:
vs_dir=self.find_vs_dir_by_reg()
return vs_dir
@@ -115,7 +115,7 @@ class VisualStudio(object):
debug('find_executable(): %s not on file system' % executable)
return None
return executable
-
+
#
def get_batch_file(self):
@@ -199,102 +199,96 @@ class VisualStudio(object):
# good money for in preference to whatever Microsoft makes available
# for free.
#
-# If you update this list, update the documentation in Tool/msvs.xml.
+# If you update this list, update _VCVER and _VCVER_TO_PRODUCT_DIR in
+# Tool/MSCommon/vc.py, and the MSVC_VERSION documentation in Tool/msvc.xml.
SupportedVSList = [
- # Visual Studio 2010
- # TODO: find the settings, perhaps from someone with a CTP copy?
- #VisualStudio('TBD',
- # hkey_root=r'TBD',
- # common_tools_var='TBD',
- # executable_path=r'TBD',
- # default_dirname='TBD',
- #),
-
- # Visual Studio 11
- # The batch file we look for is in the VC directory,
- # so the devenv.com executable is up in ..\..\Common7\IDE.
+ # Visual Studio 2013
+ VisualStudio('12.0',
+ vc_version='12.0',
+ sdk_version='8.1A',
+ hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
+ common_tools_var='VS120COMNTOOLS',
+ executable_path=r'Common7\IDE\devenv.com',
+ batch_file_path=r'Common7\Tools\vsvars32.bat',
+ supported_arch=['x86', 'amd64'],
+ ),
+
+ # Visual C++ 2013 Express Edition (for Desktop)
+ VisualStudio('12.0Exp',
+ vc_version='12.0',
+ sdk_version='8.1A',
+ hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
+ common_tools_var='VS120COMNTOOLS',
+ executable_path=r'Common7\IDE\WDExpress.exe',
+ batch_file_path=r'Common7\Tools\vsvars32.bat',
+ supported_arch=['x86', 'amd64'],
+ ),
+
+ # Visual Studio 2012
VisualStudio('11.0',
- sdk_version='6.1',
+ sdk_version='8.0A',
hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
common_tools_var='VS110COMNTOOLS',
executable_path=r'Common7\IDE\devenv.com',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 11',
supported_arch=['x86', 'amd64'],
),
- # Visual C++ 11 Express Edition
- # The batch file we look for is in the VC directory,
- # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
+ # Visual C++ 2012 Express Edition (for Desktop)
VisualStudio('11.0Exp',
vc_version='11.0',
- sdk_version='6.1',
- hkeys=[r'Microsoft\VCExpress\11.0\Setup\VS\ProductDir'],
+ sdk_version='8.0A',
+ hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
common_tools_var='VS110COMNTOOLS',
- executable_path=r'Common7\IDE\VCExpress.exe',
+ executable_path=r'Common7\IDE\WDExpress.exe',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 11',
- supported_arch=['x86'],
+ supported_arch=['x86', 'amd64'],
),
# Visual Studio 2010
- # The batch file we look for is in the VC directory,
- # so the devenv.com executable is up in ..\..\Common7\IDE.
VisualStudio('10.0',
- sdk_version='6.1',
+ sdk_version='7.0A',
hkeys=[r'Microsoft\VisualStudio\10.0\Setup\VS\ProductDir'],
common_tools_var='VS100COMNTOOLS',
executable_path=r'Common7\IDE\devenv.com',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 10',
supported_arch=['x86', 'amd64'],
),
# Visual C++ 2010 Express Edition
- # The batch file we look for is in the VC directory,
- # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
VisualStudio('10.0Exp',
vc_version='10.0',
- sdk_version='6.1',
+ sdk_version='7.0A',
hkeys=[r'Microsoft\VCExpress\10.0\Setup\VS\ProductDir'],
common_tools_var='VS100COMNTOOLS',
executable_path=r'Common7\IDE\VCExpress.exe',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 10',
supported_arch=['x86'],
),
# Visual Studio 2008
- # The batch file we look for is in the VC directory,
- # so the devenv.com executable is up in ..\..\Common7\IDE.
VisualStudio('9.0',
- sdk_version='6.1',
+ sdk_version='6.0A',
hkeys=[r'Microsoft\VisualStudio\9.0\Setup\VS\ProductDir'],
common_tools_var='VS90COMNTOOLS',
executable_path=r'Common7\IDE\devenv.com',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 9',
supported_arch=['x86', 'amd64'],
),
# Visual C++ 2008 Express Edition
- # The batch file we look for is in the VC directory,
- # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
VisualStudio('9.0Exp',
vc_version='9.0',
- sdk_version='6.1',
+ sdk_version='6.0A',
hkeys=[r'Microsoft\VCExpress\9.0\Setup\VS\ProductDir'],
common_tools_var='VS90COMNTOOLS',
executable_path=r'Common7\IDE\VCExpress.exe',
batch_file_path=r'Common7\Tools\vsvars32.bat',
- default_dirname='Microsoft Visual Studio 9',
supported_arch=['x86'],
),
# Visual Studio 2005
- # The batch file we look for is in the VC directory,
- # so the devenv.com executable is up in ..\..\Common7\IDE.
VisualStudio('8.0',
sdk_version='6.0A',
hkeys=[r'Microsoft\VisualStudio\8.0\Setup\VS\ProductDir'],
@@ -306,8 +300,6 @@ SupportedVSList = [
),
# Visual C++ 2005 Express Edition
- # The batch file we look for is in the VC directory,
- # so the VCExpress.exe executable is up in ..\..\Common7\IDE.
VisualStudio('8.0Exp',
vc_version='8.0Exp',
sdk_version='6.0A',
@@ -320,8 +312,6 @@ SupportedVSList = [
),
# Visual Studio .NET 2003
- # The batch file we look for is in the Common7\Tools directory,
- # so the devenv.com executable is next door in ..\IDE.
VisualStudio('7.1',
sdk_version='6.0',
hkeys=[r'Microsoft\VisualStudio\7.1\Setup\VS\ProductDir'],
@@ -333,8 +323,6 @@ SupportedVSList = [
),
# Visual Studio .NET
- # The batch file we look for is in the Common7\Tools directory,
- # so the devenv.com executable is next door in ..\IDE.
VisualStudio('7.0',
sdk_version='2003R2',
hkeys=[r'Microsoft\VisualStudio\7.0\Setup\VS\ProductDir'],
@@ -393,11 +381,11 @@ def reset_installed_visual_studios():
InstalledVSMap = None
for vs in SupportedVSList:
vs.reset()
-
+
# Need to clear installed VC's as well as they are used in finding
# installed VS's
SCons.Tool.MSCommon.vc.reset_installed_vcs()
-
+
# We may be asked to update multiple construction environments with
# SDK information. When doing this, we check on-disk for whether
@@ -462,7 +450,7 @@ def get_default_version(env):
If no version was requested by the user through the MSVS environment
variable, query all the available the visual studios through
- query_versions, and take the highest one.
+ get_installed_visual_studios, and take the highest one.
Return
------
@@ -470,6 +458,7 @@ def get_default_version(env):
the default version.
"""
if 'MSVS' not in env or not SCons.Util.is_Dict(env['MSVS']):
+ # get all versions, and remember them for speed later
versions = [vs.version for vs in get_installed_visual_studios()]
env['MSVS'] = {'VERSIONS' : versions}
else:
@@ -479,6 +468,8 @@ def get_default_version(env):
if versions:
env['MSVS_VERSION'] = versions[0] #use highest version by default
else:
+ debug('get_default_version: WARNING: no installed versions found, '
+ 'using first in SupportedVSList (%s)'%SupportedVSList[0].version)
env['MSVS_VERSION'] = SupportedVSList[0].version
env['MSVS']['VERSION'] = env['MSVS_VERSION']
diff --git a/src/engine/SCons/Tool/Perforce.xml b/src/engine/SCons/Tool/Perforce.xml
index 1ca1ae8..918bbc9 100644
--- a/src/engine/SCons/Tool/Perforce.xml
+++ b/src/engine/SCons/Tool/Perforce.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="Perforce">
<summary>
@@ -126,4 +126,4 @@ USERNAME.
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/PharLapCommonTests.py b/src/engine/SCons/Tool/PharLapCommonTests.py
index d1e7f60..e67d426 100644
--- a/src/engine/SCons/Tool/PharLapCommonTests.py
+++ b/src/engine/SCons/Tool/PharLapCommonTests.py
@@ -28,6 +28,8 @@ import os.path
import os
import sys
+import TestUnit
+
import SCons.Errors
from SCons.Tool.PharLapCommon import *
@@ -58,8 +60,7 @@ class PharLapCommonTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(PharLapCommonTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Tool/RCS.xml b/src/engine/SCons/Tool/RCS.xml
index 135c959..760f5c0 100644
--- a/src/engine/SCons/Tool/RCS.xml
+++ b/src/engine/SCons/Tool/RCS.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="RCS">
<summary>
@@ -139,4 +139,4 @@ for a specific subdirectory.
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/SCCS.xml b/src/engine/SCons/Tool/SCCS.xml
index 4a7c09f..de22177 100644
--- a/src/engine/SCons/Tool/SCCS.xml
+++ b/src/engine/SCons/Tool/SCCS.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="SCCS">
<summary>
@@ -130,4 +130,4 @@ for a specific subdirectory.
</summary>
</scons_function>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/Subversion.xml b/src/engine/SCons/Tool/Subversion.xml
index 53a9e26..7c851b5 100644
--- a/src/engine/SCons/Tool/Subversion.xml
+++ b/src/engine/SCons/Tool/Subversion.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<!--
<tool name="Subversion">
@@ -132,4 +132,4 @@ env.SourceCode('.', env.Subversion('file:///usr/local/Subversion', 'foo/bar'))
</scons_function>
-->
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ToolTests.py b/src/engine/SCons/Tool/ToolTests.py
index 9595680..3e6da5b 100644
--- a/src/engine/SCons/Tool/ToolTests.py
+++ b/src/engine/SCons/Tool/ToolTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Tool
@@ -76,8 +78,7 @@ class ToolTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(ToolTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py
index c09f8e4..31e3d96 100644
--- a/src/engine/SCons/Tool/__init__.py
+++ b/src/engine/SCons/Tool/__init__.py
@@ -705,7 +705,7 @@ def tool_list(platform, env):
assemblers = ['masm', 'nasm', 'gas', '386asm' ]
fortran_compilers = ['gfortran', 'g77', 'ifl', 'cvf', 'f95', 'f90', 'fortran']
ars = ['mslib', 'ar', 'tlib']
- other_plat_tools=['msvs','midl']
+ other_plat_tools = ['msvs', 'midl']
elif str(platform) == 'os2':
"prefer IBM tools on OS/2"
linkers = ['ilink', 'gnulink', ]#'mslink']
@@ -795,8 +795,10 @@ def tool_list(platform, env):
fortran_compiler = FindTool(fortran_compilers, env) or fortran_compilers[0]
ar = FindTool(ars, env) or ars[0]
+ d_compilers = ['dmd', 'gdc', 'ldc']
+ d_compiler = FindTool(d_compilers, env) or d_compilers[0]
+
other_tools = FindAllTools(other_plat_tools + [
- 'dmd',
#TODO: merge 'install' into 'filesystem' and
# make 'filesystem' the default
'filesystem',
@@ -819,7 +821,7 @@ def tool_list(platform, env):
], env)
tools = ([linker, c_compiler, cxx_compiler,
- fortran_compiler, assembler, ar]
+ fortran_compiler, assembler, ar, d_compiler]
+ other_tools)
return [x for x in tools if x]
diff --git a/src/engine/SCons/Tool/__init__.xml b/src/engine/SCons/Tool/__init__.xml
index 0918b46..dd06f12 100644
--- a/src/engine/SCons/Tool/__init__.xml
+++ b/src/engine/SCons/Tool/__init__.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<builder name="CFile">
<summary>
diff --git a/src/engine/SCons/Tool/aixc++.xml b/src/engine/SCons/Tool/aixc++.xml
index b58c483..3aa891a 100644
--- a/src/engine/SCons/Tool/aixc++.xml
+++ b/src/engine/SCons/Tool/aixc++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="aixc++">
<summary>
@@ -39,4 +39,4 @@ Sets construction variables for the IMB xlc / Visual Age C++ compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/aixcc.xml b/src/engine/SCons/Tool/aixcc.xml
index f9a9c0d..11a4ce3 100644
--- a/src/engine/SCons/Tool/aixcc.xml
+++ b/src/engine/SCons/Tool/aixcc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="aixcc">
<summary>
@@ -38,4 +38,4 @@ Sets construction variables for the IBM xlc / Visual Age C compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/aixf77.xml b/src/engine/SCons/Tool/aixf77.xml
index b3171e7..46e241e 100644
--- a/src/engine/SCons/Tool/aixf77.xml
+++ b/src/engine/SCons/Tool/aixf77.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="aixf77">
<summary>
@@ -37,4 +37,4 @@ Sets construction variables for the IBM Visual Age f77 Fortran compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/aixlink.xml b/src/engine/SCons/Tool/aixlink.xml
index dfa4606..23288e9 100644
--- a/src/engine/SCons/Tool/aixlink.xml
+++ b/src/engine/SCons/Tool/aixlink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="aixlink">
<summary>
@@ -39,4 +39,4 @@ Sets construction variables for the IBM Visual Age linker.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/applelink.xml b/src/engine/SCons/Tool/applelink.xml
index 75dc888..5e5571f 100644
--- a/src/engine/SCons/Tool/applelink.xml
+++ b/src/engine/SCons/Tool/applelink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="applelink">
<summary>
@@ -152,4 +152,4 @@ containing the linker command-line options corresponding to
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ar.xml b/src/engine/SCons/Tool/ar.xml
index d7540b3..5d4becb 100644
--- a/src/engine/SCons/Tool/ar.xml
+++ b/src/engine/SCons/Tool/ar.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="ar">
<summary>
@@ -118,4 +118,4 @@ General options passed to the archive indexer.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/as.xml b/src/engine/SCons/Tool/as.xml
index 822cd8a..7661a29 100644
--- a/src/engine/SCons/Tool/as.xml
+++ b/src/engine/SCons/Tool/as.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="as">
<summary>
@@ -122,4 +122,4 @@ The default is to use the value of &cv-link-ASFLAGS;.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/bcc32.xml b/src/engine/SCons/Tool/bcc32.xml
index f1330dd..743ec00 100644
--- a/src/engine/SCons/Tool/bcc32.xml
+++ b/src/engine/SCons/Tool/bcc32.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="bcc32">
<summary>
@@ -52,4 +52,4 @@ Sets construction variables for the bcc32 compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/c++.xml b/src/engine/SCons/Tool/c++.xml
index 44757e2..d5fcad7 100644
--- a/src/engine/SCons/Tool/c++.xml
+++ b/src/engine/SCons/Tool/c++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="cXX">
<summary>
@@ -138,4 +138,4 @@ to generate shared-library objects.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/cc.xml b/src/engine/SCons/Tool/cc.xml
index 3e0951e..9330436 100644
--- a/src/engine/SCons/Tool/cc.xml
+++ b/src/engine/SCons/Tool/cc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="cc">
<summary>
@@ -205,4 +205,4 @@ to generate shared-library objects.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/cvf.xml b/src/engine/SCons/Tool/cvf.xml
index 55710b3..e6c550b 100644
--- a/src/engine/SCons/Tool/cvf.xml
+++ b/src/engine/SCons/Tool/cvf.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="cvf">
<summary>
@@ -50,4 +50,4 @@ Sets construction variables for the Compaq Visual Fortran compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/default.xml b/src/engine/SCons/Tool/default.xml
index aeb477c..38eb122 100644
--- a/src/engine/SCons/Tool/default.xml
+++ b/src/engine/SCons/Tool/default.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="default">
<summary>
@@ -32,4 +32,4 @@ for the platform on which SCons is running.
</summary>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/dmd.py b/src/engine/SCons/Tool/dmd.py
index a8faf5d..dafb5b9 100644
--- a/src/engine/SCons/Tool/dmd.py
+++ b/src/engine/SCons/Tool/dmd.py
@@ -3,14 +3,14 @@
Tool-specific initialization for the Digital Mars D compiler.
(http://digitalmars.com/d)
-Coded by Andy Friesen (andy@ikagames.com)
+Originally coded by Andy Friesen (andy@ikagames.com)
15 November 2003
-Amended by Russel Winder (russel@russel.org.uk)
-2010-02-07
+Evolved by Russel Winder (russel@winder.org.uk)
+2010-02-07 onwards
There are a number of problems with this script at this point in time.
-The one that irritates me the most is the Windows linker setup. The D
+The one that irritates the most is the Windows linker setup. The D
linker doesn't have a way to add lib paths on the commandline, as far
as I can see. You have to specify paths relative to the SConscript or
use absolute paths. To hack around it, add '#/blah'. This will link
@@ -18,14 +18,15 @@ blah.lib from the directory where SConstruct resides.
Compiler variables:
DC - The name of the D compiler to use. Defaults to dmd or gdmd,
- whichever is found.
+ whichever is found.
DPATH - List of paths to search for import modules.
DVERSIONS - List of version tags to enable when compiling.
DDEBUG - List of debug tags to enable when compiling.
Linker related variables:
LIBS - List of library files to link in.
- DLINK - Name of the linker to use. Defaults to dmd or gdmd.
+ DLINK - Name of the linker to use. Defaults to dmd or gdmd,
+ whichever is found.
DLINKFLAGS - List of linker flags.
Lib tool variables:
@@ -60,6 +61,7 @@ Lib tool variables:
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
+import subprocess
import SCons.Action
import SCons.Builder
@@ -67,57 +69,38 @@ import SCons.Defaults
import SCons.Scanner.D
import SCons.Tool
-# Adapted from c++.py
-def isD(source):
- if not source:
- return 0
+import SCons.Tool.DCommon
- for s in source:
- if s.sources:
- ext = os.path.splitext(str(s.sources[0]))[1]
- if ext == '.d':
- return 1
- return 0
-
-smart_link = {}
-
-smart_lib = {}
def generate(env):
- global smart_link
- global smart_lib
-
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
- DAction = SCons.Action.Action('$DCOM', '$DCOMSTR')
-
- static_obj.add_action('.d', DAction)
- shared_obj.add_action('.d', DAction)
+ static_obj.add_action('.d', SCons.Defaults.DAction)
+ shared_obj.add_action('.d', SCons.Defaults.ShDAction)
static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
- dc = env.Detect(['dmd', 'gdmd'])
- env['DC'] = dc
+ env['DC'] = env.Detect(['dmd', 'gdmd'])
env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of$TARGET $SOURCES'
env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)} $)'
env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
+ env['SHDC'] = '$DC'
+ env['SHDCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -fPIC -of$TARGET $SOURCES'
+
env['DPATH'] = ['#/']
env['DFLAGS'] = []
env['DVERSIONS'] = []
env['DDEBUG'] = []
- if dc:
- # Add the path to the standard library.
- # This is merely for the convenience of the dependency scanner.
- dmd_path = env.WhereIs(dc)
- if dmd_path:
- x = dmd_path.rindex(dc)
- phobosDir = dmd_path[:x] + '/../src/phobos'
- if os.path.isdir(phobosDir):
- env.Append(DPATH = [phobosDir])
+ #env['SHOBJSUFFIX'] = '.os'
+ #env['OBJSUFFIX'] = '.o'
+ env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+ if env['DC']:
+ SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
env['DINCPREFIX'] = '-I'
env['DINCSUFFIX'] = ''
@@ -129,106 +112,25 @@ def generate(env):
env['DFLAGSUFFIX'] = ''
env['DFILESUFFIX'] = '.d'
- # Need to use the Digital Mars linker/lib on windows.
- # *nix can just use GNU link.
- if env['PLATFORM'] == 'win32':
- env['DLINK'] = '$DC'
- env['DLINKCOM'] = '$DLINK -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
- env['DLIB'] = 'lib'
- env['DLIBCOM'] = '$DLIB $_DLIBFLAGS -c $TARGET $SOURCES $_DLINKLIBFLAGS'
-
- env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
- env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
- env['DLINKFLAGS'] = []
- env['DLIBLINKPREFIX'] = ''
- env['DLIBLINKSUFFIX'] = '.lib'
- env['DLIBFLAGPREFIX'] = '-'
- env['DLIBFLAGSUFFIX'] = ''
- env['DLINKFLAGPREFIX'] = '-'
- env['DLINKFLAGSUFFIX'] = ''
-
- SCons.Tool.createStaticLibBuilder(env)
-
- # Basically, we hijack the link and ar builders with our own.
- # these builders check for the presence of D source, and swap out
- # the system's defaults for the Digital Mars tools. If there's no D
- # source, then we silently return the previous settings.
- linkcom = env.get('LINKCOM')
- try:
- env['SMART_LINKCOM'] = smart_link[linkcom]
- except KeyError:
- def _smartLink(source, target, env, for_signature,
- defaultLinker=linkcom):
- if isD(source):
- # XXX I'm not sure how to add a $DLINKCOMSTR variable
- # so that it works with this _smartLink() logic,
- # and I don't have a D compiler/linker to try it out,
- # so we'll leave it alone for now.
- return '$DLINKCOM'
- else:
- return defaultLinker
- env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
-
- arcom = env.get('ARCOM')
- try:
- env['SMART_ARCOM'] = smart_lib[arcom]
- except KeyError:
- def _smartLib(source, target, env, for_signature,
- defaultLib=arcom):
- if isD(source):
- # XXX I'm not sure how to add a $DLIBCOMSTR variable
- # so that it works with this _smartLib() logic, and
- # I don't have a D compiler/archiver to try it out,
- # so we'll leave it alone for now.
- return '$DLIBCOM'
- else:
- return defaultLib
- env['SMART_ARCOM'] = smart_lib[arcom] = _smartLib
-
- # It is worth noting that the final space in these strings is
- # absolutely pivotal. SCons sees these as actions and not generators
- # if it is not there. (very bad)
- env['ARCOM'] = '$SMART_ARCOM '
- env['LINKCOM'] = '$SMART_LINKCOM '
- else: # assuming linux
- linkcom = env.get('LINKCOM')
- try:
- env['SMART_LINKCOM'] = smart_link[linkcom]
- except KeyError:
- def _smartLink(source, target, env, for_signature,
- defaultLinker=linkcom, dc=dc):
- if isD(source):
- try:
- libs = env['LIBS']
- except KeyError:
- libs = []
- if dc == 'dmd':
- # TODO: This assumes that the dmd executable is in the
- # bin directory and that the libraries are in a peer
- # directory lib. This true of the Digital Mars
- # distribution but . . .
- import glob
- dHome = env.WhereIs(dc).replace('/dmd' , '/..')
- if glob.glob(dHome + '/lib/*phobos2*'):
- if 'phobos2' not in libs:
- env.Append(LIBPATH = [dHome + '/lib'])
- env.Append(LIBS = ['phobos2'])
- # TODO: Find out when there will be a
- # 64-bit version of D.
- env.Append(LINKFLAGS = ['-m32'])
- else:
- if 'phobos' not in libs:
- env.Append(LIBS = ['phobos'])
- elif dc is 'gdmd':
- env.Append(LIBS = ['gphobos'])
- if 'pthread' not in libs:
- env.Append(LIBS = ['pthread'])
- if 'm' not in libs:
- env.Append(LIBS = ['m'])
- return defaultLinker
- env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
-
- env['LINKCOM'] = '$SMART_LINKCOM '
+ env['DLINK'] = '$DC'
+ env['DLINKCOM'] = '$DLINK -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+ env['SHDLINKCOM'] = '$DLINK -shared -defaultlib=libphobos2.so -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+
+ env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+ env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+ env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+ env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+ env['DLINKFLAGS'] = ['-L-L.']
+ env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l'
+ env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
+ env['DLIBFLAGPREFIX'] = '-'
+ env['DLIBFLAGSUFFIX'] = ''
+ env['DLINKFLAGPREFIX'] = '-'
+ env['DLINKFLAGSUFFIX'] = ''
+
+ SCons.Tool.createStaticLibBuilder(env)
+
def exists(env):
return env.Detect(['dmd', 'gdmd'])
diff --git a/src/engine/SCons/Tool/dmd.xml b/src/engine/SCons/Tool/dmd.xml
index a34010f..7cda2a8 100644
--- a/src/engine/SCons/Tool/dmd.xml
+++ b/src/engine/SCons/Tool/dmd.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="dmd">
<summary>
@@ -31,17 +31,19 @@ Sets construction variables for D language compilers
</para>
</summary>
<sets>
-<item><!--</item>
<item>DC</item>
<item>DCOM</item>
<item>_DINCFLAGS</item>
<item>_DVERFLAGS</item>
<item>_DDEBUGFLAGS</item>
<item>_DFLAGS</item>
+<item>SHDC</item>
+<item>SHDCOM</item>
<item>DPATH</item>
<item>DFLAGS</item>
<item>DVERSIONS</item>
<item>DDEBUG</item>
+<item>STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME</item>
<item>DINCPREFIX</item>
<item>DINCSUFFIX</item>
<item>DVERPREFIX</item>
@@ -53,6 +55,7 @@ Sets construction variables for D language compilers
<item>DFLESUFFIX</item>
<item>DLINK</item>
<item>DLINKCOM</item>
+<item>SHDLINKCOM</item>
<item>DLIB</item>
<item>DLIBCOM</item>
<item>_DLINKLIBFLAGS</item>
@@ -64,13 +67,9 @@ Sets construction variables for D language compilers
<item>DLIBFLAGSUFFIX</item>
<item>DLINKFLAGPREFIX</item>
<item>DLINKFLAGSUFFIX</item>
-<item>LINKCOM</item>
-<item>ARCOM</item>
-<item>LIBS</item>
-<item>--></item>
</sets>
<uses>
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/docbook/__init__.py b/src/engine/SCons/Tool/docbook/__init__.py
index 72ea175..aacc26d 100644
--- a/src/engine/SCons/Tool/docbook/__init__.py
+++ b/src/engine/SCons/Tool/docbook/__init__.py
@@ -429,6 +429,11 @@ def DocbookEpub(env, target, source=None, *args, **kw):
mime_file.close()
zf.write(mime_file.name, compress_type = zipfile.ZIP_STORED)
for s in source:
+ if os.path.isfile(str(s)):
+ head, tail = os.path.split(str(s))
+ if not head:
+ continue
+ s = head
for dirpath, dirnames, filenames in os.walk(str(s)):
for fname in filenames:
path = os.path.join(dirpath, fname)
diff --git a/src/engine/SCons/Tool/docbook/__init__.xml b/src/engine/SCons/Tool/docbook/__init__.xml
index 0748738..6559d16 100644
--- a/src/engine/SCons/Tool/docbook/__init__.xml
+++ b/src/engine/SCons/Tool/docbook/__init__.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="docbook">
<summary>
diff --git a/src/engine/SCons/Tool/dvi.xml b/src/engine/SCons/Tool/dvi.xml
index 78e59a2..bfffc33 100644
--- a/src/engine/SCons/Tool/dvi.xml
+++ b/src/engine/SCons/Tool/dvi.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="dvi">
<summary>
@@ -91,4 +91,4 @@ env.DVI(target = 'ccc.dvi', source = 'ccc.latex')
</builder>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/dvipdf.xml b/src/engine/SCons/Tool/dvipdf.xml
index e2db41a..c0df409 100644
--- a/src/engine/SCons/Tool/dvipdf.xml
+++ b/src/engine/SCons/Tool/dvipdf.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="dvipdf">
<summary>
@@ -81,4 +81,4 @@ A deprecated synonym for &cv-link-DVIPDFCOM;.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/dvips.xml b/src/engine/SCons/Tool/dvips.xml
index 6f00b44..5d4a29f 100644
--- a/src/engine/SCons/Tool/dvips.xml
+++ b/src/engine/SCons/Tool/dvips.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="dvips">
<summary>
@@ -115,4 +115,4 @@ The prefix used for PostScript file names.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/f03.xml b/src/engine/SCons/Tool/f03.xml
index e979e09..0b3f786 100644
--- a/src/engine/SCons/Tool/f03.xml
+++ b/src/engine/SCons/Tool/f03.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="f03">
<summary>
@@ -308,4 +308,4 @@ If this is not set, then &cv-link-SHF03PPCOM; or &cv-link-SHFORTRANPPCOM;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/f77.xml b/src/engine/SCons/Tool/f77.xml
index fd72dc1..d07931b 100644
--- a/src/engine/SCons/Tool/f77.xml
+++ b/src/engine/SCons/Tool/f77.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="f77">
<summary>
@@ -321,4 +321,4 @@ If this is not set, then &cv-link-SHF77PPCOM; or &cv-link-SHFORTRANPPCOM;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/f90.xml b/src/engine/SCons/Tool/f90.xml
index 6586d03..8f1da95 100644
--- a/src/engine/SCons/Tool/f90.xml
+++ b/src/engine/SCons/Tool/f90.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="f90">
<summary>
@@ -307,4 +307,4 @@ If this is not set, then &cv-link-SHF90PPCOM; or &cv-link-SHFORTRANPPCOM;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/f95.xml b/src/engine/SCons/Tool/f95.xml
index 73f0155..1cce442 100644
--- a/src/engine/SCons/Tool/f95.xml
+++ b/src/engine/SCons/Tool/f95.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="f95">
<summary>
@@ -308,4 +308,4 @@ If this is not set, then &cv-link-SHF95PPCOM; or &cv-link-SHFORTRANPPCOM;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/fortran.xml b/src/engine/SCons/Tool/fortran.xml
index 68535ae..5383d5f 100644
--- a/src/engine/SCons/Tool/fortran.xml
+++ b/src/engine/SCons/Tool/fortran.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="fortran">
<summary>
@@ -372,4 +372,4 @@ If this is not set, then &cv-link-SHFORTRANPPCOM;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/g++.xml b/src/engine/SCons/Tool/g++.xml
index 7f3c154..dadb4aa 100644
--- a/src/engine/SCons/Tool/g++.xml
+++ b/src/engine/SCons/Tool/g++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="g++">
<summary>
@@ -38,4 +38,4 @@ Set construction variables for the &gXX; C++ compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/g77.xml b/src/engine/SCons/Tool/g77.xml
index 8c59d4b..b7f8368 100644
--- a/src/engine/SCons/Tool/g77.xml
+++ b/src/engine/SCons/Tool/g77.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="g77">
<summary>
@@ -33,4 +33,4 @@ to set variables.
</summary>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gas.xml b/src/engine/SCons/Tool/gas.xml
index 01c8286..6e0de94 100644
--- a/src/engine/SCons/Tool/gas.xml
+++ b/src/engine/SCons/Tool/gas.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gas">
<summary>
@@ -35,4 +35,4 @@ Calls the &t-as; module.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gcc.xml b/src/engine/SCons/Tool/gcc.xml
index 26b4f2d..d6b9b41 100644
--- a/src/engine/SCons/Tool/gcc.xml
+++ b/src/engine/SCons/Tool/gcc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gcc">
<summary>
@@ -36,4 +36,4 @@ Set construction variables for the &gcc; C compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gdc.py b/src/engine/SCons/Tool/gdc.py
new file mode 100644
index 0000000..458b10e
--- /dev/null
+++ b/src/engine/SCons/Tool/gdc.py
@@ -0,0 +1,123 @@
+"""SCons.Tool.gdc
+
+Tool-specific initialization for the GDC compiler.
+(https://github.com/D-Programming-GDC/GDC)
+
+Developed by Russel Winder (russel@winder.org.uk)
+2012-05-09 onwards
+
+Compiler variables:
+ DC - The name of the D compiler to use. Defaults to gdc.
+ DPATH - List of paths to search for import modules.
+ DVERSIONS - List of version tags to enable when compiling.
+ DDEBUG - List of debug tags to enable when compiling.
+
+Linker related variables:
+ LIBS - List of library files to link in.
+ DLINK - Name of the linker to use. Defaults to gdc.
+ DLINKFLAGS - List of linker flags.
+
+Lib tool variables:
+ DLIB - Name of the lib tool to use. Defaults to lib.
+ DLIBFLAGS - List of flags to pass to the lib tool.
+ LIBS - Same as for the linker. (libraries to pull into the .lib)
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import SCons.Action
+import SCons.Defaults
+import SCons.Tool
+
+import SCons.Tool.DCommon
+
+
+def generate(env):
+ static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
+
+ static_obj.add_action('.d', SCons.Defaults.DAction)
+ shared_obj.add_action('.d', SCons.Defaults.ShDAction)
+ static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
+ shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
+
+ env['DC'] = env.Detect('gdc')
+ env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -o $TARGET $SOURCES'
+ env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+ env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)} $)'
+ env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
+ env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
+
+ env['SHDC'] = '$DC'
+ env['SHDCOM'] = '$SHDC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -fPIC -c -o $TARGET $SOURCES'
+
+ env['DPATH'] = ['#/']
+ env['DFLAGS'] = []
+ env['DVERSIONS'] = []
+ env['DDEBUG'] = []
+
+ env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+ if env['DC']:
+ SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
+
+ env['DINCPREFIX'] = '-I'
+ env['DINCSUFFIX'] = ''
+ env['DVERPREFIX'] = '-version='
+ env['DVERSUFFIX'] = ''
+ env['DDEBUGPREFIX'] = '-debug='
+ env['DDEBUGSUFFIX'] = ''
+ env['DFLAGPREFIX'] = '-'
+ env['DFLAGSUFFIX'] = ''
+ env['DFILESUFFIX'] = '.d'
+
+ env['DLINK'] = '$DC'
+ env['DLINKCOM'] = '$DLINK -o $TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+ env['SHDLINKCOM'] = '$DLINK -o $TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+
+ env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+ env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+ env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+ env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+ env['DLINKFLAGS'] = ['-L.']
+ env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-l'
+ env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
+ env['DLIBFLAGPREFIX'] = '-'
+ env['DLIBFLAGSUFFIX'] = ''
+ env['DLINKFLAGPREFIX'] = '-'
+ env['DLINKFLAGSUFFIX'] = ''
+
+ SCons.Tool.createStaticLibBuilder(env)
+
+
+def exists(env):
+ return env.Detect('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/src/engine/SCons/Tool/gdc.xml b/src/engine/SCons/Tool/gdc.xml
new file mode 100644
index 0000000..1fd95df
--- /dev/null
+++ b/src/engine/SCons/Tool/gdc.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+
+<!DOCTYPE sconsdoc [
+<!ENTITY % scons SYSTEM '../../../../doc/scons.mod'>
+%scons;
+<!ENTITY % builders-mod SYSTEM '../../../../doc/generated/builders.mod'>
+%builders-mod;
+<!ENTITY % functions-mod SYSTEM '../../../../doc/generated/functions.mod'>
+%functions-mod;
+<!ENTITY % tools-mod SYSTEM '../../../../doc/generated/tools.mod'>
+%tools-mod;
+<!ENTITY % variables-mod SYSTEM '../../../../doc/generated/variables.mod'>
+%variables-mod;
+]>
+
+<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+
+<tool name="gdc">
+<summary>
+<para>
+Sets construction variables for the D language compiler GDC.
+</para>
+</summary>
+<sets>
+<item>DC</item>
+<item>DCOM</item>
+<item>_DINCFLAGS</item>
+<item>_DVERFLAGS</item>
+<item>_DDEBUGFLAGS</item>
+<item>_DFLAGS</item>
+<item>SHDC</item>
+<item>SHDCOM</item>
+<item>DPATH</item>
+<item>DFLAGS</item>
+<item>DVERSIONS</item>
+<item>DDEBUG</item>
+<item>STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME</item>
+<item>DINCPREFIX</item>
+<item>DINCSUFFIX</item>
+<item>DVERPREFIX</item>
+<item>DVERSUFFIX</item>
+<item>DDEBUGPREFIX</item>
+<item>DDEBUGSUFFIX</item>
+<item>DFLAGPREFIX</item>
+<item>DFLAGSUFFIX</item>
+<item>DFLESUFFIX</item>
+<item>DLINK</item>
+<item>DLINKCOM</item>
+<item>SHDLINKCOM</item>
+<item>DLIB</item>
+<item>DLIBCOM</item>
+<item>_DLINKLIBFLAGS</item>
+<item>_DLIBFLAGS</item>
+<item>DLINKFLAGS</item>
+<item>DLIBLINKPREFIX</item>
+<item>DLIBLINKSUFFIX</item>
+<item>DLIBFLAGPREFIX</item>
+<item>DLIBFLAGSUFFIX</item>
+<item>DLINKFLAGPREFIX</item>
+<item>DLINKFLAGSUFFIX</item>
+</sets>
+<uses>
+</uses>
+</tool>
diff --git a/src/engine/SCons/Tool/gettext.xml b/src/engine/SCons/Tool/gettext.xml
index f78c770..96e467a 100644
--- a/src/engine/SCons/Tool/gettext.xml
+++ b/src/engine/SCons/Tool/gettext.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gettext">
<summary>
@@ -254,4 +254,4 @@ default file named
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gfortran.xml b/src/engine/SCons/Tool/gfortran.xml
index 3861b55..aa32e01 100644
--- a/src/engine/SCons/Tool/gfortran.xml
+++ b/src/engine/SCons/Tool/gfortran.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gfortran">
<summary>
@@ -45,4 +45,4 @@ Sets construction variables for the GNU F95/F2003 GNU compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gnulink.xml b/src/engine/SCons/Tool/gnulink.xml
index b46a028..2a36de2 100644
--- a/src/engine/SCons/Tool/gnulink.xml
+++ b/src/engine/SCons/Tool/gnulink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gnulink">
<summary>
@@ -36,4 +36,4 @@ Set construction variables for GNU linker/loader.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/gs.xml b/src/engine/SCons/Tool/gs.xml
index 3fe5165..898f077 100644
--- a/src/engine/SCons/Tool/gs.xml
+++ b/src/engine/SCons/Tool/gs.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="gs">
<summary>
@@ -97,4 +97,4 @@ env.Gs('cover.jpg','scons-scons.pdf',
</summary>
</builder>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/hpc++.xml b/src/engine/SCons/Tool/hpc++.xml
index 280334d..bfc9411 100644
--- a/src/engine/SCons/Tool/hpc++.xml
+++ b/src/engine/SCons/Tool/hpc++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="hpc++">
<summary>
@@ -31,4 +31,4 @@ Set construction variables for the compilers aCC on HP/UX systems.
</summary>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/hpcc.xml b/src/engine/SCons/Tool/hpcc.xml
index 11b3825..f304b90 100644
--- a/src/engine/SCons/Tool/hpcc.xml
+++ b/src/engine/SCons/Tool/hpcc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="hpcc">
<summary>
@@ -38,4 +38,4 @@ Calls the &t-cXX; tool for additional variables.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/hplink.xml b/src/engine/SCons/Tool/hplink.xml
index 26246c1..07d9bb9 100644
--- a/src/engine/SCons/Tool/hplink.xml
+++ b/src/engine/SCons/Tool/hplink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="hplink">
<summary>
@@ -36,4 +36,4 @@ Sets construction variables for the linker on HP/UX systems.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/icc.xml b/src/engine/SCons/Tool/icc.xml
index 69b1238..f4c3dda 100644
--- a/src/engine/SCons/Tool/icc.xml
+++ b/src/engine/SCons/Tool/icc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="icc">
<summary>
@@ -50,4 +50,4 @@ Sets construction variables for the
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/icl.xml b/src/engine/SCons/Tool/icl.xml
index a526987..d6c9723 100644
--- a/src/engine/SCons/Tool/icl.xml
+++ b/src/engine/SCons/Tool/icl.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="icl">
<summary>
@@ -32,4 +32,4 @@ Calls the &t-intelc; Tool module to set its variables.
</summary>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ifl.xml b/src/engine/SCons/Tool/ifl.xml
index d4b7f90..7f7a7d4 100644
--- a/src/engine/SCons/Tool/ifl.xml
+++ b/src/engine/SCons/Tool/ifl.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="ifl">
<summary>
@@ -44,4 +44,4 @@ Sets construction variables for the Intel Fortran compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ifort.xml b/src/engine/SCons/Tool/ifort.xml
index aa252ea..7b05b7d 100644
--- a/src/engine/SCons/Tool/ifort.xml
+++ b/src/engine/SCons/Tool/ifort.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="ifort">
<summary>
@@ -46,4 +46,4 @@ of the Intel Fortran compiler for Linux.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ilink.xml b/src/engine/SCons/Tool/ilink.xml
index 2aa57e7..e5f818f 100644
--- a/src/engine/SCons/Tool/ilink.xml
+++ b/src/engine/SCons/Tool/ilink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="ilink">
<summary>
@@ -43,4 +43,4 @@ Sets construction variables for the
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ilink32.xml b/src/engine/SCons/Tool/ilink32.xml
index 396b07d..0ae6f2b 100644
--- a/src/engine/SCons/Tool/ilink32.xml
+++ b/src/engine/SCons/Tool/ilink32.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="ilink32">
<summary>
@@ -43,4 +43,4 @@ Sets construction variables for the Borland
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/install.xml b/src/engine/SCons/Tool/install.xml
index 14f5854..0a0ad71 100644
--- a/src/engine/SCons/Tool/install.xml
+++ b/src/engine/SCons/Tool/install.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="install">
@@ -89,4 +89,4 @@ env.InstallAs(target = ['../lib/libfoo.a', '../lib/libbar.a'],
</summary>
</builder>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/intelc.py b/src/engine/SCons/Tool/intelc.py
index 4201092..57258f3 100644
--- a/src/engine/SCons/Tool/intelc.py
+++ b/src/engine/SCons/Tool/intelc.py
@@ -156,7 +156,43 @@ def get_intel_registry_value(valuename, version=None, abi=None):
try:
k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
except SCons.Util.RegError:
- raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+ # For version 13 and later, check UUID subkeys for valuename
+ if is_win64:
+ K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\Defaults\\C++\\" + abi.upper()
+ else:
+ K = 'Software\\Intel\\Suites\\' + version + "\\Defaults\\C++\\" + abi.upper()
+ try:
+ k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+ uuid = SCons.Util.RegQueryValueEx(k, 'SubKey')[0]
+
+ if is_win64:
+ K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++"
+ else:
+ K = 'Software\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++"
+ k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+
+ try:
+ v = SCons.Util.RegQueryValueEx(k, valuename)[0]
+ return v # or v.encode('iso-8859-1', 'replace') to remove unicode?
+ except SCons.Util.RegError:
+ if abi.upper() == 'EM64T':
+ abi = 'em64t_native'
+ if is_win64:
+ K = 'Software\\Wow6432Node\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++\\" + abi.upper()
+ else:
+ K = 'Software\\Intel\\Suites\\' + version + "\\" + uuid + "\\C++\\" + abi.upper()
+ k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K)
+
+ try:
+ v = SCons.Util.RegQueryValueEx(k, valuename)[0]
+ return v # or v.encode('iso-8859-1', 'replace') to remove unicode?
+ except SCons.Util.RegError:
+ raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+
+ except SCons.Util.RegError:
+ raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
+ except WindowsError:
+ raise MissingRegistryError("%s was not found in the registry, for Intel compiler version %s, abi='%s'"%(K, version,abi))
# Get the value:
try:
@@ -180,7 +216,16 @@ def get_all_compiler_versions():
k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
keyname)
except WindowsError:
- return []
+ # For version 13 or later, check for default instance UUID
+ if is_win64:
+ keyname = 'Software\\WoW6432Node\\Intel\\Suites'
+ else:
+ keyname = 'Software\\Intel\\Suites'
+ try:
+ k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
+ keyname)
+ except WindowsError:
+ return []
i = 0
versions = []
try:
@@ -192,6 +237,9 @@ def get_all_compiler_versions():
# and then the install directory deleted or moved (rather
# than uninstalling properly), so the registry values
# are still there.
+ if subkey == 'Defaults': # Ignore default instances
+ i = i + 1
+ continue
ok = False
for try_abi in ('IA32', 'IA32e', 'IA64', 'EM64T'):
try:
@@ -268,9 +316,17 @@ def get_intel_compiler_top(version, abi):
if not SCons.Util.can_read_reg:
raise NoRegistryModuleError("No Windows registry module was found")
top = get_intel_registry_value('ProductDir', version, abi)
+ archdir={'x86_64': 'intel64',
+ 'amd64' : 'intel64',
+ 'em64t' : 'intel64',
+ 'x86' : 'ia32',
+ 'i386' : 'ia32',
+ 'ia32' : 'ia32'
+ }[abi] # for v11 and greater
# pre-11, icl was in Bin. 11 and later, it's in Bin/<abi> apparently.
if not os.path.exists(os.path.join(top, "Bin", "icl.exe")) \
- and not os.path.exists(os.path.join(top, "Bin", abi, "icl.exe")):
+ and not os.path.exists(os.path.join(top, "Bin", abi, "icl.exe")) \
+ and not os.path.exists(os.path.join(top, "Bin", archdir, "icl.exe")):
raise MissingDirError("Can't find Intel compiler in %s"%(top))
elif is_mac or is_linux:
def find_in_2008style_dir(version):
@@ -317,7 +373,7 @@ def get_intel_compiler_top(version, abi):
for d in glob.glob('/opt/intel/composerxe-*'):
# Typical dir here is /opt/intel/composerxe-2011.4.184
m = re.search(r'([0-9][0-9.]*)$', d)
- if m and m.group(1) == verison and \
+ if m and m.group(1) == version and \
(os.path.exists(os.path.join(d, "bin", "ia32", "icc")) or
os.path.exists(os.path.join(d, "bin", "intel64", "icc"))):
top = d
diff --git a/src/engine/SCons/Tool/intelc.xml b/src/engine/SCons/Tool/intelc.xml
index 4e63a9f..391d1c3 100644
--- a/src/engine/SCons/Tool/intelc.xml
+++ b/src/engine/SCons/Tool/intelc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="intelc">
<summary>
@@ -55,4 +55,4 @@ selected for use.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/jar.xml b/src/engine/SCons/Tool/jar.xml
index 1716120..1197b62 100644
--- a/src/engine/SCons/Tool/jar.xml
+++ b/src/engine/SCons/Tool/jar.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="jar">
<summary>
@@ -148,4 +148,4 @@ by default.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/javac.xml b/src/engine/SCons/Tool/javac.xml
index 5ff0e74..543d669 100644
--- a/src/engine/SCons/Tool/javac.xml
+++ b/src/engine/SCons/Tool/javac.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="javac">
<summary>
@@ -282,4 +282,4 @@ build is actually up to date.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/javacTests.py b/src/engine/SCons/Tool/javacTests.py
index 4631c8a..bf75d8a 100644
--- a/src/engine/SCons/Tool/javacTests.py
+++ b/src/engine/SCons/Tool/javacTests.py
@@ -24,6 +24,8 @@
import os
import unittest
+import TestUnit
+
import SCons.Tool.javac
class DummyNode(object):
@@ -99,4 +101,5 @@ class pathoptTestCase(unittest.TestCase):
'')
if __name__ == "__main__":
- unittest.main()
+ suite = unittest.makeSuite(pathoptTestCase, 'test_')
+ TestUnit.run(suite)
diff --git a/src/engine/SCons/Tool/javah.xml b/src/engine/SCons/Tool/javah.xml
index a6aed08..d944a48 100644
--- a/src/engine/SCons/Tool/javah.xml
+++ b/src/engine/SCons/Tool/javah.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="javah">
<summary>
@@ -134,4 +134,4 @@ for Java classes.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/latex.xml b/src/engine/SCons/Tool/latex.xml
index 6c85977..4a2760d 100644
--- a/src/engine/SCons/Tool/latex.xml
+++ b/src/engine/SCons/Tool/latex.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="latex">
<summary>
@@ -103,4 +103,4 @@ directories for \include and \import files.
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/ldc.py b/src/engine/SCons/Tool/ldc.py
new file mode 100644
index 0000000..aee6701
--- /dev/null
+++ b/src/engine/SCons/Tool/ldc.py
@@ -0,0 +1,128 @@
+"""SCons.Tool.ldc
+
+Tool-specific initialization for the LDC compiler.
+(http://www.dsource.org/projects/ldc)
+
+Developed by Russel Winder (russel@winder.org.uk)
+2012-05-09 onwards
+
+Compiler variables:
+ DC - The name of the D compiler to use. Defaults to ldc2.
+ DPATH - List of paths to search for import modules.
+ DVERSIONS - List of version tags to enable when compiling.
+ DDEBUG - List of debug tags to enable when compiling.
+
+Linker related variables:
+ LIBS - List of library files to link in.
+ DLINK - Name of the linker to use. Defaults to ldc2.
+ DLINKFLAGS - List of linker flags.
+
+Lib tool variables:
+ DLIB - Name of the lib tool to use. Defaults to lib.
+ DLIBFLAGS - List of flags to pass to the lib tool.
+ LIBS - Same as for the linker. (libraries to pull into the .lib)
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import os
+import subprocess
+
+import SCons.Action
+import SCons.Builder
+import SCons.Defaults
+import SCons.Scanner.D
+import SCons.Tool
+
+import SCons.Tool.DCommon
+
+
+def generate(env):
+ static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
+
+ static_obj.add_action('.d', SCons.Defaults.DAction)
+ shared_obj.add_action('.d', SCons.Defaults.ShDAction)
+ static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
+ shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
+
+ env['DC'] = env.Detect('ldc2')
+ env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of=$TARGET $SOURCES'
+ env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+ env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)} $)'
+ env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
+ env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
+
+ env['SHDC'] = '$DC'
+ env['SHDCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -relocation-model=pic -of=$TARGET $SOURCES'
+
+ env['DPATH'] = ['#/']
+ env['DFLAGS'] = []
+ env['DVERSIONS'] = []
+ env['DDEBUG'] = []
+
+ env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 0
+
+ if env['DC']:
+ SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
+
+ env['DINCPREFIX'] = '-I='
+ env['DINCSUFFIX'] = ''
+ env['DVERPREFIX'] = '-version='
+ env['DVERSUFFIX'] = ''
+ env['DDEBUGPREFIX'] = '-debug='
+ env['DDEBUGSUFFIX'] = ''
+ env['DFLAGPREFIX'] = '-'
+ env['DFLAGSUFFIX'] = ''
+ env['DFILESUFFIX'] = '.d'
+
+ env['DLINK'] = '$DC'
+ env['DLINKCOM'] = '$DLINK -of=$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+ env['SHDLINKCOM'] = '$DLINK -shared -of=$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
+
+ env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
+ env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {} $TARGET $SOURCES $_DLINKLIBFLAGS'.format('-c' if env['PLATFORM'] == 'win32' else '')
+
+ env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
+ env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
+ env['DLINKFLAGS'] = ['-L-L.']
+ env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l'
+ env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
+ env['DLIBFLAGPREFIX'] = '-'
+ env['DLIBFLAGSUFFIX'] = ''
+ env['DLINKFLAGPREFIX'] = '-'
+ env['DLINKFLAGSUFFIX'] = ''
+
+ SCons.Tool.createStaticLibBuilder(env)
+
+
+def exists(env):
+ return env.Detect('ldc2')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/src/engine/SCons/Tool/ldc.xml b/src/engine/SCons/Tool/ldc.xml
new file mode 100644
index 0000000..e8879f8
--- /dev/null
+++ b/src/engine/SCons/Tool/ldc.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+<tool name="dmd">
+<summary>
+Sets construction variables for the D language compiler LDC2.
+</summary>
+<sets>
+<item>DC</item>
+<item>DCOM</item>
+<item>_DINCFLAGS</item>
+<item>_DVERFLAGS</item>
+<item>_DDEBUGFLAGS</item>
+<item>_DFLAGS</item>
+<item>SHDC</item>
+<item>SHDCOM</item>
+<item>DPATH</item>
+<item>DFLAGS</item>
+<item>DVERSIONS</item>
+<item>DDEBUG</item>
+<item>STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME</item>
+<item>DINCPREFIX</item>
+<item>DINCSUFFIX</item>
+<item>DVERPREFIX</item>
+<item>DVERSUFFIX</item>
+<item>DDEBUGPREFIX</item>
+<item>DDEBUGSUFFIX</item>
+<item>DFLAGPREFIX</item>
+<item>DFLAGSUFFIX</item>
+<item>DFLESUFFIX</item>
+<item>DLINK</item>
+<item>DLINKCOM</item>
+<item>SHDLINKCOM</item>
+<item>DLIB</item>
+<item>DLIBCOM</item>
+<item>_DLINKLIBFLAGS</item>
+<item>_DLIBFLAGS</item>
+<item>DLINKFLAGS</item>
+<item>DLIBLINKPREFIX</item>
+<item>DLIBLINKSUFFIX</item>
+<item>DLIBFLAGPREFIX</item>
+<item>DLIBFLAGSUFFIX</item>
+<item>DLINKFLAGPREFIX</item>
+<item>DLINKFLAGSUFFIX</item>
+</sets>
+<uses>
+</uses>
+</tool>
diff --git a/src/engine/SCons/Tool/lex.xml b/src/engine/SCons/Tool/lex.xml
index 22df0e4..0388ee3 100644
--- a/src/engine/SCons/Tool/lex.xml
+++ b/src/engine/SCons/Tool/lex.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="lex">
<summary>
@@ -78,4 +78,4 @@ General options passed to the lexical analyzer generator.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/link.py b/src/engine/SCons/Tool/link.py
index 3f20fe0..baa7407 100644
--- a/src/engine/SCons/Tool/link.py
+++ b/src/engine/SCons/Tool/link.py
@@ -42,6 +42,8 @@ import SCons.Warnings
from SCons.Tool.FortranCommon import isfortran
+from SCons.Tool.DCommon import isD
+
cplusplus = __import__('c++', globals(), locals(), [])
issued_mixed_link_warning = False
@@ -49,7 +51,8 @@ issued_mixed_link_warning = False
def smart_link(source, target, env, for_signature):
has_cplusplus = cplusplus.iscplusplus(source)
has_fortran = isfortran(env, source)
- if has_cplusplus and has_fortran:
+ has_d = isD(env, source)
+ if has_cplusplus and has_fortran and not has_d:
global issued_mixed_link_warning
if not issued_mixed_link_warning:
msg = "Using $CXX to link Fortran and C++ code together.\n\t" + \
@@ -59,6 +62,10 @@ def smart_link(source, target, env, for_signature):
msg % env.subst('$CXX'))
issued_mixed_link_warning = True
return '$CXX'
+ elif has_d:
+ env['LINKCOM'] = env['DLINKCOM']
+ env['SHLINKCOM'] = env['SHDLINKCOM']
+ return '$DC'
elif has_fortran:
return '$FORTRAN'
elif has_cplusplus:
@@ -138,7 +145,7 @@ def shlib_emitter_names(target, source, env):
print "shlib_emitter_names: side effect: ", name
# add version_name to list of names to be a Side effect
version_names.append(version_name)
-
+
except KeyError:
version = None
return version_names
@@ -178,8 +185,8 @@ def generate(env):
# don't set up the emitter, cause AppendUnique will generate a list
# starting with None :-(
env.Append(LDMODULEEMITTER='$SHLIBEMITTER')
- env['LDMODULEPREFIX'] = '$SHLIBPREFIX'
- env['LDMODULESUFFIX'] = '$SHLIBSUFFIX'
+ env['LDMODULEPREFIX'] = '$SHLIBPREFIX'
+ env['LDMODULESUFFIX'] = '$SHLIBSUFFIX'
env['LDMODULEFLAGS'] = '$SHLINKFLAGS'
env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
diff --git a/src/engine/SCons/Tool/link.xml b/src/engine/SCons/Tool/link.xml
index 0a9b5be..d357648 100644
--- a/src/engine/SCons/Tool/link.xml
+++ b/src/engine/SCons/Tool/link.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="link">
<summary>
@@ -223,4 +223,4 @@ for the variable that expands to library search path options.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/linkloc.xml b/src/engine/SCons/Tool/linkloc.xml
index bf2b6a7..aa17ae0 100644
--- a/src/engine/SCons/Tool/linkloc.xml
+++ b/src/engine/SCons/Tool/linkloc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="linkloc">
<summary>
@@ -51,4 +51,4 @@ linker for the Phar Lap ETS embedded operating system.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/m4.xml b/src/engine/SCons/Tool/m4.xml
index 56c9315..1957dc9 100644
--- a/src/engine/SCons/Tool/m4.xml
+++ b/src/engine/SCons/Tool/m4.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="m4">
<summary>
@@ -91,4 +91,4 @@ General options passed to the M4 macro preprocessor.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/masm.xml b/src/engine/SCons/Tool/masm.xml
index 17df849..b3a6a7a 100644
--- a/src/engine/SCons/Tool/masm.xml
+++ b/src/engine/SCons/Tool/masm.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="masm">
<summary>
@@ -46,4 +46,4 @@ Sets construction variables for the Microsoft assembler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/midl.xml b/src/engine/SCons/Tool/midl.xml
index b253073..1420978 100644
--- a/src/engine/SCons/Tool/midl.xml
+++ b/src/engine/SCons/Tool/midl.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="midl">
<summary>
@@ -100,4 +100,4 @@ General options passed to the Microsoft IDL compiler.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/mingw.xml b/src/engine/SCons/Tool/mingw.xml
index 57b8d59..0ad7e95 100644
--- a/src/engine/SCons/Tool/mingw.xml
+++ b/src/engine/SCons/Tool/mingw.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mingw">
<summary>
@@ -58,4 +58,4 @@ Sets construction variables for MinGW (Minimal Gnu on Windows).
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msgfmt.xml b/src/engine/SCons/Tool/msgfmt.xml
index f973afa..77a1498 100644
--- a/src/engine/SCons/Tool/msgfmt.xml
+++ b/src/engine/SCons/Tool/msgfmt.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="msgfmt">
<summary>
@@ -142,4 +142,4 @@ See &t-link-msgfmt; tool and &b-link-MOFiles; builder.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msginit.xml b/src/engine/SCons/Tool/msginit.xml
index 7ce785c..0099b29 100644
--- a/src/engine/SCons/Tool/msginit.xml
+++ b/src/engine/SCons/Tool/msginit.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="msginit">
<summary>
@@ -222,4 +222,4 @@ See &t-link-msginit; tool and &b-link-POInit; builder.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msgmerge.xml b/src/engine/SCons/Tool/msgmerge.xml
index f787ee1..2bfc6df 100644
--- a/src/engine/SCons/Tool/msgmerge.xml
+++ b/src/engine/SCons/Tool/msgmerge.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="msgmerge">
<summary>
@@ -208,4 +208,4 @@ See &t-link-msgmerge; tool and &b-link-POUpdate; builder.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/mslib.xml b/src/engine/SCons/Tool/mslib.xml
index a4ce96a..d65bf48 100644
--- a/src/engine/SCons/Tool/mslib.xml
+++ b/src/engine/SCons/Tool/mslib.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mslib">
<summary>
@@ -43,4 +43,4 @@ library archiver.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/mslink.xml b/src/engine/SCons/Tool/mslink.xml
index 74f2dbf..87e1768 100644
--- a/src/engine/SCons/Tool/mslink.xml
+++ b/src/engine/SCons/Tool/mslink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mslink">
<summary>
@@ -347,4 +347,4 @@ generated by Microsoft Visual C/C++.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/mssdk.xml b/src/engine/SCons/Tool/mssdk.xml
index 0dc6f13..4444793 100644
--- a/src/engine/SCons/Tool/mssdk.xml
+++ b/src/engine/SCons/Tool/mssdk.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mssdk">
<summary>
@@ -74,4 +74,4 @@ and
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msvc.xml b/src/engine/SCons/Tool/msvc.xml
index 8b66e34..793784f 100644
--- a/src/engine/SCons/Tool/msvc.xml
+++ b/src/engine/SCons/Tool/msvc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="msvc">
<summary>
@@ -347,9 +347,28 @@ If &cv-MSVC_VERSION; is not set, SCons will (by default) select the
latest version of Visual C/C++ installed on your system. If the
specified version isn't installed, tool initialization will fail.
This variable must be passed as an argument to the Environment()
-constructor; setting it later has no effect. Set it to an unexpected
-value (e.g. "XXX") to see the valid values on your system.
+constructor; setting it later has no effect.
</para>
+
+<para>
+Valid values for Windows are
+<literal>12.0</literal>,
+<literal>12.0Exp</literal>,
+<literal>11.0</literal>,
+<literal>11.0Exp</literal>,
+<literal>10.0</literal>,
+<literal>10.0Exp</literal>,
+<literal>9.0</literal>,
+<literal>9.0Exp</literal>,
+<literal>8.0</literal>,
+<literal>8.0Exp</literal>,
+<literal>7.1</literal>,
+<literal>7.0</literal>,
+and <literal>6.0</literal>.
+Versions ending in <literal>Exp</literal> refer to "Express" or
+"Express for Desktop" editions.
+</para>
+
</summary>
</cvar>
@@ -421,4 +440,4 @@ For example, if you want to compile 64-bit binaries, you would set
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msvs.xml b/src/engine/SCons/Tool/msvs.xml
index a54ddb6..88a3346 100644
--- a/src/engine/SCons/Tool/msvs.xml
+++ b/src/engine/SCons/Tool/msvs.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="msvs">
<summary>
@@ -654,4 +654,4 @@ from Microsoft Visual Studio project files.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/msvsTests.py b/src/engine/SCons/Tool/msvsTests.py
index 7d966c1..2f4f302 100644
--- a/src/engine/SCons/Tool/msvsTests.py
+++ b/src/engine/SCons/Tool/msvsTests.py
@@ -25,11 +25,14 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import os
import sys
-import TestCmd
import unittest
import copy
+import TestCmd
+import TestUnit
+
from SCons.Tool.msvs import *
+from SCons.Tool.MSCommon.vs import SupportedVSList
import SCons.Util
import SCons.Warnings
@@ -547,15 +550,17 @@ class msvsTestCase(unittest.TestCase):
def test_get_default_version(self):
"""Test retrieval of the default visual studio version"""
-
+
debug("Testing for default version %s"%self.default_version)
env = DummyEnv()
v1 = get_default_version(env)
if v1:
assert env['MSVS_VERSION'] == self.default_version, \
- ("env['MSVS_VERSION'] != self.default_version",self.default_version, env['MSVS_VERSION'])
+ ("env['MSVS_VERSION'] != self.default_version",
+ env['MSVS_VERSION'],self.default_version)
assert env['MSVS']['VERSION'] == self.default_version, \
- ("env['MSVS']['VERSION'] != self.default_version",self.default_version, env['MSVS']['VERSION'])
+ ("env['MSVS']['VERSION'] != self.default_version",
+ env['MSVS']['VERSION'], self.default_version)
assert v1 == self.default_version, (self.default_version, v1)
env = DummyEnv({'MSVS_VERSION':'7.0'})
@@ -701,7 +706,7 @@ class msvs80TestCase(msvsTestCase):
class msvsEmptyTestCase(msvsTestCase):
"""Test Empty Registry"""
registry = DummyRegistry(regdata_none)
- default_version = '11.0'
+ default_version = SupportedVSList[0].version
highest_version = None
number_of_versions = 0
install_locs = {
@@ -724,7 +729,7 @@ if __name__ == "__main__":
SCons.Util.RegEnumKey = DummyEnumKey
SCons.Util.RegEnumValue = DummyEnumValue
SCons.Util.RegQueryValueEx = DummyQueryValue
-
+
os.path.exists = DummyExists # make sure all files exist :-)
os.path.isfile = DummyExists # make sure all files are files :-)
os.path.isdir = DummyExists # make sure all dirs are dirs :-)
@@ -756,7 +761,7 @@ if __name__ == "__main__":
del os.environ[k]
suite = unittest.makeSuite(test_class, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
+ if not TestUnit.cli.get_runner()().run(suite).wasSuccessful():
exit_val = 1
finally:
os.env = back_osenv
diff --git a/src/engine/SCons/Tool/mwcc.xml b/src/engine/SCons/Tool/mwcc.xml
index 076d727..4073dd5 100644
--- a/src/engine/SCons/Tool/mwcc.xml
+++ b/src/engine/SCons/Tool/mwcc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mwcc">
<summary>
@@ -77,4 +77,4 @@ on this system.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/mwld.xml b/src/engine/SCons/Tool/mwld.xml
index 53dc5e6..a683794 100644
--- a/src/engine/SCons/Tool/mwld.xml
+++ b/src/engine/SCons/Tool/mwld.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="mwld">
<summary>
@@ -47,4 +47,4 @@ Sets construction variables for the Metrowerks CodeWarrior linker.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/nasm.xml b/src/engine/SCons/Tool/nasm.xml
index 4d23401..f26eb78 100644
--- a/src/engine/SCons/Tool/nasm.xml
+++ b/src/engine/SCons/Tool/nasm.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="nasm">
<summary>
@@ -43,4 +43,4 @@ Sets construction variables for the
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/packaging.xml b/src/engine/SCons/Tool/packaging.xml
index 5dd9a04..877b88f 100644
--- a/src/engine/SCons/Tool/packaging.xml
+++ b/src/engine/SCons/Tool/packaging.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="packaging">
<summary>
@@ -107,4 +107,4 @@ by default.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/packaging/__init__.xml b/src/engine/SCons/Tool/packaging/__init__.xml
index 4e38120..e4b1865 100644
--- a/src/engine/SCons/Tool/packaging/__init__.xml
+++ b/src/engine/SCons/Tool/packaging/__init__.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="Packaging">
<summary>
@@ -842,4 +842,4 @@ Returns all files "built" by the &b-Install; or &b-InstallAs; builders.
</function>
-->
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/pdf.xml b/src/engine/SCons/Tool/pdf.xml
index aafe510..037494b 100644
--- a/src/engine/SCons/Tool/pdf.xml
+++ b/src/engine/SCons/Tool/pdf.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="pdf">
<summary>
@@ -75,4 +75,4 @@ The suffix used for PDF file names.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/pdflatex.xml b/src/engine/SCons/Tool/pdflatex.xml
index f9283ee..af4970c 100644
--- a/src/engine/SCons/Tool/pdflatex.xml
+++ b/src/engine/SCons/Tool/pdflatex.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="pdflatex">
<summary>
@@ -77,4 +77,4 @@ General options passed to the &pdflatex; utility.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/pdftex.xml b/src/engine/SCons/Tool/pdftex.xml
index 99ad64a..cf7e70c 100644
--- a/src/engine/SCons/Tool/pdftex.xml
+++ b/src/engine/SCons/Tool/pdftex.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="pdftex">
<summary>
@@ -81,4 +81,4 @@ General options passed to the &pdftex; utility.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/qt.xml b/src/engine/SCons/Tool/qt.xml
index e905462..6f8d668 100644
--- a/src/engine/SCons/Tool/qt.xml
+++ b/src/engine/SCons/Tool/qt.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="qt">
<summary>
@@ -403,4 +403,4 @@ Default value is '.ui'. Suffix of designer input files.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/rmic.xml b/src/engine/SCons/Tool/rmic.xml
index fd10002..bc9e2ba 100644
--- a/src/engine/SCons/Tool/rmic.xml
+++ b/src/engine/SCons/Tool/rmic.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="rmic">
<summary>
@@ -125,4 +125,4 @@ General options passed to the Java RMI stub compiler.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/rpcgen.xml b/src/engine/SCons/Tool/rpcgen.xml
index a255db7..087bf38 100644
--- a/src/engine/SCons/Tool/rpcgen.xml
+++ b/src/engine/SCons/Tool/rpcgen.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="rpcgen">
<summary>
@@ -177,4 +177,4 @@ construction variable.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/rpmutils.py b/src/engine/SCons/Tool/rpmutils.py
index 90e3d74..e20d53b 100644
--- a/src/engine/SCons/Tool/rpmutils.py
+++ b/src/engine/SCons/Tool/rpmutils.py
@@ -10,7 +10,7 @@ mimic the exact naming rules of the RPM source code.
They were directly derived from the file "rpmrc.in" of the version
rpm-4.9.1.3. For updating to a more recent version of RPM, this Python
script can be used standalone. The usage() function below shows the
-exact syntax.
+exact syntax.
"""
@@ -39,6 +39,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import platform
+import subprocess
# Start of rpmrc dictionaries (Marker, don't change or remove!)
os_canon = {
@@ -435,20 +436,29 @@ arch_canon = {
# End of rpmrc dictionaries (Marker, don't change or remove!)
-def defaultMachine():
+def defaultMachine(use_rpm_default=True):
""" Return the canonicalized machine name. """
- rmachine = platform.machine()
-
- # Try to lookup the string in the canon table
- if rmachine in arch_canon:
- rmachine = arch_canon[rmachine][0]
-
+
+ if use_rpm_default:
+ try:
+ # This should be the most reliable way to get the default arch
+ rmachine = subprocess.check_output(['rpm', '--eval=%_target_cpu'], shell=False).rstrip()
+ except Exception as e:
+ # Something went wrong, try again by looking up platform.machine()
+ return defaultMachine(False)
+ else:
+ rmachine = platform.machine()
+
+ # Try to lookup the string in the canon table
+ if rmachine in arch_canon:
+ rmachine = arch_canon[rmachine][0]
+
return rmachine
def defaultSystem():
""" Return the canonicalized system name. """
rsystem = platform.system()
-
+
# Try to lookup the string in the canon tables
if rsystem in os_canon:
rsystem = os_canon[rsystem][0]
@@ -523,7 +533,7 @@ def usage():
def main():
import sys
-
+
if len(sys.argv) < 3:
usage()
sys.exit(0)
diff --git a/src/engine/SCons/Tool/sgiar.xml b/src/engine/SCons/Tool/sgiar.xml
index 04e575a..d964bee 100644
--- a/src/engine/SCons/Tool/sgiar.xml
+++ b/src/engine/SCons/Tool/sgiar.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sgiar">
<summary>
@@ -44,4 +44,4 @@ Sets construction variables for the SGI library archiver.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sgic++.xml b/src/engine/SCons/Tool/sgic++.xml
index fa4a861..2fea7b3 100644
--- a/src/engine/SCons/Tool/sgic++.xml
+++ b/src/engine/SCons/Tool/sgic++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sgic++">
<summary>
@@ -38,4 +38,4 @@ Sets construction variables for the SGI C++ compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sgicc.xml b/src/engine/SCons/Tool/sgicc.xml
index 0ade0fb..ecf2b66 100644
--- a/src/engine/SCons/Tool/sgicc.xml
+++ b/src/engine/SCons/Tool/sgicc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sgicc">
<summary>
@@ -38,4 +38,4 @@ Sets construction variables for the SGI C compiler.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sgilink.xml b/src/engine/SCons/Tool/sgilink.xml
index b3f8d04..7a15562 100644
--- a/src/engine/SCons/Tool/sgilink.xml
+++ b/src/engine/SCons/Tool/sgilink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sgilink">
<summary>
@@ -37,4 +37,4 @@ Sets construction variables for the SGI linker.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunar.xml b/src/engine/SCons/Tool/sunar.xml
index b285cbd..65f0c9e 100644
--- a/src/engine/SCons/Tool/sunar.xml
+++ b/src/engine/SCons/Tool/sunar.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunar">
<summary>
@@ -45,4 +45,4 @@ Sets construction variables for the Sun library archiver.
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunc++.xml b/src/engine/SCons/Tool/sunc++.xml
index 269b8d1..4d28f29 100644
--- a/src/engine/SCons/Tool/sunc++.xml
+++ b/src/engine/SCons/Tool/sunc++.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunc++">
<summary>
@@ -39,4 +39,4 @@ Sets construction variables for the Sun C++ compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/suncc.xml b/src/engine/SCons/Tool/suncc.xml
index df3e801..f64adc4 100644
--- a/src/engine/SCons/Tool/suncc.xml
+++ b/src/engine/SCons/Tool/suncc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="suncc">
<summary>
@@ -37,4 +37,4 @@ Sets construction variables for the Sun C compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunf77.xml b/src/engine/SCons/Tool/sunf77.xml
index a90247a..ebbddfc 100644
--- a/src/engine/SCons/Tool/sunf77.xml
+++ b/src/engine/SCons/Tool/sunf77.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunf77">
<summary>
@@ -39,4 +39,4 @@ Set construction variables for the Sun &f77; Fortran compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunf90.xml b/src/engine/SCons/Tool/sunf90.xml
index ea43f7d..82a220b 100644
--- a/src/engine/SCons/Tool/sunf90.xml
+++ b/src/engine/SCons/Tool/sunf90.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunf90">
<summary>
@@ -39,4 +39,4 @@ Set construction variables for the Sun &f90; Fortran compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunf95.xml b/src/engine/SCons/Tool/sunf95.xml
index 1b2f8ee..2e9a191 100644
--- a/src/engine/SCons/Tool/sunf95.xml
+++ b/src/engine/SCons/Tool/sunf95.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunf95">
<summary>
@@ -39,4 +39,4 @@ Set construction variables for the Sun &f95; Fortran compiler.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/sunlink.xml b/src/engine/SCons/Tool/sunlink.xml
index 14ccaab..7e92acc 100644
--- a/src/engine/SCons/Tool/sunlink.xml
+++ b/src/engine/SCons/Tool/sunlink.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="sunlink">
<summary>
@@ -36,4 +36,4 @@ Sets construction variables for the Sun linker.
</sets>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/swig.xml b/src/engine/SCons/Tool/swig.xml
index 3597205..2b817dc 100644
--- a/src/engine/SCons/Tool/swig.xml
+++ b/src/engine/SCons/Tool/swig.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="swig">
<summary>
@@ -264,4 +264,4 @@ The version number of the SWIG tool.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/tar.xml b/src/engine/SCons/Tool/tar.xml
index 63dc07d..c65317a 100644
--- a/src/engine/SCons/Tool/tar.xml
+++ b/src/engine/SCons/Tool/tar.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="tar">
<summary>
@@ -127,4 +127,4 @@ The suffix used for tar file names.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/tex.xml b/src/engine/SCons/Tool/tex.xml
index d074e7d..8965daf 100644
--- a/src/engine/SCons/Tool/tex.xml
+++ b/src/engine/SCons/Tool/tex.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="tex">
<summary>
@@ -170,4 +170,4 @@ General options passed to the TeX formatter and typesetter.
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/textfile.xml b/src/engine/SCons/Tool/textfile.xml
index c5e586b..aa6b0b1 100644
--- a/src/engine/SCons/Tool/textfile.xml
+++ b/src/engine/SCons/Tool/textfile.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="textfile">
<summary>
@@ -46,7 +46,7 @@ Set construction variables for the &b-Textfile; and &b-Substfile; builders.
<para>
The &b-Textfile; builder generates a single text file.
The source strings constitute the lines;
-nested lists of sources are flattened.
+nested lists of sources are flattened.
&cv-LINESEPARATOR; is used to separate the strings.
</para>
@@ -74,7 +74,7 @@ env.Textfile(target = 'bar',
LINESEPARATOR='|*')
# nested lists are flattened automatically
-env.Textfile(target = 'blob',
+env.Textfile(target = 'blob',
source = ['lalala', ['Goethe', 42 'Schiller'], 'tanteratei'])
# files may be used as input by wraping them in File()
@@ -110,11 +110,10 @@ blob.txt
<builder name="Substfile">
<summary>
<para>
-The &b-Substfile; builder generates a single text file
-by concatenating the source files.
-Nested lists of sources are flattened.
-&cv-LINESEPARATOR; is used to separate the source files;
-see the description of &b-Textfile; for details.
+The &b-Substfile; builder creates a single text file from another file or set of
+files by concatenating them with &cv-LINESEPARATOR; and replacing text
+using the &cv-SUBST_DICT; construction variable. Nested lists of source files
+are flattened. See also &b-Textfile;.
</para>
<para>
@@ -132,20 +131,18 @@ are automatically added to the target if they are not already present.
<para>
If a construction variable named &cv-SUBST_DICT; is present,
it may be either a Python dictionary or a sequence of (key,value) tuples.
-If the former,
-the dictionary is converted into a list of tuples in an arbitrary order,
+If it is a dictionary it is converted into a list of tuples in an arbitrary order,
so if one key is a prefix of another key
or if one substitution could be further expanded by another subsitition,
-it is unpredictible whether the expansion will occur.
+it is unpredictable whether the expansion will occur.
</para>
<para>
-Any occurences in the source of a key
+Any occurrences of a key in the source
are replaced by the corresponding value,
which may be a Python callable function or a string.
-If a value is a function,
-it is first called (with no arguments) to produce a string.
-The string is <emphasis>subst</emphasis>-expanded
+If the value is a callable, it is called with no arguments to get a string.
+Strings are <emphasis>subst</emphasis>-expanded
and the result replaces the key.
</para>
@@ -253,4 +250,4 @@ The suffix used for &b-Textfile; file names;
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/tlib.xml b/src/engine/SCons/Tool/tlib.xml
index a61953d..b9afef4 100644
--- a/src/engine/SCons/Tool/tlib.xml
+++ b/src/engine/SCons/Tool/tlib.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="tlib">
<summary>
@@ -42,4 +42,4 @@ Sets construction variables for the Borlan
</uses>
</tool>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/wixTests.py b/src/engine/SCons/Tool/wixTests.py
index c815dd0..c683e98 100644
--- a/src/engine/SCons/Tool/wixTests.py
+++ b/src/engine/SCons/Tool/wixTests.py
@@ -33,6 +33,8 @@ from SCons.Tool.wix import *
from SCons.Environment import Environment
import TestCmd
+import TestUnit
+
# create fake candle and light, so the tool's exists() method will succeed
test = TestCmd.TestCmd(workdir = '')
@@ -52,8 +54,7 @@ class WixTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(WixTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Tool/xgettext.xml b/src/engine/SCons/Tool/xgettext.xml
index 699e841..6e28a9d 100644
--- a/src/engine/SCons/Tool/xgettext.xml
+++ b/src/engine/SCons/Tool/xgettext.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="xgettext">
<summary>
@@ -370,4 +370,4 @@ from &cv-link-XGETTEXTFROM;.
-->
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/yacc.xml b/src/engine/SCons/Tool/yacc.xml
index e83806a..48ec4b0 100644
--- a/src/engine/SCons/Tool/yacc.xml
+++ b/src/engine/SCons/Tool/yacc.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="yacc">
<summary>
@@ -149,4 +149,4 @@ The default value is
</summary>
</cvar>
-</sconsdoc> \ No newline at end of file
+</sconsdoc>
diff --git a/src/engine/SCons/Tool/zip.xml b/src/engine/SCons/Tool/zip.xml
index f43aa31..2791909 100644
--- a/src/engine/SCons/Tool/zip.xml
+++ b/src/engine/SCons/Tool/zip.xml
@@ -21,7 +21,7 @@ See its __doc__ string for a discussion of the format.
<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+ xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
<tool name="zip">
<summary>
diff --git a/src/engine/SCons/UtilTests.py b/src/engine/SCons/UtilTests.py
index a1e6756..b0c15c5 100644
--- a/src/engine/SCons/UtilTests.py
+++ b/src/engine/SCons/UtilTests.py
@@ -32,6 +32,7 @@ import unittest
from collections import UserDict, UserList, UserString
import TestCmd
+import TestUnit
import SCons.Errors
@@ -789,8 +790,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/BoolVariableTests.py b/src/engine/SCons/Variables/BoolVariableTests.py
index 8ffb079..7110f6f 100644
--- a/src/engine/SCons/Variables/BoolVariableTests.py
+++ b/src/engine/SCons/Variables/BoolVariableTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Variables
@@ -117,8 +119,7 @@ class BoolVariableTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(BoolVariableTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/EnumVariableTests.py b/src/engine/SCons/Variables/EnumVariableTests.py
index f4b600d..931dfe2 100644
--- a/src/engine/SCons/Variables/EnumVariableTests.py
+++ b/src/engine/SCons/Variables/EnumVariableTests.py
@@ -26,6 +26,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Variables
@@ -194,8 +196,7 @@ class EnumVariableTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(EnumVariableTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/ListVariableTests.py b/src/engine/SCons/Variables/ListVariableTests.py
index 4959f69..adfd353 100644
--- a/src/engine/SCons/Variables/ListVariableTests.py
+++ b/src/engine/SCons/Variables/ListVariableTests.py
@@ -27,6 +27,8 @@ import copy
import sys
import unittest
+import TestUnit
+
import SCons.Errors
import SCons.Variables
@@ -124,8 +126,7 @@ class ListVariableTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(ListVariableTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/PackageVariableTests.py b/src/engine/SCons/Variables/PackageVariableTests.py
index 2a93348..3aa411d 100644
--- a/src/engine/SCons/Variables/PackageVariableTests.py
+++ b/src/engine/SCons/Variables/PackageVariableTests.py
@@ -30,6 +30,8 @@ import SCons.Errors
import SCons.Variables
import TestCmd
+import TestUnit
+
class PackageVariableTestCase(unittest.TestCase):
def test_PackageVariable(self):
@@ -114,8 +116,7 @@ class PackageVariableTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(PackageVariableTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/PathVariableTests.py b/src/engine/SCons/Variables/PathVariableTests.py
index 084154b..4266759 100644
--- a/src/engine/SCons/Variables/PathVariableTests.py
+++ b/src/engine/SCons/Variables/PathVariableTests.py
@@ -31,6 +31,8 @@ import SCons.Errors
import SCons.Variables
import TestCmd
+import TestUnit
+
class PathVariableTestCase(unittest.TestCase):
def test_PathVariable(self):
@@ -227,8 +229,7 @@ class PathVariableTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(PathVariableTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/Variables/VariablesTests.py b/src/engine/SCons/Variables/VariablesTests.py
index ad46bd6..d2110c1 100644
--- a/src/engine/SCons/Variables/VariablesTests.py
+++ b/src/engine/SCons/Variables/VariablesTests.py
@@ -25,7 +25,9 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+
import TestSCons
+import TestUnit
import SCons.Variables
import SCons.Subst
@@ -655,8 +657,7 @@ if __name__ == "__main__":
for tclass in tclasses:
names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/WarningsTests.py b/src/engine/SCons/WarningsTests.py
index 583b12a..7b8d00d 100644
--- a/src/engine/SCons/WarningsTests.py
+++ b/src/engine/SCons/WarningsTests.py
@@ -25,6 +25,9 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import sys
import unittest
+
+import TestUnit
+
import SCons.Warnings
class TestOutput(object):
@@ -125,8 +128,7 @@ class WarningsTestCase(unittest.TestCase):
if __name__ == "__main__":
suite = unittest.makeSuite(WarningsTestCase, 'test_')
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/engine/SCons/cppTests.py b/src/engine/SCons/cppTests.py
index 2f2025b..5a06bee 100644
--- a/src/engine/SCons/cppTests.py
+++ b/src/engine/SCons/cppTests.py
@@ -27,6 +27,8 @@ import atexit
import sys
import unittest
+import TestUnit
+
import cpp
@@ -705,8 +707,7 @@ if __name__ == '__main__':
pass
names.sort()
suite.addTests(list(map(tclass, names)))
- if not unittest.TextTestRunner().run(suite).wasSuccessful():
- sys.exit(1)
+ TestUnit.run(suite)
# Local Variables:
# tab-width:4
diff --git a/src/script/scons.py b/src/script/scons.py
index 46e6d2b..0c7b44c 100644
--- a/src/script/scons.py
+++ b/src/script/scons.py
@@ -38,6 +38,7 @@ __developer__ = "__DEVELOPER__"
import os
import sys
+
##############################################################################
# BEGIN STANDARD SCons SCRIPT HEADER
#
@@ -72,6 +73,11 @@ libs = []
if "SCONS_LIB_DIR" in os.environ:
libs.append(os.environ["SCONS_LIB_DIR"])
+# - running from source takes priority (since 2.3.2), excluding SCONS_LIB_DIR settings
+script_path = os.path.abspath(os.path.dirname(__file__))
+source_path = os.path.join(script_path, '..', 'engine')
+libs.append(source_path)
+
local_version = 'scons-local-' + __version__
local = 'scons-local'
if script_dir:
@@ -85,6 +91,8 @@ scons_version = 'scons-%s' % __version__
# preferred order of scons lookup paths
prefs = []
+
+# - running from egg check
try:
import pkg_resources
except ImportError:
@@ -181,12 +189,11 @@ if __name__ == "__main__":
try:
import SCons.Script
except:
- ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', 'engine')
- if os.path.exists(ROOT):
- sys.path += [ROOT]
- print("SCons import failed. Trying to run from source directory")
- import SCons.Script
-
+ print("Import failed. Unable to find SCons files in:")
+ for path in libs:
+ print " %s" % path
+ raise
+
# this does all the work, and calls sys.exit
# with the proper exit status when done.
SCons.Script.main()
diff --git a/test/AddOption/longopts.py b/test/AddOption/longopts.py
new file mode 100644
index 0000000..47ae4f1
--- /dev/null
+++ b/test/AddOption/longopts.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Verifies that the default name matching of optparse for long options
+gets properly suppressed. We don't allow for partial matching
+of argument names, because it would lead to trouble in the test
+case below...
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """\
+AddOption('--myargument', dest='myargument', type='string', default='gully')
+AddOption('--myarg', dest='myarg', type='string', default='balla')
+print("myargument: " + str(GetOption('myargument')))
+print("myarg: " + str(GetOption('myarg')))
+""")
+
+test.run('-Q -q .',
+ stdout="myargument: gully\nmyarg: balla\n")
+
+test.run('-Q -q . --myargument=helloworld',
+ stdout="myargument: helloworld\nmyarg: balla\n")
+
+test.run('-Q -q . --myarg=helloworld',
+ stdout="myargument: gully\nmyarg: helloworld\n")
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/Configure/Streamer1.py b/test/Configure/Streamer1.py
new file mode 100644
index 0000000..8f35308
--- /dev/null
+++ b/test/Configure/Streamer1.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test for BitBucket PR 126:
+
+SConf doesn't work well with 'io' module on pre-3.0 Python. This is because
+io.StringIO (used by SCons.SConf.Streamer) accepts only unicode strings.
+Non-unicode input causes it to raise an exception.
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """
+# SConstruct
+#
+# The CheckHello should return 'yes' if everything works fine. Otherwise it
+# returns 'failed'.
+#
+def hello(target, source, env):
+ import traceback
+ try:
+ print 'hello!\\n' # this breaks the script
+ with open(env.subst('$TARGET', target = target),'w') as f:
+ f.write('yes')
+ except:
+ # write to file, as stdout/stderr is broken
+ traceback.print_exc(file=open('traceback','w'))
+ return 0
+
+def CheckHello(context):
+ import sys
+ context.Display('Checking whether hello works... ')
+ stat,out = context.TryAction(hello,'','.in')
+ if stat and out:
+ context.Result(out)
+ else:
+ context.Result('failed')
+ return out
+
+env = Environment()
+cfg = Configure(env)
+
+cfg.AddTest('CheckHello', CheckHello)
+cfg.CheckHello()
+
+env = cfg.Finish()
+""")
+
+test.run(arguments = '.')
+test.must_contain_all_lines(test.stdout(), ['Checking whether hello works... yes'])
+test.must_not_exist('traceback')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/CoreScanner/Common/__init__.py b/test/D/CoreScanner/Common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/CoreScanner/Common/__init__.py
diff --git a/test/D/CoreScanner/Common/common.py b/test/D/CoreScanner/Common/common.py
new file mode 100644
index 0000000..657e83e
--- /dev/null
+++ b/test/D/CoreScanner/Common/common.py
@@ -0,0 +1,99 @@
+"""
+Verify that the D scanner can return multiple modules imported by
+a single statement.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ _obj = TestSCons._obj
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('Image')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format(tool))
+
+ arguments = 'test1%(_obj)s test2%(_obj)s' % locals()
+
+ if tool == 'dmd':
+ # The gdmd executable in Debian Unstable as at 2012-05-12, version 4.6.3 puts out messages on stderr
+ # that cause inappropriate failure of the tests, so simply ignore them.
+ test.run(arguments=arguments, stderr=None)
+ else:
+ test.run(arguments=arguments)
+
+ test.up_to_date(arguments=arguments)
+
+ test.write(['module2.d'], """\
+module module2;
+
+int something_else;
+""")
+
+ if tool == 'dmd':
+ # The gdmd executable in Debian Unstable as at 2012-05-12, version 4.6.3 puts out messages on stderr
+ # that cause inappropriate failure of the tests, so simply ignore them.
+ test.not_up_to_date(arguments=arguments, stderr=None)
+ else:
+ test.not_up_to_date(arguments=arguments)
+
+ test.up_to_date(arguments=arguments)
+
+ test.write(['p', 'submodule2.d'], """\
+module p.submodule2;
+
+int something_else;
+""")
+
+ if tool == 'dmd':
+ # The gdmd executable in Debian Unstable as at 2012-05-12, version 4.6.3 puts out messages on stderr
+ # that cause inappropriate failure of the tests, so simply ignore them.
+ test.not_up_to_date(arguments=arguments, stderr=None)
+ else:
+ test.not_up_to_date(arguments=arguments)
+
+ test.up_to_date(arguments=arguments)
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/CoreScanner/Common/sconstest.skip b/test/D/CoreScanner/Common/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/CoreScanner/Common/sconstest.skip
diff --git a/test/D/CoreScanner/Image/SConstruct_template b/test/D/CoreScanner/Image/SConstruct_template
new file mode 100644
index 0000000..a128c67
--- /dev/null
+++ b/test/D/CoreScanner/Image/SConstruct_template
@@ -0,0 +1,9 @@
+# -*- mode:python; coding:utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ tools=['link', '{}'])
+environment.Program('test1.d')
+environment.Program('test2.d')
diff --git a/test/D/CoreScanner/Image/ignored.d b/test/D/CoreScanner/Image/ignored.d
new file mode 100644
index 0000000..5b54a07
--- /dev/null
+++ b/test/D/CoreScanner/Image/ignored.d
@@ -0,0 +1,3 @@
+module ignored;
+
+int something;
diff --git a/test/D/CoreScanner/Image/module1.d b/test/D/CoreScanner/Image/module1.d
new file mode 100644
index 0000000..487c358
--- /dev/null
+++ b/test/D/CoreScanner/Image/module1.d
@@ -0,0 +1,3 @@
+module module1;
+
+int something;
diff --git a/test/D/CoreScanner/Image/module2.d b/test/D/CoreScanner/Image/module2.d
new file mode 100644
index 0000000..198fb74
--- /dev/null
+++ b/test/D/CoreScanner/Image/module2.d
@@ -0,0 +1,3 @@
+module module2;
+
+int something;
diff --git a/test/D/CoreScanner/Image/module3.di b/test/D/CoreScanner/Image/module3.di
new file mode 100644
index 0000000..effd4eb
--- /dev/null
+++ b/test/D/CoreScanner/Image/module3.di
@@ -0,0 +1,3 @@
+module module3;
+
+int something;
diff --git a/test/D/CoreScanner/Image/p/ignored.d b/test/D/CoreScanner/Image/p/ignored.d
new file mode 100644
index 0000000..43d2bd8
--- /dev/null
+++ b/test/D/CoreScanner/Image/p/ignored.d
@@ -0,0 +1,3 @@
+module p.ignored;
+
+int something;
diff --git a/test/D/CoreScanner/Image/p/submodule1.d b/test/D/CoreScanner/Image/p/submodule1.d
new file mode 100644
index 0000000..1ec0369
--- /dev/null
+++ b/test/D/CoreScanner/Image/p/submodule1.d
@@ -0,0 +1,3 @@
+module p.submodule1;
+
+int something;
diff --git a/test/D/CoreScanner/Image/p/submodule2.d b/test/D/CoreScanner/Image/p/submodule2.d
new file mode 100644
index 0000000..57a2825
--- /dev/null
+++ b/test/D/CoreScanner/Image/p/submodule2.d
@@ -0,0 +1,3 @@
+module p.submodule2;
+
+int something;
diff --git a/test/D/CoreScanner/Image/test1.d b/test/D/CoreScanner/Image/test1.d
new file mode 100644
index 0000000..d386d97
--- /dev/null
+++ b/test/D/CoreScanner/Image/test1.d
@@ -0,0 +1,9 @@
+import module1;
+import module2;
+import module3;
+import p.submodule1;
+import p.submodule2;
+
+int main() {
+ return 0;
+}
diff --git a/test/D/CoreScanner/Image/test2.d b/test/D/CoreScanner/Image/test2.d
new file mode 100644
index 0000000..f880d2f
--- /dev/null
+++ b/test/D/CoreScanner/Image/test2.d
@@ -0,0 +1,11 @@
+import
+ module1,
+ module2,
+ module3;
+import
+ p.submodule1,
+ p.submodule2;
+
+int main() {
+ return 0;
+}
diff --git a/test/D/CoreScanner/sconstest-dmd.py b/test/D/CoreScanner/sconstest-dmd.py
new file mode 100644
index 0000000..df6ddeb
--- /dev/null
+++ b/test/D/CoreScanner/sconstest-dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/CoreScanner/sconstest-gdc.py b/test/D/CoreScanner/sconstest-gdc.py
new file mode 100644
index 0000000..068f2c4
--- /dev/null
+++ b/test/D/CoreScanner/sconstest-gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/CoreScanner/sconstest-ldc.py b/test/D/CoreScanner/sconstest-ldc.py
new file mode 100644
index 0000000..f61efbc
--- /dev/null
+++ b/test/D/CoreScanner/sconstest-ldc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/DMD2.py b/test/D/DMD2.py
new file mode 100644
index 0000000..cc8ab93
--- /dev/null
+++ b/test/D/DMD2.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not test.where_is('dmd') and not test.where_is('gdmd'):
+ test.skip_test("Could not find 'dmd' or 'gdmd', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['link', 'dmd'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/DMD2_Alt.py b/test/D/DMD2_Alt.py
new file mode 100644
index 0000000..fbe2f2b
--- /dev/null
+++ b/test/D/DMD2_Alt.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not test.where_is('dmd') and not test.where_is('gdmd'):
+ test.skip_test("Could not find 'dmd' or 'gdmd', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['dmd', 'link'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/GDC.py b/test/D/GDC.py
new file mode 100644
index 0000000..e24ec43
--- /dev/null
+++ b/test/D/GDC.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not test.where_is('gdc'):
+ test.skip_test("Could not find 'gdc', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['link', 'gdc'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/GDC_Alt.py b/test/D/GDC_Alt.py
new file mode 100644
index 0000000..cac7949
--- /dev/null
+++ b/test/D/GDC_Alt.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not test.where_is('gdc'):
+ test.skip_test("Could not find 'gdc', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['gdc', 'link'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/ArLibIssue/SConstruct_template b/test/D/HSTeoh/ArLibIssue/SConstruct_template
new file mode 100644
index 0000000..81f81f5
--- /dev/null
+++ b/test/D/HSTeoh/ArLibIssue/SConstruct_template
@@ -0,0 +1,3 @@
+env = Environment({})
+
+env.StaticLibrary('mylib', ['a.d', 'b.d'])
diff --git a/test/D/HSTeoh/ArLibIssue/a.d b/test/D/HSTeoh/ArLibIssue/a.d
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HSTeoh/ArLibIssue/a.d
diff --git a/test/D/HSTeoh/ArLibIssue/b.d b/test/D/HSTeoh/ArLibIssue/b.d
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HSTeoh/ArLibIssue/b.d
diff --git a/test/D/HSTeoh/Common/__init__.py b/test/D/HSTeoh/Common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HSTeoh/Common/__init__.py
diff --git a/test/D/HSTeoh/Common/arLibIssue.py b/test/D/HSTeoh/Common/arLibIssue.py
new file mode 100644
index 0000000..fe5902b
--- /dev/null
+++ b/test/D/HSTeoh/Common/arLibIssue.py
@@ -0,0 +1,63 @@
+"""
+These tests check a problem with the lib/ar setting.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from SCons.Environment import Base
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('ArLibIssue')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format('tools=["{}", "ar"]'.format(tool)))
+
+ test.run()
+
+ test.must_exist(test.workpath('a.o'))
+ test.must_exist(test.workpath('b.o'))
+ test.must_exist(test.workpath('mylib.a' if Base()['PLATFORM'] == 'win32' else 'libmylib.a'))
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/Common/libCompileOptions.py b/test/D/HSTeoh/Common/libCompileOptions.py
new file mode 100644
index 0000000..dd95fc8
--- /dev/null
+++ b/test/D/HSTeoh/Common/libCompileOptions.py
@@ -0,0 +1,63 @@
+"""
+These tests check a problem with the lib/ar setting.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from SCons.Environment import Base
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('LibCompileOptions')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format('tools=["{}", "link", "ar"]'.format(tool)))
+
+ test.run()
+
+ test.must_exist(test.workpath('mylib.o'))
+ test.must_exist(test.workpath('mylib.a' if Base()['PLATFORM'] == 'win32' else 'libmylib.a'))
+ test.must_exist(test.workpath('prog'))
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/Common/linkingProblem.py b/test/D/HSTeoh/Common/linkingProblem.py
new file mode 100644
index 0000000..59b409f
--- /dev/null
+++ b/test/D/HSTeoh/Common/linkingProblem.py
@@ -0,0 +1,61 @@
+"""
+These tests check an issue with the LIBS environment variable.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('LinkingProblem')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format(tool))
+
+ test.run()
+
+ test.must_exist(test.workpath('ncurs_impl.o'))
+ test.must_exist(test.workpath('cprog'))
+ test.must_exist(test.workpath('prog'))
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/Common/sconstest.skip b/test/D/HSTeoh/Common/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HSTeoh/Common/sconstest.skip
diff --git a/test/D/HSTeoh/Common/singleStringCannotBeMultipleOptions.py b/test/D/HSTeoh/Common/singleStringCannotBeMultipleOptions.py
new file mode 100644
index 0000000..4dabf7b
--- /dev/null
+++ b/test/D/HSTeoh/Common/singleStringCannotBeMultipleOptions.py
@@ -0,0 +1,66 @@
+"""
+These tests verify that SCons fails appropriately where the user has tried to supply multiple command line
+options via a single string rather than providing a list of strings, one string per option.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('SingleStringCannotBeMultipleOptions')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format(tool))
+
+ test.run(status=2, stdout=None, stderr=None)
+
+ result = {
+ 'dmd': ".*unrecognized switch '-m64 -O'.*",
+ 'gdc': ".*unrecognized command line option.*",
+ 'ldc': ".*Unknown command line argument '-m64 -O'.*",
+ }[tool]
+
+ test.fail_test(not test.match_re_dotall(test.stderr(), result))
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/LibCompileOptions/SConstruct_template b/test/D/HSTeoh/LibCompileOptions/SConstruct_template
new file mode 100644
index 0000000..7031f5c
--- /dev/null
+++ b/test/D/HSTeoh/LibCompileOptions/SConstruct_template
@@ -0,0 +1,9 @@
+env = Environment({})
+
+env.Library('mylib', 'mylib.d')
+
+prog_env = env.Clone(
+ LIBS = ['mylib'],
+ LIBPATH = '#'
+ )
+prog_env.Program('prog', 'prog.d')
diff --git a/test/D/HSTeoh/LibCompileOptions/mylib.d b/test/D/HSTeoh/LibCompileOptions/mylib.d
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HSTeoh/LibCompileOptions/mylib.d
diff --git a/test/D/HSTeoh/LibCompileOptions/prog.d b/test/D/HSTeoh/LibCompileOptions/prog.d
new file mode 100644
index 0000000..33c14ce
--- /dev/null
+++ b/test/D/HSTeoh/LibCompileOptions/prog.d
@@ -0,0 +1,3 @@
+int main() {
+ return 0;
+}
diff --git a/test/D/HSTeoh/LinkingProblem/SConstruct_template b/test/D/HSTeoh/LinkingProblem/SConstruct_template
new file mode 100644
index 0000000..6815cdf
--- /dev/null
+++ b/test/D/HSTeoh/LinkingProblem/SConstruct_template
@@ -0,0 +1,20 @@
+# -*- mode:python; coding=utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ tools = ['cc', 'link' , '{}'],
+ LIBS = ['ncurses'])
+
+environment.Object('ncurs_impl.o', 'ncurs_impl.c')
+
+environment.Program('prog', Split("""
+ prog.d
+ ncurs_impl.o
+"""))
+
+environment.Program('cprog', Split("""
+ cprog.c
+ ncurs_impl.o
+"""))
diff --git a/test/D/HSTeoh/LinkingProblem/cprog.c b/test/D/HSTeoh/LinkingProblem/cprog.c
new file mode 100644
index 0000000..674fd96
--- /dev/null
+++ b/test/D/HSTeoh/LinkingProblem/cprog.c
@@ -0,0 +1,7 @@
+extern void ncurs_init();
+extern void ncurs_cleanup();
+
+int main() {
+ ncurs_init();
+ ncurs_cleanup();
+}
diff --git a/test/D/HSTeoh/LinkingProblem/ncurs_impl.c b/test/D/HSTeoh/LinkingProblem/ncurs_impl.c
new file mode 100644
index 0000000..3ca6dd3
--- /dev/null
+++ b/test/D/HSTeoh/LinkingProblem/ncurs_impl.c
@@ -0,0 +1,13 @@
+/* Ncurses wrappers */
+#include <ncurses.h>
+
+void ncurs_init() {
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+}
+
+void ncurs_cleanup() {
+ endwin();
+}
diff --git a/test/D/HSTeoh/LinkingProblem/prog.d b/test/D/HSTeoh/LinkingProblem/prog.d
new file mode 100644
index 0000000..1337210
--- /dev/null
+++ b/test/D/HSTeoh/LinkingProblem/prog.d
@@ -0,0 +1,13 @@
+/*
+ * Simple D program that links to ncurses via a C wrapping file.
+ */
+
+extern(C) {
+ void ncurs_init();
+ void ncurs_cleanup();
+}
+
+void main() {
+ ncurs_init();
+ ncurs_cleanup();
+}
diff --git a/test/D/HSTeoh/README.txt b/test/D/HSTeoh/README.txt
new file mode 100644
index 0000000..cb18b88
--- /dev/null
+++ b/test/D/HSTeoh/README.txt
@@ -0,0 +1 @@
+The tests here are evolutions of test cases provided by H.S.Teoh via email.
diff --git a/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/SConstruct_template b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/SConstruct_template
new file mode 100644
index 0000000..89c603b
--- /dev/null
+++ b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/SConstruct_template
@@ -0,0 +1,16 @@
+# -*- mode:python; coding=utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ tools=['link', '{}'],
+ # It might be thought that a single string can contain multiple options space separated. Actually this
+ # is deemed to be a single option, so leads to an error.
+ DFLAGS = '-m64 -O')
+
+environment.Program('proj', Split("""
+proj.d
+mod1.d
+cmod.c
+"""))
diff --git a/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/cmod.c b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/cmod.c
new file mode 100644
index 0000000..41c57f3
--- /dev/null
+++ b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/cmod.c
@@ -0,0 +1,5 @@
+/* This is a sample C module. */
+
+int csqr(int arg) {
+ return arg*arg;
+}
diff --git a/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/mod1.d b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/mod1.d
new file mode 100644
index 0000000..5f61802
--- /dev/null
+++ b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/mod1.d
@@ -0,0 +1,6 @@
+module mod1;
+import std.stdio;
+
+void print_msg() {
+ writeln("Hello, this is a test program for the new SCons D support");
+}
diff --git a/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/proj.d b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/proj.d
new file mode 100644
index 0000000..e97f9dd
--- /dev/null
+++ b/test/D/HSTeoh/SingleStringCannotBeMultipleOptions/proj.d
@@ -0,0 +1,13 @@
+import std.stdio;
+import mod1;
+
+extern(C) {
+ int csqr(int arg);
+}
+
+void main() {
+ print_msg();
+
+ auto i = 17;
+ writefln("The square of %d is %d", i, csqr(i));
+}
diff --git a/test/D/HSTeoh/sconstest-arLibIssue_dmd.py b/test/D/HSTeoh/sconstest-arLibIssue_dmd.py
new file mode 100644
index 0000000..0b872b4
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-arLibIssue_dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.arLibIssue import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-arLibIssue_gdc.py b/test/D/HSTeoh/sconstest-arLibIssue_gdc.py
new file mode 100644
index 0000000..45e1e36
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-arLibIssue_gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.arLibIssue import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-arLibIssue_ldc.py b/test/D/HSTeoh/sconstest-arLibIssue_ldc.py
new file mode 100644
index 0000000..7960d79
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-arLibIssue_ldc.py
@@ -0,0 +1,38 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.arLibIssue import testForTool
+
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-libCompileOptions_dmd.py b/test/D/HSTeoh/sconstest-libCompileOptions_dmd.py
new file mode 100644
index 0000000..14f2348
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-libCompileOptions_dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.libCompileOptions import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-libCompileOptions_gdc.py b/test/D/HSTeoh/sconstest-libCompileOptions_gdc.py
new file mode 100644
index 0000000..7b57546
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-libCompileOptions_gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.libCompileOptions import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-libCompileOptions_ldc.py b/test/D/HSTeoh/sconstest-libCompileOptions_ldc.py
new file mode 100644
index 0000000..7434350
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-libCompileOptions_ldc.py
@@ -0,0 +1,38 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.libCompileOptions import testForTool
+
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-linkingProblem_dmd.py b/test/D/HSTeoh/sconstest-linkingProblem_dmd.py
new file mode 100644
index 0000000..f4bac72
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-linkingProblem_dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.linkingProblem import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-linkingProblem_gdc.py b/test/D/HSTeoh/sconstest-linkingProblem_gdc.py
new file mode 100644
index 0000000..7346b66
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-linkingProblem_gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.linkingProblem import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-linkingProblem_ldc.py b/test/D/HSTeoh/sconstest-linkingProblem_ldc.py
new file mode 100644
index 0000000..72c19e4
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-linkingProblem_ldc.py
@@ -0,0 +1,38 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.linkingProblem import testForTool
+
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_dmd.py b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_dmd.py
new file mode 100644
index 0000000..976f820
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.singleStringCannotBeMultipleOptions import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_gdc.py b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_gdc.py
new file mode 100644
index 0000000..d65495a
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.singleStringCannotBeMultipleOptions import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_ldc.py b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_ldc.py
new file mode 100644
index 0000000..6718a88
--- /dev/null
+++ b/test/D/HSTeoh/sconstest-singleStringCannotBeMultipleOptions_ldc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.singleStringCannotBeMultipleOptions import testForTool
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/Common/__init__.py b/test/D/HelloWorld/CompileAndLinkOneStep/Common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/Common/__init__.py
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/Common/common.py b/test/D/HelloWorld/CompileAndLinkOneStep/Common/common.py
new file mode 100644
index 0000000..618041b
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/Common/common.py
@@ -0,0 +1,68 @@
+"""
+Support functions for all the tests.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('Image')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format(tool))
+
+ if tool == 'dmd':
+ # The gdmd executable in Debian Unstable as at 2012-05-12, version 4.6.3 puts out messages on stderr
+ # that cause inappropriate failure of the tests, so simply ignore them.
+ test.run(stderr=None)
+ else:
+ test.run()
+
+ test.must_exist(test.workpath('helloWorld.o'))
+ test.must_exist(test.workpath('helloWorld'))
+
+ test.run(program=test.workpath('helloWorld'+TestSCons._exe))
+ test.fail_test(test.stdout() != 'Hello World.\n')
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/Common/sconstest.skip b/test/D/HelloWorld/CompileAndLinkOneStep/Common/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/Common/sconstest.skip
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/Image/SConstruct_template b/test/D/HelloWorld/CompileAndLinkOneStep/Image/SConstruct_template
new file mode 100644
index 0000000..c688ab7
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/Image/SConstruct_template
@@ -0,0 +1,9 @@
+# -*- mode:python; coding:utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ tools=['link', '{}'])
+
+environment.Program('helloWorld.d')
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/Image/helloWorld.d b/test/D/HelloWorld/CompileAndLinkOneStep/Image/helloWorld.d
new file mode 100644
index 0000000..4d95b24
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/Image/helloWorld.d
@@ -0,0 +1,6 @@
+import std.stdio;
+
+int main(immutable string[] args) {
+ writeln("Hello World.");
+ return 0;
+}
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-dmd.py b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-dmd.py
new file mode 100644
index 0000000..df6ddeb
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-gdc.py b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-gdc.py
new file mode 100644
index 0000000..068f2c4
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gdc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-ldc.py b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-ldc.py
new file mode 100644
index 0000000..f61efbc
--- /dev/null
+++ b/test/D/HelloWorld/CompileAndLinkOneStep/sconstest-ldc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/__init__.py b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/__init__.py
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/common.py b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/common.py
new file mode 100644
index 0000000..618041b
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/common.py
@@ -0,0 +1,68 @@
+"""
+Support functions for all the tests.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('Image')
+ test.write('SConstruct', open('SConstruct_template', 'r').read().format(tool))
+
+ if tool == 'dmd':
+ # The gdmd executable in Debian Unstable as at 2012-05-12, version 4.6.3 puts out messages on stderr
+ # that cause inappropriate failure of the tests, so simply ignore them.
+ test.run(stderr=None)
+ else:
+ test.run()
+
+ test.must_exist(test.workpath('helloWorld.o'))
+ test.must_exist(test.workpath('helloWorld'))
+
+ test.run(program=test.workpath('helloWorld'+TestSCons._exe))
+ test.fail_test(test.stdout() != 'Hello World.\n')
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/sconstest.skip b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/Common/sconstest.skip
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/SConstruct_template b/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/SConstruct_template
new file mode 100644
index 0000000..425970a
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/SConstruct_template
@@ -0,0 +1,11 @@
+# -*- mode:python; coding:utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ tools=['link', '{}'])
+
+objects = environment.Object('helloWorld.d')
+
+environment.Program('helloWorld', objects)
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/helloWorld.d b/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/helloWorld.d
new file mode 100644
index 0000000..4d95b24
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/Image/helloWorld.d
@@ -0,0 +1,6 @@
+import std.stdio;
+
+int main(immutable string[] args) {
+ writeln("Hello World.");
+ return 0;
+}
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-dmd.py b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-dmd.py
new file mode 100644
index 0000000..df6ddeb
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the dmd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-gdc.py b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-gdc.py
new file mode 100644
index 0000000..43bb8eb
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the gcd tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-ldc.py b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-ldc.py
new file mode 100644
index 0000000..f61efbc
--- /dev/null
+++ b/test/D/HelloWorld/CompileThenLinkTwoSteps/sconstest-ldc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing using the ldc tool.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/LDC.py b/test/D/LDC.py
new file mode 100644
index 0000000..94acf1c
--- /dev/null
+++ b/test/D/LDC.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not isExecutableOfToolAvailable(test, 'ldc'):
+ test.skip_test("Could not find 'ldc', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['link', 'ldc'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/LDC_Alt.py b/test/D/LDC_Alt.py
new file mode 100644
index 0000000..571b8f0
--- /dev/null
+++ b/test/D/LDC_Alt.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+# Amended by Russel Winder <russel@russel.org.uk> 2010-05-05
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+_exe = TestSCons._exe
+test = TestSCons.TestSCons()
+
+if not isExecutableOfToolAvailable(test, 'ldc'):
+ test.skip_test("Could not find 'ldc', skipping test.\n")
+
+test.write('SConstruct', """\
+import os
+env = Environment(tools=['ldc', 'link'], ENV=os.environ)
+if env['PLATFORM'] == 'cygwin': env['OBJSUFFIX'] = '.obj' # trick DMD
+env.Program('foo', 'foo.d')
+""")
+
+test.write('foo.d', """\
+import std.stdio;
+int main(string[] args) {
+ printf("Hello!");
+ return 0;
+}
+""")
+
+test.run()
+
+test.run(program=test.workpath('foo'+_exe))
+
+test.fail_test(not test.stdout() == 'Hello!')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/MixedDAndC/Common/__init__.py b/test/D/MixedDAndC/Common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/MixedDAndC/Common/__init__.py
diff --git a/test/D/MixedDAndC/Common/common.py b/test/D/MixedDAndC/Common/common.py
new file mode 100644
index 0000000..66c738f
--- /dev/null
+++ b/test/D/MixedDAndC/Common/common.py
@@ -0,0 +1,56 @@
+"""
+Test compiling and executing a project with a C module.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestSCons
+
+from os.path import abspath, dirname
+
+import sys
+sys.path.insert(1, abspath(dirname(__file__) + '/../../Support'))
+
+from executablesSearch import isExecutableOfToolAvailable
+
+def testForTool(tool):
+
+ test = TestSCons.TestSCons()
+
+ if not isExecutableOfToolAvailable(test, tool) :
+ test.skip_test("Required executable for tool '{}' not found, skipping test.\n".format(tool))
+
+ test.dir_fixture('Image')
+
+ test.run()
+
+ test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/MixedDAndC/Common/sconstest.skip b/test/D/MixedDAndC/Common/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/MixedDAndC/Common/sconstest.skip
diff --git a/test/D/MixedDAndC/Image/SConstruct b/test/D/MixedDAndC/Image/SConstruct
new file mode 100644
index 0000000..47870d7
--- /dev/null
+++ b/test/D/MixedDAndC/Image/SConstruct
@@ -0,0 +1,13 @@
+# -*- codig:utf-8; -*-
+
+import os
+
+environment = Environment(
+ ENV=os.environ,
+ DFLAGS=['-m64', '-O'])
+
+environment.Program('proj', [
+'proj.d',
+'dmod.d',
+'cmod.c',
+])
diff --git a/test/D/MixedDAndC/Image/cmod.c b/test/D/MixedDAndC/Image/cmod.c
new file mode 100644
index 0000000..31be5e9
--- /dev/null
+++ b/test/D/MixedDAndC/Image/cmod.c
@@ -0,0 +1,3 @@
+int csqr(int arg) {
+ return arg*arg;
+}
diff --git a/test/D/MixedDAndC/Image/dmod.d b/test/D/MixedDAndC/Image/dmod.d
new file mode 100644
index 0000000..c609b9c
--- /dev/null
+++ b/test/D/MixedDAndC/Image/dmod.d
@@ -0,0 +1,6 @@
+module dmod;
+import std.stdio;
+
+void print_msg() {
+ writeln("Hello, this is a test program for the new SCons D support");
+}
diff --git a/test/D/MixedDAndC/Image/proj.d b/test/D/MixedDAndC/Image/proj.d
new file mode 100644
index 0000000..3e0bf95
--- /dev/null
+++ b/test/D/MixedDAndC/Image/proj.d
@@ -0,0 +1,12 @@
+import std.stdio;
+import dmod;
+
+extern (C) {
+ int csqr(int arg);
+}
+
+void main() {
+ print_msg();
+ auto i = 17;
+ writefln("The square of %d is %d", i, csqr(i));
+}
diff --git a/test/D/MixedDAndC/sconstest-dmd.py b/test/D/MixedDAndC/sconstest-dmd.py
new file mode 100644
index 0000000..df66255
--- /dev/null
+++ b/test/D/MixedDAndC/sconstest-dmd.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing a project with a C module.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('dmd')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/MixedDAndC/sconstest-gdc.py b/test/D/MixedDAndC/sconstest-gdc.py
new file mode 100644
index 0000000..7ac95c0
--- /dev/null
+++ b/test/D/MixedDAndC/sconstest-gdc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing a project with a C module.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('gdc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/MixedDAndC/sconstest-ldc.py b/test/D/MixedDAndC/sconstest-ldc.py
new file mode 100644
index 0000000..f9ab342
--- /dev/null
+++ b/test/D/MixedDAndC/sconstest-ldc.py
@@ -0,0 +1,37 @@
+"""
+Test compiling and executing a project with a C module.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+from Common.common import testForTool
+testForTool('ldc')
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/D/Support/executablesSearch.py b/test/D/Support/executablesSearch.py
new file mode 100755
index 0000000..e0487f6
--- /dev/null
+++ b/test/D/Support/executablesSearch.py
@@ -0,0 +1,67 @@
+#! /usr/bin/env python
+
+"""
+Support functions for all the tests.
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+def isExecutableOfToolAvailable(test, tool):
+ for executable in {
+ 'dmd': ['dmd', 'gdmd'],
+ 'gdc': ['gdc'],
+ 'ldc': ['ldc2', 'ldc']}[tool]:
+ if test.where_is(executable):
+ return True
+ return False
+
+if __name__ == '__main__':
+ import unittest
+ import sys
+ import os.path
+ sys.path.append(os.path.abspath('../../../QMTest'))
+ sys.path.append(os.path.abspath('../../../src/engine'))
+ import TestSCons
+
+ class VariousTests(unittest.TestCase):
+ def setUp(self):
+ self.test = TestSCons.TestSCons()
+ def test_None_tool(self):
+ self.assertRaises(KeyError, isExecutableOfToolAvailable, self.test, None)
+ def test_dmd_tool(self):
+ self.assertEqual(
+ self.test.where_is('dmd') is not None or self.test.where_is('gdmd') is not None,
+ isExecutableOfToolAvailable(self.test, 'dmd'))
+ def test_gdc_tool(self):
+ self.assertEqual(
+ self.test.where_is('gdc') is not None,
+ isExecutableOfToolAvailable(self.test, 'gdc'))
+ def test_ldc_tool(self):
+ self.assertEqual(
+ self.test.where_is('ldc2') is not None or self.test.where_is('ldc') is not None,
+ isExecutableOfToolAvailable(self.test, 'ldc'))
+
+ unittest.main()
diff --git a/test/D/Support/sconstest.skip b/test/D/Support/sconstest.skip
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test/D/Support/sconstest.skip
diff --git a/test/Depends/spurious-rebuilds.py b/test/Depends/spurious-rebuilds.py
new file mode 100644
index 0000000..6afc829
--- /dev/null
+++ b/test/Depends/spurious-rebuilds.py
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+After adding some code for reducing the overall memory consumption in
+revision b4bc497, a number of spurious rebuilds was observed by different
+people. The problem was, that the value of the Node.changed() method got cached
+too early for File nodes.
+
+This test verifies that the changed() function works properly, especially
+in connection with auto-generated sources, combined with an explicit Depends().
+"""
+
+import TestSCons
+
+test = TestSCons.TestSCons()
+
+test.write('SConstruct', """\
+# This tests the too-many-rebuilds problem with SCons 2.3.1 (test)
+# Run like this: scons all-defuns.obj
+
+# Test setup (only runs once)
+import os.path
+if not os.path.exists('mkl'):
+ os.mkdir('mkl')
+if not os.path.exists('test.c'):
+ open('test.c', 'w').write('int i;')
+
+env=Environment()
+env.SharedObject('all-defuns.obj', 'all-defuns.c')
+results = env.Command('all-defuns.c', 'test.c', Copy('$TARGET', '$SOURCE'))
+env.Depends(results, '#mkl')
+""")
+
+test.run(arguments = 'all-defuns.obj')
+
+test.must_exist('all-defuns.c')
+test.must_exist('test.c')
+test.must_exist('all-defuns.obj')
+
+test.up_to_date(arguments = 'all-defuns.obj')
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/Interactive/version.py b/test/Interactive/version.py
index bbca9ef..96ce51e 100644
--- a/test/Interactive/version.py
+++ b/test/Interactive/version.py
@@ -36,15 +36,11 @@ test.write('SConstruct', "")
-# Construct the standard copyright marker so it doesn't get replaced
+# Standard copyright marker is mangled so it doesn't get replaced
# by the packaging build.
-copyright_marker = '__' + 'COPYRIGHT' + '__'
-
-fmt = '(%s|Copyright \\(c\\) %s The SCons Foundation)\n'
-
-copyright_line = fmt % (copyright_marker, TestSCons.copyright_years)
-
-
+copyright_line = """\
+(_{2}COPYRIGHT__|Copyright \\(c\\) 2001[-\d, ]+ The SCons Foundation)
+"""
expect1 = """\
scons>>>
diff --git a/test/option-v.py b/test/option-v.py
index 680f541..f3eb61c 100644
--- a/test/option-v.py
+++ b/test/option-v.py
@@ -31,13 +31,11 @@ test = TestSCons.TestSCons(match = TestCmd.match_re)
test.write('SConstruct', "")
-# Construct the standard copyright marker so it doesn't get replaced
+# Standard copyright marker is mangled so it doesn't get replaced
# by the packaging build.
-copyright_marker = '__' + 'COPYRIGHT' + '__'
-
-fmt = '(%s|Copyright \\(c\\) %s The SCons Foundation)\n'
-
-copyright_line = fmt % (copyright_marker, TestSCons.copyright_years)
+copyright_line = """\
+(_{2}COPYRIGHT__|Copyright \\(c\\) 2001[-\d, ]+ The SCons Foundation)
+"""
# Windows may or may not print a line for the script version
# depending on whether it's invoked through scons.py or scons.bat.
diff --git a/test/runtest/qmtest.py b/test/runtest/qmtest.py
deleted file mode 100644
index 4f158c4..0000000
--- a/test/runtest/qmtest.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python
-#
-# __COPYRIGHT__
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-
-"""
-Test that the --qmtest option invokes tests directly via QMTest,
-not directly via Python.
-"""
-
-import os.path
-import sys
-
-if sys.platform == 'win32':
- qmtest_py = 'qmtest.py'
-else:
- qmtest_py = 'qmtest'
-
-import TestRuntest
-
-test = TestRuntest.TestRuntest()
-
-
-qmtest = test.where_is('qmtest')
-if not qmtest:
- test.skip_test("Could not find 'qmtest'; skipping test(s).\n")
-
-test.subdir('test')
-
-test_fail_py = os.path.join('test', 'fail.py')
-test_no_result_py = os.path.join('test', 'no_result.py')
-test_pass_py = os.path.join('test', 'pass.py')
-
-test.write_failing_test(test_fail_py)
-test.write_no_result_test(test_no_result_py)
-test.write_passing_test(test_pass_py)
-
-# NOTE: the FAIL and PASS lines below have trailing spaces.
-
-expect_stdout = """\
-%(qmtest_py)s run --output results.qmr --format none --result-stream="scons_tdb.AegisChangeStream" %(test_fail_py)s %(test_no_result_py)s %(test_pass_py)s
---- TEST RESULTS -------------------------------------------------------------
-
- %(test_fail_py)s : FAIL
-
- FAILING TEST STDOUT
-
- FAILING TEST STDERR
-
- %(test_no_result_py)s : NO_RESULT
-
- NO RESULT TEST STDOUT
-
- NO RESULT TEST STDERR
-
- %(test_pass_py)s : PASS
-
---- TESTS THAT DID NOT PASS --------------------------------------------------
-
- %(test_fail_py)s : FAIL
-
- %(test_no_result_py)s : NO_RESULT
-
-
---- STATISTICS ---------------------------------------------------------------
-
- 3 tests total
-
- 1 ( 33%%) tests PASS
- 1 ( 33%%) tests FAIL
- 1 ( 33%%) tests NO_RESULT
-""" % locals()
-
-testlist = [
- test_fail_py,
- test_no_result_py,
- test_pass_py,
-]
-
-test.run(arguments='--qmtest %s' % ' '.join(testlist),
- status=1,
- stdout=expect_stdout)
-
-test.pass_test()
-
-# Local Variables:
-# tab-width:4
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/runtest/testargv.py b/test/runtest/testargv.py
new file mode 100644
index 0000000..62faf51
--- /dev/null
+++ b/test/runtest/testargv.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test subdir args for runtest.py, for example:
+
+ python runtest.py test/subdir
+
+"""
+
+import os
+
+import TestRuntest
+
+test = TestRuntest.TestRuntest()
+test.subdir('test', ['test', 'subdir'])
+
+files = {}
+files['pythonstring'] = TestRuntest.pythonstring
+
+files['one'] = os.path.join('test/subdir', 'test_one.py')
+files['two'] = os.path.join('test/subdir', 'two.py')
+files['three'] = os.path.join('test', 'test_three.py')
+
+test.write_passing_test(files['one'])
+test.write_passing_test(files['two'])
+test.write_passing_test(files['three'])
+
+expect_stdout = """\
+%(pythonstring)s -tt %(one)s
+PASSING TEST STDOUT
+%(pythonstring)s -tt %(two)s
+PASSING TEST STDOUT
+""" % files
+
+expect_stderr = """\
+PASSING TEST STDERR
+PASSING TEST STDERR
+"""
+
+test.run(arguments = '--no-progress test/subdir',
+ status = 0,
+ stdout = expect_stdout,
+ stderr = expect_stderr)
+
+test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4:
diff --git a/test/update-release-info/update-release-info.py b/test/update-release-info/update-release-info.py
index d3125c7..e44aa99 100644
--- a/test/update-release-info/update-release-info.py
+++ b/test/update-release-info/update-release-info.py
@@ -201,7 +201,7 @@ RELEASE 2.0.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
""", mode = 'r')
-years = ', '.join(map(str, range(2001, this_year + 1)))
+years = '2001 - %d'%(this_year + 1)
test.must_match(SConstruct, """
month_year = 'MONTH YEAR'
copyright_years = %s
diff --git a/testing/README.md b/testing/README.md
new file mode 100644
index 0000000..bb81ce2
--- /dev/null
+++ b/testing/README.md
@@ -0,0 +1,7 @@
+Here lie various files related to SCons that
+can not find the place in other directories:
+
+ buildbot.yml - Ansible playbook to set up
+ buildbot for running tests
+
+ buildbot.hosts - Ansible inventory file
diff --git a/testing/buildbot.hosts b/testing/buildbot.hosts
new file mode 100644
index 0000000..3e0be7d
--- /dev/null
+++ b/testing/buildbot.hosts
@@ -0,0 +1 @@
+localhost ansible_connection=local builder=xxx pass=xxx \ No newline at end of file
diff --git a/testing/buildbot.yml b/testing/buildbot.yml
new file mode 100644
index 0000000..81c2143
--- /dev/null
+++ b/testing/buildbot.yml
@@ -0,0 +1,80 @@
+# Ansible playbook to setup buildbot instance.
+# Edit buildbot.hosts to set builder and pass variables.
+# Then exec:
+#
+# ansible-playbook -i buildbot.hosts buildbot.yml
+#
+# botuser can be overridden from command line:
+#
+# ansible-playbook -i hosts buildbot.yml -e 'botuser=sconsy'
+#
+# Tested with Ansible 1.5.0, based on
+# http://scons.org/wiki/InstallingBuildbotSlaves
+# Send questions to:
+#
+# anatoly techtonik <techtonik@gmail.com>
+#
+---
+# host is overridable with --extra-vars 'host=address'
+- hosts: "{{ host | default('localhost') }}"
+ vars:
+ # botuser can be overridden with -e 'botuser=scons2'
+ - botuser: scons
+ - hgrc: /home/{{ botuser }}/.hgrc
+ - venv: /home/{{ botuser }}/buildbot-virtualenv
+ - work: /home/{{ botuser }}/buildbot-workdir
+
+ vars_prompt:
+ - name: maintainer
+ prompt: contact details of the builbot owner
+ default: name <mail@example.com>
+ private: no
+
+ tasks:
+ # --- install requirements ---
+ - name: ubuntu/debian - make sure mercurial is installed
+ apt: pkg={{ item }}
+ with_items:
+ - mercurial
+ - python-virtualenv
+
+ # --- enable mercurial purge extension ---
+ - name: create .hgrc if necessary
+ stat: path={{ hgrc }}
+ register: st
+ - file: path={{ hgrc }} owner={{ botuser }} state=touch
+ when: not st.stat.exists
+ - name: enable mercurial purge extension
+ ini_file: dest={{ hgrc }}
+ section=extensions option=hgext.purge
+ value=
+
+ - name: install buildbot-slave in virtualenv
+ pip: name=buildbot-slave virtualenv={{ venv }}
+
+ - name: create buildbot environment
+ command: "{{ venv }}/bin/buildslave create-slave
+ {{ work }} buildbot.scons.org:9989 {{ builder }} {{ pass }}
+ creates={{ work }}"
+ sudo: yes
+ sudo_user: "{{ botuser }}"
+
+ - name: set contact details of the buildbot owner
+ copy: dest="{{ work }}/info/admin" content="{{ maintainer }}"
+ notify:
+ - restart buildbot
+
+ - name: update host information
+ copy: dest="{{ work }}/info/host"
+ content="{{ansible_lsb.description}}
+ {{'\n'}}{{ansible_machine}}
+ {{'\n'}}{{ansible_memtotal_mb}}MB RAM
+ {{'\n'}}Python {{ansible_python_version}}"
+ notify:
+ - restart buildbot
+
+ handlers:
+ - name: restart buildbot
+ command: "{{ venv }}/bin/buildslave restart {{ work }}"
+ sudo: yes
+ sudo_user: "{{ botuser }}"
diff --git a/testing/framework/TestUnit/__init__.py b/testing/framework/TestUnit/__init__.py
new file mode 100644
index 0000000..51cf972
--- /dev/null
+++ b/testing/framework/TestUnit/__init__.py
@@ -0,0 +1,5 @@
+
+__all__ = ['TAPTestRunner', 'TAPTestResult', 'run']
+
+from .taprunner import TAPTestRunner, TAPTestResult
+from .cli import run
diff --git a/testing/framework/TestUnit/cli.py b/testing/framework/TestUnit/cli.py
new file mode 100644
index 0000000..6aec735
--- /dev/null
+++ b/testing/framework/TestUnit/cli.py
@@ -0,0 +1,35 @@
+"""
+Choose test runner class from --runner command line option
+and execute test cases.
+"""
+
+import unittest
+import optparse
+import sys
+
+
+def get_runner():
+ parser = optparse.OptionParser()
+ parser.add_option('--runner', default='unittest.TextTestRunner',
+ help='name of test runner class to use')
+ opts, args = parser.parse_args()
+
+ fromsplit = opts.runner.rsplit('.', 1)
+ if len(fromsplit) < 2:
+ raise ValueError('Can\'t use module as a runner')
+ else:
+ runnermod = __import__(fromsplit[0])
+ return getattr(runnermod, fromsplit[1])
+
+
+def run(suite=None):
+ runner = get_runner()
+ if suite:
+ if not runner().run(suite).wasSuccessful():
+ sys.exit(1)
+ else:
+ unittest.main(argv=sys.argv[:1], testRunner=runner)
+
+
+if __name__ == '__main__':
+ run()
diff --git a/testing/framework/TestUnit/taprunner.py b/testing/framework/TestUnit/taprunner.py
new file mode 100644
index 0000000..01e0e81
--- /dev/null
+++ b/testing/framework/TestUnit/taprunner.py
@@ -0,0 +1,120 @@
+"""
+Format unittest results in Test Anything Protocol (TAP).
+http://testanything.org/tap-version-13-specification.html
+
+Public domain work by:
+ anatoly techtonik <techtonik@gmail.com>
+
+"""
+
+from unittest import suite
+from unittest.runner import TextTestRunner, TextTestResult
+
+__version__ = "0.1"
+
+class TAPTestResult(TextTestResult):
+
+ def _process(self, test, msg, failtype = None, directive = None):
+ """ increase the counter, format and output TAP info """
+ # counterhack: increase test counter
+ test.suite.tap_counter += 1
+ msg = "%s %d" % (msg, test.suite.tap_counter)
+ if "not" not in msg:
+ msg += " " # justify
+ self.stream.write("%s - " % msg)
+ if failtype:
+ self.stream.write("%s - " % failtype)
+ self.stream.write("%s" % test.__class__.__name__)
+ self.stream.write(".%s" % test._testMethodName)
+ if directive:
+ self.stream.write(directive)
+ self.stream.write("\n")
+ # [ ] write test __doc__ (if exists) in comment
+ self.stream.flush()
+
+ def addSuccess(self, test):
+ super(TextTestResult, self).addSuccess(test)
+ self._process(test, "ok")
+
+ def addFailure(self, test, err):
+ super(TextTestResult, self).addFailure(test, err)
+ self._process(test, "not ok", "FAIL")
+ # [ ] add structured data about assertion
+
+ def addError(self, test, err):
+ super(TextTestResult, self).addError(test, err)
+ self._process(test, "not ok", "ERROR")
+ # [ ] add structured data about exception
+
+ def addSkip(self, test, reason):
+ super(TextTestResult, self).addSkip(test, reason)
+ self._process(test, "ok", directive=(" # SKIP %s" % reason))
+
+ def addExpectedFailure(self, test, err):
+ super(TextTestResult, self).addExpectedFailure(test, err)
+ self._process(test, "not ok", directive=(" # TODO"))
+
+ def addUnexpectedSuccess(self, test):
+ super(TextTestResult, self).addUnexpectedSuccess(test)
+ self._process(test, "not ok", "FAIL (unexpected success)")
+
+ """
+ def printErrors(self):
+ def printErrorList(self, flavour, errors):
+ """
+
+
+class TAPTestRunner(TextTestRunner):
+ resultclass = TAPTestResult
+
+ def run(self, test):
+ self.stream.write("TAP version 13\n")
+ # [ ] add commented block with test suite __doc__
+ # [ ] check call with a single test
+ # if isinstance(test, suite.TestSuite):
+ self.stream.write("1..%s\n" % len(list(test)))
+
+ # counterhack: inject test counter into test suite
+ test.tap_counter = 0
+ # counterhack: inject reference to suite into each test case
+ for case in test:
+ case.suite = test
+
+ return super(TAPTestRunner, self).run(test)
+
+
+if __name__ == "__main__":
+ import sys
+ import unittest
+
+ class Test(unittest.TestCase):
+ def test_ok(self):
+ pass
+ def test_fail(self):
+ self.assertTrue(False)
+ def test_error(self):
+ bad_symbol
+ @unittest.skip("skipin'")
+ def test_skip(self):
+ pass
+ @unittest.expectedFailure
+ def test_not_ready(self):
+ self.fail()
+ @unittest.expectedFailure
+ def test_invalid_fail_mark(self):
+ pass
+ def test_another_ok(self):
+ pass
+
+
+ suite = unittest.TestSuite([
+ Test('test_ok'),
+ Test('test_fail'),
+ Test('test_error'),
+ Test('test_skip'),
+ Test('test_not_ready'),
+ Test('test_invalid_fail_mark'),
+ Test('test_another_ok')
+ ])
+ if not TAPTestRunner().run(suite).wasSuccessful():
+ sys.exit(1)