Introduction
XMAX is an ActiveX control version of XMetaL Author that you can use from within your application to create a familiar word-processing environment for XML content creation.
XMetaL XMAX is available as either 32-bit or 64-bit native ActiveX control.
New features
-
Development, build environments and SDKs upgraded to the most recent versions
-
Passed formal QA tests on the Windows 11 platform
-
Performance improvements for file opening and editing documents containing a large number of elements and images (over 50.000 elements and over 1000 inline images)
-
Support for High-DPI monitors
XMetaL now takes the DPI of displays into account and is able to natively render their contents on High-DPI monitors.
- Various customers requests and defect fixes are addressed
APIs
New APIs for:
- interaction with host applications
- running specific XMAX scripts in synchronous and asynchronous modes
- managing text highlighting in documents
Please refer to the XMetaL Developer documentation (when available) for more information.
XMetaL XMAX 17.0
| API | Description |
|---|---|
| DocumentHost::RunScript | Allows running the XMAX script assigned to DocumentHost::CustomProperties, with VARIANT-type parameter. |
| DocumentHost::RunScriptOnIdle | Allows running the XMAX script assigned to DocumentHost::CustomProperties asynchronously after XMAX has entered to an idle state. Optional parameters specify additional delay time and VARIANT-type parameter. |
| DocumentHost::FireEvent | Allows XMAX script customization firing generic event to host application with name-value pair parameters. |
| DocumentHost::Selection | Allows XMAX script customization getting Selection object. |
|
Document::GetHighlightedRangeState Document::GetHighlightedRangeType Document::GetHighlightedRangesIDs Document::SetHighlightedRangeType |
Additional XMAX APIs facilitate development of document text highlighting customizations. |
XMetaL XMAX 16.0
| API | Description |
|---|---|
| DocumentHost::RunMacroOnIdle | Runs the XMAX macro script asynchronously after XMAX has entered to an idle state. Optional parameters specify additional delay time and a VARIANT-type parameter that can be passed to the macro. |
| DocumentHost::RunAfterProcessDone | Runs the XMAX macro script asynchronously after a specific Windows process was terminated and XMAX has entered to an idle state. Optional parameters specify a VARIANT-type parameter that can be passed to the macro. |
| DocumentHost::AddFileChangeMacro | Runs the XMAX macro script asynchronously after predefined file(s) were changed and XMAX has entered to an idle state. Optional parameters specify the full file path or pattern and a VARIANT-type parameter that can be passed to the macro. XMetaL provides additional default parameters containing the full path of the file that triggered the event. |
|
DocumentHost::IsFileChangeMacro DocumentHost::RemoveFileChangeMacro DocumentHost::IsProcessRunning DocumentHost::TerminateProcessEx |
Additional XMAX APIs allow to maintain a customization based on an asynchronous event. |
| DocumentHost::FileToString | Returns the contents of the file specified as a string. |
| DocumentHost::UniqueFileName | Returns a filename, starting with the specified prefix, that is not present in the specified folder. |
| DocumentHost::FileExists | Returns a boolean indicating whether the specified file exists. |
| DocumentHost::ReadableFileExists | Indicates whether the file specified exists and is readable. |
| DocumentHost::WritableFileExists | Indicates whether the file specified exists and is writable. |
| DocumentHost::WritableDirExists | Indicates whether the folder specified exists and is writable. |
| DocumentHost::ShowFindDialog | Shows Find and Replace dialog. |
| DocumentHost::ShowSpellChecker | Show Spell Checking dialog, if it is installed. |
| DocumentHost::IsSpellCheckerInstalled | Check if the Spell Checker is installed. |
| DocumentHost::CustomProperties | Returns a NameVariantProperties object for the custom properties of the DocumentHost. |
XMetaL XMAX 15.0
| API | Description |
|---|---|
| Document.ZoomPercentage | Property that returns or sets the zoom percentage of a document. |
XMetaL XMAX 14.0
| API | Description |
|---|---|
| IXMetaLControlEvents::OnClick | Existing event sink method will now be called whenever a triple-click occurs in Tags On or Normal view modes and is indicated by a clickCount parameter value of 3. |
| IXMetaLControlEvents::OnDropFiles | New event sink method is called when files are dropped onto the XMAX window and allows overriding the built-in behavior. |
| DocumentHost::DropFileCount | Property that returns the number of files drag'n'dropped onto the XMAX window. Property is only valid during the On_Drop_Files event macro. |
| DocumentHost::DropFileName | Property that returns the fullpath filename drag'n'dropped onto the XMAX window for a given index. Property is only valid during the On_Drop_Files event macro. |
| Find::ExecuteEx | Method adds a new parameter over the old Find.Execute method that causes highlighting all matching occurences in the editing window. |
XMetaL XMAX 13.0
| API | Description |
|---|---|
| IXMetaLControl.AddChangedNodeKey | Adds customization-specific changed node lists identified by the given key string. |
| IXMetaLControl.RemoveChangedNodeKey | Removes customization-specific changed node lists identified by the given key string. |
| DOMElement.wordCount | XMetaL-specific DOM extension property that returns the number of words including those in all child elements. |
XMetaL XMAX 12.0
| API | Description |
|---|---|
| IXMetaLControl.ValidateBeforeExport | Property used to control whether or not XML validation is applied during a document save or export action. |
XMetaL XMAX 11.0
| API | Description |
|---|---|
| Selection.InsertTableEx | Method used to insert HTML-like custom table. |
| Selection.InsertCALSTableEx | Method used to insert CALS-like custom table. |
| DOMDocumentType.addTableElementMap | Method used to add custom treat-as-table configuration via JSON object description. |
| Document.TagsOnGraphicalTables | Boolean property to toggle the display of tables between graphical and plain tags rendering in Tags On view. |
| Document.QueryAttributes | RESERVED. |
| Document.includeTransclusionEx | RESERVED. |
| Document.includeTransclusionEx2 | RESERVED. |
XMetaL XMAX 10.0
| API | Description |
|---|---|
| IXMetaLControl.EnableBidi | Boolean property that controls when XMAX uses the bi-directional text authoring and formatting logic. |
| Selection.IsMultiCellSelection | Boolean property that returns true if the selection consists of mulitple table cells. |
| Selection.Cells | Property that returns a DOMNodeList of the table cells under the current selection. |
| CanElement.DisplayName | String property that returns the nice name configured for an element via CTM file. |
XMetaL XMAX 9.0
| API | Description |
|---|---|
| IXMetaLControl.ParserLaxEmptyContent | Boolean property that controls the parsing and validation before for empty content. |
| Selection.CanSplitTable | Boolean property that returns true if the table under the selection can be split into two for the given direction. |
| Selection.SplitTable | Method that splits the table into two in the given direction under the current selection. |
| Selection.CanSplitTableGroup | Boolean property that returns true if the table group under the selection can be split into two for the given direction. |
| Selection.SplitTableGroup | Method that splits the table group into two in the given direction under the current selection. |
| Selection.CanMergeTable | Boolean property that returns true if the table under the selection can be merged with the sibling table in the given direction. |
| Selection.MergeTable | Method that merges table under the selection in the given direction. |
XMetaL XMAX 8.0
| API | Description |
|---|---|
| IXMetaLControl.EnableStructureView | Boolean property that controls the display of the Structure View splitter widget for the next document loaded into the control. Default value is false for backward-compatibility. |
| IXMetaLControl.SVWidth | Positive integer property that is the number of pixels wide to make the Structure View the next time it is shown. Default value Structure View width is 220 pixels. |
| Document.StructureViewVisible | Boolean property to show or hide the Structure View panel is now legal to use for XMAX. |
| Document.AddCompareFunc | RESERVED. |
| Document.RemoveCompareFunc | RESERVED. |
| Document.CurrentCSS | Default CSS path property for all views. |
| Document.getElementsByTagNameEx |
Method returns either a live, snapshot or forward-iterator-only DOMNodeList containing
all the descendant elements of this document that have the name 'tagname'. The
special tagname '*' matches all elements. The "mode" parameter effects
the DOMNodeList behavior as follows below:
|
| Document.getNodesByXPathEx |
Method returns either a live, snapshot or forward-iterator-only DOMNodeList
containing all the nodes of this document that match up with the XPath
expression provided. Setting "mode" parameter to 0 causes a "snapshot" list to
be returned. The "mode" parameter effects the DOMNodeList behavior as follows
below:
|
| Document.querySelector | RESERVED. |
| Document.querySelectorAll | RESERVED. |
| DOMElement.getElementsByTagNameEx |
Method returns either a live, snapshot or forward-iterator-only DOMNodeList
containing all the descendant elements of this element that have the name
'tagname'. The special tagname '*' matches all elements. The "mode" parameter
effects the DOMNodeList behavior as follows below:
|
| DOMElement.getElementsByTagNameNSEx | Namespace-aware version of the getElementsByTagNameEx API method. |
| DOMElement.getNodesByXPathEx |
Method returns either a live, snapshot or forward-iterator-only DOMNodeList
containing all the descendant nodes of this element that match up with the XPath
expression provided. The "mode" parameter effects the DOMNodeList behavior as
follows below:
|
| DOMElement.querySelector | RESERVED. |
| DOMElement.querySelectorAll | RESERVED. |
| InPlaceControl.ProgID | Property returns string of the ProgID for the ActiveX control in-context during OnShouldCreate/OnInitialize/OnSynchronize scripts. |
XMetaL XMAX 7.0
| API | Description |
|---|---|
| IXMetaLControl.SaveWithDoctypeDeclaration | When set to NO the doctype declaration is omitted from the saved file. Files that contain a doctype declaration when opened have the doctype declaration stripped from them. |
| IXMetaLControl.SaveWithSGMLDeclaration | Tells XMAX to whether or not to write out the SGML declaration whenever Save() is called. |
| IXMetaLControl.NormalizeImagesURLsOnSave | Automatically adjust all Treat As Image source attribute values in relation to the saved document's file location. |
| IXMetaLControl.NormalizeXMLBaseURLsOnSave | Automatically adjust all xml:base href attribute. |
| IXMetaLControl.NormalizeXMLBaseURLsOnSave | Automatically adjust all xi:include href attributes. |
| IXMetaLControl.NormalizeSystemIdURLsOnSave | Set to true (default): XMAX changes the SYSTEM URL (path to the DTD) in the Doctype Declaration to a path relative to the location of the XML file. Set to false: The path is left unaltered (i.e., the value it was when the XML file was first loaded). |
| IXMetaLControl.XmlOpenAsWellFormed | Intended to be used in conjunction with <PARAM> Xml startup of XMAX in a webpage to indicate a well-formed open is desired. |
| IXMetaLControl.EmptyElementGifPath | Image displayed for an empty element in Tags On and Normal views. |
| IXMetaLControl.MissingImageGifPath | Image displayed when images isn't found or href is unset while in Tags On and Normal views. |
| IXMetaLControl.TagsOnViewTagFontName | Typeface used for tag icons. |
| IXMetaLControl.TagsOnViewTagFontSize | Font size used for tag icons. |
| IXMetaLControl.TagsOnViewTagBackgroundColor | Background color for tag icons. |
| IXMetaLControl.TagsOnViewTagColor | Text and outline color for tag icons. |
| IXMetaLControl.TagsOnViewReducedTagsMode | Show tags without element names inside them. |
| IXMetaLControl.TagsOnViewShowComments | Show XML comments in Tags On view. |
| IXMetaLControl.ShowInlineImages | Visibility of tag tips in Tags On view. |
| IXMetaLControl.TagsOnViewShowTagTips | Visibility of tag tips in Tags On view. |
| IXMetaLControl.TagsOnViewTagTipsWithFixedAttributes | Visibility of fixed/defaulted attribute values in tag tips in Tags On view. |
| IXMetaLControl.TagsOnViewGraphicalTables | Hide table markup in Tags On view. |
| IXMetaLControl.EnableCALSTableAutoLayout | If enabled, ignores width attributes so you can see all of cells content (i.e. columns auto-widen). |
| IXMetaLControl.DrawGridOnBorderlessTable | Draw a dotted line around table cells when the border value is set to 0. |
| IXMetaLControl.TrackRevisionsUserName | Name used for change tracking. If no name is specified, the default Windows login user name is used. |
| IXMetaLControl.PlainTextViewFontName | Font used in Plain Text view. |
| IXMetaLControl.PlainTextViewFontSize | Size of the font used in Plain Text view. |
| IXMetaLControl.PlainTextViewAutoIndent | Auto-indent text after typing a carriage-return. |
| IXMetaLControl.PlainTextViewNoWrapInTags | Do not wrap text inside tags even if exceeding CTM maxlinelength. |
| IXMetaLControl.PlainTextViewExpandTabsOnSave | Covert all tabs (ASCII 0x08) characters into spaces (ASCII 0x20) upon Save() call. |
| IXMetaLControl.PlainTextViewShowLineNumbering | Display line numbering in source view on left-hand side. |
| IXMetaLControl.PlainTextViewTabSize | Width in spaces of a tab character in Plain Text view. |
| IXMetaLControl.PlainTextViewShowTabs | Display tabs in source view. |
| IXMetaLControl.PlainTextViewWrapLines | Wrap lines in source view. 0 = Off; 1 = Break within words; 2 = Break between words. |
| Document.InlineMediaVisible | Visibility of images and OCXReplacements, i.e. Hide/Show Inline Images state. |
| Document.msgHwnd | Current MSG.hwnd. Only valid to call during On_Application_View_Event. |
| Document.msgMessage | Current MSG.message. Only valid to call during On_Application_View_Event. |
| Document.msgWParam | Current MSG.wParam. Only valid to call during On_Application_View_Event. |
| Document.msgLParam | Current MSG.lParam. Only valid to call during On_Application_View_Event. |
| Document.msgTime | Current MSG.time. Only valid to call during On_Application_View_Event. |
| Document.msgX | Current MSG.pt.x. Only valid to call during On_Application_View_Event. |
| Document.msgY | Current MSG.pt.y. Only valid to call during On_Application_View_Event. |
| Document.WindowHandle | Document view HWND. Only valid to obtain when in Plain Text, Tags On, and Normal view-modes. |
| Document.RangeNearestPoint | Return Range object set as if mouse was pressed at the given screen coordinates. If no coordinates provided, current mouse position is used. If no Range, point was outside of window. |
| Document.BeginMutations | Signal start of a group of document mutations to be treated as a single undo-able action. Only valid for Tags On and Normal view-modes. |
| Document.EndMutations | Signal end of a group of document mutations to be treated as a single undo-able action. Only valid for Tags On and Normal view-modes. |
| Document.GetNodeSpellLanguage | Get node's spelling language. |
| Document.IsDummyNode | Returns true if the node is a dummy node. |
| Document.HighlightRange | Highlight a specified range of a document. |
| Document.SetHighlightedRangeState | Set status properties on a highlighted range. |
| Document.GetHighlightedRange | Get Highlighted Range by id. |
| Document.ScrollSelectionToTop | Scrolls selection to top of the view. |
| Document.ScrollSelectionToBottom | Scrolls selection to bottom of the view. |
| Selection.screenTop | Return TOP screen coordinate of current selection rect indicated. |
| Selection.screenLeft | Return LEFT screen coordinate of current selection rect indicated. |
| Selection.screenBottom | Return BOTTOM screen coordinate of current selection rect indicated. |
| Selection.screenRight | Return RIGHT screen coordinate of current selection rect indicated. |
| Selection.IsPointInside | Return true if screen coordinate is within the Range on-screen selection rect. |
| Selection.SelectNodeContentsAt | Moves this selection to be the content of the specified DOMNode at specified position. |
| Selection.SelectionLocation | Get/set the selection location in format <node xpath>;<left pos>;<right pos>. |
| Customizations.ElementPropList | Returns an object for the Element Properties. |
| ElementProps.Item | Returns an element property item. Index ranges from 0 to Count 1. |
| ElementProps.Count | Returns the number of element property items. |
| ElementProp.Name | Returns the element name of the element property. |
| ElementProp.LongDescription | Returns the long description of the element property. |
| ElementProp.ShortDescription | Returns the short description of the element property. |
Bug fixes and minor enhancements
XMetaL XMAX 14.0
| Feature | Description |
|---|---|
| API | IXMetaLControlEvents::OnDropFiles is a new event sink method that will be called after files are drag'n'dropped onto the XMAX editing window. This method is called before any event macros (i.e. On_Drop_Files) or built-in behavior is executed. |
| API | The new On_Triple_Click event macro is fired whenever the user triple-clicks in Tags On or Normal view. Similarly, the IXMetaLControlEvents::OnClick event sink is fired with a clickCount parameter value of 3. |
| API | ActiveDocument.Host.DropFileCount property returns the number of files drop onto the document. This property is for use during the On_Drop_Files event macro. |
| API | ActiveDocument.Host.DropFileName property returns the fullpath filename drop onto the document for a given index. The property is for use during the On_Drop_Files event macro. |
| API | Find.ExecuteEx method extends upon the Find.Execute method with an additional parameter to highlight all matching occurences. |
| API | API calls returning DOMNodeList (e.g. childNodes or getNodesByXpath) could cause an application crash if the list contained DOM text nodes. |
| Architecture | 'gen' folder path too long if UNC-based APPDATA folder path configured. |
| Editing | Triple-clicking within a WYSIWYG view will select the entire containing element including its start and end tags. |
| Editing | Rendering of "whitespace" characters U+2000 thru U+200D was incorrect. |
| Editing | Ctrl+C would crash in rare cases while enumerating available clipboard formats. |
| Editing | Pasting text with content that could be intrepretted as an XML namespace prefix could cause the application crash. |
| Editing | Clicking the left mouse button always made a selection instead of setting an insertion point if XMAX was running inside Internet Explorer on Win10. |
| Image support | Images are not displayed after collapsing and expanding the parent element tag. |
| Table editing | Deleting a column could cause the document to become invalid (due to leftover empty row elements) for table instances with complex morerows setups. |
| Table editing | Modifying a table's colspec attributes removes or changes id attributes unexpectedly. |
| UI | XFT form widgets that cannot accept keyboard focus and have XPath property set would crash. |
XMetaL XMAX 13.0
| Feature | Description |
|---|---|
| API | IXMetaLControl.AddChangedNodeKey method adds customization-specific changed node lists identified by the given key string. |
| API | IXMetaLControl.RemoveChangedNodeKey method removes customization-specific changed node lists identified by the given key string. |
| API | DOMElement.wordCount property returns the number of words including those in all child elements. |
| API | ChangedNodes list is incorrect after modifying table properties. |
| API | Calling the Document.UndoClear method or setting the Document.Saved property after having just typed a few characters would result in a crash. |
| Architecture | 64-bit version could crash after running script on Windows 8/10 systems. |
| Editing | Editing actions that cause clipboard changes could trigger a GPF. |
| Editing | Running a macro that inserted markup could cause a GPF. |
| Image support | SVG image file could not be drag-and-dropped into non-DITA documents and a strange error message would appear. |
| SGML support | Unable to switch from plain-text if document contains an internal subset. |
| Table editing | After copy and paste of multiple table rows, document is not consider modified and cannot be saved. |
| Table editing | After deleting a table header or footer row, the document becomes invalid. |
| Table editing | Insert row above first row or below last row would not do anything. |
| Table editing | Switching views after undoing a table editing action could crash. |
XMetaL XMAX 12.0
| Feature | Description |
|---|---|
| API | IXMetaLControl.ValidateBeforeExport property allows controlling whether or not XML validation is applied during a document save or export action. |
| API | Selection.Find.Execute method would crash or do nothing when passed a text string with a length of 249 or more characters. |
| API | Calling the Document.UndoClear method or setting the Document.Saved property after having just typed a few characters would result in a crash. |
| Architecture | 64-bit version could crash after running script on Windows 8/10 systems. |
| Architecture | 64-bit version could crash after running XFT form on Windows 8/10 systems. |
| Architecture | Cannot open document if its corresponding DTD or XSD was located in a deeply nested folder structure. The per-user generated folder path XMAX made for writing compiled rules file was longer than Windows would permit. |
| Architecture | Cannot open document if its corresponding DTD or XSD was located in a deeply nested folder structure AND APPDATA is set to a UNC-based folder path. The per-user generated folder path XMAX made for writing compiled rules file was longer than Windows would permit. |
| Editing | Deleting text and closing document afterwards causes GPF. |
| SGML support | SGMLDECL catalog directive ignored and .dcl file extension not recognized. |
| UI | Some CSS fonts used to style paragraphs/blocks would end up truncating content at the end of paragraphs whenever a Tab character was present. |
| UI | Change tracking tooltip appears on 2nd screen of dual-monitor system. |
| UI | Jscript with Unicode text constants for XFT button labels displaying as question marks. |
| WebDAV support | WeDAV LOCK request failed if MSXML6 installed. |
| XSD support | Cannot open files that include DTD subset and reference XSD Schema. |
XMetaL XMAX 11.0
| Feature | Description |
|---|---|
| API | Document.TagsOnGraphicalTables property added to allow toggling graphical tables display on a per-document basis. |
| API | ShowTagTips and similar boolean properties set to True at design-time were not working properly. Underlying prop_get implementation was returning a C++ bool value instead of a VARIANT_BOOL value. |
| API | WritePermittedContainer API failing when used inside ReadOnlyContainer node. |
| Architecture | Calling LoadFromFile API would crash the x64 version on Windows 8 or newer. |
| Editing | Rendering is wrong and confusing after deleting part of nested tracked changes. |
| Editing | Parameter entity in internal subset is dropped. |
| Editing | Pasting partial element causes a crash or the clipboard locks up. |
| Editing | Typing <Enter> deletes element to the left of insertion point. |
| Saving documents | Entity reference removed from internal subset after saving. |
| Table editing | Follow CALS table spec for @valign attribute on row, thead, tbody, tfoot elements. |
| Table editing | Deleting table column does not mark document as dirty (modified/changed). |
XMetaL XMAX 10.0
| Feature | Description |
|---|---|
| API | Selection.IsMultiCellSelection property returns true if multi-cell table selection. |
| API | Selection.Cells property returns DOMNodeList for multi-cell table selections. |
| API | CanElement.DisplayName property returns string of the nice name configured for an element via CTM file. |
| Editing | Deleting a collapsed tag removes root element instead. |
| Spell checking | Canadian English spell check should accept "program" and "programs" as correct. |
| Spell checking | French spell check should treat "aujour'dui" as one word and correctly spelled. |
| Spell checking | "Resume" function starts from beginning if edits occur inbetween which is not the same behavior as it was in version 4.0. |
| Table editing | Splitting table that contains multiple footer rows crashes. |
| Table editing | Splitting an HTML table that does not have <tbody> crashes. |
| Table editing | Multi-level sort in table does not work as expected. |
| XSD support | Defaulted attributes not inherited properly. |
| XSD support | Software would attempt to open URN for included or imported schemas locations. Fallback for URI lookup improved. |
XMetaL XMAX 9.0
| Feature | Description |
|---|---|
| API | Add API for joining tables. |
| API | Add API for splitting tables. |
| API | Tags On view tag icons displayed completely black if TagBkgdColor and TagColor design-time properties were left unset. |
| CSS support | Support CSS properties - border-top, border-bottom, border-right, border-left. |
| Editing | Undoing drag'n'drop or cut/copy and paste actions required doing Undo twice. |
| Table editing | Inserting element into THEAD in custom CALS table model, then undoing, results in application crash. |
| Validation | Validation of xs:date or xs:time datatypes could crash due to internal buffer overrun. |
| Validation | Validator complains about comment inside empty element. |
| Validation | External parameter entity resolving to wrong location of master DTD instead of parent file. |
XMetaL XMAX 8.0
| Feature | Description |
|---|---|
| DTD support | External parameter entity resolved using wrong base location (top-level DTD location used instead of including module base location). |
| Editing | Typing-allowed test was resulting in the wrong behavior when rules checking was turned off. |
| Editing | Cannot deselect a selection with a single click in editing area. |
| Editing | Cannot drag and drop elements to move them around when using XMAX inside IE8 and IE9. |
| Formatting | Blue diamond image (empty.gif) is not being displayed for empty elements unless EmptyElementGifPath API called. |
| Formatting | Japanese "full-width space" U+3000 rendered same size as regular space U+0020. |
| Opening documents | Crash may occur when opening a file with many (> 50) large images. |
| Spell checking | Switching between Spell Checker and Thesaurus would render "Options" button incorrectly or hang. |
| Validation | Incorrect XSD validation when "" (empty string) is allowed as enumerated attr value. |
XMetaL XMAX 7.0
| Feature | Description |
|---|---|
| Architecture | Documents opened directly into Plain Text view do not trigger per-user settings RLX generation in %appdata% and lead to non-UAC-savvy behavior. |
| Change tracking | Custom processing instructions are deleted or altered instead of integrating them into a Change Tracking PI. |
| Editing | Double click word followed by period with no space selects word + period. |
| Image support | Crash occurred rendering a PNG with "sRGB chunk". |
| Saving documents | Document.Saved property was correctly indicating a "dirty" documents. |
| Saving documents | "Undo past save" feature broke ActiveDocument.Saved API (and UI). System would still prompt user to save. |
| Spell checking | "Default" spell check user-word-list (UWL) is ignored when custom words added. |
| Spell checking | Spelling mistakes are flagged for content marked with xml:lang="zxx". |
| Table editing | Modified CALS table model triggers invalid <spanspec> insertion. |
| Table editing | Inserting a CALS <table> left out required @cols for <tgroup>. |
| Validation | Document with processing instruction that does not contain a target validates (yet should not). |
| Validation | Validating document or selection does not catch processing instruction target that contains illegal characters. |
| WebDAV support | Locking a file on WebDAV server fails if http response body returned has no length specified (i.e. compound response). |
| XML namespace support | Cannot create new doc or open existing doc because adding default namespace without checking for ancestor namespace declarations. |
Known issues
XMAX product activation dialog may be hidden by the web browser window hosting XMAX
When a web application for XMAX is launched, XMAX's license activation dialog may end up appearing behind the web browser's window. This often occurs if Internet Explorer has displayed its "Allowing blocked content" warning. Use Alt+Tab and/or the mouse to reveal the XMAX License Activation dialog so you can proceed with activating XMAX.
Document is always opened in read-only mode when using Internet Information Services 7.0 (IIS 7.0)
IIS 7.0 is no longer open for anonymous HTTP put operations. Consequently, XMetaL cannot open files for editing over an Internet connection, which causes files to open as read-only.
For more information, go to http://www.iis.net/learn/get-started/whats-new-in-iis-7/what39s-new-for-webdav-and-iis-7 and refer to the third bullet point under the "Changes and Known Issues in WebDAV for IIS 7.0" section.
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.
Support services
For a list of telephone support offerings, online service options, and support downloads, visit http://xmetal.com/support/.
To contact XMetaL support directly, e-mail us at [email protected], or telephone us at one of the numbers listed at http://xmetal.com/content-about-contact-us/.