Forum Replies Created

  • Derek Read

    Reply To: On_Document_Open_View not fired for DITA maps?

    Participants 0
    Replies 2618
    Last Activity 11 years, 11 months ago

    I managed to display the Save As… dialog automatically for new maps by editing DITAMAPMANAGERjsDitaMapHandler.js

    Hacking the code like this is likely the only way to do this until we implement a supported method for clients to officially change the DITA functionality.

    Reply

    Derek Read

    Reply To: Converting 3.1 dct file contents to 5.5 uwl

    Participants 0
    Replies 2618
    Last Activity 11 years, 11 months ago

    There is no upgrade tool for converting between these formats. The spell checker for 3.x and previous releases was provided to us by a 3rd party that did not provide a means for us to decode the binary encoded data in the *.dct file format.

    The current spell checker is based on the Corel “Writing Tools” technology included with most Corel products (we implemented this while we were owned by Corel a few years ago). We have tools that will allow us to create files compatible with the current format if you are able to provide us with a plain text file containing a list of words. This is not something we currently let clients do themselves (we do not provide the tools for your own use), but the Professional Services team could be contracted to create compatible files.

    Reply

    Derek Read

    Reply To: How to set tag colors

    Participants 0
    Replies 2618
    Last Activity 11 years, 11 months ago

    This is not possible. There is no concept of parent elements when it comes to the coloring of element tags using settings in the CTM file.

    If you really need to make it easy to distinguish between elements by color the best you could do in this case would be to change colors using CSS background-color, color or border properties in the CSS file.

    A very simple example:

    Parent1 Comment {color:#FF0000}
    Parent2 Comment {color:#0000FF}

    Reply

    Derek Read

    Reply To: Relax NG and XInclude?

    Participants 0
    Replies 2618
    Last Activity 11 years, 11 months ago

    To make mag3737's reply a little more clear, conref is the DITA equivalent of Xinclude (this is the General discussion board, not DITA so people reading here might not be familiar with that concept). It isn't exactly the same but is close enough that for most people the end result is the same. So, currently if you are working with DITA documents that is really the way to go (more because that is what DITA recommends than for any other reason). In theory we could extend how the product currently supports DITA conrefs to implement support for XInclude. We don't talk publicly about what is currently on or off of our current roadmap though (unless it is likely to never happen), so I can't give a clear answer or dates here.

    It is unlikely that we would support RelaxNG anytime soon. The number of clients using DTDs and Schemas far outweigh the number of serious requests we've had for support for RelaxNG to date. Of course, nothing is ever set in stone, and I don't profess to talk on behalf of our management team  (they ultimately make the final decisions on these types of things). It is more likely (in the near term) that we will spend time improving our (W3C) Schema support than implementing a brand new schema type like RelaxNG.

    If you know of a specific standard (ie: not proprietary) document model implemented in RelaxNG that is not also implemented as a Schema or DTD (or cannot be implemented as such) I would be interested in that information. That might also be a driving force behind RelaxHG implementation if the particular document model is one many people are interested in using.

    Reply

    Derek Read

    Reply To: DITA Map Specialization: open in map editor

    Participants 0
    Replies 2618
    Last Activity 11 years, 12 months ago

    Yes, we are working closely with people at OASIS (and if you are curious the DITA OT). Support for 1.2 is very high priority.

    Reply

    Derek Read

    Reply To: On_Document_Open_View not fired for DITA maps?

    Participants 0
    Replies 2618
    Last Activity 11 years, 12 months ago

    The map editor currently has no APIs (no events, no methods or properties) that you can tie into. It is a closed system and not open for customization at this time.

    It sounds like your real issue is that links are not being made relative because users might not save a document before adding links to it (which you are trying to work around by forcing a save). We hope to correct this in the future so that saving a file (map or topic) before inserting a link should not be necessary.

    I'm thinking some sort of url adjustment at save time would be the least intrusive but the solution hasn't been decided on yet so I cannot say exactly how it would function. One alternative would be to prompt the user to save before inserting anything containing an href or conref into an unsaved document, or do you think that would be too intrusive? Yet another option would be to force a save right after creating any new document (which is what you are proposing).

    Note that whatever is decided on will likely have to take CMS integrations into account, and that might throw a wrench into solutions that might otherwise work when documents are stored only on a local file system.

    Reply

    Derek Read

    Reply To: How do I modify which elements are inserted when pressing Enter in DITA Tasks?

    Participants 0
    Replies 2618
    Last Activity 11 years, 12 months ago

    The best we can do in this case is to modify the CTM file. This is something we can support. In addition to this however, the DITA functionality includes a feature we refer to as “smart insert”. This is implemented via script and we do not support clients making modifications to the scripts at this time, nor are there any config files or other means for modifying this behavior. This feature might be getting in the way in this instance.

    In the future we hope to extend this functionality to give you more flexibility in configuring these settings and allow you to override the smart insert behavior to get it to do exactly what you want.

    When (and even if) that work will be done we cannot say at this time as such a feature will be competing with all the others we are working on.

    Reply

    Derek Read

    Reply To: DITA Map Specialization: open in map editor

    Participants 0
    Replies 2618
    Last Activity 11 years, 12 months ago

    There is no set date for this feature though it is on our road map (along with lots of other features that are competing against each other). We don't usually announce dates or guarantee that any particular feature will be included in any given release.

    When we do this feature our goal will probably be to enable editing for any specialized map type (not just bookmaps) which may mean more development work but in the long term I believe that is really the best way to go.

    Reply

    Derek Read

    Reply To: Where to submit bugs?

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    XMetaL Support can be contacted via this form:
    http://na.justsystems.com/contact-support.php

    Reply

    Derek Read

    Reply To: Require some XML and XMetal terms answered

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    This is a good book to read through if you are curious about XML in general:

    http://www.xmlhandbook.com/

    For people new to XML some of the specifications (even the XML recommendation itself) can be difficult to read. Starting with this book will give you a very good foundation to build on. After reading this understanding any of the XML-related recommendations or specifications will be far easier.

    Reply

    Derek Read

    Reply To: Repository > Log On / Log Off Greyed Out

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    Please do not make any changes to files in the folder C:CRCL
    This is core code that drives the “XMetaL Connector” system (the standardized system we provide to allow CMS vendors to create their own integrations with XMetaL) and should not be altered. Doing so could break the vendor's connector. XMetaL Support will also not support an installation of XMetaL Author that has been modified this way.

    If you think there are problems with a portion of our code please submit a support case on the na.justsystems.com website detailing the issue so we can have a look and, if necessary, correct it in a future release. In some cases we might provide patches directly to CMS vendors (so you don't need to wait for our next version).

    Reply

    Derek Read

    Reply To: Controlling Table Borders

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    Doctype Declaration and Public vs System Ids:

    With the Doctype declaration in this XML file (which points to ../../../../System/DITA/dtd/main.dtd) XMetaL Author will be looking for that file at that location (relative to the XML file).

    An out of the box XMetaL Author Enterprise installation really expects to see a PUBLIC id here, as follows:


    This way a catalog lookup is made possible, and XMetaL Author will then be able to direct itself to use the DTDs that we ship (which are standard unmodified DITA DTDs in case that is a concern). The reason the DTDs need to be in a specific location is because XMetaL needs many other files (also at this location) to provide a proper editing experience for DITA (CSS files for display, many scripts for functionality, forms to aid with attribute entry, and many other things).

    If you simply direct XMetaL to use a DTD at a location of your choice that location will not contain all these other supporting files. When this happens the product automatically generates a minimal set of customization files (CSS and CTM). Because these are automatically generated they are not going to be optimal – a human really needs to be involved to provide a professionally functioning customization. This feature is there to help people with other (non-DITA) DTDs that do not yet have a customization, so they are able to at least view their documents. This is somewhat analagous to simply loading an XML document into IE, which provides a default tree-view, it might be usable but isn't really pretty. Compare that to loading an XML file together with an associated CSS or XSLT file (created by a person) into IE. You might see something similar to an HTML page. That is comparable to XMetaL loading an XML file that has an associated set of customization files (created by a person). We've spent a few years perfecting the customization files used for DITA editing.

    In general when working with XML with multiple tools (in this case XMetaL Author, the DITA OT and a CMS) it is usually best to use PUBLIC id values because this enables catalog lookup by each tool. It is also very easy to break a SYSTEM id if you move a file with a non-XML aware application (such as Windows Explorer).

    Sibersafe:

    With regard to Sibersafe, I would strongly urge you to contact the vendor to obtain the proper configuration for XMetaL Author Enterprise from them, which ideally would have specific support for DITA. In this case (because a CMS is involved) there may be specific requirements about where you must store your files, as well as the content of the XML (SYSTEM vs PUBLIC id) that the CMS expects to see. In most cases a CMS vendor will provide a set of special files you either need to install on the CMS to support XMetaL and very likely a set of files you need to install with XMetaL (usually at a minimum this is a set of scripts) for it to communicate properly with the CMS. In addition, because XMetaL Author is customizable a particular vendor may modify the way it functions and so what I have stated in the previous section may not entirely apply. You really need to ask them how they expect the system to be configured.

    CALS Table Support:

    Finally, our Table Properties dialog only supports “0” or “1”. This is because of the wording in the [url=http://”http://www.oasis-open.org/specs/a502.htm”%5DCALS table specification[/url], which states that a value of “0” indicates a separator is off, while any value greater than zero indicates it is on. We chose to expose only the values “0” and “1” in this dialog so that users do not get confused and expect a value of “2” or higher to indicate something more than it does (such as the width of the border). CALS tables are different from HTML where the border attribute actually does mean “this many pixels wide”. Note that we also chose to render the value “0” as a dashed line and a value of “1” (or more) as a solid line. This allows people that have turned borders off to still see where cells start and end.

    That having been said, it is perfectly valid to set another value and you may have good reason to do so. Personally, I would try to avoid putting any styling hints into XML wherever possible and move that into my transformations (whatever is generating my output), but if you find you do need to modify the colsep and rowsep to give it a value you cannot give in the Table Properties dialog you can do so in the Attribute Inspector. Keep in mind however, that if you set a value other than “0” or “1” it will not be reflected in the document in an obvious way (ie: any value greater than “0” simply indicates a border is “on”).

    To change an attribute value for an element's ancestor (which for example would allow you to set values for

    which is not really selectable) you can do the following:

    1. Place your cursor inside an element (such as ).
    2. Select the drop down list at the top of the Attribute Inspector and change it so that you are editing the attributes for the current selection's ancestor.
    3. Set the attribute.

    If you need to do really fancy table configurations that require setting attribute values on various table elements you may wish to set the INI variable tags_on_graphical_tables = false and make these changes in TagsOn view, which will then show all elements in the table (and not render the table as a table).

    Keep in mind that we are talking entirely about the editing portion of working with DITA documents here, not the output. Depending on which output format you are generating and how the DITA OT supports that you may see different results. If you need your tables to look a certain way in your output it is generally best (in my opinion) to modify the XSLT or XSL-FO used to generate that output and keep the attributes in your CALS table to a minimum. This way you will generally get a more consistent output regardless of which person is editing your DITA documents because the table styling is then done in a more automated fashion.

    Reply

    Derek Read

    Reply To: Change window title

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    Is it possible to set the window title (through a customization) to something else then the default (e.g. the value of an element or attribute)? By default the window title is set to the file name of the XML file.

    Yes, you can do this. The API to set in your script is the Document.Title property. The simplest such script that will do this is documented in the XMetaL Developer Programmer's Guide as follows:

    ActiveDocument.Title=”A new title”;

    That will set the text that appears for the current document in the XMetaL Author's title bar.

    …and to answer ghkrause's additions:
    Setting the value for Document.Title also changes what appears on the tab for each document as well. You still cannot modify the tooltip text that appears when you hover over a tab though. That will still report full path to the file.

    Reply

    Derek Read

    Reply To: Table – Merging Multiple Cells

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    But is it possible for me to customize it so that it can be done? If so, where can I change it?

    You might also wish to take a step back and ask if the table model supported by your DTD or Schema is really going to support the type of output you wish to produce, or perhaps more clearly, allow you to easily transform from one to the other. If you have complete control over this choice  then this is the best time to ask those questions. For example, if you know the majority of your final output will be HTML, then perhaps selecting the HTML table model would be best. That way, when it comes to transforming tables in XML to HTML no transformation (in theory) would be necessary. On the other hand, you may have a specific tool or XSLT that is really good at transforming CALS to HTML, in which case you may wish to use CALS. If you make up your own (not CALS and not HTML) then you should be aware that the special table editing functionality provided for those table models will not apply.

    To try to answer your actual question…

    There is no way to make simple changes that will enable this feature. For users of XMetaL Author the simplest solution, obviously, would be to wait for a release that contains the function.

    In theory though, I think there might be enough APIs in XMetaL Author to create a script that would do this. Such a script would very much depend on the table model you are working with (ie: what does it mean when you “merge cells” because each table model is slightly different). This is why knowing which DTD or Schema you are using is important. However, I suspect that your limited understanding of XML might mean that it would be difficult for you to create such a solution, even if you were to find the appropriate APIs in the XMetaL Developer Programmer's Guide and come up with appropriate logic. If this is a feature you must have you can contact your XMetaL sales rep and ask them for a quote on implementing the feature for your specific case (and at a minimum the people that do this work will want to know which DTD or Schema you are using).

    The theoretical script I'm thinking of that might do what you want would have logic similar to the following:

    1. Store the beginning and end of the selection as a Range object.
    2. Check to see if the user's selection is inside a table using. Using InContextOfType() is probably good enough. If you are not in a table then exit.
    3. Find out how many child elements of what you have selected are rows. getNodesByXPath might be a quick way to do this. This is where you might need to know what table model you are using (HTML uses

    while CALS uses and semantic could be anything). If there is more than one row then exit.
    4. Find out how many first child elements of the user's selection are table cells. Again, this is probably going to be specific to the table model and different for HTML and CALS. You might use getNodesByXPath, or you might try to walk the DOM and use InContextOfType(), or their might be other smarter ways to do this.
    5. Place a Range at the start of the user's original selection. I think at this point we can assume we are somewhere inside a table cell.
    6. Merge right as many times as required to merge everything the user selected. This is why we counted the number of cells in step #4. One API that does this is MergeCellRight().
    7. Try to restore something similar to the user's original selection. This might be tricky because you have changed a bunch of nodes inside it, so you might need to make a new selection. This is why we stored start and end Range objects in step #1.

    Actually getting it to work would be the hard part. In some cases MergeCellRight() may fail. That would likely be the case if a cell is already merged across rows (possible in some table models), in which case do you just stop? Do you back up and undo all the merges you already did? Does the script need to be smart enough to figure out that this would happen ahead of time and tell the user they can't do what they want to do?

    Reply

    Derek Read

    Reply To: Looking for Script to toggle capitalization

    Participants 0
    Replies 2618
    Last Activity 12 years ago

    I've posted the example here:
    [url=http://forums.xmetal.com/index.php?topic=73.0]http://forums.xmetal.com/index.php?topic=73.0[/url]

    Reply

Products
Downloads
Support