Edit online

Control XML Serialization in the Oxygen XML Author Component

Use Case

You want to force the Oxygen XML Author Component to save the XML with zero indent size and not to break the line inside block elements.

Solution

Usually, in a standalone version of Oxygen XML Editor, the Editor > Format and Editor > Format > XML preferences pages allow you to control the way the XML is saved on the disk after you edit it in the Author mode.

Also, the APIAccessibleOptionTags interface contains a list of all accessible keys that can be read or set from the options.

In the Oxygen XML Editor application, you can either bundle a default set of options or use the PluginWorkspace.setGlobalObjectProperty(String, Object) API:
//For not breaking the line
//Long line
pluginWorkspace.setObjectProperty
  (APIAccessibleOptionTags.EDITOR_LINE_WIDTH, new Integer(100000));
//Do not break before inline elements
pluginWorkspace.setObjectProperty
  (APIAccessibleOptionTags.EDITOR_FORMAT_INDENT_INLINE_ELEMENTS, false);
//For forcing zero indent
//Force indent settings to be controlled by us
pluginWorkspace.setObjectProperty
  (APIAccessibleOptionTags.EDITOR_DETECT_INDENT_ON_OPEN, false);
//Zero indent size
pluginWorkspace.setObjectProperty
  (APIAccessibleOptionTags.EDITOR_INDENT_SIZE, 0);
In the Oxygen XML Author Component, you can either bundle a fixed set of options, or use the Java API to set properties that overwrite the default options.
    //For not breaking the line
    //Long line
    AuthorComponentFactory.getInstance().setObjectProperty
(APIAccessibleOptionTags.EDITOR_LINE_WIDTH, new Integer(100000));
    //Do not break before inline elements
    AuthorComponentFactory.getInstance().setObjectProperty
(APIAccessibleOptionTags.EDITOR_FORMAT_INDENT_INLINE_ELEMENTS, false);
    //For forcing zero indent
    //Force indent settings to be controlled by us
    AuthorComponentFactory.getInstance().setObjectProperty
(APIAccessibleOptionTags.EDITOR_DETECT_INDENT_ON_OPEN, false);
    //Zero indent size
    AuthorComponentFactory.getInstance().setObjectProperty
(APIAccessibleOptionTags.EDITOR_INDENT_SIZE, 0);