An overview of the new features available in the latest version of XMetaL Author Enteprise. This is the slide deck from a webinar we did. If you'd like to view the webinar recording with audio, it's available here:
http://justsystems.xmetal.com/webinar_downloads/65_New_Features_in_XMetaL_Author_Enterprise_7
Thanks for joining, everybody and welcome to our tour of XMetaL 7.0. Those of you who know me probably know my inclination to charge boldly through live demos, but today in the interest of time and sanity I am going to resist the temptation. We have a lot of highlights to look at today.
I’ve divided the new features into three categories or “themes”. The first is User Experience, both for XMetaL in general – by which I mean regardless of the document type that you are using – and for DITA in particular. The second is our support for DITA 1.2, and the third is sort of a grab bag but mostly focused on enhancements to the extensibility of XMetaL as an XML authoring platform.
In the ~usability~ theme there are a bunch of things that are built in to XMetaL for any document type, and there are some usability enhancements that are specific to working with DITA. This first batch is the general-purpose stuff.
We’ll start with a big fan favourite, “Find in Files”. With XMetaL 7 you can now search across folders or DITA maps, as well as all the documents you have open in the editor. In addition, we’ve beefed up the underlying Find capability, but more about that in a moment. The Find in Files command is located on the Edit menu as you can see here. Alt-E-N – if you’re a keyboard junkie like me.
The “basic” Find in Files text search is about what you would expect from a Find dialog, with a box for your search string and some options for setting search parameters.
Here near the top is the exciting part: You can select various options for the “scope” of your search. I got that folder on the list by hitting the Browse button. The DITA map is there because I just happened to run this command when a map was open in the Map Editor.
When you do a Find in Files, the results come up in a new window called the Results Pane. This window is now used to show the results all the various types of operations in XMetaL that produce lists of results, such as good old XML validation, XInclude reference checking, and some others that we’ll be seeing today. All the different result types show up in different tabs in this window.
Here’s a wider screenshot that we’ll use to see to see some of the things you can do with Results Lists.
LAST BU T NOT LEAST ...
Back to Find in Files, the next tab over is a big improvement in XMetaL’s search capability. This dialog allows you to search directly for XML elements or attributes, and is much more flexible than the markup search capability that was in XMetaL before. Some of these things you had to do in Plain Text View, and some of them you couldn’t do at all.
Last – but again NOT LEAST – the third tab gives you even more search power. You can search for any XPath expression that you can come up with. The one here is pretty dead-easy – it’s the same as the markup search from the previous slide, returning any occurrence of the href attribute. In fact, this was pre-loaded for me in this tab after I did the previous search. XMetaL actually uses its XPath engine behind the scenes when you do a Markup search. Look for us (probably Derek) to be posting XPath example searches on our community forums.
Another big new cross-file operation is Spell Checking. You have the same options for “scope” and you get a similar sort of Results List with the same kinds of operations – moving from result to result, automatically opening successive files, and so on. One thing to note is that we do not currently allow a global “replace” – you have to open each topic individually and use regular operations for that. Global search-and-replace is an operation faced with very tricky challenges, such as how would XMetaL allow you to “undo” a change you made by mistake? We are working on designs for this feature in the future.
Find and Spell Check are the two “big” examples of cross-file operations, but we also have built a framework allowing for developers to add their own. More about that later, but for the moment here’s a peek at some more built-in examples. This is available from the Tools menu. Accept All Changes will accept all XMetaL tracked-changes in all of the selected documents. Detect Duplicate Ids will actually look for duplicate attribute values for any attribute you name. Validate References will look for broken references in all the documents. Word Count will report the number of words in all documents, and a grand total. All of these operations can be applied to the usual scopes, and Results (if any) are displayed in the Results pane.
Next let’s look at a fun new feature that we have cleverly named the “in-place look-ahead element list”. First you have to remind yourself of a certain way that XMetaL has always worked (and still does). This is a little bit of a DITA topic showing parts of two sections and their titles. In Normal view the cursor is actually *inside* the paragraph element, and this DTD does not allow <section> inside <p>, so XMetaL’s Element List pane does not show you the <section> element among the possible elements to insert.
With Ctrl+Enter you get a popup window – right at your cursor – that not only shows the elements allowed at that position, but also looks ahead a bit to find other elements that can be inserted after some of those invisible tags. You can start typing the name of an element or scroll to find it, and press Enter to insert it into your document.
Last in the “Usability for arbitrary DTDs” section of the slides. In older versions of XMetaL, the Attribute Inspector displayed attributes in the order they were defined in your DTD. At some point in recent years – we don’t seem to remember when -- we started sorting them alphabetically. Some of you didn’t like it. Now you have a choice.
We’ve made several improvements to the Map Editor. The Find References command actually uses our Find in Files capability, by automatically constructing an XPath to find all the references.
There’s a new markup-preview tab in the Insert-Topicref dialog allowing you to see what the markup will look like for the topicref that you are in the process of inserting. This gets very handy especially in working with keys. Note also <navtitle>.
The properties dialogs for DITA elements have been improved. In particular, attributes with predefined values are now changeable via a dropdown list.
Last in the “Usability for DITA, but not specifically related to DITA 1.2” category If you attempt to generate output with the DITA OT and a required third-party component is missing, XMetaL will warn you about it. Examples of this include the HTML Help Workshop for CHM output and kindlegen for Kindle output.
The biggest new set of features – or at least, the one that’s going to give me the most number of new stars today – is keys. There are three categories that the new features about keys fall into.
In the map editor there are commands on the Insert menu – or the “little Insert menu” as I call it – to distinguish it from the Insert menu on the main XMetaL toolbar. ... Commands on this menu for inserting basic key definitions and the special case of key definitions with keywords. The basics of creating and binding a key are to give it a name and browse to select the target, but the dialog gives you access to everything else that you might need, including (don’t forget) the Preview-markup tab.
Inserting a key definition with a keyword is a special, simple case that has its own dialog. Here you can give a name for the key and a value for the keyword. Markup preview here is right there in the display.
Second category of key stuff is about creating key-based references.
If you’re familiar with the former “conref” commands on our menu, those are still there, but now we also have analogues for creating key-based references.
In most cases the dialog you get when you are inserting a key-based reference is similar to the dialog you get when you are inserting a direct reference, except that instead of browsing to select a topic, you will select a key.
Finally, let’s look at features involving key spaces and “context”. Context is a term we use to refer to the editor “knowing” the key space you are working in, and providing key resolution on the fly to assist you with editing. Basically this means you get things like conkeyrefs being resolved and the target is shown in the editor, just like it is with conrefs. With keys you can actually change your context “on the fly” and XMetaL will re-resolve the conkeyrefs and change the transcluded content.
For control over managing your context we have a “Key Space Manger” window. This is available from the Reuse menu. From this dialog you can select the key space that is associated with the current document, and you can also add new key spaces to your current editing session.
To add a new key space to your session, you select a DITA map and (optionally) a DITAVAL file.
Now we’ll look at a few things related to publishing with XMetaL’s built-in DITA OT.
And we’ve made a small but significant change to the XMetaL WebHelp output type. You can now search for two words in the output, returning topics that have both of the search terms.
We have full support for conref range. You can create conref ranges in the new Insert dialog by first selecting the starting element (the conref attribute in DITA), and then checking the box for “End of range”. XMetaL automatically displays only the elements that are valid conrefend targets based on your starting element. Conref ranges are displayed as transcluded (or referenced) content in the editor.
We’ve given you much more control over which types of references get refreshed whenever references are refreshed (either manually or automatically). For one thing this is about time-savings, because refreshing can be a very expensive operation. But in at least one case it also avoids having XMetaL add markup that some prefer not to have in their DITA topics. In particular, if you refresh cross-references, XMetaL inserts a processing instruction that displays the title of the target topic. Keeping this box unchecked means no Pis are inserted.
Aka the Grab Bag
This is actually a really big (in the sense of important) new feature, so I want everybody to wake up for a moment before we dwindle back down again.
And now our LAST SECTION OF STUFF -- extensibility