XMetaL XMAX 20.0 Release Notes

Contents

Introduction

XMAX is an ActiveX control version of XMetaL Author, designed to be integrated into your application, providing a familiar, word-processing environment for creating and editing XML content. By embedding XMAX, users can leverage an intuitive interface similar to traditional word processors, streamlining the process of XML authoring.

New features and enhancements

Embedded CTM Editor and enhanced Styling Assistant

The CTM Editor, now integrated into the XMAX, enables users to view, modify, and customize a wide range of element-based behaviors and properties for a specific Active Document DTD or schema. These settings may originate from XMetaL Developer or may be automatically generated.

The Styling Assistant Editor allows users to refine the visual appearance of selected elements in the active document, including font family, size, style, weight, color, decoration, background, alignment, display, and whitespace.

Together, the CTM Editor and the enhanced Styling Assistant enable XMAX customization developers to efficiently tailor the editing environment to their specific requirements.

These features can also be made available to end users if the corresponding XMAX APIs are exposed within the XMAX container application.

CTM Editor supports configuration of the following element properties:

  • General Properties : Define basic characteristics such as element aliases and descriptions.
  • Change List : Specify which elements appear in the Author's change list.
  • Display As : Associate specific forms or controls with elements.
  • Followed By : Configure the default element to be inserted when Enter is pressed.
  • On Insert : Set default XML content (mini-templates) or scripts to execute upon insertion.
  • Text Layout : Control how elements appear in Plain Text view, either per element or globally.
  • Treat As : Determine whether elements function as paragraphs, toggles, images, or lists.
  • Global Properties : Define properties applicable to all elements via the #GLOBAL element.
  • Virtual Element : Add virtual elements programmatically using scripting methods such as AddElement() or AddElementToInclusion().
  • In-Parent Element : Define context-specific behavior by specifying a parent element; if omitted, properties apply globally.

Styling Assistant Editor capabilities include:

  • Add new styles for selected elements.
  • Select applicable CSS selectors for the active document’s selected elements.
  • Copy, paste, delete, and reorder styles.
  • Edit styles directly in text mode.
  • Import styles from default customizations or external CSS files.
  • Add and navigate @import statements.
  • Synchronize attribute values of selected elements with CSS rules via a wizard.
  • Locate selectors using the element name or attributes.
  • Generate default CSS based on existing CTM rules.
  • Reveal the selected CSS file in Windows Explorer.
  • Open CSS files using the default or preferred editor.
  • Reload current CSS customizations.
  • Apply CSS changes across all open XMetaL documents.
  • Restore selectors from the original or session’s first saved file.

Updated support of integration XMAX with Microsoft Edge

XMEdge is an ActiveX control that implements the subset of Microsoft Edge WebView2 interfaces necessary for loading and rendering web content. It additionally enables a bidirectional communication channel between the Microsoft Edge (Chromium) V8 JavaScript engine and the XMAX JScript engine (Microsoft’s implementation of ECMAScript/JavaScript).

As part of XMAX customization, XMEdge controls can be embedded directly into XML documents or incorporated into XFT form dialogs, with behavior managed through XMAX customization scripts. Both XFT Form controls and XMEdge controls are included in the XMAX installation and can be reused across any XMAX-based application.

The integration enables developers to extend XMAX customization capabilities, including the following areas:

  • MathML Support

    MathML (Mathematical Markup Language) is an XML-based standard developed by the W3C for representing mathematical notation and its structure. It provides a consistent, platform-independent way to embed mathematical expressions directly within documents and web content.

    Key features include:
    • Seamless inline rendering: Mathematical expressions are displayed as inline graphical elements directly within XML documents

    • Intuitive editing: Support for MathLive (open source) and MathType (commercial license required) enables efficient creation and modification of mathematical content.

    • Flexible viewing modes: Users can switch between an XML tag-based view and a graphical view. The graphical mode supports zooming and adjusting the default display size for improved readability.

  • Integration with Leading AI Assistants Developers can integrate XMAX with major AI technologies, including xAI’s Grok, High-Flyer’s DeepSeek, OpenAI’s ChatGPT, Microsoft’s Copilot, and Google’s Gemini, to enhance automation, content generation, and intelligent assistance within the document environment.
  • Advanced Web-Based User Interface Dialogs Support for Chromium-based UI components allows the creation of modern, responsive dialogs and interactive elements for enhanced user experiences.

For additional information or implementation guidance, please contact XMetaL Customer Support.

New API

The XMAX _Document interface has been extended with additional methods and properties that provide access to specific internal states of a document. These enhancements include access to the Undo/Redo command stack and counters, the document change counter, and any ActiveX controls embedded within the document.

XMAX Core Enhancements

XMAX has been updated for compatibility with the latest Windows updates. This update includes improvements to enhance performance, security, and functionality, ensuring seamless integration with new features and enhancements in the latest Windows releases. The goal is to provide a smoother user experience while taking advantage of the latest advancements in the Windows operating system.

Development, build environments and SDKs upgraded to the most recent versions.

The development environments, build systems, and software development kits (SDKs) have been upgraded to the latest versions. This update ensures that developers have access to the most current tools, features, and optimizations, enhancing the overall development process. By incorporating the latest SDKs and build environments, the system now supports improved performance, security, and compatibility with modern technologies, enabling developers to create more efficient, reliable, and cutting-edge applications.

Various customer requests and defects were addressed and fixed.

Various customer requests and reported defects were evaluated, addressed, and resolved to enhance system reliability, optimize functionality, and improve the overall user experience.

Known issues

After uninstalling XMetaL, some of the XMAX customization dialogs and spell-checking features may stop working.

The implementation of certain XMetaL features requires the use of dynamic-link libraries (DLLs) that are shared with other XMetaL products.

In a system with multiple XMetaL installations, removing one product may cause remaining products to lose certain features.

To correct this issue, goto the Add/Remove Program control panel, select the XMetaL product which is not working, click the "Change" option and wait for the installation wizard to appear. After the installation wizard appears, follow the wizard's instructions and choose the "Repair" option when presented.

Using background-color or border CSS properties may slow editing

Setting CSS background-color or border for elements that contain large amounts of content may compromise the performance of the editor. Workaround: use a CSS override to set 'border:none' for the element. See the online Help for information on overriding base formatting

Background spell checking updated during periods of inactivity

Background spell checking has been optimized to update during periods of inactivity. Consequently, if text is entered at a very high rate, the updating of red underline markers on the page may be delayed

OnContextMenu

The event macro OnContextMenu returns different data, depending on the user context:

When no document is open in the XMAX editor

  • Right-clicking returns screen coordinates.
  • Pressing Shift+F10 returns the screen coordinates of the top left corner of the XMAX editor.
  • The application returns the screen coordinates of the top left corner of the XMAX editor.

When a document is open in the XMAX editor

  • Right-clicking returns screen coordinates of the mouse to the XMAX editor.
  • Pressing Shift+F10 returns the screen coordinates of the cursor to the XMAX editor.
  • The application returns the screen coordinates of the cursor to the XMAX editor

Some properties do not work during debugging

If you are debugging scripts in XMAX from the XMetaL Developer IDE, the property Document.IsValid does not return reliable results. In addition, the property Selection.IsValid may take a very long time to return values, or cause your development system to lock up altogether.

Debugging a customization with an XMAX configuration may cause a memory read problem message

When a customization is configured to use a custom container application written in VB.NET for XMAX when debugging, an error message reading "The memory could not be "read"." is displayed when the custom container application is closed. This error can be ignored. The error does not occur when the customization is built.

XMetaL XMAX appears to have focus when it really doesn't

Sometimes XMetaL XMAX may appear to have focus (colored title bar and flashing cursor), but in reality does not have focus. In those cases, any input from the keyboard affects the application that does have focus (e.g., Internet Explorer if it hosts the XMAX control). In some cases this can cause unpredictable behavior or even result in a crash and loss of data.

There following workarounds are available, depending on the context:

  • If you are working with a document, click anywhere within the XMAX window to set focus.
  • If you are within the execution of a script, use the SetFocus(); method to set focus on the XMAX window.