Posts

Using the StyleVision Combo Box to Support Data Visibility Requirements


Altova is always on the lookout for ways to help software developers and architects meet the challenges presented by the increasingly complex collection, storage and retrieval requirements of end users. In fact, we recently enhanced the functionality of the combo box in StyleVision to provide developers with additional flexibility around collecting and populating data. There are three ways to define the items in a combo box and their associated XML values – automatically based on a valid schema, manually with a list of populated values and dynamically with an XPath expression. In the latter two scenarios, the value that appears to the end user can be different than the value that will populate the file or database. This feature is particularly useful in cases where the “meaning” of the underlying data isn’t obvious or intelligible to an end user (e.g., a seven digit part number). The values in a combo box can be automatically populated with enumerations from a valid schema. In this case the value that appears to the end user is identical to the XML value that will populate the file or database.Altova StyleVision The functionality is perfect in cases where the elements in the schema provide an accurate reflection of the data content as understood by multiple stakeholders (e.g., end user selects Four to indicate group assignment, which populates the file with the XML value Four). Developers can also populate the combo box manually, defining both the value that appears to the end user and the XML value that will populate the file or database. These values do not need to be the same. So, for example, an end user can select Acme Dishwasher, Stainless while a complex product code populates the file or database used to generate the purchase order. This is an especially useful for collecting standardized data using organization or department-specific taxonomies and supporting multi-lingual applications. Finally, combo boxes can be populated dynamically via XPath expression. Use the same XPath expression to define the values that the end user sees as well as their associated XML values or use different XPath expressions to identify discrete values. If you use different XPath expressions the values the end user sees and their XML values are automatically mapped to one another. In the example below, the end user is prompted to select the group to which he is currently assigned (one, two, three or four). However the group number (not the name) will populate the database. Please note that the values the end user sees could be sorted in alphabetical (or numerical) order if the Sort Values in Authentic box were to be checked. The XPath expressions above produce the output below – the end user selects “Two” but a numeric value is saved to the XML document. The combo box – particularly one that supports the differentiation of values visible to the end user and those that actually populate the database or file – is an invaluable resource in the design of electronic forms. StyleVision automatically generates the stylesheet for an electronic form along with those for HTML, PDF, Word 20007+ and RTF from your template. The Authentic eForm provides an interface for end users to enter and edit XML or database data and is viewable in Authentic View, Altova’s free graphical XML document editor. Have you used enhanced combo box functionality to solve a data entry or population issue? Share it with our active community of StyleVision users by posting to our Facebook wall, commenting here on our blog or joining a discussion in our User Forum on our Website!

Tags: , ,

Software Testing for State Machines


Many varieties of software testing have gained prominence as developers search for ways to improve quality and meet project deadlines – code review, unit testing, regression testing, beta testing, test-driven development, and more. Regardless of a project’s goals or the source code language employed, it’s well accepted that the earlier a defect is found, the easier, cheaper, and more rapidly it can be fixed. Code generation from UML state machine diagrams, a new feature introduced in Altova UModel 2011 Release 2, can be used to validate conceptual logic very early in project development. Real-world design in a state machine diagram An example included with UModel provides a simple and realistic state machine diagram with a small test application you can run to see for yourself how easily it can be to test the logic of a design. The state machine diagram in the AirCondition.ump project in the UModel 2011 examples folder describes the operation of a typical heating and air conditioning system. State machine diagram in Altova UModel The system includes a power button shown on the left side in the transition from the Off state, a modeSelect function that selects heating or cooling, a speedSelect function for the fan, and a standby button that puts the system in the standby mode shown on the right. The example project folder includes all the code generated for the diagram by UModel in Java, C#, and Visual Basic. To try out the Java version, all we have to do is use the command javac STMTester.java to compile the code and java STMTester to run it. The tester application displays a simulated control panel with information windows about the heating and air conditioning unit. The operating buttons appear along the top, the current state is described in the first window, and output messages generated by changes in the system appear in the second window. Test control panel for state machine code generated by Altova UModel As shown above, the system initializes in the Off state, the mode is set to heater, and the fan is off. Before you operate the system, you might want to resize the control panel and state machine diagram to follow the actions of the tester application in the diagram itself, as shown in the reduced size image below. UModel state machine diagram and test control panel for generated code Operating the state machine When we click the powerButton, the Current state window is updated and a detailed description of the operations that occurred are listed as Event 1 in the Debug output messages window. Test control panel for state machine code generated by Altova UModel If it’s a hot day, we might want to change the mode to Cooling and increase the fan speed, which we can do by clicking the modeSelect and speedSelect buttons. The Current state window updates with each click, and Event 2 and Event 3 are added to the output messages window. Test control panel for state machine code generated by Altova UModel Now we can see how the tester application lets us fully exercise the logic of our state machine diagram by clicking every possible sequence of button selections to see if they produce the expected results. For instance if we put the unit in Standby mode (Event 4 below), then press speedSelect, we see in the output messages for Event 5 that no state change occurs in the substate named RegionSpeed. Compare Event 5 to Event 3 in the output messages window as shown below. Test control panel for state machine code generated by Altova UModel Now that the system is in Standby mode and we don’t need any heating or cooling, let’s save energy by pressing the Power button to turn it off. Test control panel for state machine code generated by Altova UModel Wait a second – it looks like nothing happened. No transition took place in Event 6, and the Current state in the top window is still Standby! Looking back at the state machine diagram, we can see the only way out of Standby mode is to press the Standby button again. Is that really the behavior an average user would expect, that the Power button would not turn off the system from Standby mode? Portion of a state machine diagram created with Altova UModel Just imagine how expensive this issue could be to fix if it was first identified much later in product development when the prototype was being tested by a regulatory agency! Here’s a challenge we’ll throw out on the table for our readers: how would you design another more direct route from the Standby state to the Off state? Testing your own state machines You can use the UModel state machine code generation example projects as templates to create test applications for your own designs. You will want to take advantage of the UModel feature that automatically creates operations in a class as you add operation names to transitions in your state machine. Altova UModel toolbar button for automatic creation of operations in classes Also, the UModel Help system includes detailed information about code generation from state machine diagrams and also uses the AirCondition.ump project file as an example. Find out for yourself how you can improve project development by testing the logic of your own state machine diagrams with Altova UModel – download a free 30-day trial today!

Tags: , , , , , ,

Hot off the Press!


The industry is abuzz with the latest news announcing our release of the MissionKit Version 2011 Release 2. The release is loaded with new features for chart and report creation, enhanced data mapping capabilities, new XML Schema editing functionality, support for the latest version of BPMN, and a really cool new feature for comparing and merging Microsoft® Word documents. clip_image002 Dr Dobb’s and SQL Server magazine are just a few of the industry publications and blogs that covered the launch. clip_image004   clip_image003 Read what the industry is buzzing about and then download a free 30-day trial of the MissionKit and check out for yourself all the powerful new features now available in our suite of XML, database, and UML tools!

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

What Do Industry Authors Have to Say About Altova?


Authors of various industry reference books ranging from SOA and Web services to XML continue to use and recommended Altova tools. The latest update to the Cold Fusion book series – “ColdFusion 9 Developer Tutorial” is an update to John Farrar’s “ColdFusion 8 Developer Tutorial”. In this latest update, Farrar uses the Altova MissionKit, our suite of XML, database, and UML tools to do all his XML work for the book. According to Farrar, “I have a suite of tools from Altova and find they do what I want. I can create XPath, XML Schemas, and more from their tools and don’t ever feel the need to look for a new tool.” ColdFusion9_Farrar Farrar, a ColdFusion expert, teaches the basics of ColdFusion programming, application architecture, and object reuse. He then shows off a range of topics including AJAX library integration, RESTful Web Services, PDF creation and manipulation, and dynamically generated presentation files. So whether you need an overview of XML technologies, the latest information on working with ColdFusion, or want to delve into Web services, you’ll want to check out the Altova Reference Books page on our Web site.

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

Introducing XMLSpy 2011 Chinese Language Edition


We are thrilled to announce that with the release of Version 2011, XMLSpy is now available in a Chinese language edition. The new fully localized Chinese edition of the XMLSpy XML editor provides the same powerful functionality found in the English, German, and Japanese versions for editing, transforming, and debugging XML-related technologies. With the release of Version 2011 XMLSpy also adds ground-breaking new support for creating eye-catching charts based on XML data, making it the first and only XML editor on the market to support chart creation. XMLSpy 2011 also delivers several new customer-requested features, including a new schema flattener, extended SOAP validation capabilities, and enhanced functionality for creating schemas. ChineseScreenshot For our current XMLSpy 2011 customers you can unlock any language version using your existing key code. If you’re not an XMLSpy user download a free trial of XMLSpy 2011 to begin using all of the powerful new functionality available in Version 2011. Our decision to bring the localizations services in-house demonstrates our commitment to the Chinese market, and allows us to pass that cost savings on to you, our customers. The Chinese language version of Altova XMLSpy 2011 is currently available in Professional and Enterprise Editions and is available for purchase now from the Altova Online Shop or through your preferred reseller. XMLSpy 2011中文版本推出 我们很激动地宣布2011版本的发布,XMLSpy现在已有中文版可用,新的完全本地化的中文版XMLSpy XML编辑器如今可以提供英语,德语和日语多语种的编辑,转换和调试XML相关的技术,随着2011年的版本,我们还增加了突破性的基于XML数据创建醒目图表的支持,使之成为商场上第一个和唯一一个支持图表创建的XML编辑器,除此以外,我们还添加了多个客户要求的功能,这些功能包括新模式拼合,扩展的SOAP验证和为创建模式增进的功能。 ChineseScreenshot XMLSpy 2011当前的用户可以使用现有的键码解锁全部语言的版本,如果您还不是我们的用户,您可以下载免费试用版本,开始尝试2011版的强大新功能。 我们的本地化决定证明了我们致力于对中国市场的决心,使我们有机会帮助用户来节约成本,价格从136欧元或15232人民币起,标准,专业和企业版都具备中文版本,您可以通过Altova网店或其他首选经销商购买。

Tags: , , , , , ,

MissionKit 2011 Now Available in Japanese


With the release of Version 2011 we are thrilled to bring you the Altova MissionKit in Japanese. Now all the Altova tools available in the MissionKit have been fully translated into Japanese. Like the English and German versions of the tool suite, the fully translated Japanese language version provides users with powerful functionality for XML and Web development, data mapping and integration, rendering and publishing of XML, XBRL, and database data, UML modeling, and more. All the tools available in the new Japanese language version of The MissionKit are available at the same cost as the English versions, and current Version 2011 users can now unlock any language version using their existing key code. missionkit_jp If you haven’t checked out our latest release – Version 2011, download a free, 30-day trial today! The Japanese language version of all the MissionKit tools can be purchased from the Altova Online Shop or through your preferred reseller.

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

Using Altova Tools to Work with XML Data in the SQL Azure Cloud


In an earlier post we discussed connecting to Microsoft SQL Azure databases with Altova DatabaseSpy and demonstrated database schema comparison and content comparison between a local database and the same database migrated to SQL Azure. In this post we will use a different method to migrate an existing table to SQL Azure and show you some tricks you can do with XML in the cloud. We started by creating a new database schema in SQL Azure. Then we created a DatabaseSpy project with a connection to a local copy of SQL Server Express running the AdventureWorks sample database, and a second connection to our new SQL Azure schema. DatabaseSpy Project helper window The AdventureWorks database contains a table called JobCandidate with some XML data we will use for a model for our SQL Azure XML contents. AdventureWorks JobCandidate table in the DatabaseSpy Online Browser window We can generate a CREATE statement for the existing table to use as a basis for the SQL Azure version. CREATE statement for the existing JobCandidate table We need to modify this statement to execute in our SQL Azure database. In addition to changing the database and schema names, we will remove the foreign key constraint to the Employee table, since our new database doesn’t contain a table with that name. Also, SQL Azure does not support the CONTENT keyword, so we will remove that as well. Modifying the CREATE statement in a DatabaseSpy SQL Editor window After making sure the Properties window for the revised CREATE statement points to the SQL Azure database, we can execute the statement. When we refresh the database and expand our view in the Online Browser helper window, we can see the new empty table. New table viewed in the DatabaseSpy Online Browser window A data comparison between the existing table and the new one will allow us to create a script to migrate data into our new table in the SQL Azure cloud. This is similar to the data comparison we wrote about in our previous post on SQL Azure, except instead of merging data directly, we will save the merge script. DatabaseSpy Merge Data dialog Our first attempt to run the merger script failed, throwing an error message that SQL Azure cannot insert values into the new table when IDENTITY_INSERT is set to OFF. We can add a line to the merge script to SET INDENTITY_INSERT ON and re-execute: Merge data script viewed in a DatabaseSpy SQL Editor window Next, we can run a SELECT query to view the data that was successfully uploaded. Select query and Results viewed in DatabaseSpy The DatabaseSpy Data Inspector window lets us more easily examine the contents of a wide column, and is ideal to use for XML documents stored in the Resume column of the new JobCandidate table. DatabaseSpy Data Inspector window Editing XML Data with XMLSpy If you need to revise, edit, update, or validate XML data in a SQL Azure database, Altova XMLSpy provides more robust XML editing features than DatabaseSpy. We can connect to our SQL Azure database from XMLSpy and run a SELECT query from the XMLSpy Database Query window. XMLSpy lets us open any XML row for direct editing, with access to advanced XML editing functionality. XMLSpy Database Query view of XML data in the SQL Azure cloud Of course all the familiar features of the XMLSpy text view and grid view are available. XMLSpy Text view of XML data in the SQL Azure cloud XMLSpy Grid view of XML data inthe SQL Azure cloud After your edits are complete, the XMLSpy File / Save menu option saves the revised XML document to the same row of the JobCandidate table in the SQL Azure database in the cloud. XMLSpy File / Save menu option saves XML data to the SQL Azure cloud Parsing XML Data with XQuery You can also apply the XMLSpy XQuery editor, with its built-in knowledge of XQuery syntax and context-sensitive entry helpers to build XQuery statements that parse the XML data in your SQL Azure database. The XQuery statement below extracts and returns the home addresses from the XML resumes where JobCandidateID is less than 7. XMLSpy XQuery editor for XML data in SQL Azure The XQuery statement can be executed in the Database Query window, with results immediately available to work with in XMLSpy. XQuery statement and results inthe XMLSpy Database Query window Of course the XQuery result can also be edited in Text view or in Grid view. XQuery result in XMLSpy Text view XQuery result in XMLSpy Grid view And you can save the query result either from the Database Query window or from the XML Editor view. Find out for yourself how productive you can be by using Altova tools to work with XML data in the SQL Azure cloud ̶ download a free 30-day trial of the Altova MissionKit for Software Architects, an integrated suite that includes XMLSpy, DatabaseSpy, and additional XML, database, and UML tools.

Tags: , , , , , , ,