Edit online

Contributed by: Radu Coravu on 2020-02-04

Oxygen XML Editor has about 18 years of development under its wings. During these years, we added lots of functionality and many of our users usually do not know more than 20-30% of Oxygen's features. So this presentation is intended for people using Oxygen and who may want to find out more about their tool.

General Layout - Views and Toolbars:

  • Side views and toolbars can be arranged by drag and drop. Views can be switched to the auto-hide mode to gain screen size.
  • To hide all side views you can use the main menu Window->Maximize Editing Area action. Or you can maximize the editing area by double clicking on the tab of an opened XML document.
  • To hide all toolbars you can use the main menu Window->Hide all toolbars action.
  • You can also right-click in the toolbar area and use the Configure Toolbars action to see what toolbars are available or what toolbars can be removed.
  • The Symbols toolbar is quite interesting if you often want to insert symbols that are not on the current keyboard.
  • The entire layout of the views and toolbars can be saved (Window->Export Layout) and then shared with others (Window->Load Layout).

Side Views You Probably Never Used

  • The Information view.
  • The Properties view.
  • The Scratch Buffer view.

Project-related Functionality:

The Oxygen Project view is the place where you can organize and apply batch changes to all your resources:

  • Master files support. Enable master files support in the project, add your top level XML documents as master files and any structure changes, renaming or moving files will automatically update all links in the Project. Also works for renaming/moving image resources.
  • Store options at project level. Almost all of Oxygen's preferences pages can be saved at project level. Once you do that, you can share the project.xpr file with somebody else and when they open it, they will also get the settings set inside the project. Transformation and validation scenarios can also be saved at project level.
  • Compare files/folders by selecting them in the Project view, right click and using the Compare... popup menu action.
  • Add references to multiple folders from various parts of your current file system and organize your work in one place.
  • Batch operations: Select a folder in the project, right click and use the Transform, Validate, Format and Indent, Find/Replace in Files, or Spell Check in Files. Or use the XML Refactoring action to apply a refactoring stylesheet over all the selected files.
  • Filter files. You can instruct the Project view to hide various file types.
  • The Image Preview view will show the image current selected in the Project view.
  • Open command prompt in a certain folder (right click on a folder, Show in->Terminal.
  • Open the current selected file or folder in the system file browser (right click and choose Show in->Finder).

Navigation:

Actions to find opened files, find files containing a certain content or navigate between files.

  • In the main Window menu, you can find the Next/Previous Editor actions and their shortcuts. Together with the Switch editor tab action, these help you navigate between opened XML documents.
  • The Open/Find Resource view (main menu Window->Show View) allows you to search for file names, search in file contents, or search for files containing comments or change tracking.
  • Right-click the tab of an opened XML document and use the Copy location action. Or use the Show in Explorer/Finder action to locate the file.
  • Use the main menu File->Reopen last closed editor action to re-open the last closed file.
  • Use the Navigation toolbar to Go back/forward/last modification.
  • The main Window menu has actions to tile all opened XML documents and also to enable synchronous scrolling in them (useful if you want to look at similar XML documents and maybe to copy/paste between them).

Find/Replace Functionality

The Find/Replace functionality is the bread and butter of any editing application and Oxygen has lots of functionality in this regard:

  • Find/Replace in Files.
    • Restrict to XPath - If you want to make replacements only in certain parts of the XML document, the XPath restriction can be used to focus only on certain attributes or element content.
    • Ignore Whitespaces - You should usually check this checkbox as there is always there is a possibility what the words you are searching for may be split on multiple lines in the XML content.
  • The Find menu → Find Next/Previous actions allow you to find the next/previous occurrence of the current selected word(s). Or you can use the Find All action to find and highlight all occurrences of a word or a sequence of words.
  • The Find menu → Find all Elements action shows a dialog box allowing you to find elements or attributes containing a sequence of words.
  • The Find menu → Quick find toolbar is a compact toolbar giving you access to search functionality.
  • The XPath toolbar allows you to use XPath expressions (i.e. //comment()[contains(., 'TODO')]) to search the current topic or a set of topics for elements, attributes, or comments matching a set of conditions.

Text Editing:

  • You can use the mouse wheel or the Ctrl + and Ctrl - shortcuts to increase or decrease the font in the current opened XML document.
  • The Preferences->Editor / Edit Modes / Text page allows you to wrap the visual line and show a print margin.
  • Code templates can be used in order to define small code snippets which are often inserted. Editor variables can be used inside those code templates and they will get expanded on insertion. Various useful editor variables:

    • ${author.name}
    • ${selection}
    • ${ask('Author Name', generic, 'John Doe')}
    • ${xpath_eval(upper-case(substring('${cfn}', 1, 4)))}

    Code templates can also be saved at project level or exported in order to share them with others. You can read more about the contexts in which editor variables can appear in this blog post: All About Editor Variables.

  • Triple click an element tag to select the entire element.
  • Various navigation shortcuts: Go after next tag. Select parent. Use the top level breadcrump.
  • Move lines up and down (Alt-Up/Down).
  • Click line number to select the entire line.
  • Go to line/column (main menu Find->Go to...).
  • Open file at cursor on references to navigate to referenced file or create new file (Ctrl-ENTER).
  • Bookmarks (main menu Edit->Bookmarks).
  • Quick find filter for side views (Outline, Entities, Transformation Scenarios).
  • Drag/drop resources from a file browser or copy/paste to create links to the resources.
  • Remove results of XPath execution.
  • Use contextual menu to:
    • Apply base 64/32 encoding or decoding to various parts of the XML document. (for example insert base 64 encoded images using the data:image/png;base64, protocol.
    • Escape/unescape selection.
    • Toggle comment.
    • Indent selection.
  • Split editor (main menu Window->Split actions) to copy paste between different parts of the XML document.
  • Open an XML document in the Text editing mode, right click, choose Go to definition to open the DTD, XML Schema or RelaxNG Schema at the precise location where that XML element is defined.

Huge File Editing

Huge XML and Text documents (Gigabytes) can be opened and edited in the application.

Grid editing mode:

  • The Grid editing mode is useful for looking at XML documents exported from data bases.
  • You can use this mode to sort tables or to copy table data to Excel spreadsheets.
  • The JSON editor also has a Grid editing mode.

Editing in the Author Visual Editing Mode

  • Increase/decrease editor font - Use Ctrl/CMD +/- to increase or decrease the font in the current edited document.
  • Inserting elements - Pressing ENTER in the Author visual editing mode will show you a list with all possible elements that can be inserted. If you choose an invalid element, Oxygen will find a place for it. You can also add custom actions or code templates to the content completion list.
  • Select content then press ENTER to surround the content in a new element.
  • Select start tag of element, press ENTER to rename the element.
  • Select multiple intervals - Press the Ctrl/CMD button when selecting text to select multiple text intervals. Once you do that, you can use toolbar actions like Bold, Italic, or Underline or you can use the Edit Profiling Attributes action to set profiling attributes on all the selected items.
  • In-place attributes editor - Instead of using the Attributes view, you can press Alt-Enter to edit attributes for the current element in a small pop-up dialog box.
  • Select an entire element - Triple-click inside an element's contents to select the entire element. After this, you can move the element to a new place.
  • Double-click to select by word, then drag the mouse to select the content word by word.
  • Move elements (especially paragraphs, list items) up or down (ALT-UP/DOWN), indent or unindent list items (Tab, Shift-Tab).
  • Easily insert lists using framework specific auto correct support. Insert for example 1. at the beginning of a paragraph, press the Space key and the inserted content becomes an ordered list. Or in a DITA topic at the beginning of a paragraph type ```java and press space to insert a <codeblock>.
  • Select content and then use the Toggle comment action (contextual menu Refactoring submenu) to quickly add an XML comment around it.
  • In the contextual menu the Text submenu contains useful actions to count the number of words in the entire document (or in the selected text), convert the selection to upper, lowercase, or sentence case).
  • Bookmarks - Click the vertical left side bar in the editing area to add a bookmark. Navigate to that bookmark even after the file has been closed using the Ctrl/CMD + number shortcut.
  • Collapse other folds - Click a fold triangle in the Author visual editing mode and you can choose to close all other folds, useful when working with multiple sections in the same file.
  • Code templates - Define small fragments of XML content that can be inserted either by defining a shortcut key or by pressing ENTER in the editing area.

  • Editor variables - Certain Oxygen-specific macros can be automatically expanded. For example, a code template that inserts the current author name can use this editor variable:
    <author>${author.name}</author>
    or a code template that surrounds the selection inside a <keyword> element:
    <keyword>${selection}</keyword>
    or a code template that first asks the end user for their name and then inserts it in the document:
    <author>${ask('Author Name', generic, 'John Doe')}</author>
    Editor variables can also be used when creating new file templates. You can read more about the contexts in which editor variables can appear in this blog post: All About Editor Variables.
  • Outline Quick find filter - The Outline view contains a filter that can be used to reduce the number of elements displayed in it (for example, display only the contained topics).
  • The Author editing mode is best for editing bidirectional text with Arabic or Hebrew content.
  • Editing MS Word and LibreOffice documents in the Author mode.

Preferences:

Oxygen has a lot of global settings that can be configured, I will just list what I consider to be the most important ones:

  • Global - Change application language or show memory status.
  • Appearance - Change the default color theme in Oxygen (the Graphite theme is quite popular).
  • Application Layout - impose custom layout or change editor tabs placement.
  • Menu shortcut keys - You can use this preferences page to assign or to see the shortcut for any action available in Oxygen.
  • Fonts - This page allows you to change the default fonts used in the application. You can also see what font can be used for a certain set of characters.
  • Spell check - Customize the spell checker settings, use custom spell check dictionaries.
  • External tools - Define various command line tools that you can launch from Oxygen.
  • Editor / Content Completion / Annotations - Disable the tooltips which appear when hovering over various elements (useful if you have a small screen).
  • Editor / Save - Settings to automatically save, recover content data on computer crash or to check for errors before saving the file.

CSS-based PDF Publishing

The embedded Chemistry engine can be used to publish any XML document to PDF using CSS to style the published output. There is a new transformation type XML to PDF transformation using CSS which can be used for this. The CSS Inspector view can be used to see what CSS styles get applied.

Tools

The Tools main menu is worth exploring. You can:
  • Invoke XML refactoring actions.
  • Open the SVG Viewer.
  • Find various JSON-related tools.

Import - Convert

  • The File menu offers the possibility to import HTML, CSV, Excel files, or database content as XML.
  • For some XML frameworks like DITA, TEI, DocBook and XHTML you can use the smart paste functionality.
  • The Batch convertor add-on allows you to convert multiple HTML, Markdown, Excel files to DITA.

Connectivity

Oxygen comes bundled with an SVN client.

You can also work with resources directly from WebDav repositories, Exist and various other databases.

There are also a couple of add-ons which add extra connectivity:

Add-ons

In the application main menu you can go to the main menu Help->Install new Add-ons and our official add-ons update site contains a couple of available add-ons. There are also other free add-ons provided by the Oxygen team that can be installed in an Oxygen standalone version.

I will enumerate some of the most popular interesting add-ons below:

  • Git add-on. This plugin adds a side view allowing you to do some common Git operations like pull, commit, push (mostly 90% of what a regular Git user would do).
  • Content Fusion Connector add-on. Collaborate with your peers by sending them links that allow them to give you feedback on your work using a web browser without the need to pre-install anything on their side.
  • Batch convertor add-on. Converts multiple HTML, Markdown, Excel files to DITA.

Keeping in Touch

  • Oxygen's Help menu allows you to use the Report problem action to contact us directly.
  • The Support Tools->Randomize XML Content action allows you to randomize the content of an XML project before sending it to us for tests.
  • And there are a lot of other ways to get in touch with us or to find various videos or tutorials to read: https://www.oxygenxml.com/technical_support.html.