Difference between revisions of "User:Arielch/Internship/XML file format"
From Apache OpenOffice Wiki
(→RID_POPUP_CELLS) |
(→MN_TEXT_POPUPMENU) |
||
Line 165: | Line 165: | ||
== sw == | == sw == | ||
=== MN_TEXT_POPUPMENU === | === MN_TEXT_POPUPMENU === | ||
+ | |||
+ | The following is the XML version of the Menu structure defined in the resource file [http://hg.services.openoffice.org/DEV300/file/DEV300_m84/sw/source/ui/app/mn.src#l1111 sw/source/ui/app/mn.src] (and many other files it includes). | ||
+ | |||
<source lang=xml> | <source lang=xml> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE contextmenu:contextmenu SYSTEM "contextmenu.dtd"> | <!DOCTYPE contextmenu:contextmenu SYSTEM "contextmenu.dtd"> | ||
<contextmenu:contextmenu xmlns:contextmenu="http://openoffice.org/2001/contextmenu" xmlns:xlink="http://www.w3.org/1999/xlink"> | <contextmenu:contextmenu xmlns:contextmenu="http://openoffice.org/2001/contextmenu" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
− | <contextmenu:menu xlink:href="private:resource/contextmenu/text" > | + | <contextmenu:menu xlink:href="private:resource/contextmenu/text"> |
<contextmenu:popupmenu> | <contextmenu:popupmenu> | ||
− | <contextmenu:menuitem xlink:href=".uno:ResetAttributes" /> | + | <contextmenu:menuitem xlink:href=".uno:ResetAttributes"/> |
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
− | <contextmenu:menuitem xlink:href=".uno:NumberingStart" /> | + | <contextmenu:menuitem xlink:href=".uno:NumberingStart"/> |
− | <contextmenu:menuitem xlink:href=".uno:ContinueNumbering" /> | + | <contextmenu:menuitem xlink:href=".uno:ContinueNumbering"/> |
− | <contextmenu:menuitem xlink:href=".uno:IncrementLevel" /> | + | <contextmenu:menuitem xlink:href=".uno:IncrementLevel"/> |
− | <contextmenu:menuitem xlink:href=".uno:DecrementLevel" /> | + | <contextmenu:menuitem xlink:href=".uno:DecrementLevel"/> |
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
− | <contextmenu:menuitem xlink:href=".uno:CharFontName" /> | + | <contextmenu:menuitem xlink:href=".uno:CharFontName"/> |
− | <contextmenu:menuitem xlink:href=".uno:FontHeight" /> | + | <contextmenu:menuitem xlink:href=".uno:FontHeight"/> |
<contextmenu:menu xlink:href=".uno:StyleMenu"> | <contextmenu:menu xlink:href=".uno:StyleMenu"> | ||
<contextmenu:popupmenu> | <contextmenu:popupmenu> | ||
− | <contextmenu:menuitem xlink:href=".uno:Bold" /> | + | <contextmenu:menuitem xlink:href=".uno:Bold"/> |
− | <contextmenu:menuitem xlink:href=".uno:Italic" /> | + | <contextmenu:menuitem xlink:href=".uno:Italic"/> |
− | <contextmenu:menuitem xlink:href=".uno:Overline" /> | + | <contextmenu:menuitem xlink:href=".uno:Overline"/> |
− | <contextmenu:menuitem xlink:href=".uno:Underline" /> | + | <contextmenu:menuitem xlink:href=".uno:Underline"/> |
− | <contextmenu:menuitem xlink:href=".uno:Strikeout" /> | + | <contextmenu:menuitem xlink:href=".uno:Strikeout"/> |
− | <contextmenu:menuitem xlink:href=".uno:Shadowed" /> | + | <contextmenu:menuitem xlink:href=".uno:Shadowed"/> |
− | <contextmenu:menuitem xlink:href=".uno:OutlineFont" /> | + | <contextmenu:menuitem xlink:href=".uno:OutlineFont"/> |
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
− | <contextmenu:menuitem xlink:href=".uno:SuperScript" /> | + | <contextmenu:menuitem xlink:href=".uno:SuperScript"/> |
− | <contextmenu:menuitem xlink:href=".uno:SubScript" /> | + | <contextmenu:menuitem xlink:href=".uno:SubScript"/> |
</contextmenu:popupmenu> | </contextmenu:popupmenu> | ||
</contextmenu:menu> | </contextmenu:menu> | ||
Line 209: | Line 212: | ||
</contextmenu:popupmenu> | </contextmenu:popupmenu> | ||
</contextmenu:menu> | </contextmenu:menu> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:FontDialog"/> | <contextmenu:menuitem xlink:href=".uno:FontDialog"/> | ||
<contextmenu:menuitem xlink:href=".uno:ParagraphDialog"/> | <contextmenu:menuitem xlink:href=".uno:ParagraphDialog"/> | ||
Line 227: | Line 230: | ||
</contextmenu:popupmenu> | </contextmenu:popupmenu> | ||
</contextmenu:menu> | </contextmenu:menu> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:UpdateCurIndex"/> | <contextmenu:menuitem xlink:href=".uno:UpdateCurIndex"/> | ||
<contextmenu:menuitem xlink:href=".uno:EditCurIndex"/> | <contextmenu:menuitem xlink:href=".uno:EditCurIndex"/> | ||
<contextmenu:menuitem xlink:href=".uno:RemoveTableOf"/> | <contextmenu:menuitem xlink:href=".uno:RemoveTableOf"/> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:FieldDialog"/> | <contextmenu:menuitem xlink:href=".uno:FieldDialog"/> | ||
<contextmenu:menuitem xlink:href=".uno:EditFootnote"/> | <contextmenu:menuitem xlink:href=".uno:EditFootnote"/> | ||
<contextmenu:menuitem xlink:href=".uno:IndexEntryDialog"/> | <contextmenu:menuitem xlink:href=".uno:IndexEntryDialog"/> | ||
<contextmenu:menuitem xlink:href=".uno:AuthoritiesEntryDialog"/> | <contextmenu:menuitem xlink:href=".uno:AuthoritiesEntryDialog"/> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:AcceptTracedChange"/> | <contextmenu:menuitem xlink:href=".uno:AcceptTracedChange"/> | ||
<contextmenu:menuitem xlink:href=".uno:RejectTracedChange"/> | <contextmenu:menuitem xlink:href=".uno:RejectTracedChange"/> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:EditStyle"/> | <contextmenu:menuitem xlink:href=".uno:EditStyle"/> | ||
− | <contextmenu:menuseparator /> | + | <contextmenu:menuseparator/> |
<contextmenu:menuitem xlink:href=".uno:OpenHyperlinkOnCursor"/> | <contextmenu:menuitem xlink:href=".uno:OpenHyperlinkOnCursor"/> | ||
<contextmenu:menuitem xlink:href=".uno:EditHyperlink"/> | <contextmenu:menuitem xlink:href=".uno:EditHyperlink"/> | ||
Line 247: | Line 250: | ||
<contextmenu:menuitem xlink:href=".uno:RemoveHyperlink"/> | <contextmenu:menuitem xlink:href=".uno:RemoveHyperlink"/> | ||
<contextmenu:menuitem xlink:href=".uno:OpenSmartTagMenuOnCursor"/> | <contextmenu:menuitem xlink:href=".uno:OpenSmartTagMenuOnCursor"/> | ||
+ | <contextmenu:menuseparator/> | ||
+ | <!-- Thesaurus should have its own controller --> | ||
+ | <contextmenu:menuitem xlink:href=".uno:ThesaurusFromContext"/> | ||
+ | <contextmenu:menuseparator/> | ||
+ | <!-- clipboard functions were added by the SfxPopupMenuManager --> | ||
+ | <contextmenu:menuitem xlink:href=".uno:Cut"/> | ||
+ | <contextmenu:menuitem xlink:href=".uno:Copy"/> | ||
+ | <contextmenu:menuitem xlink:href=".uno:Paste"/> | ||
</contextmenu:popupmenu> | </contextmenu:popupmenu> | ||
</contextmenu:menu> | </contextmenu:menu> | ||
</contextmenu:contextmenu> | </contextmenu:contextmenu> | ||
− | |||
</source> | </source> |
Revision as of 03:40, 17 August 2010
Contents
Tasks
- Study DTD: very helpful XML in a Nutshell - Chapter 3. Document Type Definitions (DTDs)
- Study XLink: XML Linking Language (XLink) Version 1.0
- Design the DTD: based on menubar.dtd
- Check the validity? all context menus should pass xmllint --valid
ContextMenu DTD
<?xml version="1.0" encoding="UTF-8"?> <!-- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. Copyright 2000, 2010 Oracle and/or its affiliates. OpenOffice.org - a multi-platform office productivity suite This file is part of OpenOffice.org. OpenOffice.org is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 only, as published by the Free Software Foundation. OpenOffice.org is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU Lesser General Public License version 3 along with OpenOffice.org. If not, see <http://www.openoffice.org/license.html> for a copy of the LGPLv3 License. --> <!ELEMENT contextmenu:contextmenu (contextmenu:menu)> <!ATTLIST contextmenu:contextmenu xmlns:contextmenu CDATA #FIXED "http://openoffice.org/2001/contextmenu" xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" > <!ELEMENT contextmenu:menu (contextmenu:popupmenu)> <!ATTLIST contextmenu:menu xlink:href CDATA #REQUIRED > <!ELEMENT contextmenu:popupmenu (contextmenu:menuitem | contextmenu:menuseparator | contextmenu:menu)* > <!ELEMENT contextmenu:menuitem EMPTY > <!ATTLIST contextmenu:menuitem xlink:href CDATA #REQUIRED contextmenu:helpid CDATA #IMPLIED contextmenu:label CDATA #IMPLIED contextmenu:style CDATA #IMPLIED > <!ELEMENT contextmenu:menuseparator EMPTY >
- for the attribute holding the command URL we do not follow menubar.dtd (it uses menu:id), we follow the toolbar.dtd and statusbar.dtd where the UNO command URL is stored in a locator attribute (xlink:href)
- while validating the XML files against the DTD, we found that OOo statusbars and menubars do not pass the test:
- in statusbar.dtd, the attribute statusbar:helpid is missing
- in menubar.dtd
- the attribute menu:style is missing
- the element menu:menu is defined to have only one child element of type menu:menupopup, but this fails, for example, in Writer's menubar.xml with <menu:menu menu:id=".uno:ScriptOrganizer"/>
Examples
sc
RID_POPUP_EDIT
The following is the XML version of the Menu structure described in the resource file sc/source/ui/src/popup.src.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE contextmenu:contextmenu SYSTEM "contextmenu.dtd"> <contextmenu:contextmenu xmlns:contextmenu="http://openoffice.org/2001/contextmenu" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- the ROOT menu must also have locator attribute Choose one, alike menubar.xml, where menu:menubar id is dummy text --> <contextmenu:menu xlink:href="private:resource/contextmenu/edit"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:ResetAttributes"/> <contextmenu:menuseparator/> <!-- Menu item controlled by PopupMenuController are NOT treated special see in Writer menubar: <menu:menuitem menu:id=".uno:SetLanguageSelectionMenu"/> <menu:menuitem menu:id=".uno:SetLanguageParagraphMenu"/> <menu:menuitem menu:id=".uno:SetLanguageAllTextMenu"/> --> <contextmenu:menuitem xlink:href=".uno:CharFontName"/> <contextmenu:menuitem xlink:href=".uno:FontHeight"/> <!-- PROBLEM: submenus usually have no command URL RID_MN_FORMAT_STYLE has no UNO command URL of course --> <contextmenu:menu xlink:href=".uno:CellTextStyleMenu" > <!-- fictitious, but à la Writer --> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:Bold"/> <contextmenu:menuitem xlink:href=".uno:Italic"/> <contextmenu:menuitem xlink:href=".uno:Overline"/> <contextmenu:menuitem xlink:href=".uno:Underline"/> <contextmenu:menuitem xlink:href=".uno:UnderlineDouble"/> <contextmenu:menuitem xlink:href=".uno:Strikeout"/> <contextmenu:menuitem xlink:href=".uno:Shadowed"/> <contextmenu:menuitem xlink:href=".uno:OutlineFont"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:SuperScript"/> <contextmenu:menuitem xlink:href=".uno:SubScript"/> </contextmenu:popupmenu> </contextmenu:menu> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:FontDialog"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:OpenHyperlinkOnCursor"/> <contextmenu:menuseparator/> <!-- clipboard functions were added by the SfxPopupMenuManager --> <contextmenu:menuitem xlink:href=".uno:Cut"/> <contextmenu:menuitem xlink:href=".uno:Copy"/> <contextmenu:menuitem xlink:href=".uno:Paste"/> </contextmenu:popupmenu> </contextmenu:menu> </contextmenu:contextmenu>
RID_POPUP_CELLS
The following is the XLM version of the Menu structure defined in the resource file sc/source/ui/src/popup.src.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE contextmenu:contextmenu SYSTEM "contextmenu.dtd"> <contextmenu:contextmenu xmlns:contextmenu="http://openoffice.org/2001/contextmenu" xmlns:xlink="http://www.w3.org/1999/xlink"> <contextmenu:menu xlink:href="private:resource/contextmenu/cells" > <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:ResetAttributes" /> <contextmenu:menuseparator /> <contextmenu:menuitem xlink:href=".uno:FormatCellDialog" /> <contextmenu:menuseparator /> <contextmenu:menuitem xlink:href=".uno:InsertCellsRight" /> <contextmenu:menuitem xlink:href=".uno:DeleteCell" /> <contextmenu:menuitem xlink:href=".uno:Delete" /> <contextmenu:menuseparator /> <contextmenu:menuitem xlink:href=".uno:InsertAnnotation" /> <contextmenu:menuitem xlink:href=".uno:DeleteNote" /> <contextmenu:menuitem xlink:href=".uno:NoteVisible" /> <contextmenu:menuseparator /> <contextmenu:menuitem xlink:href=".uno:Cut" /> <contextmenu:menuitem xlink:href=".uno:Copy" /> <contextmenu:menuitem xlink:href=".uno:Paste" /> <contextmenu:menuitem xlink:href=".uno:PasteSpecial" /> <contextmenu:menuseparator /> <contextmenu:menuitem xlink:href=".uno:DataSelect" /> </contextmenu:popupmenu> </contextmenu:menu> </contextmenu:contextmenu>
sw
MN_TEXT_POPUPMENU
The following is the XML version of the Menu structure defined in the resource file sw/source/ui/app/mn.src (and many other files it includes).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE contextmenu:contextmenu SYSTEM "contextmenu.dtd"> <contextmenu:contextmenu xmlns:contextmenu="http://openoffice.org/2001/contextmenu" xmlns:xlink="http://www.w3.org/1999/xlink"> <contextmenu:menu xlink:href="private:resource/contextmenu/text"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:ResetAttributes"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:NumberingStart"/> <contextmenu:menuitem xlink:href=".uno:ContinueNumbering"/> <contextmenu:menuitem xlink:href=".uno:IncrementLevel"/> <contextmenu:menuitem xlink:href=".uno:DecrementLevel"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:CharFontName"/> <contextmenu:menuitem xlink:href=".uno:FontHeight"/> <contextmenu:menu xlink:href=".uno:StyleMenu"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:Bold"/> <contextmenu:menuitem xlink:href=".uno:Italic"/> <contextmenu:menuitem xlink:href=".uno:Overline"/> <contextmenu:menuitem xlink:href=".uno:Underline"/> <contextmenu:menuitem xlink:href=".uno:Strikeout"/> <contextmenu:menuitem xlink:href=".uno:Shadowed"/> <contextmenu:menuitem xlink:href=".uno:OutlineFont"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:SuperScript"/> <contextmenu:menuitem xlink:href=".uno:SubScript"/> </contextmenu:popupmenu> </contextmenu:menu> <contextmenu:menu xlink:href=".uno:AlignTextMenu"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:LeftPara" contextmenu:style="radio"/> <contextmenu:menuitem xlink:href=".uno:RightPara" contextmenu:style="radio"/> <contextmenu:menuitem xlink:href=".uno:CenterPara" contextmenu:style="radio"/> <contextmenu:menuitem xlink:href=".uno:JustifyPara" contextmenu:style="radio"/> </contextmenu:popupmenu> </contextmenu:menu> <contextmenu:menu xlink:href=".uno:LineSpacingMenu"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:SpacePara1" contextmenu:style="radio"/> <contextmenu:menuitem xlink:href=".uno:SpacePara15" contextmenu:style="radio"/> <contextmenu:menuitem xlink:href=".uno:SpacePara2" contextmenu:style="radio"/> </contextmenu:popupmenu> </contextmenu:menu> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:FontDialog"/> <contextmenu:menuitem xlink:href=".uno:ParagraphDialog"/> <contextmenu:menuitem xlink:href=".uno:PageDialog"/> <contextmenu:menuitem xlink:href=".uno:BulletsAndNumberingDialog"/> <contextmenu:menu xlink:href=".uno:TransliterateMenu"> <contextmenu:popupmenu> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToSentenceCase"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToLower"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToUpper"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToTitleCase"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToToggleCase"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToHalfWidth"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToFullWidth"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToHiragana"/> <contextmenu:menuitem xlink:href=".uno:ChangeCaseToKatakana"/> </contextmenu:popupmenu> </contextmenu:menu> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:UpdateCurIndex"/> <contextmenu:menuitem xlink:href=".uno:EditCurIndex"/> <contextmenu:menuitem xlink:href=".uno:RemoveTableOf"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:FieldDialog"/> <contextmenu:menuitem xlink:href=".uno:EditFootnote"/> <contextmenu:menuitem xlink:href=".uno:IndexEntryDialog"/> <contextmenu:menuitem xlink:href=".uno:AuthoritiesEntryDialog"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:AcceptTracedChange"/> <contextmenu:menuitem xlink:href=".uno:RejectTracedChange"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:EditStyle"/> <contextmenu:menuseparator/> <contextmenu:menuitem xlink:href=".uno:OpenHyperlinkOnCursor"/> <contextmenu:menuitem xlink:href=".uno:EditHyperlink"/> <contextmenu:menuitem xlink:href=".uno:CopyHyperlinkLocation"/> <contextmenu:menuitem xlink:href=".uno:RemoveHyperlink"/> <contextmenu:menuitem xlink:href=".uno:OpenSmartTagMenuOnCursor"/> <contextmenu:menuseparator/> <!-- Thesaurus should have its own controller --> <contextmenu:menuitem xlink:href=".uno:ThesaurusFromContext"/> <contextmenu:menuseparator/> <!-- clipboard functions were added by the SfxPopupMenuManager --> <contextmenu:menuitem xlink:href=".uno:Cut"/> <contextmenu:menuitem xlink:href=".uno:Copy"/> <contextmenu:menuitem xlink:href=".uno:Paste"/> </contextmenu:popupmenu> </contextmenu:menu> </contextmenu:contextmenu>