DiffDog Reports for Service


A recent message on Twitter asked whether DiffDog can create a differences report. The short answer is yes! In addition to its renowned directory compare and merge, file compare and merge, database compare and merge, and XML diff merge functionality, Altova DiffDog can create differences reports for directory comparisons and for file comparisons. After you select the directories or files and the compare options you want to apply, you can create a report file by choosing Export differences from the DiffDog File menu. DiffDog Export differences menu option This opens a Save File dialog that lets you choose to create the diff report in text format or as an XML file. Text format reports follow the well-accepted Unix diff style. In the directory comparison example report below, the < character indicates a file that exists only on the left side, > indicates a file exists only on the right, and ! signifies file names that occur in both directories with unequal content. DiffDog directory report text format Report files in XML format are human-readable with descriptive element names and record the the comparison mode and the paths of the directories compared: DiffDog directory report XML format You can also use the DiffDog directory report functionality to create diff report files for comparisons of Zip archives or OOXML documents. Developers and other project stakeholders often want to keep a record of changes to source code files in a software project. DiffDog can create diff reports for all comparisons of text-based files, including source code files. DiffDog can even create detailed XML-aware reports for XML file comparisons. The illustration below shows two versions of a Java source code file: DiffDog file differences example If you read our earlier series on Reverse Engineering an Existing App with Altova UModel, you may recognize this code. Lines 8 and 9 on the left introduce a new class property called fee that is set to an initial value of 2. Here is the file compare report for the differences shown above in text format: DiffDog file differences text report And the XML version of the report for the same portion of the files: DiffDog file differences text report You can even execute DiffDog from a command line to create differences reports automatically. Here is an example of a short batch file that compares the same two directories from our GUI example and writes the output in XML in a file named diff_1.xml: DiffDog batch file The DiffDog Help system includes extensive documentation on all the command line options, including specific instructions on how to integrate DiffDog with 19 popular source control systems. If DiffDog report files get your tail wagging, don’t just Twitter about it! Click here to download a free 30-day trial of Altova DiffDog.

Tags: , , , ,

Adding z-segments to HL7 Mapping Components


When mapping HL7 EDI components, it is often necessary to add locally-defined information, or z-segments, to accommodate additional fields not included in the standard. Following is a simple walkthrough that will demonstrate how to add z-segments to the HL7 configuration files that are available as a free download with MapForce. In the example below we will be adding a ZLR segment to an HL7 2.3 Observation Results Unsolicited (ORU) message. The ZLR segment is commonly used for adding additional information for legacy laboratory-based reporting. ZLR attributes are provided below:

SEQLENGTHOPTDATA TYPEELEMENT NAME
1106trueXADOrdering Provider’s Address
290trueXONOrdering Facility Name
3106trueXADOrdering Facility Address
440trueXTNOrdering Facility Phone
520trueSNPatient’s Age
640trueXPNNext of Kin/Associated Party Name
740trueCENext of Kin/Associated Party Relationship
8106trueXADNext of Kin/Associated Party Address
940trueXTNNext of Kin/Associated Party Phone

The ZLR segment must follow each OBR (Observation Request) segment, and there can only be one ZLR per OBR. 1. Go to C:Program FilesAltovaMapForce2009MapForceEDIHL7.v230 to access the MapForce configuration files for HL7 version 2.3. 2. First, locate the message configuration file in question, ORU_R01, and open it in XMLSpy – or any text editor.[i] Add a ZLR just below OBR. hl7 mapping 3. Save this file as ORU_R01_ZLR (or any unique name you choose). 4. Now open the EDI collection file and add the new message to the list.[i] hl7 mapping 5. Next, simply open the HL7 SEGMENT file to add the segment details to the GENERATE DATA section as provided above.[i] hl7 mapping 6. Finally, scroll down to the GENERATE SEGMENTS section and add the following: hl7 mapping 7. Now, let’s access our newly customized HL7 EDI mapping component in MapForce. Open MapForce and choose Insert > EDI. In the Browse EDI collections dialog, select HL7.v230 and scroll down to select ORU_R01_ZLR. hl7 mapping Press OK to insert. 8. Your new mapping component will appear in the MapForce design pane with the new ZLR segment included. hl7 mapping Now you can complete your data integration design by inserting another source or target data structure(s) and dragging lines to connect nodes. MapForce supports mapping to/from XML, databases, flat files, EDI, XBRL, and Web services. [i] If you are working in XP, you will have to unclick “read-only” in the Properties dialog. Vista users will need to copy the file to another location before editing – you can then copy the file back to the appropriate HL7 collection directory. For more information about mapping HL7 and other EDI formats, please see the MapForce feature pages – or download a 30-day free trial of MapForce today!

Tags: , , ,

XBRL Training Course Updated


  We have recently updated Altova’s MissionKit XBRL online training course, which debuted in May,  to make the XBRL filing process as accessible to accountants and financial professionals as it is to more technical users.  The new course includes easily identifiable “Accountant’s Notes” to make key XBRL concepts more transferable for those with an accounting background.  An updated glossary also includes more accounting-friendly definitions of XBRL concepts to help you ease into the XBRL filing process.  Access Altova’s MissionKit XBRL course now. (Yes, it’s free!)

Tags: ,

XBRL… so much more than compliance


Having recently returned from a short visit to the 19th XBRL International Conference in Paris, I can’t help but think that many organizations are simply missing the point – and that perhaps the SEC mandate is partly to blame for this. One would think (well, I thought, anyway) that in the year following the issuance of XBRL reporting requirements by the world’s largest economy, that this conference would be overflowing with company representatives eager to learn more about how, and best of all, why they should mark up their financial data in XBRL. But alas, this was not the case. I can only guess that the meager attendee numbers – especially from the United States – have to do with the fact that organizations are still viewing XBRL as singularly a compliance issue and are continuing to outsource the “tagging” of their financial statements to financial printers or other EDGAR filing entities. So, is XBRL a compliance issue? Well, of course it is, but it is much more than that. I can tell you this for certain because I work for Altova and we simply do not focus on compliance software. We build tools that help businesses to maximize the efficiency of their internal processes with an eye toward reducing the overall time and cost of the data management workflow. And this is well within the realm of possibility for any company using XBRL – but it means taking a proactive look at the way you manage your data. “Tagging” implies that financial statements are drawn up in the traditional manner in a spreadsheet or accounting program and then retroactively and meticulously marked up with XBRL tags to make them compliant. Ugh… no wonder compliance has such an ugly ring to it! Haven’t we all got enough work to do? And wait, isn’t this just adding one manual task on top of another – doubling the chances of human error? I’m not sure exactly when this word “tagging” became so popular for describing XBRL implementation, but all it has done is succeeded in oversimplifying something that was not very complicated in the first place (admittedly, it was probably coined by someone in the marketing tribe – of which I’m a member). Anyway, let’s put this idea of tagging aside and see if we can come up with something a little more dangerous. Let’s say that all of your company financial data resides in some sort of backend repository, a database, accounting/ERP system, XML, or even some combination of these. What if you could simply map your data to XBRL in-house instead of having external consultants comb through reports and tag each line item? What if you could even reuse this mapping the next time you had to produce a similar financial report? And what if you could even have your IT department automate your XBRL filing processes?

XBRL Mapping Altova MapForce is an enterprise-level data integration tool that lets you do just this. It is used at a high level by developers and application architects, but its easy-to-use graphical interface makes MapForce accessible to anyone with an understanding of the data that needs to be mapped. Let’s look at a partial example to illustrate how easy this can be: The first step is to load insert the source data component – in this case a database – into the MapForce design pane. xbrl1 Note that the mapping component is a representation of the tables and columns in the database, the underlying data can, therefore, change at any time and the mapping itself will not be affected. The same is true for any mapping structure that you use in MapForce – XML, databases, flat files, EDI, Excel, XBRL, or Web services. Next, we’ll add our target mapping component, in this case a basic XBRL extension taxonomy built on top of US GAAP – Commercial and Industrial. xbrl2 Now, we can simply begin the mapping by connecting lines to associate line items. There will be some cases when we need to apply data processing rules to slightly modify the format, filter data, or even add constants for XBRL reporting requirements that do not exist in the database. All of this is very easily done by dragging and dropping intermediary functions from the MapForce library in the sidebar. Let’s say, for example, that your database automatically requires a datetime format to record any accounting period. Since XBRL reporting only requires a date, we need to strip the time out in our mapping. So, simply drag a date-from-datetime function from the library and connect the lines between your database and XBRL component. xbrl4 Of course, you’ll probably also need to add a variety of other math, logical, or other types of functions to your data, and you will find a long list of these already available in the function library.

xbrl5 You can also easily add custom functions, if needed, using a graphical function builder. In the end, your mapping will look something like this: xbrl6 Now just hit the Output tab to see what the XBRL looks like. And there you go… a reusable, extensible data mapping that you can run any time you need to submit XBRL data. You can even integrate the mapping interface into another application, or ask IT to generate code that will automate the XBRL file generation each time a report is due. For a more detailed overview of how XBRL mapping works in MapForce, check our Altova’s XBRL tutorial.

So, here we have a very quick example of generating XBRL directly from an accounting system – no need for re-keying information, no need to create a set of traditional financial statements, and certainly no need for “tagging”. And best of all, all of this can easily be done in-house and at a fraction of the cost. Now don’t get me wrong, outsourcing could very well have a place in your company’s XBRL implementation. Building an XBRL extension taxonomy, for example, could very well be something that you feel more comfortable leaving to those who have years of experience working with XBRL syntax and other complexities. But putting your organization’s financial data into XBRL… shouldn’t that be left to those who know the data best? For more information on the Altova MissionKit tools for XBRL – which includes support for XBRL mapping and automation, XBRL validation and taxonomy creation, and XBRL rendering – please visit https://www.altova.com/solutions/xbrl-tools.html …or download the Altova MissionKit today!

Tags: , , ,

Altova Tools for IT Professionals – Tell Us Your Story


MissionKit XMLSpy and the other tools in the Altova MissionKit are well-known in the development community as the go-to toolset for XML, data integration, UML, and database development projects. But Altova tools are also used by IT professionals to efficiently complete a variety of enterprise support tasks: XMLSpy is an advanced tool that makes XML documents easy to navigate and edit. Do you use XMLSpy to edit or validate any of the wide variety of XML configuration and data files increasingly essential to today’s IT environments? MapForce integrates and maps data between any combination of XML, databases, flat files, EDI, Excel 2007, XBRL, and/or Web Services. Have you ever used MapForce to merge an end-user’s Excel data into a database? DatabaseSpy is the unique multi-database query, design, content editor, and comparison tool selected as Roundup Champion by Redmond Magazine. Have you used DatabaseSpy to browse an unfamiliar database or build a SQL query to get a quick answer? And who could forget DiffDog? At every trade show visitors come to the Altova booth to rave about Altova’s file, folder, and database diff/merge tool. Do you depend on DiffDog to quickly identify changes between the live instance of a mission-critical file or folder and a backup copy? If you’re an IT professional who uses Altova tools to support the technical infrastructure of your enterprise, we’d like to hear your story. Click here to visit the Altova Case Studies page and check out the right margin to contact us. Of course you can comment right here too!

Tags: , , , , , ,

Part 5 – Analyzing a Legacy Application with Altova UModel


Previously in Part 1, Part 2, Part 3, and Part 4 of this series we applied Altova UModel reverse-engineering functionality to create UML diagrams for an ATM banking simulation application. After analyzing the existing architecture, we planned and implemented a new feature, the withdrawal fee. Even in a reduced size, our updated sequence diagram for the withdrawal transaction clearly represents in graphical form the nested logic structure of the source code. UML sequence diagram (reduced size) This morning we happened to run into the ATM product manager at the coffee machine. “You’ve been working on that ATM code for over a month now,” he said. “When am I going to see what you’ve accomplished?” We can take advantage of the UModel Generate Documentation feature to satisfy this request. UModel will automatically create customized documentation for our project in HTML, Microsoft Word, or RTF formats. The Include tab in the Generate Documentation dialog box lets us choose which diagram types to include, and to specify the level of detail for our report by allowing us to expand each diagram element type. Altova UModel Generate Documentation dialog box For an overview report, we can select all diagram types. We’ll also select class from the Elements list to show further information about the classes in our application. UModel helpfully asks if we want to add elements derived from class as well. Altova UModel Generate Documentation helper After we have selected or adjusted other document parameters, including fonts and sizes, UModel generates the report in just a few seconds. At the top of the first page, the report begins with an index of diagrams and a separate index of elements. Each indexed item is hyperlinked to a bookmark in the document. Altova UModel project documentation in Word format Regardless which format you choose, the resulting report is fully editable. For instance, we can add a footer that includes page numbers and a tag line recording the document creation date. We can grab the tag line UModel created to create our footer. Altova UModel project documentation tag line Our completed report contains all the UML diagrams that describe the legacy ATM application, with detailed class diagrams that show the class properties and operations. Additionally, the illustration of each class is accompanied by a hierarchy diagram to show the class relationships, and a list of all the class associations. Later on as our project evolves further, we can easily generate an updated version of the report. We could even take advantage of the UModel command line functionality or the UModel API to automate creation of project documentation, or we could attach the .html version of the report to our developer team wiki. But for now all we have to do is email the report to the ATM product manager. Conclusion We hope you’ve enjoyed following along with this exercise in Analyzing a Legacy Application with Altova UModel. Although we are ending the series here, in the real world there is much more work to do on our ATM application. For instance, the feature to permit users to accept the fee or cancel a withdrawal remains to be implemented. Or, we could update the legacy code with newer Java language constructs such as generics, annotations, and enumerations. If you’re already experienced with UML we hope we’ve shown you a new trick or two. If you are a developer who’s never tried UML, we wanted to give you some of the flavor and benefits of visual software modeling. Either way, if you’re ready to go further on your own project, click here to download a fully-functional free trial of Altova UModel.

Tags: , , , , , , , , ,

Java Utopia


Java-powered robots, Java mobile phone apps, Java in the cloud, Java running Neil Young’s ’59 Lincoln, a new T-shirt, and photos with Duke! It can only mean the annual pilgrimage to the Moscone Center in San Francisco for JavaOne. XMLSpy and MapForce feature Java code generation and UModel can both generate and reverse engineer Java code. Of course you can use all the Java code you generate with Altova tools royalty free! Check out this YouTube video:

to see and hear a few highlights of JavaOne 2009 and Altova’s presence there.You can also click here to see an interview with Altova’s Technical Marketing Manager filmed at JavaOne by TechTarget.

Tags: , , , , , , , , , ,

Wrycan / NAVSEA Case Study



Overview

The Portsmouth Naval Shipyard in Kittery, Maine, is a division of Naval Sea Systems Command (NAVSEA), the largest of the United States Navy’s five systems commands. They approached Wrycan, an Altova partner focused on content-centric XML expertise, for help converting some of their legacy format technical manuals to XML based on the Navy ETM XML DTD and recreating them as PDFs. The shipyard had been given a mandate to start utilizing XML as their primary data and storage format and needed a low cost and reliable publishing solution that could be easily maintained by their in-house workforce. Wrycan had some experience working with the Altova MissionKit for XML development, as well as a broad expertise in XML technologies including XML, XSL:FO, and DTD. They chose to use XMLSpy, StyleVision, and Authentic as the development tools for this implementation because of their intuitiveness, ease-of-use, and low price tag.

The Challenge

The Portsmouth Naval Shipyard needed to convert about 10,000 pages of content from a legacy format into XML that was conformant to their DTD. This included an automated conversion, manual review and cleanup, and a command line tool to publish the XML back into its original PDF format. As with any large publishing and conversion operation, the project required heavy QA review post-conversion, much of which could be done by non-technical shipyard employees if they had a mechanism to help them interpret and access the XML markup. In addition, because of the relative complexity of the documentation format, which included complicated page layout details such as a variable number of columns per page and different margin widths, callouts interspersed with sections and enumerated lists, as well as many large schematic models, some of which were on foldout pages, the XSL:FO coding promised to present a formidable challenge.

The Solution

Wrycan performed the bulk of the content conversion in-house using custom scripts and some manual processes, along with some technical QA. After the content was converted, Wrycan used StyleVision’s drag and drop design interface to create Authentic e-Forms for editing using the Navy ETM XML DTD as the structural component. Advanced stylesheet functions such as conditional templates and auto-calculations were inserted to facilitate QA and editing workflows. navsea_design After the content conversion, Wrycan implemented a command line processing tool that includes multiple steps such as:

  • Volume assembly from chunks of XML files
    For greater flexibility and usability, the Navy technical manuals were divided up into sections including Front Matter, Chapters, Back Matter, and image files. This enabled Wrycan to make certain parts of these files available for reuse. Components that appeared identically in more than one place within the manuals could be segmented so that changes made in one place would iterate throughout the documentation.
  • XML to XSL-FO conversion
    Wrycan used XMLSpy, Altova’s full-featured XML editor , to hand-code the advanced XSL:FO that was needed for the manuals. The complexity of the XML and PDF output can be seen in the following examples: Volume source, Front Matter source, Chapter source, and Final document (3.8 MB PDF).
  • Custom page formatting
    This project required various page sizes within one document, such as a portrait page followed by a foldout 11″ x 17″ landscape page. There are Naval documentation requirements specifying that different page formats have different printing requirements. For example, foldout pages are printed on one side only while other pages are double-sided.
  • Post processing steps
    There were also page numbering requirements, such as every chapter must start on an odd numbered page. If this causes a page to be blank, a message indicating that the page was intentionally left blank is placed on the page. These requirements are automatically satisfied by Wrycan’s processing tool.
  • PDF creation
    Wrycan integrated RenderX’s XEP software into the processing pipeline to convert the XSL:FO output, including all images and common content, into one PDF file.

The editing of the content is done with Authentic via Stylevision, which was recently upgraded to the most recent release for more advanced table support and authoring options. Below is a sample screenshot of one of the Authentic e-Forms for WYSIWYG XML editing that was generated for NAVSEA based on the StyleVision stylesheet design. navsea_doc

The Results

The Portsmouth Naval Shipyard now has an XML publishing solution with native XML editing capabilities. They can reproduce their technical manuals in PDF using XML as the content source. They are now ready to move onto the next step, which is implementing a full scale content management system with workflow and custom publishing capabilities. Find out how Altova tools can help with your documentation and publishing challenges. Download a fully functional free trial of the Altova MissionKit today!

Tags: , , , , , , ,

Internationalization with the Altova MissionKit


The following post is written by Peter Reynolds, CEO and translation management consultant at TM-Global and Executive Director of Kilgray Translation Technologies. An Irish national based in Warsaw, he holds a BSc and an MBA degree from Open University and is a localization and translation industry veteran. Peter previously worked at Idiom Technologies Inc. — now SDL PLC. As director of the LSP Partner Program at Idiom, Peter was responsible for making its global LSP partners program a successful and innovative venture. Before Idiom, he worked on language technology development for several global localization companies: Lionbridge, Bowne Global Solutions and Berlitz GlobalNET. He managed the Dublin development team responsible for BerlitzIT, Elcano, Freeway 2.0 technology solutions, and internal project and vendor management tools. Peter has been actively involved in the development and promotion of standards (notably XLIFF) for more than ten years, mostly at OASIS. Until 2008 when XLIFF was published, he was secretary of the XLIFF Technical Committee at OASIS and chaired the Translation Web Services TC. He is currently involved in OASIS, TILP as well as being the Irish expert to ISO SC2 and SC4 and training auditors for the EN 15038 standard.

Introduction

Every developer wants his or her applications to be used and hopes they will be very popular. A web application developed in rural Maine USA could easily be used by someone living in the next township or in Malaysia, New Zealand, Germany or Poland. Even if the application is not translated (localized), there are some important differences between how data is represented from one locale to another. The W3C definition of internationalization is “the design and development of a product that is enabled for target audiences that vary in culture, region, or language”. This does not mean that the product has to be translated into the language of the target audience but that it is designed in such a way that the target audience can use the application and understands the way data is presented. The reason for internationalization is to ensure the widest possible audience for your application and to make its translation easier and less costly. This article will introduce you to internationalization and demonstrate how applications can be internationalized using the Altova MissionKit, an integrated suite of XML, database, and UML tools including XMLSpy, StyleVision, MapForce, and others. If you are using tools such as XMLSpy and StyleVision it is very likely that you are already creating internationalized XML applications. The strategy which I suggest is that you try and figure out what target audience your applications are intended for beforehand and implement internationalization accordingly. In this article I will first discuss a strategy for internationalizing XML. I will then introduce the Internationalization Tag Set and examine issues relating to XML internationalization.

Strategy for Internationalizing XML

The first step in planning internationalization is to make an informed decision as to the level of internationalization you require. There may be people in your organization who can help you make this decision, and it would be particularly useful to obtain input from people who live in different countries. The three-level approach presented below should help you decide on the level of internationalization you are going to implement. However, you should remember that you may encounter some problems if your documents or applications are not internationalized, but you will certainly not have the same problems if to ensure that they are fully internationalized. The three levels of internationalizations are:

  • Level 1 – Your applications are likely to have a relatively small audience, which could grow, but the applications are unlikely to be translated or used internationally. In that case you should just follow the suggestions in this article and ensure that you use the functionality in Altova MissionKit to support internationalization.
  • Level 2 – Your applications will have a wide audience and could be translated and used internationally. As well as using the Altova MissionKit functionality you should also use the Internationalization Tag Set. This is a schema released by the W3C for the purpose of internationalization.
  • Level 3 – Your applications are most likely to be used internationally and translated into a number of different languages. You should consider how to improve the localization process by separating content from code and ensuring the translators can see the document or application as the end user would see it. This is beyond the scope of this article but you will find some relevant information on the subject in the references below.

The software tools in the Altova MissionKit have a lot of functionality which supports internationalization. If you are using these tools you have a very strong basis for creating internationalized XML documents. Unicode is the default encoding for applications created in the XMLSpy XML editor, and I would strongly recommend using this character set.

Internationalization Tag Set

The Internationalization Tag Set (ITS) is recommended by W3C and designed to create XML which is internationalized and can easily be localized. If you are working with XML documents which might be localized, I would recommend using ITS. With this technology you are able to specify which text requires translation, provide instructions for translators and specify the direction of the text. The seven data categories included in the ITS are:

  • Translate: Defines which parts of a document are translatable.
  • Localization Note: Provides notes and helpful information for translators.
  • Terminology: Identifies terms in the documents.
  • Directionality: Indicates the direction which the document or part of the document is written and should be read.
  • Ruby: Indicates which parts of the document should be displayed as ruby text. (Ruby is a short run of text alongside a base text, typically used in South-East Asian language documents to indicate pronunciation or to provide a brief annotation).
  • Language Information: Identifies language used for the different parts of the document.
  • Elements Within Text: Indicates how elements should be treated with regard to linguistic segmentation.

W3C has published a best practices guide for internationalizing XML documents which details how to use ITS. It can be found on their web site at: http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/ The specification can be found in this section: http://www.w3.org/TR/2007/REC-its-20070403/ I would strongly recommend you read these documents before proceeding with internationalization.

Internationalization Issues

The following table describes some of the internationalization issues you may come across. This will be followed by a more detailed explanation of these issues and suggestions for how they can be resolved using the Altova MissionKit. .

ISSUE DESCRIPTION
Encoding Characters need to be supported by the code page being used. Unicode is an encoding which supports characters from all common language.
Date & TimeHow dates and time are represented varies between countries.
NumbersHow decimal points and thousands are represented varies between different countries.
CurrencyAs well as difference with how the number is represented in some countries the currency symbol or word is written after the number while in most it is written before.
Salutation & Names There are many differences in salutations between countries, and in some countries, such as Hungary, a person’s name is written with the family name first. No middle name is used in Japanese.
AddressThere are a number of differences relating to address, such as the house number appearing before the street name in some countries and after in others. Also, some countries use a ZIP code vs. a postal code.
RTLText is many languages is read from left to right, but in some, such as Hebrew and Arabic, the text is read from right to left (bi-directional).
Sorting & Collation There are differences in how alphabets are sorted. Some Scandinavian languages have an ‘aa’ character which is usually, but not always, sorted at the end of the alphabet.
Exclamation & Question MarksIn English questions and exclamation marks are always at the end of the sentence, while in Spanish there is a question mark at the beginning and end of a sentence.

.

Encoding

All electronic text uses a character coding system where the character is represented by a number. Before the widespread use of Unicode this was one of the most significant internationalization issues. When an application tries to show a character that is not represented in a code page it will appear as garbage text. There were not only problems between different languages but also with characters appearing incorrectly on computers running different operating system. Unicode has solved most of these problems by creating a single code page regardless of platform, program or language. XML uses Unicode as its default code page. Any XML documents you create in XMLSpy will by default have the declaration encoding="UTF-8” If the file has not been created in XMLSpy, you need to ensure that the file is saved as UTF-8. UTF is an acronym for Unicode transformation format, and UTF-8 is a flavor of Unicode that uses 1, 2 or 4 bytes to store characters. It is the most commonly used flavor and is very widely used for XML and the Web. The other versions of Unicode which XMLSpy supports are:

  • UTF- 7. This is 7 bit version of Unicode. It should only be used in the context of 7 bit transports, such as email.
  • ISO 1064 UCS – 2 and UTF – 16. UCS is an acronym for Universal Character Set and UCS-2 uses two bytes for each character. UTF-16 is an extension of UCS-2 which uses 2 or 4 bytes to represent a character. UTF-16 is often used by Windows and Java. You should use UTF – 16 rather than UCS – 2 for new documents.
  • ISO 1064 UCS- 4. Uses 4 bytes for each character and is the same as UTF-32. UTF-32 is often used by Unix.

There may be reasons for using default encoding other than UTF-8. To set the default encoding in XMLSpy go to Tools | Options and select the encoding tab.  XMLSpy encoding options If you want to change the encoding for an individual XML document, open the document in XMLSpy and select File| Encoding. XML encoding options

Language

The XML namespace defines xml:lang to identify the language of an XML document. The value for xml:lang must be an ISO language code (ISO 639- 2). If you have an XML document which is written in one language but has a segment in another language you can use xml:lang at the root element to identify the main language of the document and use it at the element where the text in another language is used to identify that language.

Dates

In different countries dates and time are represented in very different ways. Let’s take as an example the date 10/09/08:

In most European countries this means the 10th of September 2008.
In the United States this means the 9th of October 2008.
In Japan this means 8th of October 2009.

The way to deal with this is to use ISO 8601 for specifying date and time within your application. This is a standard way for representing date and time in the format YYYY-MM-DDTHH:MM:SS[±HH:MM] where

YYYY- represents year
MM- represents month
DD – represents day
T signifies that Time follows this
HH- represents hours
MM- represents minutes
SS- represents seconds.

You can then use StyleVision to create a style sheet which formats the date in a way suitable to your target audience. StyleVision is a graphical stylesheet design tool that allows drag-and-drop design of XSLT and XSL:FO stylesheets to render XML data in HTML, Microsoft Word, PDF, and other formats. To use the date formatting functionality within StyleVision:

  • Select the contents placeholder or input field of the node.
  • In the Properties sidebar, select the content item, and then the Content group of properties.
  • Click the Edit button of the Input Formatting property.
  • The Input Formatting dialog will appear:

StyleVision date formatting

  • Select the Formated radio button. This will allow you to choose which data type you would like to use, and if you have selected a date, you can then choose the format for the date.

You can also select other date and time formats here. I would strongly recommend using the date picker. In order to insert the date picker, the cursor must be between an xs:date or xs:dateTime node. You then go to Insert on the main menu and Select Insert Date Picker. If the cursor is not between xs:date or xs:dateTime node the Insert Date Picker menu item will be greyed out.

Numbers

Decimals can be preceded by either a point or a comma depending on the locale. There are also differences for how thousands are represented. StyleVision provides functionality where you can format a number for your intended audience:

  • Select the contents placeholder or input field of the node.
  • In the Properties sidebar, select the content item, and then the Content group of properties.
  • Click the Edit button of the Input Formatting property.
  • The Input Formatting dialog will appear

StyleVision number formatting

  • Select the Formatted radio button. This will allow you to choose the number format.

Money

The issues involving numbers also apply to money, but in addition to this there are different conventions for representing the currency symbol. Some currencies share the same name and symbol, such as the dollar, but the Australian, Canadian and Singaporean dollar are not the same currency, and this should be identifiable. You can deal with the numbers as shown above, but the issue of whether the currency name or symbol should go before or after the number is likely to be dealt with as part of the translation process.

Address

One of the problems faced by customers buying from a foreign company while making an online purchase is that the system does not allow them to enter their address properly. There are many differences, such as the house number being before or after the street name, the order the components of the address are placed and the format of the zip/postal code. CEN (The European Standards Institution) has developed a standard which lists the components of an address, and the UPU (Universal Postal Union) is further developing this to produce a comprehensive list of name and address elements. I would recommend that you ensure that you are getting the data you need for your main target markets but make sure that someone from another country can also enter their address. A drop-down list of countries could be used to ensure that there is error checking when you know certain components of an address are required but does not produce the error for other countries where you do not know the address structure.

Credit Cards

Some US-based web sites will not accept credit cards from outside the US. As a security check they insist on a valid US address. If you want to accept credit card payments and do business with people outside your country, you should check that foreign credit cards will be accepted.

RTL (bidi)

In many languages the text is being read from left to right but this is by no means universal. Arabic and Hebrew are written from right to left. In XML documents this causes further confusion as the XML elements are read from left to right but any text should be read from right to left. The ITS namespace has a direction attribute which can be used to identify which direction should be read. <its:span dir="rtl">متعة الأسماك!</its:span>

Sorting

There are differences in how alphabets are sorted. Some Scandinavian languages have an ‘aa’ character which is usually, but not always, sorted at the end of the alphabet. If you have set the language in your XML document and use xsl:sort for your XSL document then the sorting should work according to the sorting rules for that language. However, you should check that your processor does this as that is not always the case. The example files which come with StyleVision contain examples for sorting. Select StyleVision examples, then the tutorial folder, then sorting and open the file SortingOnTwoTextKeys.sps. To see how the sorting works go to the design view and right click on the member element. Then select the ‘sort by’ option on the context menu. Here you can control how the sorting works for this particular list.

Exclamation and Question Marks

In English, questions and exclamation marks are always at the end of the sentence, while in Spanish this punctuation occurs at the beginning and end of a sentence. This is something which will usually be corrected during the translation process.

Conclusions

Internationalization is an important step in ensuring the widest target audience for your application, and that translation is as cost effect and easy as possible. Your approach to this should be very pragmatic. Time spent up-front sorting out internationalization will result in huge benefits throughout the process and significantly increase marketing potential for your product. The purpose of this article was to present an overview and introduce you to internationalization. There is a lot more useful information available in the references listed below. Tools such as XMLSpy and StyleVision, both of which are included in the Altova MissionKit software suite, go a long way in making the internationalization process for XML documents much easier by providing a lot of in-built support for internationalization. The Internationalization Tag Set from W3C is a very significant innovation which is a great addition to the toolkit available to a developer who wants to build internationalized XML applications. XML is a technology which has had internationalization and translation in mind since its inception. The use of Unicode as the default encoding for XML is very significant and greatly facilitates dealing with any internationalization problems you may come across. The functionality available within the Altova MissionKit, ITS and Unicode are the basis for creating good internationalized applications.   Reference The following is a list of useful web sites and other resources providing further information on internationalization: Leading XML tools provider – Altova https://www.altova.com/ . They also offer a free trial of the MissionKit: https://www.altova.com/download. Unicode web site http://www.unicode.org/ Internationalization Tag Set http://www.w3.org/TR/2007/REC-its-20070403/ W3C Best Practices for internationalization http://www.w3.org/TR/2007/WD-xml-i18n-bp-20070427/ Open Tag (Yves Savourel’s) http://www.opentag.com/ Yves Savourel, ‘XML Internationalization and Localization’, a book which is an excellent source of information. More information can be found at: http://www.opentag.com/xmli18nbook.htm The TM-Global research and resource web site publishes a lot of useful articles, opinions and surveys on translation, localization and industry standards http://www.tm-global.com/ Web sites of internationalization guru Tex Texin http://www.xencraft.com/ and http://www.i18nguy.com/ Localization Flow – web site of internationalization experts http://www.locflowtech.com/ Value for money XML-based TEnTs and translation tools are available from companies such as Kilgray Translation Technologies http://www.kilgray.com/

Tags: , , ,

Visit Altova at JavaOne


JavaOne_logo The Altova team is packing up and heading out to San Francisco for JavaOne next week. We hope you’ll stop by our booth #209 to chat about what you’re working on, and see a demo of the MissionKit,  the integrated suite of XML, database, and UML tools that includes the XMLSpy XML editor, MapForce data mapping tool, UModel UML tool, and more. You can also enter our drawing for a chance to win one of ten Altova product licenses! The Altova MissionKit provides numerous tools for Java developers, including royalty-free Java code generation from XML Schemas and data integration projects, reverse engineering of Java apps, UML modeling, Eclipse integration, and more. You can also check out the new XBRL, HL7, and database differencing functionality added in the MissionKit 2009. We hope to see you at the Moscone!

Tags: , , ,

New XBRL Training Now Available


We’re very excited to have just launched the next free Altova Online Training course: MissionKit XBRL! This comprehensive, five-module course provides an overview of XBRL and the Altova MissionKit for beginning and advanced technical users. After an introduction to XBRL and the XBRL filing process, you will learn to create an extension taxonomy in the XMLSpy XML editor. Online XBRL training Then you’ll learn how to get your company’s back-end data into compliant XBRL filing documents using MapForce’s graphical data mapping interface, and explore how to automate this process by generating code in Java, C#, or C++. The final module completes the process and focuses on StyleVision and XBRL report generation. You’ll see how easy it is to create a straightforward XBRL report with drag-and-drop functionality to render XBRL in human-readable formats: HTML, PDF, and MS Word. The XBRL training course includes over 30 instructional videos, and the training is now delivered through Amazon’s S3 cloud services to ensure fast downloads and smooth video. You can even test what you’ve learned using the interactive quizzes for each module. Like all Altova Online Training courses, MissionKit XBRL is available on-demand, so that you can complete the courses as your schedule allows. And did I mention that it’s free? This course is currently in beta, and we’d appreciate your feedback to improve it. Please feel free to comment here or by completing the Altova Training Survey at the end of the course.

Tags: , , ,

Altova at Microsoft Tech Ed 2009


If you missed Microsoft Tech Ed in Los Angeles last week, check out our latest YouTube video for a quick trip to catch up on some of the sights and sounds of the Partner Exhibition. Our team on the scene reported a strong positive response to the XBRL and HL7 functionality in Version 2009 of the Altova MissionKit and many shout-outs from the floor for individual Altova tools — XMLSpy, MapForce, StyleVision, and UModel are all popular in the developer community. IT professionals commonly use DatabaseSpy and DiffDog to efficiently complete everyday database and differencing tasks.

  You can also see a video clip reporting on Altova at Tech Ed at the TechTarget site. Check out the Altova Events page to follow our upcoming show schedule and see where you can meet us live!

Tags: , , , , , , , , , , , , ,

New Table Design in StyleVision


v2009 brought a lot of exciting new features to StyleVision, Altova’s graphical stylesheet design tool. Some, like an all-new design for tables and XPath filtering, are welcome byproducts of our support for XBRL and XBRL Dimensions, but still have far reaching uses for working with XML and databases. Let’s take a quick look at StyleVision’s new table design to illustrate what I’m talking about. stylevision_tables If you’re already a seasoned StyleVision user, it’s probably already obvious to you that we’ve changed things up a bit. You can now very easily select entire columns or rows for editing. Rearrange, delete, add styles, and even resize using the drag and drop UI or common Windows shortcuts on your keyboard. Of course, any of the designs that you’ve created in a previous version of StyleVision will inherit this functionality as well. For any of you not familiar with StyleVision, it is an award-winning stylesheet design tool and report builder with support for XML, database, and XBRL source content. Using the drag and drop GUI and style entry helpers, you create reusable design templates for output to HTML, RTF, PDF, Word 2007 (OOXML), and Authentic e-Forms. If you chose to take advantage of the cost savings in the Altova MissionKit, you will find that you already have StyleVision on your hard drive and just need to open it up for a test drive. Visit the new features index to view all of the functionality that has been added to StyleVision since your last upgrade or download a free trial of StyleVision 2009 today!

Tags: , , , ,

Visit Altova at TechEd


Final Events Page Button   The Altova team is kicking off our tradeshow year by exhibiting at Microsoft Tech*Ed 2009 in Los Angeles, CA, May 11–15! If you are attending, be sure to stop by booth #355, where we would be happy to give you a demo of the latest product updates, including our new XBRL tools. We will also hold the Altova product raffle – stop by and enter for your chance to win one of ten product licenses!

Tags: ,

Part 4 – Analyzing a Legacy Application with Altova UModel


In Part 1 of this series we imported source code into Altova UModel to create a UML project and we examined a class diagram of our legacy ATM application. In Part 2 we created a series of UML use case diagrams to describe user interactions with the system and we planned an application enhancement to implement a withdrawal fee. In Part 3 we designed a UML state machine diagram to further analyze and document the operation of our system. In this installment we will return to our planned enhancement. We’ve been assigned to implement an ATM withdrawal fee of $2 for withdrawals less than $100 and $4 for withdrawals of $100 or more. In Part 2 we drew a use case diagram to show how users will interact with the new feature: UML use case diagram From our original analysis of the object-oriented classes in Part 1, we know our system contains a Withdrawal class, which is the logical place to implement our new feature. We can display a new class diagram for the Withdrawal class by selecting it in the Model Tree and choosing from the right-click context menu to create a new diagram. UModel Model Tree helper window UML class diagram We chose to create a hierarchy diagram so all the properties of the Withdrawal class are visible, including inherited properties from the Transaction class. Before implementing the fee feature, we have a related leftover question to investigate. We wanted to verify that the current code includes a test to make sure a withdrawal amount requested by the user does not exceed the current account balance. A UML sequence diagram will let us trace the execution flow of a withdrawal. UModel can automatically generate sequence diagrams from the operations of reverse-engineered classes. We can select the execute operation in our class diagram and choose Generate Sequence Diagram from the UModel right-click context menu to create the diagram we need. Altova UModel Sequence Diagram Generation dialog The UModel Sequence Diagram Generation dialog offers several options that will assist with our implementation of the new feature. We selected Automatically update because we will want to update the diagram later after we modify the code, and showing the code in a separate layer can help us focus on the withdrawal logic. UML sequence diagram The size of the scroll handles indicates we are only seeing a small portion of the sequence diagram in the current window. We can shrink the view to fit the window, but the text will probably be illegible. Instead, let’s take advantage the flexible UModel user interface to auto-hide the Diagram tree and Properties windows, which allows us to enlarge the Overview helper window: UModel Overview navigation window We can explore the sequence diagram by dragging the red square in the Overview window. This lets us quickly locate the comparison of the withdrawal amount and account balance. UML sequence diagram We can also see the error messages that display if the ATM does not contain enough cash or if the account balance is too low. UML sequence diagram Returning to the Withdrawal class diagram, we can add the fee property and set its default value: UML class diagram We’ll make a first pass through implementation of the fee logic without including the user cancel option. Updating the source code from our model adds the fee property to the Withdrawal class. Then we’ll jump into our favorite source code editor to implement the fee logic directly in the Withdrawal.java file. Testing our recompiled application shows the following: ATM Simulation The starting balance was $147. After withdrawing $100, the new balance is $43. The fee is displayed in a new message, and the ending balance is correct. But now the sequence diagram in our UML model is inaccurate because it doesn’t include the fee feature. We can correct the sequence diagram by updating the UML project from the revised source code. The UModel Messages window indicates that changes in the Withdrawal.java file caused the sequence diagram to be regenerated. And, we can easily navigate the diagram to locate our new test of the withdrawal amount to see if the fee needs to be increased to $4. image10a Now that our modified sequence diagram graphically represents updated operation of the ATM, we can be assured the harried driver we met in Part 3 of this series has enough cash to buy that ice cream cone! In our next installment we’ll take advantage of another UModel feature to generate rich project documentation for our work so far – one more advantage of keeping our UML model and application source code synchronized. If you’re ready to try Altova UModel on your own Java, C#, or Visual Basic legacy application, click here to download a free fully functional 30-day trial.

Tags: , , , , , , , ,

Part 3 – Analyzing a Legacy Application with Altova UModel


In Part 1 of this series we applied the reverse engineering functionality of Altova UModel to import source code from an existing ATM simulation application. We created a UML class diagram to illustrate the application’s class hierarchy and class relationships. In Part 2 we drew a UML use case diagram to document user interactions with the system and we drew several additional use case diagrams to document interaction details and a planned enhancement. In this installment we’ll look at the ATM from another point of view. On a hot summer afternoon, a harried driver spots an ice cream stand with a drive through lane up ahead. Just one problem – no cash! So he turns in at the strip mall parking lot and parks by an ATM in a glass kiosk. Before he even gets out of the car, our overheated bank customer wonders about the state of the ATM. Is another customer with complicated banking business already using it? Even if no one is inside kiosk, could the ATM be out of service? A UML state machine diagram (also called a state diagram) will let us map the states of our simulated ATM and the triggers, events, and transitions between states so we can better understand how our legacy application operates. Let’s return again to our experience running the simulation to get started: ATM Simulation Log In menu ATM Simulation Transaction Menu When we launched the legacy application, our simulated ATM entered its idle state, awaiting the first customer: UML State Machine Diagram start Next, it can be helpful to identify and draw additional states in disconnected ovals. We’ll be able to move these ovals around like pieces of a puzzle to find the logical sequence without worrying about the transitions from one state to the next. UML state machine diagram - preliminary This preliminary list of the ATM states is only our first rough draft. The state descriptions were suggested by our legacy application’s menu entries, and it’s obvious we can simplify: · There is no difference between Selecting First Transaction and Selecting Next Transaction, so these should be combined · Logging Out is probably not a state, but an instantaneous transition when our user presses 4 at the Transaction menu · We can assign user entry of a withdrawal amount or a deposit amount as sub-states within the Performing Transaction state The third item simplifies our diagram and would also be consistent with our treatment of user entry of the account number and PIN as part of Authenticating User. After we make these changes and add transitions, our diagram looks like this: UML state amachine diagram with transitions The simple transitions we’ve added are triggers that cause the ATM to leave one state and enter the next. Also, notice every state has at least one entry and one exit – otherwise the legacy application could force our user into a dead end. The diamond element between Selecting Transaction and Performing Transaction is the UML symbol for a choice of flows. At first it may seem illogical for the application to allow the user to sign out before performing any transaction, but that is an option our legacy application offers in the Transaction menu. And users in the real world have been known to change their minds at the last minute! We were careful to use consistent language wherever possible for our element names and descriptions. The states are named with verbs in the present tense that end in -ing. Transitions are labeled to indicate completion of the action that causes the state to change. Consistent element naming enhances diagram clarity. Once we have a working overview state diagram like the one above, it’s worthwhile to consider what happens if a transition is attempted, but not completed successfully. The ATM user might enter an invalid account number/PIN combination, or an authenticated user could request a withdrawal amount that exceeds the account balance. We can enhance our state diagram to include these possibilities: Complete UML state machine diagram Now our state machine diagram shows many alternate paths through the application execution, not just the single, all-successful “Happy Path.” We chose a vertical orientation for the layout of our diagram, but there is no rule dictating that form. Some applications will lend themselves to a horizontal layout, or maybe that is simply your personal preference. This illustration shows a small portion of our state machine diagram in horizontal form: UML state machine diagram in horizontal layout Whichever state machine diagram layout you choose, you should not draw transition lines that intersect or overlap. Drawing a UML state machine diagram may seem like overkill for our ATM simulation, since the legacy application is small, and we are all familiar with the way ATMs work. However, these techniques can be very illuminating when you have to work on a much larger application operating in an unfamiliar or complex subject domain. If you are ready to create UML state machine diagrams for your own Java, C#, or Visual Basic legacy application, click here to download a free fully functional 30-day trial of Altova UModel. In our next installment we’ll look in detail at the withdrawal transaction and the new feature we planned in Part 2.

Tags: , , , , , , , ,

Part 2 – Analyzing a Legacy Application with Altova UModel


In Part 1 of the Analyzing a Legacy Application series we introduced our ATM simulation app, imported the Java source code into a UModel project, and refined a class diagram to see an overview of the application classes and their relationships. In this entry we will create use case diagrams to document the current functionality of our ATM app and we’ll add to one use case diagram to plan a future enhancement. As we saw in Part 1, when a user runs our ATM simulation, he is asked to log in with an account number and PIN, then is presented with a transaction menu that summarizes all available interactions with the application: ATM Simulation transaction menu With the Transaction menu as a guide, we can create an overview use case diagram that documents user interactions with the ATM simulation: ATM Simulation overview use case diagram If you are familiar with UML notation, the first thing you may have noticed is the actor in our diagram doesn’t look like the typical UML stick figure. UModel lets software modelers assign any Windows .bmp image file to represent an actor in a use case diagram. We used the Properties helper window to assign an image from the library provided with UModel. Altova UModel Properties Window A use case diagram is not the appropriate place to define application flow or object-oriented classes, but simply to document how a user (an actor in UML terminology) interacts with the system. We can create additional use case diagrams to show more detail about each interaction. Expanding each interaction in a separate diagram improves clarity by keeping each layout simple and uncluttered and leaves plenty of space to try out different options. Detailed user sign in use case diagram We added authentication of the account number and PIN in a note instead of a use case oval because the ATM user is not the actor who performs that step. From real-life ATM experience we can guess (because we haven’t looked at the code yet) that a withdrawal will be cancelled if the amount requested is larger than the account balance. But comparing the withdrawal amount and account balance is not done by the user, so that activity is also not drawn in a use case oval. Withdraw cash use case diagram The arrow inside the Withdraw Cash use case indicates a hyperlink. UModel lets you can attach one or more hyperlinks to any element in your diagrams. A hyperlink can reference a URL, an external file, or another diagram. The hyperlink dialog even lets you define helper text for your hyperlinks. Altova UModel hyperlinks dialog Hyperlink pop-up text in use case diagram If you define more than one hyperlink, your helper text becomes a pop-up selection menu. Let’s say we’ve been assigned to modify the existing ATM Simulation to charge a fee for each withdrawal. If the withdrawal amount is less than $100, the fee will be $2. If the withdrawal amount is $100 or higher, the fee will be $4. Since the ATM is not stocked with one dollar bills, the fee must be charged against the account, not deducted from the cash withdrawal. The fee will be disclosed before any cash is dispensed and the user will be allowed to cancel the transaction. We can add the new requirement to our ATMWithdrawal use case diagram. Enhanced Withdraw Cash use case diagram We changed the color of the Approve fee use case oval to indicate this is a planned feature that is not yet implemented. Some developers would argue that the note attached to the Approve fee oval is redundant, since the include notation alone signifies that Approve fee is a required component of Withdraw Cash. But lots of people are confused about the difference between include and extend and it’s best to be absolutely clear. We can also take advantage of the UModel Layers feature to place all elements related to the new feature on a separate layer. Altova UModel Assign Layer context menu Now the Layers helper window allows us to show or hide the planned feature in our diagram view. Altova UModel Layer helper window Real world ATM experience tells us a transaction is missing from the legacy ATM simulation. The transaction menu does not offer an option to transfer funds between accounts. From the diagrams we’ve already created, we can see the original application design will make a transfer operation difficult to implement. The user sign in is based on the account number, and it appears that the legacy application does not understand the concept of a single bank customer who has both a checking account and a savings account. If our manager requests the transfer funds feature, we’ll need to have a conversation with our company’s enterprise software architect. A user ID linked to multiple accounts will need to be implemented not only in our ATM Simulation app, but also in the bank database. The Jolt award-winning Altova MissionKit for Enterprise Architects is a collection of eight XML, database, and UML tools for the enterprise software architect who may require UML modeling and database management tools in addition to advanced XML, Web services, and data integration capabilities. Click here to download a fully-functional 30-day trial. In the next installment we’ll look at the legacy ATM simulation from a completely different perspective as we prepare to dive into the code. See ya later!

Tags: , , , , , ,

New DatabaseSpy Video: Exploring Databases


We’ve just launched the third video in the DatabaseSpy series. Exploring Databases is a tour of the DatabaseSpy Online Browser, a powerful tool for viewing, searching, and analyzing one or more connected databases. Exploring Databases demo Exploring Databases builds on the preceding video, Database Connections, which demonstrated how easy it is to use DatabaseSpy to connect to one or more databases. You can even simultaneously connect to databases of different types. And DatabaseSpy supports the most popular databases in production today, including Microsoft SQL Server, IBM DB2, Oracle, Sybase, MySQL, and more. Once you’re connected, the DatabaseSpy Online Browser shows you an expandable hierarchy of the database structure. It’s a great place to start exploring an unfamiliar database or quickly navigate to any specific element you need to work with in a familiar one. The Altova Flash videos are proving to be a popular feature on our Web site, with close to 350,000 views in all. If you haven’t seen an Altova product video yet, you’re missing a great opportunity to get a flavor for components of the award-winning Altova MissionKit by seeing them in action. If you’re already a fan, check back again soon — we’re in the studio working on more videos right now.

Tags: , , , , , , ,

Analyzing a Legacy Application with Altova UModel – Part 1


Sooner or later nearly every professional developer will be assigned to debug or add features to an existing application the developer did not help create. In these situations, inaccurate or incomplete documentation and lack of access to the original development team can pose huge obstacles. Fortunately, Altova UModel can reverse-engineer existing software to create a visual model that accelerates analysis and improves comprehension of a legacy application. This is the first of a series in posts where we will apply UModel, Altova’s UML tool for software modeling and development, to analyze an ATM (Automatic Teller Machine) simulation written in Java. The application is based on several ATM examples from popular Java tutorials. Since it is small and the operation of an ATM is familiar, we will focus more on techniques you can apply to your own Java, C#, and Visual Basic projects, rather than the example code. Here is a view of the legacy application running in a command window: Analyzing a Legacy Application with Altova UModel The original developer conveniently provided the sample account information, so we can log in. The application then presents a familiar ATM transaction menu: Analyzing a Legacy Application with Altova UModel If we inspect the folder containing the application, we see Java source files and compiled .class files, but no project files. Analyzing a Legacy Application with Altova UModel That’s not a problem. The UModel Project menu lets us import a project, a source directory, or even the binary files of a compiled application. Source code for very large projects is likely to be organized in multiple folders, so even when you have a project file, you may want to investigate one folder at a time. Altova UModel Project Menu Before we start, we’ll want to make sure to set the UModel Options to automatically draw any class associations defined in the source code: Altova UModel Options dialog As we import the folder, we’ll also want to include any JavaDocs comments in the source code as Documentation for our UModel project: Altova UModel Import Directory options For our first look at the legacy application we’ll want a high-level overview, so we won’t open all the optional compartments: Altova UModel diagram generation options UModel imports the project in just a few seconds, and the message window reports no errors. The Diagram Tree contains two diagrams: Altova UModel reverse engineering project We can click the Model Tree tab and expand the source folder to view icons representing all the Java classes UModel imported: image9 We can go back to the Diagram Tree to open the Content of source UML class diagram. After setting all the line styles to orthogonal and repositioning a few lines and classes to avoid overlap, we see the diagram clearly illustrates the application classes and their relationships: Altova UModel UML class diagram Note the name of the Transaction class is in italic, indicating it is an abstract class (or super class), and the BalanceInquiry, Withdrawal, and Deposit subclasses inherit its features. If you click the Transaction class to select it, inheritance is illustrated in the UModel Hierarchy helper window and any JavaDoc comments appearing in the source code immediately before the class definition are displayed in the Documentation window: Altova UModel Hierarchy window If we were using only a text editor to examine the legacy application, we would need to look into every single source code file to understand the hierarchy image shown above. That’s because the Transaction class does not internally identify its subclasses. When we do locate one subclass, it does not identify its siblings. And we can’t be sure some other illogically-named class is not a subclass of Transaction until we look at them all. You can also select each class individually to examine its documentation in the Documentation window. Or, if you prefer a cleaner diagram, you can remove the association labels from the diagram only: Altova UModel right-click context menu Now the asterisk representing the definition of “zero to many” multiplicity of Accounts in the BankDatabase is much more apparent. Altova UModel UML class diagram Another member of our development team found a partial class diagram purporting to represent the legacy project and passed it on. We can immediately see it does not look like the diagram UModel generated: UML class diagram for legacy application The documentation for our legacy app does not match the code – an unfortunate but common event! There are several differences between the old diagram and the one we generated:

· The associations between ATM and the physical components are shown as composition associations

· The association between ATM and the BankDatabase is described by a text annotation

· The association between ATM and Transaction also has a text annotation, and it does not even exist in the UModel diagram

· Multiplicity is defined at each end of each association, but none were created by UModel

Let’s consider each point:

· The representation of composition in the Java language is identical to ordinary association, so UModel could not deduce the composition characteristic. Of course the ATM “is composed of” a keypad, screen, cash dispenser, and deposit slot, so we can update the diagram to show composition.

· We can add a text annotation to any UModel association arrow. Simply click the arrow and start typing.

· If UModel did not create an association arrow between the ATM class and the Transaction, one must not be defined in the source code. We will postpone further investigation of this anomaly for now. · Multiplicity as shown in the legacy diagram would also require specific definition in the source code. We’ll leave this for investigation later too. Maybe that old diagram was left in the back of the file cabinet for a reason!

We’ll add the annotation, then update the aggregation characteristic of each ATM association in the UModel properties window. Let’s also use the UModel Layout toolbar to make the rectangles representing all the classes the same size. Now our class diagram looks like this: Modified UMLclass diagram for ATM project The completed class diagram just gets us started on our analysis. In the next installments we’ll drill deeper into the application code, automatically generate more UML diagrams, and draw some new diagrams of our own as our understanding of the existing code increases. If you want to jump in right away and reverse engineer your own Java, C#, or Visual Basic legacy app, click here to download a free, fully functional 30-day trial of Altova UModel.

Tags: , , , , , ,

Altova Software Version 2009 SP1 Available


Today we released Service Pack 1 of Altova Version 2009 product line (v2009 SP1), which includes helpful bug fixes and other enhancements, as well as a new feature in the MapForce data mapping tool (detailed below). v2009 SP1 is a free update for all v2009 customers, as well as any customer with a valid Support and Maintenance Package. Note that v2009 SP1 is a new product version, and not a patch – you can simply visit the Altova Download Page to download and install the latest version of your product(s) to update.

Recursive User Defined Functions

Added based on feedback from Altova partners, this new feature in MapForce 2009 SP1 provides support for non-inlined user-defined functions in data mapping projects. Now users can create recursive function calls, enabling them to map data dynamically by expressing operations in terms of themselves. In hierarchical data structures like XML, for instance, it is possible for an element to contain itself or be referenced, in some way or another, by a descendant. Creating a recursive user-defined function allows you to process this data, looping through the elements incrementally and returning data that has been evaluated dynamically.   Update to get this new functionality and all the v2009 SP1 enhancements across the Altova product line. If you’re not already a v2009 customer, you can download a free, fully functional trial using the same link. 

Tags: , , ,

SOA and Cloud Services Within Your Budget


The hardships affecting today’s economy present new challenges for organizations. Interdepartmental budgets are being cut, and large purchases are being carefully scrutinized. Costly enterprise software and mainframe computing systems that once held promise are being reconsidered on a global scale in favor of more agile, component-based systems that cut costs and increase efficiency with forward-thinking concepts like Service-oriented Architecture (SOA) and cloud computing. These architectural concepts incorporate modern technologies and object-oriented approaches to solve real-world technology issues in complex environments while decreasing maintenance, integration, and deployment costs with modular design and component re-use. The Altova MissionKit is a highly affordable toolset uniquely suited to address this shift toward more flexible and lightweight infrastructure. With strong support for XML, UML, databases, and data integration technologies, the MissionKit offers all of the tools necessary to build agile architectures replete with repeatable services, reusable components, and scalable resources.

SOA & Cloud Computing

SOA and Web/cloud services are two of the strongest buzzwords in technology today. Though they have some clear differences, both of these concepts represent a paradigm shift from large-scale enterprise systems to service-based architectures built on modular components and reusable functionality. The SOA approach aims to help organizations respond more quickly to business requirements by packaging processes as a network of interoperable and repeatable services. This modularity creates system flexibility and gives developers the agility required to build new capabilities into the current system as needed – without reinventing the proverbial wheel. SOA is essentially a series of interconnected and self-contained services, the functionality of which is dynamically located and invoked based on certain criteria, communicated in messages. At the heart of SOA is a high level of component reuse that drives down costs and increases efficiency in a fully scalable architecture. Cloud services build upon the concept of interoperable services, adding a virtualization component to help relieve internal servers from being overtaxed by the constant reuse of these services within the system. This paradigm uses the Internet and Internet-enabled technologies to increase performance and processing speed by storing information permanently in the "cloud" and caching it only temporarily on client machines. Cloud computing implementation is a powerful option for increasing system capacity and capabilities by leveraging next-generation data centers in combination with the World Wide Web. Both SOA and cloud computing seek to alleviate problems created by inflexible architectures that rely heavily on tightly coupled enterprise application infrastructure. This focus on interoperability and independent software services reveals a distributed solution that is event-driven, flexible, and cost conscious in almost any setting.

Anatomy of a Service-based Architecture

Since their inception, XML and Web services have been continuously gaining notoriety as the standards of choice for secure, efficient, and platform-independent data exchange between software applications and over the Internet. XML provides the foundation for the protocols that power Web services infrastructure: WSDL (Web Services Description Language) and SOAP, an XML-based messaging standard. Web services are hardware, programming language, and operating system independent, meaning that they are duly amenable to the seamless and interoperable exchange of data over a network and uniquely suited to component-based systems. Web services architecture Web services architecture Both SOA and cloud-based architectures generally rely on WSDL to describe interaction and functionality and locate operating components within the system. WSDL works hand-in-hand with SOAP, a messaging protocol used by the client application to invoke the methods and functions defined in the WSDL description. The example below is the stock quote example used in the W3C WSDL specification and describes a simple, single operation service that retrieves real-time stock prices based on ticker symbol input. Of course, most services that exist within enterprise architectures are far more complex. Graphical WSDL editor Take, for example, the publicly available Amazon Web services, which provide accessible Cloud services and infrastructure to a growing number of companies worldwide, including Twitter, SmugMug, and WordPress.com. These services essentially allow independent organizations to rent some of the immense power built into the Amazon distributed computing environment and add the same scalability, reliability, and scalability to their online presence at a fraction of the price. The much anticipated Windows Azure from Microsoft® operates on a similar model, giving developers the opportunity to build and deploy cloud-based applications with minimal on-site resources. Amazon provides a WSDL file that contains the definition of the Web service, the requests that the service accepts, and so on. Developers can then write a SOAP-based client application that invokes the Amazon Web service for the functionality it provides. (At this time Amazon provides a number of Cloud-based services for application hosting, backup and storage, content delivery, e-commerce, search, and high-performance computing.)

Altova MissionKit

Recently named "Best Development Environment" in the Jolt Product Excellence Awards, the Altova MissionKit is a diverse set of software tools that provides scalable options for leveraging your current software assets in an SOA or cloud-enabled environment. Strong support for XML, Web services, data integration, process automation, and databases, as well as accessibility to powerful APIs give developers flexible options for creating service-based solutions and an affordable alternative to costly consultant fees, extract/transform/load (ETL) tools, and/or enterprise service bus (ESB) products. The Altova MissionKit* supports end-to-end Web services development and includes a graphical WSDL editor, visual Web services builder, advanced capabilities for managing WSDL and other XML file relationships, a SOAP client and debugger, WSDL data integration, code generation, and more. Together, all of these features provide a robust solution for integrating disparate services and systems in a distributed computing environment, whether the components be in-house, network, or Cloud-based.

WSDL Editor

The XMLSpy XML editor provides a graphical interface (GUI) for designing and editing WSDL documents. The structure and components of the WSDL are created in the main design window using graphical design mechanisms (with tabs allowing users to toggle back and forth between text view), and additional editing capabilities are enabled from comprehensive entry helper windows. Users can easily create and edit messages, types, operations, portTypes, bindings, etc., inline. In addition, publicly maintained WSDL files like the Amazon Simple Storage Service, or Amazon S3, (below) can be opened instantly using the Open URL command in XMLSpy. WSDL editor Amazon Web services XMLSpy’s WSDL editor gives developers a sophisticated environment for rapid Web services development, managing WSDL syntax and validation through an intuitive, drag and drop graphical interface. The addition of a documentation generation feature makes it possible to share the complete details of a Web service interface with non-technical stakeholders in HTML or Microsoft Word.

SOAP Client

SOAP requests can be manually created in XMLSpy’s SOAP client based on the operations defined in the WSDL. Once an operation is selected, XMLSpy initiates the request based on the connections provided in the WSDL and displays the XML syntax of the SOAP envelope in the main window. The message can then be sent directly to the server for an immediate response. SOAP client for Web services

SOAP Debugger

XMLSpy also includes a SOAP debugger, which acts as Web services proxy between client and server, enabling developers to analyze WSDL files and their SOAP message components, single-step through transactions, set breakpoints on SOAP functions, and even define conditional breakpoints that are triggered by a stated XPath query. SOAP debugger

Building Web Services

Once a WSDL definition is complete, it can also be visually implemented using MapForce, Altova’s any-to-any data integration tool. MapForce gives users the ability to map data to or from WSDL operations and then autogenerate program code in Java or C#. Tight integration with Visual Studio and Eclipse makes it possible to then compile the code within either of these IDEs and deploy the service on the client machine. When you create a new Web service project by specifying a Web services definition file (WSDL), MapForce automatically generates mapping files for each individual SOAP operation. MapForce project The SOAP input and output messages can then be easily mapped to other source data components (XML, databases, flat files, EDI, XBRL, Excel 2007) to create a complete Web services operation. Data processing functions, filters, and constants can also be inserted to convert the data on the fly. Web services mapping MapForce can autogenerate Web services implementation code in Java or C# for server-side implementation, and it is also accessible for automation via the command line.

File Relationship Management

For complex Web-based applications that include a large number of disparate files and project stakeholders, the MissionKit offers an advanced graphical XML file relationship management tool in SchemaAgent. SchemaAgent can analyze and manage relationships among XML Schemas, XML instance documents (SOAP), WSDL, and XSLT files. The client/server option enables any changes to be visualized in real time across a workgroup. Managing XML files This gives organizations the ability to track and manage their mission critical SOA files as reusable individual components, reducing development time and the occurrence of errors.

Data Integration

A key factor of any SOA is the ability for disparate systems to communicate seamlessly via automated processes. As an any-to-any graphical data integration and Web services implementation tool, MapForce facilitates this undertaking with support for a wide variety of data formats including XML, databases, flat files (which can be easily parsed for integration with legacy systems with the help of the unique FlexText™ utility), EDI, XBRL, Excel 2007, and Web services. MapForce data mapping in Visual Studio MapForce supports complex data mapping scenarios with multiple sources and targets and advanced data processing functions. Transformations can easily be automated via code generation in C#, C++, or Java, or the command line. Full integration with Visual Studio and Eclipse also makes this an ideal development tool for working in large-scale enterprise projects – without the heavy price tag. This gives developers a flexible and agile middleware component that can work in virtually any service-based architecture. The ability to integrate disparate data in on-the-fly is a key requirement in real-world enterprise and cross-enterprise systems where legacy systems and other less flexible formats co-exist with XML and other modern, interoperable standards.

Database Management

Even in the rapidly evolving semantics-driven macrocosm that is Web 2.0, most companies still use one or more relational databases to store and manage their internal data assets. The Altova MissionKit supports working with the most prevalent of these systems (see listing below) in a wide variety of different ways. Database support is offered in XMLSpy, MapForce, StyleVision, and, of course, DatabaseSpy.

  • Microsoft® SQL Server® 2000, 2005, 2008
  • IBM DB2® 8, 9
  • IBM DB2 for iSeries® v5.4
  • IBM DB2 for zSeries® 8, 9
  • Oracle® 9i, 10g, 11g
  • Sybase® 12
  • MySQL® 4, 5
  • PostgreSQL 8
  • Microsoft Access™ 2003, 2007

DatabaseSpy is a multi-database query, editing, design, and comparison tool that allows users to connect directly to all major databases and edit data and design structure in a graphical user interface with features like table browsing, data editing, SQL auto-completion entry helpers, visual table design, content diff/merging, and multiple export formats. In a service-based architecture, the ability to compare and merge data directly in its native database format is an enormous asset to developers who need to locate changes, migrate differences, or synchronize versions of database tables across test and live environments. Database tool and SQL editor   As a component of the MissionKit, DatabaseSpy gives disparate groups within organizations the flexibility to work with data from multiple databases in one central interface simultaneously. Whether this data is eventually integrated into other systems or applications or lives permanently in the database, DatabaseSpy provides a simple and flexible solution to managing and maintaining massive data stores.

Single Source Publishing

In today’s world of highly automated data transfer and management, it is still necessary for human readers to ultimately consume the data in some format or other. Of course, the problem that organizations often run into is what format to publish to. XML and single source publishing have revolutionized content management, document exchange, and even multilingual communications by separating content structure from appearance. An XML-based documentation system can greatly reduce costs through facilitating ease of conversion for delivery to many different data formats and types of applications. The single source concept ensures that workflow processes (i.e., conversion, edits, etc.) do not have to be repeated or reworked – that all content in the repository requires only minimal restructuring and promotion before being loaded to respective applications for delivery. Altova StyleVision is a graphical stylesheet design tool that enables users to easily apply single source publishing to XML, XBRL, and database content, without having any affect on the source data. In this way, companies can create reusable template designs for data that can then be rendered automatically in HTML, RTF, PDF, Microsoft Word 2007, and even an Authentic e-Form for immediate publication to any conceivable medium without any process disruption – resulting in the presentation of accurate, consistent, and standardized information in real-time. StyleVision stylesheet designer Single source publishing gives organizations the ability to add a human component to their highly automated data processing workflows, enabling them to view transmission reports at any stage. For example, in a world where compliance management plays such a large role in day to day enterprise operations, StyleVision can be integrated into any SOA to provide a sort of visual audit trail for manually reviewing XML, XBRL, and database transactions. StyleVision’s template-based approach to stylesheet design makes it an ideal addition to a distributed development environment, where repeatable processes are an integral part of the system’s overall efficiency.

Conclusions

Financial downturns can make investing in technology a difficult decision. However, forward-thinking organizations will find that focusing on restructuring the legacy assets they already have in place, automating internal processes, and adding virtualization layer to their application infrastructure can lead to increases in efficiency, speed, and potentially enormous ROI. The Altova MissionKit gives businesses all of the tools that they need to augment their enterprise architecture with iterative, process-driven solutions that will recover costs through the reuse of current assets and the ability to deliver Web-driven automation within and across organizations on a global scale. The MissionKit is a highly affordable solution that offers developers, software architects, and IT users all of the tools they need to build flexible and powerful technology solutions and efficiencies that advance component-based service-oriented infrastructure – without breaking the budget.

Tags: , , , , , , , ,

Exploring Large XML/XBRL Documents with XMLSpy


Last week, while giving a demo of the new XBRL capabilities in the Altova MissionKit, we stumbled across an interesting question: What is the best way for a semi-technical SME (in this case a CPA) to navigate a large XML/XBRL document for data entry? XMLSpy, which is included in the MissionKit tool suite, has a lot of cool features and different views for XML data, including the ever-popular grid view for visualizing the hierarchical structure of an instance document in a graphical manner. The ability to easily expand and collapse containers and drag and drop to change position makes XMLSpy’s grid view a pretty good choice for the task.  XMLSpy grid view Of course let’s not forget that the XMLSpy XML editor also has a Find feature that would enable users to simply press Ctrl F or use the Find in Files window to find any element that they are looking for… but alas, in the case of XBRL, where element names are mindbogglingly verbose, this may be a challenge. Consider, for example, the US-GAAP’s aptly named <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAnd IncomeLossFromEquityMethodInvestments>. Not so much fun to type into a Find dialog… Our solution, therefore, and the winner for the easiest and most comprehensive way for even a non-technical user to find XML elements in a large document, utilizes a combination of longstanding XMLSpy features (the XPath Analyzer window) and a new feature in XMLSpy v2009, XPath auto-completion. Simply begin typing the element name in the XPath Analyzer window, and XMLSpy will show you all of the possibilities. Next, choose the one you are looking for, and XMLSpy will navigate directly to that node in the XML document.   xpath auto-completion in XMLSpy   Now that was easy! And better yet, you get to tell your friends that you know XPath. 😉 Of course, for developers, intelligent XPath auto-completion provides a lot more than the ability to find a node quickly. As you type, it provides you with valid XPath functions, as well as element and attribute names from the associated schema and XML instance(s). XMLSpy accounts for namespaces when listing options and even provides deep path suggestions when the required node is not in close proximity to the current context. XMLSpy is available standalone or as part of the award-winning MissionKit tool suite.

Tags: , , ,

Teach DiffDog a New Trick


Teach DiffDog a New Trick You can easily train DiffDog, Altova’s diff/merge tool for files, directories, and databases, to correctly interpret new file types. For instance, more and more file standards are taking advantage of the Zip compression format to deliver entire sets of files in a single convenient package. Let’s say you want to use DiffDog to examine and compare files created by Google Earth that are saved in .kmz archives. When you initially open a folder containing .kmz documents, then attempt to compare two files in a DiffDog document window, DiffDog reports the .kmz files contain binary content: Diff merge tool DiffDog message All you have to do is add the .kmz file extension in the File Types tab of the DiffDog Options dialog: DiffDog tools and options And click the Zip conformant radio button to assign the correct behavior: Compare zip archives Now that DiffDog understands the .kmz file extension is a Zip archive, it expands the Directory compare window to list all the component files. Compare directories You can see differences inside the archives. When you double-click any file pair, DiffDog automatically fetches them from the Zip archives and presents them for interactive editing in a new File Compare window. However, some of the file types enclosed in the Zip archive are also unknown. We learned from reading the XML Aficionado blog entry on Google Earth and XMLSpy that .kml files are an open XML-based standard for geo-spatial information. We can add .kml to DiffDog files types and specify XML-conformant syntax coloring: XML syntax coloring Now DiffDog displays the files with syntax coloring and we can apply all the DiffDog XML-aware differencing functionality. DiffDog  file compare If you dig deeper into the .kmz archive, you’ll discover .dae files are also XML-based. After you add .dae to the DiffDog files list and set it as XML-compliant, give yourself a treat! Compare .dae   DiffDog is available as a standalone tool or as part of the Altova MissionKit tool suite. The recently released DiffDog Version 2009 added powerful database content diff/merge capabilities – take a free trial for a walk around the block.

Tags: ,

Altova MissionKit Wins Prestigious Jolt Award


We are very excited to announce that the Altova MissionKit won the Jolt Product Excellence Award for Best Development Environment last night! Lauded as the "Oscars of the Software Development Industry," the Jolt Product Excellence and Productivity Awards are presented each year to products that have "jolted" the industry with their significance and made the task of creating software faster, easier, and more efficient. According to their Web site, the Jolt Awards, "…recognize the most innovative, trend-making, ahead-of-the-curve products. Jolt-award winners are the software products, books and technologies that developers should be using today." We are honored – and very proud – to be recognized with this designation for the MissionKit, Altova’s suite software development tools for XML, databases, and UML. The unmatched functionality and tight integration between the tools in the MissionKit have been designed from day one to make developers’ lives easier, and we couldn’t be happier to have this recognized first and foremost by our customers and now by this panel of distinguished Jolt Award judges! The complete list of Jolt award winners has been posted, and more info and photos will follow soon as they’re available. A big thank you to the Jolt judges, and congratulations to all the other Jolt Award winners!

Tags: , , ,

What's New…To Me?


With each release, we update the Altova What’s New page with many details and screenshots describing all the functionality added to each product in the Altova MissionKit. If you’ve ever visited the page, you know it’s quite long — and that’s why we only include information on the latest release. This is very helpful for the folks who are one version behind, but what if it’s been a while since you upgraded? You can check out the New Features Index pages, which allow you to select the current version of your product(s) to see everything that’s been added since:

SMPOf course, if you have an active Support and Maintenance Package, upgrades to the latest version are free; but even if your SMP has expired, special upgrade pricing is available. You can learn more by contacting the Altova Sales Team or entering your license key code into the Upgrade Wizard to see all your options.

Tags: , ,

What's New in MapForce 2009?


It feels like we’ve been writing about XBRL and HL7 for months…  Let’s move away from that topic for the moment and talk about additional essential new functionality added to MapForce in the v2009 release. Granted, some of these features have been added as a necessity for mapping to/from multi-dimensional XBRL data, but they also transcend well beyond interactive financial data reporting to the other aspects of mapping XML, database, flat file, EDI, Excel 2007, and Web services data in MapForce.

Custom Functions for Data Mapping

MapForce functions add a custom data processing layer to your mappings, letting you reformat output structure and even manipulate content on-the-fly. With v2009 we have added a grouping, distinct-values, and a predicated position function to the already well-shelved MapForce function library. Grouping functions can be selected for code generation in XSLT 2.0, Java, C#, and C++ and let you effectively reorganize source data into based on common values:

  • group-by – reorganizes data in the output document based on a specified common value, or grouping key
  • group-adjacent – applies grouping to an alternating sequence of items, assigning items that have a common value to the same group
  • group-starts-with – begins a new group based on a specified pattern and puts all subsequent items into the same group until another item matching that pattern is found
  • group-ends-with – ends a new group based on a specified pattern and puts all subsequent items into the same group until another item matching that pattern is found

The distinct-values function is a data filtering operation that, simply put, automatically ignores duplicate input values when writing mapping output results. MapForce distinct-values function MapForce also now includes a predicated position function that lets you filter out data based on its context position in the input document. For example, the mapping below will return data for only the first two people listed in the source document. MapForce position function  

Extended Database Support

For users creating database mappings, MapForce 2009 provides new native support for additional databases: Microsoft SQL Server 2008, Oracle 11g, and PostgreSQL 8. It also now supports mapping XML fields in SQL Server. The complete list of natively supported databases is:

  • Microsoft® SQL Server® 2000, 2005, 2008
  • IBM DB2® 8, 9
  • IBM DB2 for iSeries® v5.4
  • IBM DB2 for zSeries® 8, 9
  • Oracle® 9i, 10g, 11g
  • Sybase® 12
  • MySQL® 4, 5
  • PostgreSQL 8
  • Microsoft Access™ 2003, 2007

Data Mapping Documentation

The ability to generate data mapping documentation makes it much easier to collaborate on large data integration projects, which often include a variety of designers, developers, subject matter experts, and stakeholders. Generate mapping documentation  

Find Dialog for Identifying Nodes

And now for a personal favorite: a new find feature. Yes, this may sound very simple and mundane – unless you have had the pleasure of mapping large and complex multi-layered data components like XBRL and EDI (there we go again!). Consider, for example, digging through an HL7 ADT A05 transaction to find the second CWE identifier field under the fifteenth PR1 segment. Find dialog Ahhh… much easier!! Take a look at the full list of new features in MapForce v2009 – and, as always, keep in mind that Altova adds new functionality to all of the MissionKit tools based on user requests… so keep ‘em coming!

Tags: , ,

HL7 Data Integration


By now, you may be aware of the global push that is being made for data transparency – both in the realm of financial reporting* with a recent XBRL mandate in the U.S., and electronic health records – and that these efforts are focused on the creation and maintenance of XML standards. Of course most of you are among the XML savvy and can feel free to please join me in a resounding “duh” to the rest of the world that is only now beginning to realize the value of XML data in reducing errors, lowering costs, and generally increasing the overall efficiency of data management. But for now, let’s focus a bit on healthcare data and standards. Both HL7 and the HIPAA mandated X12N formats healthcare data exchange have traditionally been EDI-based, but the newest version of HL7 (version 3.x), released in 2005 is XML-based and constrained by a formal framework (HDF) that allows for an evolving data model within a carefully defined development methodology. Yes people, standards – bring it on!! Well, of course there is a need to map this data from the HL7 EDI to HL7 XML, to and from backend systems, to Web services and beyond. So what now? Do you need to become an expert in all of these formats? Weren’t standards supposed to make things EASIER? Please ladies and gentleman, return to your seats! Let me draw your attention once again to MapForce, the coolest data integration tool on the market, with support for mapping and converting data to and from XML, databases, flat files, EDI (including HL7, X12, and EDIFACT), Excel 2007, and Web services. HL7 mapping in MapForce The shot above shows a simple graphical mapping updating an HL7 v2.6 message to v3.x. Altova MapForce is an any-to-any visual data mapping tool that supports mapping HL7 data, in its legacy EDI or newer XML-based format, to and from XML, databases, flat files, other EDI formats, and Web services. Mappings are implemented by simply importing the necessary data structures (MapForce ships with configuration files for the latest EDI standards and offers the full set of past and present HL7 standards as a free download) and dragging lines to connect nodes. A built-in function library lets you add advanced data filters and functions to further manipulate the output data. MapForce can also facilitate the automation of your HL7 transaction workflow through code generation in Java, C#, or C++ and an accessible command line interface. Additional support for mapping HL7 data to and from Web services gives healthcare organizations the ability to meet new technology challenges and changing enterprise infrastructures as they unfold within internal and external provider domains. Read more on our new HL7 tools page in the Altova Solutions Center.   *The Altova MissionKit has been infused with XBRL support to meet financial reporting mandates.

Tags: ,

What's New in XMLSpy 2009?


In addition to being tremendously useful, some of the new features in XMLSpy 2009 are just plain cool. The complete list of new functionality includes:

  • Support for XBRL 2.1 and XBRL Dimensions 1.0  
  • XBRL Taxonomy Editor
  • XPath auto-completion 
  • Native support for additional databases 
  • Support for XML fields in SQL Server
  • Extensions for identity constraints editing in Schema View 
  • Expanded source control system support
  • Support for the XSLT extension altova:evaluate  
  • Support for Apache FOP 0.95  

We’ve already blogged quite a bit about the first two items on the list: support for XBRL validation and XBRL taxonomy editing. Some more details on the other new features are below.

Intelligent XPath Auto-Completion

We’ve been delighted to receive feedback from customers who are really excited about this new feature. If you’re developing XSLT or XQuery, writing XPath expressions just got a lot easier. As you’re composing an XPath expression in Text View, Grid View, or the XPath Analyzer, XMLSpy now provides you with valid XPath functions, as well as element and attribute names from the associated schema and XML instance(s). XMLSpy’s intelligent XPath auto-completion accounts for namespaces when listing options and even provides deep path suggestions when the required node is not in close proximity to the current context. XPath auto-completion  

Native Support for Additional Databases

XMLSpy 2009 adds new native support for the latest versions of SQL Server and Oracle, and brand new support for PostgreSQL. Support for DBs in XMLSpy allows you to generate an XML Schema based on a database, import and export data based on database structures, and generate relational database structures from XML Schemas, and so on. The built-in Database Query window lets you perform queries against the database and edit the data. Here’s the complete list of databases with native support in XMLSpy:

  • Microsoft® SQL Server® 2000, 2005, 2008
  • IBM DB2® 8, 9
  • IBM DB2 for iSeries® v5.4
  • IBM DB2 for zSeries® 8, 9
  • Oracle® 9i, 10g, 11g
  • Sybase® 12
  • MySQL® 4, 5
  • PostgreSQL 8
  • Microsoft Access™ 2003, 2007

SQL Server support has also been enhanced to allow viewing and editing of XML fields that are stored in the database.

Extensions for Identity Constraint Editing in Schema View

Configuring identity constraints (i.e., key/keyref/unique values) is an important aspect of XML Schema development, especially for database users. Adding to existing support for editing these identity constraints, there are now enhanced visual cues and editing options in XMLSpy 2009. A new tab Identity Constraints tab in the Components entry helper window displays all existing constraints in a tree view and allows you to easily modify or create new relationships. Furthermore, identity constraints are now indicated by green lines, informative icons, and mouse-over messages in the Content Model View. A right-click menu allows you to easily add new relationships and specify field and selector values by typing them manually, using drop-down entry helpers, or by simply dragging and dropping the desired nodes. Schema identity constraints

Expanded Source Control System Support

Based on customer feedback, we’ve completely reworked the source control system interface in XMLSpy and also added the same level of source control support to UModel, our UML modeling tool, allowing both products to intelligently integrate with all major SCM tools. Once a project is bound to a version control system, XMLSpy automatically monitors the status of all files and prompts the you to check out a file whenever you starts to modify the document. In addition, the actual state of each file is shown through checkmarks or locks in the upper right corner of each file icon.   What do you think of these new features? What would you like to see added to the next version of XMLSpy? Let us know by commenting below.

Tags: , , , , ,

New features in UModel 2009 UML modeling tool


The recently launched UModel 2009 includes new features that will help development teams of all sizes take maximum advantage of UML software modeling.

Support for version control systems

You can use version control to manage UModel project files and generated source code files. Over two dozen popular source code systems are supported. Check out the list here.

Extensive API to manipulate UModel or create UModel plug-ins

You could create an elaborate trace tool for testing and debugging that illustrates your application flow by manipulating elements in UModel diagrams, or you can create a simple plug-in that adds a custom command or menu option using your own icons and buttons. The UModel installation even includes plug-in code examples to help you get started. The sample plug-ins create new menu and toolbar options to provide shortcuts to particular style settings, to automate a series of tasks, and to reinforce a naming convention, all common modeling steps that are likely to be unique for each development team.
UModel plugin The sample code even shows you where to add the name and description description that appear in the UModel Customization dialog when a user installs your plug-in. UModel dialog The screen shot below shows UModel with several custom plug-ins installed. PlugInMenu3 adds the prefix m_ to the name whenever a new property is created in a class. UModel UML tool Note the plug-in custom toolbars directly above the Diagram Tree. The custom toolbar at the far left lets the user choose red or green to fill all currently-selected diagram elements. The Set Prefix toolbar lets the user turn the prefix feature on or off. If you want to try out the sample plug-ins yourself you can compile the sample code and add the resulting .dll files in the UModel Customize dialog. If you want to deploy the plug-ins across multiple workstations by sharing the .dll files, you will also have to register them manually at each workstation.

Support for profile diagrams in the latest UML 2.2 specification

An enterprise software architect might use custom stereotypes to define specific properties suitable to your team’s problem domain. The architect could then distribute these to the team via a shared package. The UModel Properties helper window lets you define custom stereotypes with a high level of precision. UModel UML profile diagram We are interested to hear about the applications users devise for the UModel API, plug-ins, and custom stereotypes over the coming weeks. You can add a comment to this blog entry, exchange tips with other users in the Altova Support Forum, or contact us through the link on the right side of the Altova Case Studies page to collaborate on a case study. If your development team hasn’t enjoyed the benefits of model-based software development, you can download a fully-functional free trial to test drive UModel 2009 for 30 days.

Tags: , , , ,

New tables and XPath filtering for flexible stylesheet design


To an Altova MissionKit user, it probably comes as no surprise that the majority of the new features in our latest (v2009) release were based on customer requests – yeah, that’s how we roll. But we also had the opportunity to build a lot of new functionality into the MissionKit tools, specifically XMLSpy, MapForce, and StyleVision,  because of our added support for XBRL. As you may already know, XBRL is built on top of XML, and adds semantic definitions to financial reporting data. XBRL Dimensions 2.1 also has some interesting rendering and presentation requirements that, in our humble opinion, have given StyleVision some of its coolest new features to date: an all-new table design and XPath filtering. The new table design in StyleVision makes the visual stylesheet design interface only that much more intuitive. Now, you can design your table rows and columns and then simply drag borders to resize. You can also right-click to rearrange the table structure with copy and paste – or just delete the entire row/column right there. The new table design also lets you have static and dynamic properties within the same table design. tables   XPath filtering is also an enormously important new feature in StyleVision – especially for those of us who like to create reusable design templates. This feature lets you filter data out of your rendering based on an XPath expression. Simply right-click the node that you want to filter, and StyleVision’s XPath Builder will open and provide intelligent auto-completion to help you formulate a valid XPath statement. It even interprets your location in the stylesheet design so that your expression is not only valid according to the XPath standard, but it also makes sense in the context of your template design. xpath Of course, if you need to make all of your filtered data available again, all you need to do is delete the XPath filter icon in your design. StyleVision 2009 delivers all this and single source output in HTML, RTF, PDF, and Word 2007 from XML, databases, and now XBRL – and you can even design your own e-Forms for editing in Altova Authentic. Check out a free trial, and please let us know what you think!

More Altova MissionKit 2009 News


Since we announced Version 2009 of the Altova MissionKit last week, Altova’s CEO Alexander Falk has been detailing some of the hottest new functionality (among other interesting topics) over on the XML Aficionado Blog. In case you missed it, check out these highlights:

Tags:

XBRL Support Added to Altova MissionKit 2009


xbrl_tools Earlier this week we blogged about the release of Version 2009 of Altova MissionKit, which includes the complete Altova product line. One of the major themes in this latest release is comprehensive support for XBRL across multiple Altova MissionKit tools, so lets look into XBRL itself and the new functionality in more detail.

What is XBRL?

The eXtensible Business Reporting Language (XBRL) is an XML-based vocabulary for electronic transmission of business and financial data. Currently in version 2.1, XBRL is an open standard that is maintained by XBRL International, a global non-profit consortium of over 550 major companies, organizations, and government agencies. XBRL was developed to facilitate business intelligence (BI) automation by enabling machine-to-machine communication and data processing for financial information with an eye towards cost reduction through the elimination of time consuming and error-prone human interaction. Official support from European Parliament and a mandate the United States Securities and Exchange Commission (SEC) has all but secured XBRL’s future as the official standard for financial reporting. You can learn a lot more about the nuts and bolts of XBRL in the XBRL white paper written by Altova’s Technical Marketing Manager, Liz Andrews.

XBRL Tools

All of the power and functionality that XBRL brings to financial data is useless without XBRL-conformant tools to interpret and process this data. In fact, understanding the importance of tools for XBRL, the XBRL recommendation writes software vendors into its abstract:

XBRL allows software vendors, programmers, intermediaries in the preparation and distribution process and end users who adopt it as a specification to enhance the creation, exchange, and comparison of business reporting information.

As such, XBRL development and data integration can be supported in a variety of different ways. The Altova MissionKit 2009 provides comprehensive support for working with XBRL, from validation and editing, to transformation and rendering, in multiple tools: XMLSpy 2009 – XBRL validator and XBRL taxonomy editor. When you need to ensure that your XBRL filing documents are valid and compliant, XMLSpy can be used to to validate an XBRL instance file against its corresponding taxonomy. If you need to extend a standard taxonomy to meet your organization’s filing needs, the graphical XBRL taxonomy editor in XMLSpy gives you a graphical model with tabs that organize different types of taxonomy elements, wizards, and entry helpers, all of which guide data input based on the structural information provided in the XBRL instance and base taxonomies. MapForce 2009XBRL exchange and data integration tool. When you need to extract financial data from back end systems and transform it into compliant XBRL filings, MapForce makes it easy with drag-and-drop, graphical data mapping and instant conversion. MapForce allows bi-directional data mapping between XBRL and databases, flat files, Excel 2007, XML, and Web services. Once your mapping project is defined, you can utilize it to automate quarterly and annual XBRL filing generation by transforming data with the MapForce UI, command line, or auto-generated, royalty free application code. This makes public financial data submission a repeatable and highly manageable process, allowing organizations to produce valid XBRL reports as required based on the variable data stored in accounting system fields – without having to define new mappings every quarter. mapforce_xbrl_thumb If you need to aggregate XBRL filings from different time periods or different organizations in your back end systems for analysis, MapForce lets you map the XBRL data to databases, flat files, XML – even Web services. Mapping data directly from its source format removes the need for re-keying and potential errors. Together, MapForce and XBRL enable the automation of the multi-dimensional financial analysis that organizations and stakeholders use to evaluate market, company, and industry performance on a regular basis. StyleVision 2009 – XBRL rendering tool. Once data is in XBRL format, and it’s time to render it for consumption on the Web or in printed materials, StyleVision lets you create a straightforward XBRL report to output the data in multiple formats. Simply drag and drop a taxonomy financial statement onto the design pane as an XBRL table, and then use StyleVision’s graphical interface to format stylesheets for simultaneous output in HTML, RTF, PDF, and Word 2007 (OOXML). The XBRL Table Wizard makes it easy to customize the table structure and specify the concepts to include in the report. In the case of the US-GAAP taxonomy, which provides, in addition to the hierarchical organization in its presentation linkbase, some best practices information on how to structure XBRL instances, you can simply select US-GAAP mode to have StyleVision automatically output the data according to this information. xbrl_design To try this powerful XBRL functionality for yourself, download a free, fully functional 30-day trial of the Altova MissionKit 2009, and please let us know what you think by commenting on this blog or in the Altova Discussion Forum.

Tags: , , , , , ,

Now available: Altova MissionKit Version 2009


We are very excited to announce general availability of the Altova MissionKit 2009 suite of XML, database, and UML tools. Version 2009 delivers numerous new features across the tools included in the MissionKit, including comprehensive support for working with XBRL, native support for new databases and database differencing, UML sequence diagram generation, and much more. A few details are below, with complete information and screenshots available on the Altova What’s New page. Coinciding with this major release, we have decided to pass savings realized due to the currently favorable US$/EUR exchange rate directly to our customers by reducing US$ prices across the entire Version 2009 product line.

Support for XBRL

The Altova MissionKit 2009 provides powerful new support for viewing, editing, validating, mapping, and publishing XBRL data. With intelligent wizards, graphical drag-and-drop design models, and various code generation capabilities, the MissionKit Version 2009 gives developers, technical professionals, and power users one easy-to-use suite of tools for working with XBRL and transforming data into content that can be shared with business partners, stakeholders, and regulatory commissions. Altova MissionKit tools with XBRL support are:

  • XMLSpy 2009 – includes an XBRL validation engine that allows users to view and analyze XBRL taxonomies, as well as validate XBRL instance documents. XMLSpy 2009 also includes a graphical XBRL taxonomy editor, which provides a visual representation of XBRL taxonomies with intelligent views and entry helpers for editing and extending them.

XBRL-taxonomy-editor2

  • MapForce 2009 – supports graphical, drag-and-drop mapping of XBRL taxonomies as the source or target in any data mapping project. This new functionality enables users to comply with financial and business reporting mandates by graphically mapping backend data from accounting systems and databases to the XBRL format, or creating valid interim reports based on stored data. Users can map XBRL data to or from any other data format supported by MapForce, including XML, databases, flat files, Excel 2007 (OOXML), Web services, and EDI. This support is also useful for aggregating public XBRL data and mapping it to a database, for instance, for further analysis.

mapforce_xbrl_thumb

  • StyleVision 2009 – Altova’s graphical stylesheet design tool now includes support for rendering XBRL data. This allows users to visually design financial reports for simultaneous output into HTML, RTF, PDF, and Word 2007 (OOXML) formats, enabling organizations to share customized business data in online or print format(s) with business partners, stakeholders, and regulatory commissions, all based on XBRL taxonomy requirements. 

Extended Database Functionality

Native support for additional databases has been added to all database-enabled Altova MissionKit tools, including XMLSpy 2009, MapForce 2009, DatabaseSpy 2009, StyleVision 2009, and DiffDog 2009. Current support for SQL Server® and Oracle® databases is now extended to include the most recent versions – SQL Server 2008 and Oracle 11g. New support for the PostgreSQL 8 database is also now available. In addition, both DatabaseSpy 2009 and DiffDog 2009 now allow you to compare and merge database content. Individual database tables or multiple tables within a schema can be compared, whether they are the same database type or completely different databases. Results of the content comparisons are displayed in tables, and differences can be merged bi-directionally. This new database comparison functionality allows users to easily backup, copy, or merge data quickly and easily. WhatsNewV2009DatabaseSpy2_thumb

Sequence Diagram Generation

MissionKit users working with UML will be especially interested in this new functionality in UModel 2009. Sequence diagram generation greatly assists developers who need to reverse engineer existing applications written in Java, C#, or Visual Basic. After importing an existing project, directory, or file into a UModel 2009 project, you can now select any operation in any class, and automatically generate a sequence diagram that illustrates the lifecycle of the operation, as well as objects that interact with it. Like all other project diagrams in UModel, sequence diagrams are stored as part of the UModel project file and can be included in generated UModel project documentation.   Check out the full list of features added in Version 2009, and be sure to check back here frequently, as we’ll be blogging about more new features each week. As always, you can download a free trial of the Altova MissionKit to test out this new functionality for yourself.

Tags: , , , , , , , , ,

Altova customer Recordare builds MusicXML-based solution


Case Studies

Recordare® is a technology company focused on providing software and services to the musical community. Their flagship products, the Dolet® plugin family, are platform-independent plugins for popular music notation programs, facilitating the seamless exchange and interaction of sheet music data files by leveraging MusicXML. Dolet acts as a high quality translator between the MusicXML data format and other applications, enabling users to work with these files on any conceivable system, including industry leading notation and musical composition applications Finale® and Sibelius®. The list of MusicXML adopters also includes optical scanning utilities like SharpEye or capella-scan, music sequencers like Cubase, and beyond. Dolet increases the MusicXML support in all of these programs and promotes interoperability and the sharing of musical scores. In creating the Dolet plugins, Recordare used Altova’s XML editor, XMLSpy, for editing and testing the necessary MusicXML XML Schemas and DTDs, and the diff/merge tool, DiffDog, for regression testing.

The Challenge

Music interchange between applications had traditionally been executed using the MIDI (Musical Instrument Digital Interface) file format, a message transfer protocol that has its roots in electronic music. MIDI is not an ideal transfer format for printed music, because it does not take into account the multitude of notations (e.g., rests, repeats, dynamics, lyrics, slurs, tempo marks, etc.) that convey much of the meaning. MusicXML is an open, XML-based file format specifically created to encapsulate musical notation or digital sheet music data that was built on top of previous formats, MuseData and Humdrum. XML lends MusicXML the power and flexibility to be easily accessed, parsed, rendered, and otherwise manipulated by a wide variety of automated tools, and its general acceptance as a standard makes it an ideal format for scoring using computer technology. Since its original release by Recordare in January of 2004 (version 2.0 was released in June 2007), MusicXML has gained acceptance in the music notation industry with support in over 100 leading products, and is recognized as the de facto XML standard for music notation interchange. These products would not have adopted MusicXML unless it could be used to exchange data with industry-leading applications like Finale and Sibelius. By developing advanced plugins for popular music notation suites, Recordare would be able to deliver to their customers all of the advantages that XML can bring for data exchange and standardization.

The Solution

Below is an example showing the score of the first few measures of Beethoven’s An die ferne Geliebte, Op. 98 as it is written in sheet music: and a small snippet of the same piece translated to MusicXML: The MusicXML-based Dolet 4 plugins for Finale and Sibelius provide a more accurate and usable representation of sheet music than Standard MIDI translation. For example, the images below show the same piece of music. On the left is a Finale 2009 rendering of a MIDI file exported from Sibelius, and on the right is the same application’s interpretation of a MusicXML 2.0 file exported from the same version of Sibelius.
In the MIDI rendition, vital information like chord symbols, lyrics, slurs, articulations, and even title and composer are omitted from the translation. In addition to providing native support for MusicXML, the recently released Dolet 4 for Finale and Dolet 4 for Sibelius plugins enhance the capabilities of these programs by adding advanced features like:

  • Batch translation
  • More accurate and reliable data exchange
  • More formatting control
  • Support for the MusicXML XML Schema (in addition to the DTD)

In developing the plugins, Recordare was subject to specific requirements dictated by the Sibelius and Finale applications. The Sibelius plugin was programmed in ManuScript, and is one of the largest plugins ever written in that language. Finale, on the other hand, requires plugins to have a C++ core, and Recordare implemented this, adding MusicXML logic in Java and a JNI layer to provide the two-way Java/C++ communication. Recordare’s Dolet plugins are now critical aspects of the music preparation process for many television and film scores as well as new music publications. Errors in translation need to be fixed in maintenance updates, while ensuring that no new errors are introduced into these complex translation plugins. Regression testing of the MusicXML file produced by the Dolet plugins is thus an essential part of Recordare’s quality assurance process. Recordare used Altova’s DiffDog in the development of the Dolet plugins. XMLSpy was used to test and edit their DTDs and XML Schemas, and DiffDog for regression testing the MusicXML files produced by the software. Recordare has several regression test suites covering a wide range of musical repertoire, from baroque to hip-hop. DiffDog allows easy differencing of multiple runs of these test suites, including the ability to ignore differences in XML metadata elements such as software version and XML creation date that always change across test cases. Recordare has used Altova’s XMLSpy XML editor to edit the MusicXML DTDs and XML Schemas, starting with the use of XMLSpy 3.5 (released in 2001) to create the earliest alpha and beta versions of the MusicXML DTD. Version 2.0 of MusicXML added a compressed zip version of the format, similar to what is used in other XML applications like Open Office and Open XML. XMLSpy 2008 Enterprise Edition’s comprehensive support for zipped XML files made it easy to test this new feature together with the Dolet for Finale plugin.

A small portion of the extensive MusicXML schema shown in XMLSpy’s graphical XML schema editor

XMLSpy’s support for XQuery has also contributed to Recordare’s regression testing efforts. In response to a customer request, Recordare now exports XML processing instructions from the Dolet for Sibelius plugin when it encounters a musical feature that it is unable to translate correctly. A simple XQuery execution to search for all the processing instructions in the XML files in a given folder lets Recordare check for the presence of these restrictions within each test suite, and then compare the resulting XML files using DiffDog between runs of the test suite. Recently, customer demand led Recordare to develop an XSD version of the MusicXML format. XMLSpy Enterprise Edition was used to develop and test the schemas. Schema validation, schema restriction and extension, and automatically-generated schema documentation were all able to be tested using XMLSpy’s features.

The Results

The Dolet plugins are extensions for common industry software that harness the built-in capabilities of the MusicXML format to make musical scores truly interchangeable across disparate systems and toolsets. These plugins have the capacity to render accurate and meaningful musical notation based on the powerful MusicXML specification. The leading XML Schema editing capabilities in XMLSpy and the strong XML and directory differencing support in DiffDog enabled Recordare to write and polish the MusicXML schemas and perform regression testing on the Dolet plugins. The resulting high quality of the schemas and software has made MusicXML and the Dolet plugins a key element of the toolkit for composers, arrangers, publishers, copyists, and engravers throughout the industry wherever printed music is used. Try XMLSpy, DiffDog, and the other Altova MissionKit tools for yourself with a free 30-day trial.

Tags: , , , , , , , , ,

New MapForce Online Training – Code Generation


I’m pleased to announce that the next module in the Altova Online Training Series on the MapForce data mapping tool is now available. MapForce Code Generation is an advanced-level course that provides step-by-step tutorials for generating program code (including C# , C++, Java, XSLT, and XQuery) based on graphically defined data mappings and integrating that code into your own applications (royalty-free). Detailed tutorials also walk you through how to add custom XSLT and XQuery functions, add function libraries, and process mappings with multiple files.The MapForce Code Generation module is available on-demand, so you can learn when your schedule allows, and, like all Altova Online Training courses, there is no fee or registration required. Please let us know what you think of MapForce Code Generation – comments and suggestions are appreciated.

Tags: , ,

Free Online Training Module: Intro to StyleVision


We’ve just released a new Altova Online Training Module: Introduction to StyleVision. This free training module provides an introduction to the StyleVision stylesheet design tool interface and functionality as well as interactive tutorials for transforming XML and database content into eye-catching HTML pages, RTF documents, PDF reports, Word 2007 (OOXML) documents, and intuitive Authentic® forms. Detailed tutorials will help users create an effective StyleVision design and insert dynamic and static content. This module also explores how to format the components of the StyleVision design and create global templates. IntroToStyleVision Check out the full list of free Altova Online Training modules, all of which are available in a convenient, on-demand format. As always, please share your feedback and suggestions about Altova Online Training with us, either by using the survey included in the training module or by leaving a comment on this blog.

Tags: ,

Altova MissionKit and DatabaseSpy Named Jolt Award Finalists


JOLT We received an exciting piece of news that brightened a cold winter day when snow was in the forecast: The Altova MissionKit has been selected as a finalist for the 2009 Jolt Award in the Development Environment category. And it gets even better: Altova DatabaseSpy as a standalone application has also been selected as a Jolt Award finalist in the Database Engines and Data Tools category. The 19th Annual Jolt Award winners will be announced at the SD West Conference in Santa Clara, CA in March, 2009. The Jolt Awards are designed to “recognize the most innovative, trend-making, ahead of the curve products,” according to Dr. Dobb’s, the award sponsor. Even before the winners are announced, it’s an honor to be selected as a Jolt Award finalist, since the judges select five finalists in each category from the literally hundreds of development tools and apps available in today’s fast-moving marketplace. The judges are all noted software industry leaders with experience across a wide range of development technologies and projects. We’re pleased that Altova continues to be recognized in such acclaimed company. XMLSpy was a 2003 Jolt Award winner in the Languages and Development Environments category, MapForce was a 2004 Jolt Award winner in the Business Integration and Data Tools category, and UModel was a 2006 Jolt Award finalist in the Design Tools and Modeling category. You can see the entire list of this year’s Jolt finalists at http://www.joltawards.com/finalists.html.

Tags: , ,

New Altova Solutions Center


Take a look at our new Solutions Center design! miki_box Not only does it look great (thanks to the Altova Art and Web Development teams), but it also gives a clear breakdown of Altova MissionKit tools and how they can help you be prepared and well-armed to approach common business and technology challenges.As always, we’d love to hear from you about how you use the Altova MissionKit in your organization – we are always looking for great case studies!

Tags: ,

New Demo Video: Intro to DatabaseSpy


We’re expanding our Flash video series to cover DatabaseSpy, Altova’s multi-purpose database utility. Available to view now, the first DatabaseSpy video is a two-minute introduction that quickly highlights many DatabaseSpy features and shows off its elegant and fun-to-use interface. Database tool demo If you have ever wondered how a multi-database query and design tool can help with a range of database analysis, design, and editing tasks, check out this quick tour. You’ll get to see the DatabaseSpy Quick Connection Wizard, Database Browser, SQL Editor, data editing functionality, and the Graphical Design Editor that lets you visualize, create, or modify database tables and relationships without writing SQL commands. Find out for yourself why DatabaseSpy has received such high acclaim – and look for more Flash videos coming soon in the DatabaseSpy series!

Tags: , , ,

Voting is Open in the Developer.com POY Awards


The US presidential election might be over, but your votes are still needed! Altova DatabaseSpy and Altova XMLSpy are finalists in the 2009 Developer.com Product of the Year Awards. We’d like to ask for your vote to help show your support for Altova tools. image Please cast your vote for Altova DatabaseSpy in the “Database Tool or Add-in” category and Altova XMLSpy in the “.NET Tool or Add-in” category.The polls close soon, so please vote today. As always, we thank you for your support!

Next Altova Online Training Module is Available


We recently blogged about the return of free Altova Online Training, with its new, more convenient, on-demand format. The first module available was Introduction to MapForce, and we’re pleased to announce that the next module in the series is now available. MapForce Data Sources and Targets is aimed at the intermediate MapForce user and provides students with step-by-step tutorials for mapping XML, databases, CSV, EDI, text, and Excel 2007 files in the data mapping tool. Detailed tutorials also walk you through how to process and map legacy text files using MapForce FlexText. This module also covers the methods of mapping and allows you to practice each method, including source-driven, target-driven, and copy-all mapping. DataSourcesTargets MapForce Data Sources and Targets is in BETA status, and we hope you’ll give us your feedback and suggestions so that we can continue to improve. Please respond either using the survey included in the class or by leaving a comment on this blog.

Tags: , ,

Microsoft PDC 2008 Recap


The Altova team exhibited at Microsoft PDC (Professional Developers Conference) in Los Angeles a couple of weeks ago. PDC is billed as a tradeshow for “leading-edge developers and software architects,” and, true to its promise, this event delivered a crowd of high level technology professionals. We enjoying catching up with a large number of current Altova customers and other .NET developers interested in learning more about using Altova MissionKit tools to solve XML, UML, and database design and development challenges. Our visitors were particularly interested in MapForce, a powerful and VERY affordable alternative to large-scale ETL solutions like BizTalk and SSIS, and UModel, for its advanced UML support and integration with Visual Studio.We also took this opportunity to introduce visitors to the MissionKit and the huge savings offered through downloading it as an integrated development suite. The MissionKit was also a popular conversation topic because of the powerful plugins it offers for Visual Studio – in XMLSpy, MapForce, and UModel.One of the most enjoyable memories that this exhibitor has in particular from PDC is the large number of current customers who brought their friends by to encourage them to try our tools – telling them how they could solve problems that they had previously discussed and even answering questions from other visitors listening in! It really made me recognize and appreciate the enormous amount of support that Altova and Altova tools have from the .NET community… Thank you everyone. We hope that you continue to enjoy Altova MissionKit tools and to see you all again the next time PDC rolls into town!Lastly, here’s a video from the show: Allyson and David demoing UModel live at PDC.

Altova UModel at PDC 2008
Tags: , , , , , , ,

New video available: UML round trip engineering


We’ve just uploaded a new Flash video in the UModel UML modeling series titled "Round Trip Engineering." The Round Trip Engineering video describes how to move your software modeling project ahead either by working directly in the source code or by expanding and refining your UML model, while keeping both the code and model in sync. uml_reverse_engineering_demo Even if you’re a code jockey who prefers to work directly in your IDE, maintaining an accurate UML model promotes good communication tool among team members. You can use the UModel UML project documentation feature to quickly generate customized project docs in HTML, rich text, or Microsoft Word formats that will keep the project manager happy too. And don’t forget, the UModel Enterprise Edition integrates with both the Visual Studio and Eclipse development environments and features automatic real-time synchronization of changes in either your source code library or UML model. We’re also thrilled with the popularity of the UModel video titled Creating UML Use Case Diagrams on both our site and YouTube. We posted it on YouTube just over a year ago, and it has accumulated over 18,000 views, becoming one of the most popular videos on YouTube covering the Unified Modeling Language.   Please let us know what you think of the new Round Trip Engineering video, and stay tuned for upcoming installments on the DatabaseSpy database tool

Tags: , , ,

Altova to exhibit at Microsoft PDC next week


PDC2008 The Altova team is busy preparing to head to LA and exhibit at next week’s Microsoft PDC (Professional Developers Conference) 2008. If you’re attending, be sure to stop by and visit us at booth #711, where we’d be happy to show you a demo of the Altova MissionKit tools for .NET developers working on XML, Open XML, database, UML, Web, and data integration projects. We may even have some nice swag and a drawing for you to enter… We hope to see you next week in LA or at another event in the future!

Tags: , ,

Integration Watch: Remember good tools at low cost?


Andrew Binstock, principal analyst at Pacific Data Works, recently published a great article in SD Times about some of the software tools he relies on to make his life easier. In “Integration Watch: Remember good tools at low cost?” he notes:

“Today, of course, tools are either free or terribly expensive; there is little middle ground. And there are very few small vendors of tools, with the notable exception of the components market for Windows applications—but those are more libraries than pure tools. One vendor, however, that has persevered making great [tools] at remarkably approachable prices is Altova, which has put out a variety of interesting products for a long time.”

Read the complete article here and let us know what you think! What are some of the inexpensive software tools that you rely on?

Tags: , ,

Free Altova Online Training is Back!


Back by popular demand, Altova Online Training is now available in a brand new format. It’s still free – only now it’s offered in a convenient, self-service training model. Classes are available on-demand, and you no longer have to sign up or arrange your day around fixed class times. You can learn at your own pace, on your own schedule.

Each interactive training module contains guided instruction, tutorials, quizzes to test your learning, and resources for further study. You can complete each module in one sitting, or return to the class as often as you’d like to pick up where you left off.

The first new Altova Online Training class available is Introduction to MapForce, which is currently in BETA status.

Free Altova Online Training

During the BETA period, we’ll be relying on your feedback to help us improve future courses. Please share your comments and suggestions using the survey included in the Introduction to MapForce module, or post your comments on this blog.

We’re excited that Altova Online Training is back, and we hope you find it helpful for learning more about Altova tools and technologies!

Tags: ,

Oracle OpenWorld 2008 recap


The Altova team exhibited at Oracle OpenWorld 2008 in San Francisco last week. The exhibit halls were packed, and we were happy to have a steady stream of visitors to our booth. We had the pleasure of talking with many Altova customers as well as other Oracle users and developers interested in Altova XML, database, and UML tools. Of particular interest with this crowd were MapForce and DatabaseSpy, but we talked with lots of folks whose challenges – from publishing XML and database data, to UML modeling, to Web services testing – could be met with other tools across the Altova product line. We also had the opportunity to introduce many visitors to the Altova MissionKit, and people were happy to hear that they could get a full suite of tools and save some money at the same time. Here are a few videos chronicling our trip, including some on-the-spot product demos. The first is a 1-minute bird’s eye tour of downtown San Francisco and the Altova booth in the Moscone West exhibition hall.

Here we learn how to efficiently migrate legacy relational data to a 21st-century XML application using XMLSpy. Bonus Scene: a water feature to improve your Feng Shui.

Finally, this video includes a demo of DatabaseSpy, featuring how to use the Graphical Database Design editor to explore and modify database tables. Bonus Scene: take a ride on a San Francisco cable car!

These were shot live on the floor of the exhibition, as you’ll hear from the enthusiastic crowds in the background, and at other spots around town. Whether you attended the show this year or not, we hope you’ll enjoy our video postcards. Altova’s next exhibit will be at Microsoft PDC in Las Vegas – we hope to see you there!

Tags: , , , , , ,

Diff / Merge Tools and Dog Food


Since its release in 2005, the Altova marketing team has been actively using the DiffDog diff / merge tool to compare and merge changes on our Web pages (something Product Marketing Manager David McGahey likes to call “eating our own dog food.” Get it? Dog food? Anyway…). We create and edit our content directly in XML using the XMLSpy XML editor and use WinCVS as our version control client. This way, we [not-so-technical marketing folks] can easily view and revert changes to any files in our CVS repository. When we need to compare changes made in two versions of a given file, we simply highlight the versions and launch DiffDog directly from WinCVS. It’s a lightning-fast way to see exactly what has been changed. image Our Web Development team also makes good use of DiffDog’s directory comparison functionality to diff and merge between our test and live Web servers.

Using DiffDog with Team Foundation Server

Jeff Levinson, Microsoft MVP and Application Lifecycle Management practice lead at Northwest Cadence, also recently shared his DiffDog story in an online article for Visual Studio Magazine, “Performing Comparisons with Team Foundation Server.” He details how you can replace the default merge tool in TFS with DiffDog. Do you have any stories to share about how you use our tools? Let us know!

Tags: , ,

Case Study: Equifax


equifax Check out the case study below to learn how leading US credit reporting entity Equifax® built an advanced SOAP interface for their identity verification and authentication Web service.

Overview

Equifax is a leading credit reporting entity and provider of analytical and decision support tools. Their real-time authentication system, eIDverifier, offers government and businesses personalized online security measures that help protect them against fraud and comply with federal legislation. The eIDverifier process is used within e-commerce and other online applications to authenticate users’ identities based on their answers to personalized questions drawn from Equifax’s extensive data stores. The authentication process consists of five steps:

  1. Integrity Check – eIDverifier standardizes and screens applicant-provided information to test for data inconsistencies and irregularities.
  2. Pattern Recognition – A pattern recognition algorithm is conducted on each transaction. For example, a velocity parameter determines the number of times an applicant has applied for authentication in a specific time frame.
  3. Identity Validation – To confirm an identity’s legitimacy, eIDverifier uses a “waterfall” approach in gathering validation information from multiple data sources. This means that if the identity cannot be validated with the first data source, eIDverifier will proceed to the next data source until the identity is validated.
  4. Interactive Query – eIDverifier presents multiple-choice questions to the applicant based upon “shared secret” information that should only be known to the applicant and Equifax. The question sets are customizable to meet individual risk thresholds.
  5. Decision Logic / Output Assessment – There are two output components to eIDverifier – an assessment score and reason codes. The assessment score indicates the likelihood of an applicant presenting fraudulent information, while reason codes provide important details on questionable information and highlight any discrepancies between the consumer’s application information and Equifax data sources.

eIDverifier relies on the SOAP protocol to send messages defining these interactions back and forth between the client interface and the Equifax servers. Third party institutions license the eIDverifier SOAP interface for use within their online application processes, enabling them to integrate its functionality and access information contained in Equifax’s databases.Equifax uses the XMLSpy XML Schema editor to graphically design the XSDs that serve as the foundation for their SOAP interface.

The Challenge

Equifax needed a sophisticated tool for designing the XML Schemas that would define the data types for their Web service, as well as a mechanism for creating the WSDL documents that would describe the interface as a whole. As a Java shop, Equifax needed a solution that would be compatible with their other development tools, and that would work seamlessly with the Eclipse IDE. Though there are plenty of Java tools available that have the capacity for XML Schema development, XMLSpy presented the most attractive option for schema design because of its comprehensive graphical design and editing options.The Equifax development team took a further step to simplify their Web services creation, using XML Beans and the Codehaus XFire/CXF Java SOAP framework to auto-generate WSDL from their XML Schemas.

The Solution

eIDverifier relies on a variety of different technologies to bring identity verification and authentication to its clients. XMLSpy provides the following benefits:XML Schema

XML Schema is used to express the structure of the data, as well as the individual elements and attributes that it is comprised of. Because a large portion of the data relies on end-user input in the form of address, phone number, driver’s license number, etc., it is vital that this information is in a format that can be digested by the system.Using XMLSpy’s graphical XML Schema editor, the Equifax development team was able to easily visualize and maintain the structure of their XML Schema. A portion of the schema that was created appears below:

SOAP interface

This data type definition provides the syntax, and dictates the structure, for the data that is transmitted by the eIDverifier Web service.

XMLSpy’s unique graphical XML Schema editor allowed the Equifax development team to create and maintain a complex schema definition without writing any code manually. They were also able to automatically generate human-readable documentation that can be used to present the architecture for review at any time in the development process, and that describes each element and attribute in detail.SOAP interface

WSDL

The processes executed by eIDverifier are described by a WSDL document that incorporates the XML Schema to provide information about data types, functions, and other interface details to the client – defining and dictating the actions taken by the client application to send and retrieve information between the end-user and the Equifax servers. The Equifax team chose to autogenerate a WSDL document using the Codehaus XFire/CXF framework. The XML Schema was used as the basis for an XMLBeans implementation, which was then compiled as a Java service class. Once the eIDverifier service was exposed, XFire automatically generated a WSDL – the WSDL is shown below in the XMLSpy graphical WSDL editor.

SOAP interfaceThis WSDL serves as the basis for the eIDverifier application, defining the ports and messages that make up the communication infrastructure of the Web service.

The Results

The eIDverifier SOAP interface allows external applications to access Equifax’s backend data stores, exposing it as a Web service and enabling them to retrieve secure information without jeopardizing the integrity of the Equifax mainframe. Utilizing WSDL and SOAP, and surrounded by Java architecture, eIDverifier is able to confirm user identity by returning a set of multiple choice questions based on the secure data maintained by Equifax.SOAP interfaceXMLSpy enabled the Equifax team to quickly and easily create a graphical schema representation and the matching documentation to serve as the basis for the Web service. It also allowed the development team to focus on their Java code, rather than the intricacies of XML Schema and WSDL design. The Altova MissionKit provides numerous tools for advanced Web services development, from the graphical XML Schema and WSDL editing discussed here, to SOAP debugging, and even graphical Web services generation and data mapping. Download a free trial to check it out for yourself.

Tags: , , , , ,