Home
Altova MapForce User Manual
Contents
1. gPhone E Address 2 m Primarykey i ForeignKkey oE Person 7 PrimaryRey ir ForeignKey ry litle z Altova m PrimaryKkey Mame Person Which root tables should use when I am mapping data When creating mappings to database tables make sure you create mappings using the specific root table as the top level table E g suppose you only want to insert or update Person table data You should then create mappings using the Person table as the root table and create mappings between the source and target items of the Person fields you want to update If you want to update Department and Person data while retaining database relationships between them use the Department table as the root table and create mappings between the source and target items of both tables 2006 Altova GmbH Altova MapForce User Manual 112 MapForce and Databases Mapping XML data to databases 7 3 3 Database action Insert The first example in this section deals with the simple task of adding a new office orgchart to the Altova table The only fields available in the Altova table are PrimaryKey and Name The second example inserts related office tables to the new orgchart record 1 Insert the Altova_Hierarchical xsd schema and assign altova
2. 2006 Altova GmbH Altova MapForce User Manual 198 User defined functions Standard user defined function Libraries user Lookup rticle Ce core logical functions math functions sting functions ERR result lang EE USCH Lookup utcle This is the working area used to define the user defined function A new library has been created in the Libraries pane with the name user and the function name LookupArticle 3 Click the Insert Schema XML file icon E to insert the Articles schema and select the XML file of the same name to act as the data source 4 Click the Insert input component icon to insert an input component 5 Enter the name of the input parameter ArticleNr in this case and click OK Create Input A a xX Ce Simple type integer string etc Datatype stririg a C Comples type tree structure Structure Choose Root Choose Cancel This component acts as a data input to the user defined function and supplies the input icon of the user defined function 6 Insert an equal component by dragging it from the core library logical functions group 7 Insert a filter component by clicking the Insert Filter icon z in the toolbar Altova MapForce User Manual 2006 Altova GmbH User defined functions Standard user defined function 199 mE Articlehr default Articlenr E H output E Articles A Articles E 7 Article Y Humber Use
3. Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 113 The table action Insert All inserts all mapped fields of the current table into the database We now have to define the status of the new PrimaryKey field for this action 5 Click OK to confirm the current settings 6 Right click the PrimaryKey item then select the Database Key Settings entry Table Field PrimaryKey E E x Kep values generation handling f Default handling C Mamm number Database generated value 7 Select the Maximum number entry and click OK to confirm You will notice that the input icon for the PrimaryKey field is now unavailable Se Address DS Altova ePrimaryKey 8 Click the Output tab at the bottom of the mapping window to see the pseudo SQL code that this mapping produces This SGiL statements are only for previews and may not be executed in another GO Guer To execute these statements use function Generate output fram menu Transformation Connect to database using the follaving connection string Provider Micrasott Jet COU EID A II Data Sources Program Files AtovaiMAPPORCE ZO04 St SELECT Wb vO tosaal Primarykey 5 MULL OMA Atoval Primary Key AS Prima INSERT INTO A tova Name PrimaryKey VALUES Microtech OrgChart PrimaryKey 9 Click the Run SQL Script icon in the function bar to run the script and insert the table data
4. CustomMenu ItemcustomItem CustomMenultem sender ProcessCommand customItem m_MapForceCmdlID Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 431 private void ProcessCommand int nID MaprOorceDoc GoCcMaprorce CetCurrenlLMapr orceboc 1 docMapForce null docMaprorce axMaprorceControlpoc Exec nD elbe axMaprorceControl Bxectniip ProcessCommand delegates the execution either to the MapForceControl itself or to any active MapForce document loaded in a MapForceControlDocument control This is necessary because the MapForceControl has no way to know which document is currently active in the hosting application Handling Events Because all events in the MapForce library are based on connection points you can use the C delegate mechanism to provide the custom event handlers You will always find a complete list of events on the property page of each control of the MapForce library The picture below shows the events of the main MapForceControl Properties DataBindings Causes alidation changed DockChanged Enter Leave Location Changed Move OnDocumentOpened OnFileExternalChange axMapForceControl_ OnFileExternalChange OnProjeckOpened CnUpdatecmdl Parenthanged Resize SizeChanged SystemColors Changed Validated Validating Visible Changed As you can see the example project only overrides the OnFileExternalChange event The
5. PrintProjectTree new Enumerator ob jProject WScript Echo strGlobalText ob Pro ject Close EE Create a new project with some folders mappings and a Web service project EE function CreateNewProject try create new project and specify file to store it objProject objMapForce NewProject strSamplePath Sample mfp create a simple folder structure objProject CreateFolder New Folder 1 objFolderl objProject Item Q0 objFolderl CreateFolder New Folder 2 objFolder2 new Enumerator objFolderl item an alternative to Item 0 add two different mappings to folder structure objFolderl AddFile strSamplePath DB Altova_SQLXML mfd objMapForce Documents OpenDocument strSamplePath InspectionReport mfd objFolder2 AddActiveFile override code generation settings for this folder objFolder2 CodeGenSettings_UseDefault false objFolder2 CodeGenSettings_OutputFolder strSamplePath Samp leCutput objFolder2 CodeGenSettings_Language 1 fi Cte insert Web service project based on a wsdl file from the installed examples objProject InsertWebService strSamplePath TimeService TimeService wsdl http www Nanonull com TimeService TimeService TimeServiceSoap true objProject Save if objProject Saved WScript Echo problem occurred when saving project dump project tree strGlobalText PrintProjectTree
6. 7 Insert the Articles schema XML file into the user defined function and assign the Articles xml as the XML instance 8 Insert the rest of the components as shown in the screenshot below namely a second simple input component filter equal and multiply components and connect them as shown me POA tM Pdetaut POAthYE e CompletePo A 4 Article Y Number ija Articles gt spool jon falseL gt SinglePrice KS Y Article L i gt Amount Y Number Gay Seen Y Price Please note e The Articles component receives its data from the Articles xml instance file within the user defined function e The input component input 1 supplies the ShortPO article number data to which the Articles Number is compared e The filter component filters out the records where both numbers are identical and passes them on to the CompletePO output component 9 Click the Home icon Sg to return to the mapping 10 Drag the newly created user defined component from the Libraries pane into the mapping Libraries left SCH UZET FindArticle Add Libraries Project 11 Create the connections as shown in the screenshot below Having created the Article connector right click it and select Copy all from the context 2006 Altova GmbH Altova MapForce User Manual 210 User defined functions Complex user defined function XML node as output menu The rest of the connectors are automatically gener
7. Libraries SCH Core eit logical functions ShortPO math functions IR E 3 ShontPO string functions i F CustomerNr de Lineltems EC user d E 4 Lineltem Lookuparticle l ArticleNr G om Amount SCH xslt ei xpath functions Long result last result 11 Drag the LookupArticle function into the Mapping window The user defined function is displayed e with its name LookupArticle in the title function bar e with named input and output icons Ol Lookup rticle CustomerNr gt Go ArticleNr E Lineltems gt E 7 Lineltem gt Y ArticleNr Amount gt CompletePo D Y CompletePO E Customer de Lineltems de 7 Lineltem 4 Article 3 Number Vi LA LA ee i i WR Ke ka WR Ke V LA V E LA L DW 10 Create the mappings displayed in the graphic below and click the Output tab to see the result of the mapping GG Completero E 7 ShortPO P i E CompletePO 4 Customer gt E E Y Customer E 4 Lineltems E Lineltems EI Lineltem O a E Lineltem a ArticheNr de 7 Article 4 Amount 3 Number SinglePrice 4 Amount Price Please note Using filters in user defined functions only make sense if the source component is also in the same user defined function Filters can only be used to supply data into a user defined function using input components if you have defined it as an inline function A
8. User and Reference Manual Copyright 21998 2005 Altova GmbH All rights reserved Use of this software is governed by and subject to an Altova software license agreement SMLSpy MapForce StyuleVision SemanticWorks Sche ma gent UModel Dif Dog Authentic Altova 8ML and GU are trademarks andror registered trademarks of 4ltova GmbH Patent pending AML SSL xHTML and WSC are trademarks registered in numerous countries of the world wide web Consortium marks of the Wal are registered and held by its host institutions MIT INRIA and Keio UNICODE andthe Unicode Logo are trade marks of Unicode Inc This sofware contains mate rial that is 01334 1334 Dundas Software Lid all rights reserved The Sentry Spelling Checker Engine 2 2000 Winkertres Software Inc STLport 21333 2000 Boris Fomitchey 1334 Hewlett Packard ALTOVA Company 1536 37 Silicon Graphics Computer Systems Inc F137 Moscow Center For _ SPARC Technology Scintilla Copyright 1355 2002 by Neil Hodgson lt neilh scintilla org ATLA Copyright 21453 2005 by Terence Parr Zu wa ant org All other names or trade marks are the property of their respective owners Altova MapForce User Manual All rights reserved No parts of this work may be reproduced in any form or by any means graphic electronic or mechanical including photocopying recording taping or information storage and retrieval systems without the written permission of the publish
9. ui MindanliDpbonly madkaPRCe SystenicodelMapforcesourceldatetest mdb is not a valid path Make sure that the path name is spelled correctly and that you are connected bo the server on which the File resides The message box shows that two separate database connection errors occurred e The first database Barnabas could not be opened because the data source name was missing and a default driver was not specified e The second database datetest could not be opened because of an invalid path 2006 Altova GmbH Altova MapForce User Manual 96 MapForce How To Filter components Tips 6 10 Filter components Tips The filter component is very important when querying database data as it allows you to work on large amounts of data efficiently When working with database tables containing thousands of rows filters reduce table access and efficiently structure the way data is extracted The way filters are used directly affects the speed of the mapping generation This section will deal with methods enabling you to optimize data access and generally speed up the mapping process In general use as few filter components as possible and 1 Avoid concatenating filter components 2 Connect the on true on false parameters to parent items if possible instead of child items directly 3 Connect the on false parameter to map the complement node set delivered by the on true parameter 4 Don t use filters to map
10. Altova MapForce User Manual 2006 Altova GmbH Copy all connections 77 P 4 Person Y Phone on A First i Email ner Y Title i Y Phone Email de expense item ee type expto ODate 7 expense pool on false gt de Person h 9 First fiy equal i See Last e en gt Title o result i 4 Phone All connectors to the target component and all source and target items with identical names are created Please note e When the existing target connections are deleted connectors from other source components or other functions are also deleted e This type of connection cannot be created between an item and the root element of a schema component e Individual connectors cannot be deleted or reconnected from the Copy all group once you have used this method Copy all connections and user defined functions When creating Copy all connections between a schema and a user defined function of type Inline the two components must be based on the same schema It is not necessary that they both have the same root elements however Please see Complex output components defining for an example 2006 Altova GmbH Altova MapForce User Manual Chapter 6 MapForce How To 80 MapForce How To 6 MapForce How To This section deals with common tasks that will be encountered when creating your own mappings The tasks cov
11. Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Using functions to map data 35 rof E xoR eport i E expense report expl ER CopCal ow detailed Fevaluel gl E J Ge results I TETTI CUITENCY z E Person value oe A First e 7 Se Last Title ee CX Phone om Email E expense item 7 Connect the result icon of the concat component to the Name item in the target schema 8 Click the Output tab to see the result of the current mapping sg denn versian 1 DU encoding LITF 3 eCompany xmins xsi http kw vw org 2001 MLS chema instance Employee lt Tithe Project Manager Tithe gt Name Fred Landit Mame Emails landist nanonull com Email JEmployee gt SL OTT oo 4 moh P GO hi ca You will see that the Person name Fred Landis is now contained between the Name tags The first and last name have been separated by a space character as well Mapping the rest of the personal data 1 Create mappings between the following items e currency to Currency e Phone to Tel e expto to Bill to e Date to Date 2 Click the Output tab to see the result sg dml version 1 0 encoding LITF a gt Company xmins xsi http wad 2 org l2001 AML Schema instance xsi schema Employees lt Tithe Project Manager Tithe sName gt Fred Landis lt Mame lt Tel 123 456 78 lt Tel lt Email t landisinanonull com Email gt sexpense it
12. Dem eer Ka D baal be ol DW DW De Ki EL filter ee ect be Ka WW DW ka Ka l Ke Bes ess es Bell es es i i es LA LI LI LI LA LI LI LI Li o F ut Lt LI LI LA LI LI LI L Root element not limited If you do not limit the target schema root element then all source elements records are inserted between the first root element 2006 Altova GmbH Altova MapForce User Manual 84 MapForce How To Boolean values and XSLT 1 0 6 3 Boolean values and XSLT 1 0 Currently XSLT processors can only process values as strings The values supplied by the detailed element in this example can only be true or false as defined in the schema file The example below tries to create an if else construct using the bool value of detailed Depending on the content you should either see the First or Last name of the Person element in the Target schema Trying out this mapping however shows that whatever the bool value of detailed is true or false you will always have the contents of First in the target schema XSLT currently takes all string input as True so this method cannot be used to directly check a boolean value Clicking the Insert Condition icon inserts the IF Else condition function E mf ExpReport E ExpReport T arget A expense report detailed k P lee IS if Le ease CUITGPC a T l E A Pe
13. Description Highlights the item that the error marker is associated with If the corresponding document is not open it will be opened Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified 1008 The marker points to a location that is no longer valid Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 385 Serialization Property Serialization as String read only Description Serialize error marker into a string Use this string in calls to Application HighlightSerializedMarker or Document HighlightSerializedMarker to highlight the marked item in the mapping The string can be persisted and used in other instantiations of MapForce or its Control Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified Text Property Text aS String read only Description Retrieves the message text Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified Parent Property Parent aS Application read only Description Retrieves the application s top level object Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 386 The MapForce API Object Reference 23 2 7 Options This object gives access to all MapForce options available in
14. To enable the MapForce perspective in Eclipse e Select the menu option Window Open perspective Other MapForce MapForce Tut ExpReport mfd Eclipse SDK ee ee Ioj x File Edit Navigate Search Project Insert Component Connection Function Output View Run Window Help lo lo FY mapForce i Java pm mm WW ce CG fh hee Se OQ Mie Ee Libraries 7 We se 3 SC Tut Orgchart mfd F Tut ExpReport mfd pE SC Core mf ExpReport E Sea ai conversion functions EI expense report exp elt boolean result boolean number resul number string result string an sees detailed ef kg es i cumency f concat Person Eech TA I 2 Y First amy result H d i Last Pra valued bel eg 3 Title a Sq 4 Phone a3 logical functions equal result a equal b equal or qre result a gt b equal or les result a lt b greater result a gt b rr AJ Email 2 i less result a lt b E expense item EEL logical and result logical ar H type l m logical not result logical no i expto oo logicalor result logical or iDate O O bea i not egual result logical na E Meal on mealtype el math functions i d fi filter add result value i ceiling result ceilingl w Mapping ALT Output divide result value floor result floor vali modulus result valued m multipl result value ji a t
15. de expense item kf aneii type WR Bac ec i na r Le ke i LI Ke i 1 Ki _ i L V e LA S V K bech LA V Ki geg i inte prode row resLlthy Le L L C Marketing i Mapping Project lt Output A 2 Select the menu option File Generate code in C 2006 Altova GmbH Altova MapForce User Manual 308 Code Generator Generating program code File Edit Insert Component Connection Output View Tools Help i Mew Strg h HU JAVA Ce GE Ein B4 W Ge Open Strqto S Ki Save Strg 5 Save Os E ExpReport gem ol E expense repor dn Print detailed Print Preview gt CS currency K STEE total sum gt HE Person Generate code in selected language r SE gt First Java language Print Setup Mapping Settings CA language 1 MarketingExpenses mtd pnn ETRE 2 MarketingandDailyExpenses mid expto 3 Customers D I mfd d Tut ExpReport multi mfd 5 FersonDE mfd The Browse for Folder dialog box opens at this point 3 Navigate to the folder that you want the code to be placed in and click OK to confirm A C Code Generation completed message appears 4 Click OK to confirm the message The generated code is placed in subdirectories below the directory you specified and contains all the necessary libraries etc needed to compile and execute the ma
16. Application Name defines both the XSLT1 0 2 0 file name prefix Java C or C application name for the transformation files Java settings Base Package Name defines the base package name for the Java output 2006 Altova GmbH Altova MapForce User Manual 284 MapForce Reference Edit 21 2 Edit Most of the commands in this menu become active when you view the result of a mapping in the Output tab or preview XSLT code in the XSLT tab kj Undo MapForce has an unlimited number of Undo steps that you can use to retrace you mapping steps Redo Ge The redo command allows you to redo previously undone commands You can step backward and forward through the undo history using both these commands Find i Allows you to search for specific text in either the XSLT XSLT2 XQuery or Output tab Find Next 3 Searches for the next occurrence of the same search string Cut Copy Paste Delete The standard windows Edit commands allow you to cut copy etc any components or functions visible in the mapping window Select all Selects all the text code in the XSLT XSLT2 XQuery or Output tab Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Insert 285 21 3 Insert XML Schema File Pi Inserts an XML schema file into the mapping tab You are then prompted if you want to include an XML instance file which supplies the data for the XSLT XSLT2 XQuery and Output previews as well as the for
17. Co tmpsuserdefined functions gt mapping TrueWal 2 Mapping Application OK 2006 Altova GmbH Altova MapForce User Manual 94 MapForce How To Filtering database data by date 6 8 Filtering database data by date The example below shows how you can use the filter component to filter out database records according to a specific date The Established field is defined as a Date Time field in the database e The comparison date is entered into a Constant component and is of type string If the date record is greater than 1995 03 03 only then are the respective Office data passed on to the target file by the filter component D altova La mE Address 3 HE Altova l Department LG pE Office SbPumamgken 7771 Le m Foreignkey 7777 gt ip Desc nvarcharl 55 EMail nvarchar 255 ie Established datetime f Fax nvarchar 255 gt ie Name nvarcharl 55 Phone Pv tchat Zi e IS Address He Department el SHE Altova 7995 03 03 gt fi equal or greater Feb result ff filter PApnode row auch or Jalzel a II 3 Company gt E Employee oo Title E oa Name i WW Bill to 2 2 Date E Y Travel Altova MapForce User Manual 2006 Altova GmbH MapForce How To Specifying alternate database resources 95 6 9 Specifying alternate database resources When opening a mapping file mfd containing a database component it is possible that the database locat
18. L E i Company de Y Employee Title e Name coon Email Y DomesticD ailyR ate See Y ForeignD ailyR ate Y Expense detail E expense item ise Currency ad Travel E e Travel Cost io Destination Car Rental ii h Air Travel Misc Travel 8 Click the Output tab to see the result of the current mapping sEmployee lt xml version 1 0 encoding UTF 3 gt Company mins xsi http Way 2 org 2001 MLS chema instance xsi sche f lt 7 tle Project Manager Ttle lt Mame Landis lt Mame lt Tel 123 456 78 lt Tel Email landisienanonull com Email CO zl mth ew ha sexpense iteme 3 f Travel Travel Cost 337 68 gt i svlexpense item f sexpense iterns i cexpense item 3 lt Travel Travel Cost 1 014 22 s5 i slexpense item i sexpense item Pf eTravel Travel Cost 2000 s gt sfexpense tem i sexpense itemss Employee lt flompany gt Please note Empty lt expense item gt tags are generated when child items of a mapped parent item exist in the source file which have not been mapped to the target schema In this case only the travel items of the expense item parent have been mapped There are however two other expense items in the list one lodging and one meal expense item Each one of these items generates an empty parent expense item tag Altova MapForce User Manual 2006 Altova Gm
19. LA Lt Lt Lt V 6 Connect the result icon of the equal component to the bool parameter of the filter component 7 Connect the expense item icon of the source schema with the node row parameter of the filter component expense item n lype i CESA expto g i Meal gas mealtype mapi 7 Location de D Lodging a Travel ow SS means 7 sie Trav cost Ch Destination i Mileage de Parking E GA Entertainment LA it LA LA LA Off LA LA LA it LA LA LA L W E DW fi Rroderayw on truel bool _forrfalsel thy ell Ka LA K LA Lt tg i Ve vw W SW K a resulti Ka LA Lt LA LA V OO foe Travel Le i LA LA Lt LA LA LA TJ LA LA LA L L 8 Connect the on true icon of the filter component with the expense item element of the target document Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Filteringdata 39 expense item fh EI Depense Mem type srn Currency expto i seven Gill to Date b h Date Meal EI OO Travel mealtype on Travel Coz 4 Name i Destinatio 4 Location i h Car Renta Lodging 4 Au Travel Travel on Mise Trave means D 3 Accommoda E Domestic k WW ka DW Ke fy filter Pnode row on trued or falzel ch dch a d I OI OI A WR V WR kel i Ke D W
20. Run Team Wizards Tools Window Help Run Project Strg Fo e Debug Project So Optimize Project Run Mapping4pplication java bk Debug Mapping4pplication jawa Ba Optimize Mapping4pplication jawa Configurations Execute either e MappingApplication or e MappingConsole In both cases the MarketingExpenses xml target file is created MappingApplication SS Mapforce Application E ee Dj x THIS APPLICATION WAS GENERATED BY MAPFORCE 2004 http Wawa alto comimnaptorce Please check the input and output files and press the Start button Source instance of ExpReport xsd prescht lesa MLS pyExeF older MapForceExamples ExpReport cm Instance of MarketingExpenses xsd IMarketingExpenses xm Loading C Projects Files 2uNLapyExeFolder MapForceExanples ExpReport xml saving MarketingExpenses xnl Finished MappingConsole The screenshot below shows the mapping output in JBuilder 2006 Altova GmbH Altova MapForce User Manual 312 Code Generator Generating program code Ci 0Builder9 jdkl 4bin javaw classpath C Temp MarketingExpenses classes C Mapping Application Loading C Projects Files AMLSpyExeFolder MapForceExamples ExpReport xml saving MarketingExpenses xml Finished Ei e Pe bI Process finished m by ch Ales x MappingApplication x Mapping Console The com subdirectory contains the generated code in various subdirectories
21. This event gets triggered whenever the document changes between modified and unmodified state The parameter _b sModifed is true if the document contents differs from the original content and false otherwise 2006 Altova GmbH Altova MapForce User Manual 468 MapForceControl Object Reference 24 5 5 MapForceControlPlaceHolder Properties available for all kinds of placeholder windows PlaceholderWindowID Properties for project placeholder window Project Methods for project placeholder window OpenProject The MapForceControlPlaceHolder control is used to show the additional MapForce windows like Overview Library or Project window It is used like any other ActiveX control and can be placed anywhere in the client application CLSID FPDECSB04 0SF 2 42 7d 936C FO3Ac5DES3CZ2 ProgID Altova MapForceControlPlaceHolder Properties The following properties are defined PlaceholderWindowlD Access to MapForceAPI Project PlaceholderWindowlID Property PlaceholderWindowID aS MapForceControlPlaceholderWindow Dispatch Id 1 Description Using this property the object knows which MapForce window should be displayed in the client area of the control The PlaceholderWindowlID can be set at any time to any valid value of the MapForceControlPlaceholderWindow enumeration The control changes its state immediately and shows the new MapForce window Project Property Project as Project read only Dispatch Id
22. for Fexpense report in fexpense report let 41 Fexpense report return za company d attribute xsischemaLocation i for Person in Fexpense report Person 2 let fie Person i return To generate XQuery code 1 Open the Tut ExpReport mfd file in MapForce 2 Select the menu item File Generate code in XQuery 3 Select the folder you want to place the generated XQuery file in e g MapForceExamples and click OK A message appears showing that the generation was successful 4 Navigate to the designated folder and you will find the XQuery file with the file name MapToExpReport Target xq To execute the XQuery using XMLSpy 1 Start XMLSpy and open the previously generated MapToExpReport Target xq file Altova MapForce User Manual 2006 Altova GmbH Generating XQuery 1 0 code 189 2 Select the menu option XSL XQuery XQuery execution Define an XML Source for the XQuery Choose a file JORCE2005 MapForceE xamples Tutorial mt E xpR eport xml Browse window kip Select aM L Make path relative to Always skip choosing an XML Source for the Query Statement Cancel br Please choose a file from Your hard disk or select one of the other windows curently open in AM D py Ir there is no XML source file associated with the suey please skip this step 3 Click the Browse button and select the XML file that is to act as the data source e g mf ExpReport xml 4
23. public static void Main string args i Froperties try MappingConsole cs File Properties i 2 Select the menu option Build Build Solution to compile the mapping project Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 317 Debug Tools Gi Build Solution Rebuild Solution Build Mapping Rebuild Mapping Batch Build Configuration Manager 3 Select the menu option Debug Run to start the application Tools Window Help Windows b Start Fo Start Without Debugging Cbrl F5 SL Processes Exceptions Ctrl Alk E Step Into Fil Step Over Fi Mew Breakpoint Ctrl B wren pee Seo ec tingExpenses M a DST Ke Ei Loading GO Projects Files sANLS pyExeFo lder MapForceExamples ExpRe port xml Saving MarketingExpenses xml Finished Press any key to continue 2006 Altova GmbH Altova MapForce User Manual 318 Code Generator Generating program code 22 2 3 Generating C code Prerequisites and default settings C code generation for both MapForce and XMLSpy support Visual C 6 0 7 1 Visual Studio NET 2003 and Visual Studio 2005 directly sin and vcproj files are generated in addition to the dsw dsp files for Visual Studio 6 0 The Generation tab under menu option Tools Options allows you to choose the target IDE and code generation settings The menu option File Mapping settings defines the mapping project sett
24. the target file is e CompletePO xml To define your own source or target files Directly edit the parameters passed to the run method of MappingMain1 Object To use an XML input stream as the XML data source Navigate to the run method declaration in the code and configure the specific parameters there To add extra error handling code e Edit the code below the catch Exception e code 2006 Altova GmbH Altova MapForce User Manual 328 Code Generator Integrating MapForce code in your application 22 5 2 MapForce code in C applications Having generated the C code in MapForce and defined a folder named output as the output folder 1 Navigate to the output Mapping folder and open the Mapping sIn file E output e Altova APS Altova 4 AltovaFunctions AlkovaxML 2 Double click the MappingConsole cs file a Solution Mapping 8 projects G Altova E AltovaDB s Ef Alboyvarunctions E AltovaxML feed ComplebePo feed Customers4and4rticles GG Mapping H Lol References SI 4ssemblyInfa cs appingConsale cs SI MappingMairt cs H EA ShortPO A snippet of the code is shown below Console Out WriteLine Mapping Application TraceTargetConsoale tte new TraceTargetConsole MappingMainl MappingMainlObject new MappingMainl 1 gt MappingMainiObject ReqisterTraceTarget itto MappingMainiObhject Runi TSSbor EE tf Prorider BLL let CR
25. 2 5 Mapping between components A connector visualizes the mapping between the two sets of data and allows the source data value to appear or be transformed into the target schema document or database e Components and functions have small connection triangles called input or output icons These icons are positioned to the left and or right of all mappable items e Clicking an icon and dragging creates the mapping connector You can now drop it on another icon A link icon appears next to the text cursor when the drop action is allowed e Clicking an item name element attribute automatically selects the correct icon for the dragging action e An input icon can only have one connector If you try and connect a second connector to it a prompt appears asking if you want to replace or duplicate the input icon e An output icon can have several connectors each to a different input icon e Placing the mouse pointer over the straight section of a connector close to the input output icon highlights it You can now reposition the connector by dragging it elsewhere Number of connectors Input and output icons appear on most components there is not however a one to one relationship between their numbers e Each schema item element attribute has an input and output icon e Database items have input and output icons e Duplicated items only have input icons This allows you to map multiple inputs to them Please see Duplicat
26. Action on input data fia Primarykey m Name Delete data in child tables gnore input child data Office an Delete Action Use Transactions E e Table Actions are processed from left to right In the example above the Update if column is processed and then the Insert Rest column e All the conditions of one column must be satisfied if the table action is to be executed When this is the case all those fields are updated where a mapping exists i e a 2006 Altova GmbH Altova MapForce User Manual 132 MapForce and Databases Mapping XML data to databases connector exists between the source and target items in the Mapping window e If acondition is not satisfied then the table action for that column is ignored and the next column is processed e f none of the conditions are true no table action takes place Delete data in child tables e Standard setting when you select the Update if action e Necessary if the no of records in the source file might be different from the no of records in the target database e Helps keep the database synchronized no orphaned data in child tables e The Update if condition is satisfied when a corresponding key or any other field exists in the source XML file All child data of the parent table are deleted e Update if selects the parent table and thus the child tables related to it on which the Delete data in child tables work
27. Mapping large databases with MapForce 155 7 7 1 Complete database import Option 1 Import the complete database i e with all the tables it contains The Product database component therefore contains all tables with each table appearing as a root table along with all its related tables Using the ComponentType table as the root table the mappings filter out e the Component Name Prototype AND e the Manufacturer NoName along with e the related Customer ID and address data D Production gt DEJ ComponentT ype H _ ka Ka m Manufacturer i Soe 5 pec hin Amount eg DW kg Ke DW po SeralNr m ProducedAt mT estedAt m DeliveredAt 3 Gees SU il pE Customer D Ka DW ka Ka ke DW f gt L equal kal fa filter Pnoderrow op Iruebe or Jalzel WR rezulti ho k RE e Ke WR WW k fa equal WR result ho Ke ke WR Bac Esch a a esch esch esch E Ss Se E T 7 f r La La OI La Vd OI OI Li i d L j Ze Kid WW _ _ emm ke Gl Customers A SE CA Customers d Customer 3 Y Number Y FirstName 7 LastName de Address Street Ka Ka Ke Kg WW SS Ke ke LA Lt LA LA LA KI LA Lt Lt Se Only approximately one tenth of the database relations hierarchy is used in this instance the oth
28. and delete child 122 database action 117 URI in DTDs 99 User defined changing function type 192 complex input 202 complex output 207 deleting 192 function inline standard 195 function standard 197 functions 192 functions complex 201 206 functions restrictions 192 functions changing type of 192 importing exporting 192 look up functions 197 nested functions 211 output if bool false 211 User defined functions 192 V Validate mapping project 22 output data 22 XML 250 Validator in Altova products 488 Value boolean in XSLT 84 default 211 Variables in SPL 337 View 298 of MapForce 370 Visible 368 Visual Basic error handling 361 integration of MapForce 438 Visual function builder 192 Visual Studio NET and MapForce differences 257 MapForce plug in 254 open MapForce files in 255 VS NET 2002 2003 316 2006 Altova GmbH 520 Index W Warning validation 22 whitespace handling and XPath 2 0 functions 482 whitespace in XML document handling by Altova XSLT 2 0 Engine 476 whitespace nodes in XML document and handling by XSLT 1 0 Engine 474 WindowHandle 369 Windows support for Altova products 487 X Xerces support 332 XML mapping multiple tables to 81 save output 250 save XML output 24 validate output 250 XML instance absolute path 43 input 288 output 288 XML Parser about 488 XML to database mappin
29. for each Office Microtech IT Admin Major Ave 1 Vancouver 558550339 Albert Aldrich GZ A Alg Microtech amp Admirn Major Ave 1 Vancouver 5585339 Bert Bander 471 hb banden Microtech Admin Major Ave 1 Vancouver 5588339 Clive Clovis 363 c clovi Microtech Sales and Marketing Major Ave 1 Vancouver 556898339 Dave Durne Microtech Sales and Marketing MNajor Ave 1 Vancouver S5558339 Eve Ellas Microtech Manufacturing Major Ave 1 Vancouver S5868339 Fred Fortunas 394 Microtech Manufacturing Major Ave 1 Vancouver SS86339 Gerry Gundall 64 2006 Altova GmbH Altova MapForce User Manual 170 MapForce CSV and Text files Creating hierarchies from CSV and fixed length text files 8 3 Creating hierarchies from CSV and fixed length text files This example is available in the MapForceExamples Tutorial folder as Tut headerDetail mfd The example uses a CSV file with fields that define the specific record types and has the following format e Field 1 H defines a header record and D a detail record e Field 2 Acommon key for both header and detail records e Each header detail record is on a separate line Creating hierarchical XML structures from flat files using Key fields The contents of the Orders csv file are shown below H 111 332 1 22537 7 Container ship D111 A 159 79 227 18 3 468 Microtone Do1411 6 152 427 7 6 1268 Miscellaneous H 222 978 4 7563 1 Air freight
30. gt El 3 marketing expel gt LG i detailed gt i i SE i Person resulti i E CuttenCH d ci FullName nn total sum gt G Se 3 Title Lk l Person K foots ki f kom S pre i om Email i i L d LA LA L LA ei ke WW Ke k WR Ke k Zoch dch dc Ke C Marketing Ii l Mapping Project Output e The code below shows the source file path as well as the target XML file produced by the mapping Multiple source files can appear however only one target file may be associated C Projects Files XMLSpyExeFolder MapForceExamples ExpReport xml MarketingExpenses xml e f multiple targets exist then the MappingMain section shown below is repeated for each target MappingMainl MappingMainlObject New MappingMainl MappingMainlObject registerTraceTarget ttc MappingMainlObject run C Projects Files XMLSpyExeFolder MapForceExamples ExpReport xml MarketingExpenses xml e Extra error handling code can be inserted under the Exception section catch Exception e or catch CAltovaException amp ei Altova MapForce User Manual 2006 Altova GmbH Code Generator Code generation mapping example 323 The code snippets below are the mapping code generated for each specific programming language Java MappingConsole java public static void main String args try SYSCEM CUutT lt printiln Mapping Application TraceTargetConsole tte Ne
31. i Date 2003 07 07 Date Pf eTravel Travel Cost 1014 22 sfexpense tem sexpense item Currency USD Bill to Marketing Date gt 2003 02 02 Date ff eTravel Travel Cost 2000 sfexpense tem Employee lt flompany gt CD d mh E Ww hI A Please note The on false parameter of the filter component outputs the complement node set that is mapped by the result parameter In this example it would mean all non travel expense items The number of expense items have been reduced to three Checking against the supplied mf ExpReport xml file reveals that only the Travel records remain the Lodging and Meal records have been filtered out Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Generating XSLT 1 0 and 2 0 code 41 3 5 Generating XSLT 1 0 and 2 0 code MapForce generates two flavors of XSLT code l 2 3 Select the menu item File Generate code in XSLT 1 0 or XSLT 2 0 Select the folder you want to place the generated XSLT file in and click OK A message appears showing that the generation was successful Navigate to the designated folder and you will find the XSLT with the file name MapToExpReport Target xslt To transform the personal expense report to the company expense report Having installed either XMLSpy or Authentic Desktop you can easily transform the source to the target document l ole a ie Ge 9 Start XMLSpy or Authentic Desktop and open the sup
32. 3 flandis nanonull corn Fred 3 milandistnanonull co Michelle 2tlgtleconanonull com Ted 2 awayicdnanonull com Ann 3 gardnerainananull ce Liz 2 p smithiainanonull car Paul 4 a martingnanonull co Alex 4 g hammerainanonull c George 1 c Cicadatmicrotech Camilla 1 c corriganimicrotech Carol Person table Delete if condition true source and target keys are identical therefore e delete each Person record where the keys are identical Landis Butler Little Way Gardner omith Martin Hammer Cicada Corrigan e if records exist in the database with no counterpart key field in the source file then these records are not deleted and remain unchanged Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 129 Person table Delete if condition false source and target keys are not identical i e source keys exist which have no match in the target database the delete if condition fails therefore e move on to the next Table Action column Insert Rest e insert the new Person records into the Person table if any exist In this case two new person records are added to the Administration department each with the person primary key of 30 and 31 respectively Two additional examples of the Delete if table action can be viewed in the Update if combinations section 2006 Altova GmbH Altova MapForce User Manual 130 MapForce and Databases Map
33. 343 using files 339 variables 337 Standard mapping with children 73 mixed content mapping 73 user defined function 197 vs source driven mapping 73 XSLT library 14 Starting plug in for Eclipse 264 startup of application 368 Substitute missing node 98 null 160 Sum nodes in XSLT 1 0 240 Sun ONE Studio Java generate code 312 Support database info 138 Supported databases 102 Sybase database info 147 T Table actions database 131 hierarchy 110 parent child display 110 relationships preserve discard 136 Table relationships 110 Target multiple and code generation 322 multiple schemas 43 root element 83 viewing multiple schemas 46 Target item mapping multi source 48 2006 Altova GmbH Index 519 Target driven mapping 73 Technical Information 486 Teminology 8 Template calling 230 named summing 240 Test node testing 98 Text create new text file 182 files defining key fields 170 iterator Rows 168 mapping 175 mapping text files 164 mapping to Rows 168 nodes in mixed content 67 removing text nodes 67 Text enclosed in 173 182 Tools 299 Tutorial 26 TXT field datatypes 173 Type checking 175 Type conversion checking 244 Type driven connections 76 Types built in 347 U UI defining component 222 Unicode support in Altova products 490 Unicode support in Altova products 490 491 Update
34. 6 7 Input values overrides and command line parameters MapForce allows you to create special input functions that can e define an override or alternative value for data being input by the current mapping and e use this input component as a parameter in the command line execution of the compiled mapping Please note This specific type of input function cannot be used inside a user defined function The mapping below uses such an input function The aim of this mapping is to search for a specific article number and replace it with a value 1033 if found If the search is not successful retain the current number What the input function allows you to do is override the current input which is 1 and replace it with whatever you define in the input function Please note that the input in this example is a constant Le 1 but that this will generally not be the case in a complex mappings where the input can be any type of data from any input source The input function further doubles as an input parameter for the command line execution of the generated mapping code E Articles E Articles Be Articles K gt E Articles H Article P P E Article Number E Number ieke i C Name 4 SinglePrice rme r ech ech d py Li LD Lag L stetz eet EY ent He input 1 seront The above example uses the Articles xsd schema and Articles xml files available in the MapForceExamples folder
35. An object that can be used to iterate through all messages issued by the code generation process is returned These messages are the same as those shown in the Messages window of MapForce Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified 1706 Error during code generation InsertWebService Method InsertWebService i_strWSDLFile aS String i_strService aS String i_strPort aS String 1_bGenerateMappings aS Boolean as ProjectItem Description Inserts a new Web service project into the project s Web service folder If i_bGenerateMappings Is true initial mapping documents for all ports get generated automatically Errors 1500 The object is no longer valid 1501 WSDL file can not be found or is invalid Service or port names are invalid Invalid address for the return parameter was specified 1503 Operation not supported by current edition Item Property ttem i_nItemIndex aS Integer aS ProjectItem read only Description Returns the child at i_ nItemIndex position of the project s root The index is zero based The largest valid index is Count 1 For an alternative to visit all children see _NewEnum Errors 1500 The object is no longer valid Examples 2006 Altova GmbH Altova MapForce User Manual 396 The MapForce API Object Reference JScript code snippet enumerate children using Count and Item for nitemIndex 0 nItemIndex lt objProject Count
36. Article og ium i 2 gt SinglePric Ch Amount Price The left half contains the input parameters to which items from two schema xml files are mapped e ShortPO supplies the data for the input component POArtNr e Articles supplies the data for the complex input component The Articles xml instance file was assigned to the Articles schema file when the component was inserted e The complex input component Articles with its XML child nodes to which data has been mapped from the Articles component The right half contains e asimple output parameter called Name which passes on the filtered line items which have the same Article number to the Name item of Complete PO Ss denml Yversion 1 0 encoding UITF 3 CompletePO xmas xsi http Waa pg 2 org 2001 SAMLSchema instance sLinetems i sLineltem i eArticles iOi eNumber 3eMumber 7 lt Name gt Pants lt Mame PoP lt Amount S Amount 7 f4rticles i etLinettem neiem fo eArticle 7 7 eMumber 1 lt Mumber fof of eMamesT ShirtsMame PPP sAmount 17 lt J4mount PoP shrticles etLinettem JLinetems SI ompleteF 0 gt Please note When creating Copy all connections between a schema and a user defined function of type Inline the two components must be based on the same schema It is not necessary that they both have the same root elements however 2006 Altova GmbH Altova MapForce User Manual 206 User defined functions Complex
37. BO Ententoinnent e Biz HE 7 Misc E description 2 Insert the logical function equal from the core library logical functions group 3 Connect the expense item type item in the source schema to the a parameter of the equal function El expense item on SS pe i SES explo g i Meal Soen mealtype Ke Lem i LA LA dech d GA GC SP On Ka i L DW 7 oni Location T H Lodging E Travel ow E means 7 aie Tra cost Destination Mileage Parking in Y Entertainment HE Misc Ler B emm Ki Ke Ka i LA K LA V 1 esch dch A L EL LJ Lan sms Gi Travel Le OI it LA LA LA it iw LA LA Li 4 Connect the result icon of the constant component to the b parameter of the equal function 2006 Altova GmbH Altova MapForce User Manual 38 MapForce tutorial Filtering data H Travel e SS means 7 sie Trav cost Ch Destination Mileage E Y Parking E Entertainment DI Misc a i Meal zasaini mealtype a mg Location de T Lodging a Travel ow means 7 SEN Tra cost Ch Destination Mileage E Y Parking E Entertainment DI Misc i ka i it Ke iJ V Ki ff filter noderow orlruel e on falzel Lt GR LA V Ke S Ka Ka i it LA LA Lr Im B emm S LSet Travel 1 iJ Lt Lt it Lt LA LA LA L
38. Cut Copy Paste Delete The standard MS Windows Edit commands allow you to cut copy etc any components or functions visible in the mapping window All connectors will be retained except for those which would have to be replaced Altova MapForce User Manual 2006 Altova GmbH MapForce overview Projects 17 2 4 Projects MapForce supports the Multiple Document Interface and allows you to group your mappings into mapping projects Project files have a mfp extension To create a project 1 Select File New and double click the Project File icon 2 Enter the project name in the Save Project As dialog box and click Save to continue A project folder is added to the Project tab Tutonal project Happing Output EC New Design 3 Select File New and double click the Mapping icon This opens a new mapping file New Designi in the Design pane To add mappings to a project 1 Select Project Add active file to project This adds the currently active file to the project The mapping name now appears below the project name in the project tab e Selecting the option Project Add files to project allows you to add files that are not currently opened in MapForce To remove a mapping from a project 1 Right click the mapping icon below the project folder 2 Select Remove mapping from the pop up menu 2006 Altova GmbH Altova MapForce User Manual 18 MapForce overview Mapping between components
39. Having installed either XMLSpy or Authentic Desktop assign either of these two XSLT files to the mf ExpReport xml file and start the transformation process 5 Assign the supplied stylesheet ExpReport Target sps to the file and click the Authentic tab Company expense Report Travel EMPLOYEES Title Hame Tel Emal Project Manager Fred Landis 143 456 768 flandis nanonull com Fred Landis Domestic daily rate add aDomesticDailyRate Foreign daily rate Domestic cash advance add a Cashadvance Foreign cash advance Expense items General info Travel Accommodation Entertainmen Date PM Domestic Foreign Cost REES na C 121 2 CH ast l ent addat Bd to Sales addaTravel l l Location addaLlocation add aForeigndce Weal add aE Total NaN ole add a Note add a 2003 Date 0303 add ak add at Eill to Sales add aTravel add aAccommodation add ak Cur fel Total NaN Extra expense inte add adescription To generate program code for multiple target schemas Select the menu item File Generate code in XQuery Java C or C 2 Select the folder you want to place the generated files in and click OK A message appears showing that the generation was successful 3 Navigate to the designated folder and compile your project 4 Compile and execute the program code using your specific compiler Two XML files are generated by the application Please note A JBuilder project file and Ant build scripts are g
40. MF used final Statements none DB object name qualification support for DB schemas identity support MF read back identity value IDENTITY sub select support y y UPPER JOIN support MF upper function ol o W m UW oJ m O CH J y y E SQL Execution exec multiple stat in one y retrieve parameter types special issues when using only ASCII 127 characters are allowed in string constants when using ODBC Flat transactions supported Start flat transaction via execution of SQL command not supported by MAPFORCE Nested transactions supported Sybase does not produce an error continues if no nested transactions exist set transaction isolation API call API call MF begin transaction MF commit transaction 2006 Altova GmbH Altova MapForce User Manual 148 MapForce and Databases Database feature matrix MF set save point SAVE TRANSACTION MF rollback to save point ROLLBACK MF used init Statements Having defined relationships between tables using the Sybase sp_primarykey and sp_foreignkey procedures it is additionally necessary to use ALTER TABLE to add a constraint to the table describing the foreign key relationship to have the primary foreign relationships appear in MapForce Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 149 7 5 6 Database info IBM DB2 IBM DB2 supported own authentication u
41. ShowLogoOnPrint Property ShowLogoOnPrint aS Boolean Description Show or hide the MapForce logo on printed outputs Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified ShowLogoOnStartup Property ShowLogoOnStartup aS Boolean Description Show or hide the MapForce logo on application startup Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified UseGradientBackground Property UseGradientBackground aS Boolean Description Set or retrieve the background color mode for a mapping window Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 390 The MapForce API Object Reference XSLTDefaultOutputDirectory Property xSLTDefaultOutputDirectory aS String Description Specifies the target directory where files generated by Document GenerateXSLT are placed Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 391 23 2 8 Project Enterprise or Professional Edition Properties and Methods Properties to navigate the object model Application Parent File handling FullName Pr
42. The MapForce API Object Reference 397 1500 The object is no longer valid 1501 Invalid language specified Invalid address for the return parameter was specified Output_TextEncoding Property output_TextEncoding aS String Description Sets or gets the text encoding used when generating XML based code Errors 1500 The object is no longer valid 1501 Invalid text encoding specified Invalid address for the return parameter was specified Parent Property Parent aS Application read only Description Retrieves the top level application object Errors 1500 The is no longer valid 1501 Invalid address for the return parameter was specified Path Property Path as String read only Description Path of the project file without name Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified Save Method save Description Saves the project to the file defined by FullName Errors 1500 The object is no longer valid 1502 Can t save to file Saved Property Saved as Boolean read only Description 2006 Altova GmbH Altova MapForce User Manual 398 The MapForce API Object Reference True if the project was not modified since the last Save operation false otherwise Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Obj
43. The altova mdb file is available in the MapForceExamples Tutorial folder D altova a H Department Office FIG Person gyPrimaryKey Text file e II 3 Rows aa Office name a Department Phone extension i sn Email Address E State i Ke ke DW Ke Ke bo al i K LA LA LA K LA LA V L i al bk ad bvd Ke m Primary key m ForeignKey al bk be bo ol Ke Ke k i b ke LA V ba 2006 Altova GmbH Altova MapForce User Manual 186 MapForce CSV and Text files Mapping Database to CSV Text files The Offices txt file entry entered in the Output file field is the name that is automatically supplied when you click the Save generated output icon from the Output tab KM Text import export a a x Difices tt Output file Cancel Input file encoding es S s Unicode UTF 8 Little ndian byte order Big endian byte order Input Output File CSW Settings Field delimiter Test enclosed in C Tab Semicolon fe Comma Space Custom de Hot Ci te H First row contains field names State e string Email Address string Phone extension string Wanonull _ Administration 662 afficefinanonull com Ca Wanonull IT Administration 471 afficenanonull com Ca Wanonull _ Administration 963 afficeinanonull com Ca Wanonull Harketing 621 afficenanonull con CA
44. WE DW A result Lt LI LA LI LI ke e B expense item ae ype pon ekplo ke eno enn Jt LI LI LI L DW obec 3 Click the Insert Constant icon in the icon bar to insert a constant component 2006 Altova GmbH Altova MapForce User Manual 34 MapForce tutorial Using functions to map data FL concat Al valle result valez Ce String C Number All other Cancel 4 Enter a space character in the text box and click OK The constant component is now in the working area Its contents are displayed next to the output icon 5 Create a connection between the constant component and value2 of the concat component rof E xpR eport i E expense repork Cb A conceal a amp detailed sale result CS currency evalue E Person First ag Last Title i ae CX Phone OD Email de expense item 6 Click the item Last and drop the connector on the icon of the concat function just below value2 The text cursor changes to show when you can drop the connector rof E xpA eport ei D expense report exp on amp detailed oo currency DC Person on First o d l F Ka ole e OD iT hd Ale i Last Title 7 Se Phone i Email de expense item This automatically enlarges the concat function by one more item value to which the Last item is connected
45. exshoutput method xml versian 1 0 encoi SC H ame zplitter tokenize result tokenizel string xsttemplate match gt f axl tor each select gt SC xslt 5 i eyvstcalltemplate name tokenize gt ei xpath functions exelwith param name string selects i lang result langi string sixakcall template last result lasti mg o sisl for each local name result localnamel node fcsltemplate gt name result namel node HaMmespace U result namespace unil r position result position sxsltemplate name tokenize gt xsl param name string Select rs cl variable name Ccaps select translat xsl variable name Ccapscount select st The XSLT file name appears in the library window along with the function s defined as named templates below it In this example Name splitter with the tokenize function 5 Drag the function into the Mapping window to use it in you current mapping and map the necessary items as show in the screenshot below Libr aries _ E Customers E CompletePO Bi Name splitter ET Customers i EIE O CompletePO E Customer E Customer ES xslt e Number e Number CA FirstName ie FirstName H Y LastName 2 LastName 4 Address gt 4 Address Street d g 2 Street tokenize resul tokerize string ei xpath functions lang result langi string last result last local name result local narne node name result namel node namespa
46. include StdaAfz h finclude Resource h using namespace std finclude ExpReport EzprReport bi include Market ingExpenses Market ingExpenses h include MappingMsainl h ifdet _DEBUG fdefine new DEBUG NEW Zundert THIS FILE static char THIS FILE _ FILE endif koid MappingMainl Run tstring ExpReportSourceFilename tstring Mar vi Upen the source s WriteTrace Loading ExpReportSourceFilename 5Mn CEzepReportDoc ExpReportDocSourcetbject ExpFkFeport Cespense reportType ExpReportSource0bject w_ExpReportDocSourceObject Load ExpReportSourceFilenamne m_ExpFeport Instance ExpReportSourceObject 4 Select the menu option Build Build Mapping exe Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 319 Build Mapping exe FF Rebuild All Batch Build Clean Start Debug d Debugger Remote Connection Execute Mapping exe Ctr F5 Set Active Configuration Configurations Profile You can select from four different Build configurations Debug Debug Unicode Debug NonUnicode Release Release Unicode Release Non Unicode X StdAf z Cpp Hl Conpiling ExpFkeport cpp Creating library Replacing UnicodeDebug stda tz obj Configuration Market ingEspenses Wins Unicode Compiling StdaAfs cpp Compiling Market ingEspenses cpp Creating library Replacing Uni
47. mins ies bp Lane ww 3 org 001 MLS chema instance 7 eCustomer i hlumber d lt Mumber lt FirstWame Fred John Firsttame i lt Lasthame Landis LastName flustomer lt Customer gt CO OO P to ha Number 2 Mumber lt FirstWame Michelle 4nn marie F irsttame lt Lasttlame Butler Lasttame lt lustomer Customer gt i lt Mumber 3 lt humber lt Firsthame gt Ted Mac vFirstame gt LastName gt Little Lasthame gt To delete custom XSLT functions 1 Click the Add Libraries button 2 Click to the specific XSLT library name in the Libraries tab 3 Click the Delete button then click OK to confirm 2006 Altova GmbH Altova MapForce User Manual Chapter 13 Adding custom XSLT 2 0 functions 236 Adding custom XSLT 2 0 functions 13 Adding custom XSLT 2 0 functions MapForce also allows you to import XSLT 2 0 functions that occur in an XSLT 2 0 document in the form lt xsl function name MyFunction gt Please see the XSLT 2 0 implementation specific document for more information as well as Aggregate functions for an additional example of using named templates to sum nodes Datatypes in XPath 2 0 If your XML document references an XML Schema and is valid according to it you must explicitly construct or cast datatypes that are not implicitly converted to the required datatype by an operation In the XPath 2 0 Data Model used by the Altova XSLT 2 0 Engine all atomized n
48. nItemIndex objProjectItem objProject Item nItemIndex do something with project item here Java_BasePackageName Property Java_BasePackageName aS String Description Sets or gets the base package name of the Java packages that will be generated This property is used only when generating Java code Errors 1500 The object is no longer valid 1501 Invalid package name specified Invalid address for the return parameter was specified Name Property Name as String read only Description Name of the project file without file path Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified Output_Folder Property Output_Folder aS String Description Sets or gets the default output folder used with GenerateCode and GenerateCodeln Project items can overwrite this value in their CodeGenSettings OutputFolder property when CodeGenSettings UseDefault is set to false Errors 1500 The object is no longer valid 1501 Invalid folder name specified Invalid address for the return parameter was specified Output_Language Property Output Language aS ENUMProgrammingLanguage Description Sets or gets the default language for code generation when using GenerateCode Project items can overwrite this value in their CodeGenSettings OutputLanquage property when CodeGenSettings UseDefault Is set to false Errors Altova MapForce User Manual 2006 Altova GmbH
49. principles and the U N Convention on Contracts for the International Sale of Goods and you expressly agree that exclusive jurisdiction for any claim or dispute with Altova or relating in any way to your use of the Software resides in the Handelsgericht Wien Commercial Court Vienna and you further agree and expressly consent to the exercise of personal jurisdiction in the Handelsgericht Wien Commercial Court Vienna in connection with any such dispute or claim If you are located in the United States or are using the Software in the United States then this Software License Agreement will be governed by and construed in accordance with the laws of the Commonwealth of Massachusetts USA excluding its conflict of laws principles and the U N Convention on Contracts for the International Sale of Goods and you expressly agree that exclusive jurisdiction for any claim or dispute with Altova or relating in any way to your use of the Software resides in the federal or state courts of Massachusetts and you further agree and expressly consent to the exercise of personal jurisdiction in the federal or state courts of Massachusetts in connection with any such dispute or claim If you are located outside of the European Union or the United States and are not using the Software in the United States then this Software License Agreement will be governed by and construed in accordance with the laws of the Republic of Austria excluding its conflict of laws pri
50. save as boolean Dispatch Id 1003 Description Save saves the current document at the location Path SaveAs Method OpenDocument strFileName as string as boolean Dispatch Id 1004 Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 467 Description SaveAs sets Path to strFileName and then saves the document to this location SaveDocument deprecated Method SaveDocument as boolean deprecated Description SaveDocument saves the current document at the location Path Events The MapForceControlDocument ActiveX control provides following connection point events OnDocumentOpened OnDocumentClosed OnModifiedFlagqChanged OnDocumentClosed Event OnDocumentClosed objDocument as Document Dispatch Id 2 Description This event gets triggered whenever the document loaded into this control gets closed The argument objDocument IS a Document object from the MapForce automation interface and should be used with care OnDocumentOpened Event OnDocument Opened objDocument as Document Dispatch Id 1 Description This event gets triggered whenever a document gets opened in this control The argument objDocument IS a Document object from the MapForce automation interface and can be used to query more details about the document or perform additional operations OnModifiedFlagChanged Event OnModifiedFlagChanged i_bIsModified as boolean Dispatch Id 3 Description
51. the corresponding namespaces e Since the built in functions namespace listed above is the default functions namespace in XQuery the fn prefix does not need to be used when built in functions are invoked for example string Hello will call the fn string function However the prefix fn Can be used to call a built in function without having to declare the namespace in the query prolog for example fn string Hello e You can change the default functions namespace by declaring the default function namespace expression in the query prolog e When using types from the XML Schema namespace the prefix xs may be used without having to explicitly declare the namespaces and bind these prefixes to them in the query prolog Example xs date and xs yearMonthDuration If you wish to use some other prefix for the XML Schema namespace this must be explicitly declared in the query prolog Example declare namespace alt http www w3 org 2001 XMLSchema alt date 2004 10 04 e Note that the untypedAtomic dayTimeDuration and yearMonthDuration datatypes have been moved with the CRs of 8 June 2006 from the XPath Datatypes namespace to the XML Schema namespace so xs yearMonthDuration lf namespaces for functions type constructors node tests etc are wrongly assigned an error is 2006 Altova GmbH Altova MapForce User Manual 480 Appendices Engine information reported Note however that some functions have the sa
52. 000 000 Otherwise decimal or integer notation is used Precision of xs decimal The precision refers to the number of digits in the number and a minimum of 18 digits is required by the specification For division operations that produce a result of type xs decimal the precision is 19 digits after the decimal point with no rounding Implicit timezone When two date time Or dateTime values need to be compared the timezone of the values being compared need to be known When the timezone is not explicitly given in such a value the implicit timezone is used The implicit timezone is taken from the system clock and its value can be checked with the fn implicit timezone function Collations Only the Unicode codepoint collation is supported No other collations can be used String comparisons including for the fn max and fn min functions are based on this collation Namespace axis The namespace axis is deprecated in XPath 2 0 Use of the namespace axis is however supported To access namespace information with XPath 2 0 mechanisms use the fn in scope prefixes fn namespace uri and fn namespace uri for prefix functions Static typing extensions The optional static type checking feature is not Supported Functions Support The table below lists in alohabetical order the implementation specific behavior of certain functions The following general points should be noted e In general when a function expects a sequence of o
53. 2 0 or Output or e Select the menu option File Generate XSLT XSLT2 Generate XQuery Java C or C code A validation message appears in the Messages window Messages Y va mam 23 x Note that you can use multiple message tabs if you project contains many separate mapping files Click one of the numbered tabs in the Messages window and click the preview tab for a different mapping in your project The validation message now appears in the tab that you selected The original message in tab 1 is retained however Use the different icons of the Messages tab to e Filter the message types errors or warnings scroll through the entries Copy message text to the clipboard Find a specific string in a message Clear the message window Validation messages e Validation successful X Error s Y Warning s Warnings alert you to something while still enabling the mapping process and preview of the transformation result to continue It is therefore possible for a mapping to have 0 errors and Y warnings Errors halt the transformation process and deliver an error message An XSLT XQuery or Output preview is not possible when an error of this type exists Clicking a validation message in the Messages window highlights the offending component icon in the Mapping window Component connections and validation results Free standing components e Do not generate any type of error or warning message Altova MapForce User
54. 2000 f RT Winkertres Software Inc TLpert 13353 2000 Boris Fomitchey 1334 Hewlett Packard ALI OVA Company 21536 57 Silicon Graphics Computer Systeme Inc A1337 Moscow Center Tor Si Ee SPARC Technology Scintilla Copyright 21335 2002 by Meil Hodgson lt n cilh scintilla org ATLA Copyright 1353 2005 by Terence Parr Za aptltr org All other names or trade marks are the property of their respective owners 2006 Altova GmbH Altova MapForce User Manual 4 MapForce 2006 What is mapping Basically the contents of one component are mapped or transformed to another component An XML or text document a database can be mapped to a different target XML document CSV text document or database The transformation is accomplished by an automatically generated XSLT 1 0 or 2 0 Stylesheet When creating an XSLT transformation a source schema is mapped to a target schema Thus elements attributes in the source schema are connected to other elements attributes in the target schema As an XML document instance is associated to and defined by a schema file you actually end up mapping two XML documents to each other Databases can also be used as data sources and map data to multiple XML Schemas or other databases Altova MapForce User Manual 2006 Altova GmbH Chapter 2 MapForce overview 6 MapForce overview 2 MapForce overview MapForce has four main areas the Library pane at left the Mapping tab grou
55. 22 validate XML 250 validating 22 window 250 window zoom factor 250 XML instance 288 Output directory for code generation files 386 for XSLT generated output 390 Output encoding default used 388 Output icon mapping 18 Override 2006 Altova GmbH Index 517 Override input data 91 Overview of MapForce API 353 Overview of MapForce 6 D Parameter alternative value 91 and code generation 91 command line 89 extending in functions 14 Input function as a 91 optional 211 output 211 Parent 368 380 382 385 397 mapping and filters 96 Parser built into Altova products 488 Path 378 397 absolute when generating code 43 Platforms for Altova products 487 Plug in applying MapForce nature 275 build code automatically 272 build code manually 271 code generation 270 create new mapping project 269 importing examples folder 268 MapForce Editor View 266 MapForce for Eclipse 260 MapForce for VS NET 254 position function in XPath 1 0 474 position function in XPath 2 0 see fn position 482 Preview Mapforce engine 250 Priority and filters 96 function 14 Priority context defining 87 Programming language enumerations for 410 Project 368 391 creating new 367 file name 396 file name and path 394 on opening 365 opening 367 path with filename 397 saving 397 Project type enumerations for C 412 for C 388 Q QName serial
56. 23 The MapForce API 352 GG DE TE 353 Sek OBLA Mode eegene 354 23da Example Code Cree AMOI serps eE E EEDEN 355 234 3 Example Project SUDDO EE 3957 ZLA le e E E 361 e E EE 363 Fe ee APP a E 364 DOIG EE 365 OnDocumemtO pened DE 365 AIS Ee 365 Ee 365 EEN 365 EE 365 Ee 366 Hiehlteht erioltzeddoarker 366 EE 366 Ee 366 ee 367 lee 367 ee 367 EE 367 eege 367 EE ee 368 EE 368 NEE 368 VOE EE 368 ee 369 D252 Map ORCS View griserie a 370 E E T A S E E ees A O A 370 APO O Oer EEA A E EA E 370 Altova MapForce User Manual EE 370 HiobltobhtMvConnectionskechretuen E 371 ERA T E A EON IEI AII AOE cio S E AAA OAE E E AE 371 Inser MILS EE 371 Jusert KM Schema Witb onmple 371 POr EE 372 KE 372 KEE 312 ZOD DO UON serea A 373 TE ALS E A E E 373 nDocumentC losci ericson ter eer ee re errr 373 OnModifed las EE 373 EE 374 SEENEN 374 EE 374 PIN GC assassin eae ee san 374 Generate HSN E 374 EE 375 COME TAT EC EE 375 GenerateJava Code sera eae eee sc esses cao ssa cs vets 375 Ee 376 e 376 GO CHAI SI erect seen Gs eeead E ke sees 376 E E E 376 Ee 377 JavaSettings BasePackageName iiiiiccceecccsssesssssessssssssssssssssssssssssssssssesseees 377 eebe 377 EE 378 OutputSettings Application NAME ccsseccccccccesesssssseseceeesessssseeesseeeeeeeesaaees 378 OUTS CUS E 378 EE 378 Hee 378 EE 379 KE 379 E 379 Zoe MEIER 380 Eeer 380 PGT IAG EE 380 OUD eege 380 EEN 380 INC VIO EE 381 Altova MapForce User M
57. 337 22 7 3 Variables The character is used when declaring or using a variable a variable is always prefixed by Variables types e integer e string e class iterator see foreach statement Variable types are declared by first usage x 0 x is now an integer x teststring x is now treated as a string Working with strings The previous example shows how a fixed string is assigned to a variable You will also need to concatenate strings as well as assign them to different variables Assigning a string to a variable x module Defining string concatenation uses the amp character x testconcat amp ination A module 2006 Altova GmbH Altova MapForce User Manual 338 Code Generator The way to SPL Spy Programming Language 22 7 4 Global objects After a Schema file is analyzed by the code generator the objects in the table below exist in the Template Engine Name a Description O namespaces Namespace Namespace collection Collection of Namespace objects ae Class collection All the complextypes elements in a flat view The order is like the order while parsing through the types name of the source Schema without extension outputpath string The output path specified by the user or the default output path Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 339 22 7 5 Using files create filenam
58. AND TERMINATION This Software License Agreement may be terminated a by your giving Altova written notice of termination or b by Altova at its option giving you written notice of termination if you commit a breach of this Software License Agreement and fail to cure such breach within ten 10 days after notice from Altova In addition the Software License Agreement governing your use 2006 Altova GmbH Altova MapForce User Manual 504 Appendices License Information 10 of a previous version that you have upgraded or updated of the Software is terminated upon your acceptance of the terms and conditions of the Software License Agreement accompanying such upgrade or update Upon any termination of the Software License Agreement you must cease all use of the Software that it governs destroy all copies then in your possession or control and take such other actions as Altova may reasonably request to ensure that no copies of the Software remain in your possession or control The terms and conditions set forth in Sections 1 g h 2 5 b c 9 and 10 survive termination as applicable RESTRICTED RIGHTS NOTICE AND EXPORT RESTRICTIONS The Software was developed entirely at private expense and is commercial computer software provided with RESTRICTED RIGHTS Use duplication or disclosure by the U S Government or a U S Government contractor or subcontractor is subject to the restrictions set forth in this Agreement and as provide
59. AS Primarykey INSERT INTO Stova Name PrimaryKey VALUES Microtech OrgChart Primary Key SELECT llFIMA Ottice Primary Ke E NULL OMA Ottice Primarykey o 1 AG Primary ke INSERT NTO Office Foreignkey Desc EMail Established Mame Primary KET L VALUES PrimaryKeys Microtechnology products are currently the bleeding edge of com SELECT IIFIMAS Ottice Primary Ke E MULL OMA Ottice Primarykey i 1 45 PrimaryKey INSERT INTO Office Foreignkey Desc EMail Established Mame PrimaryKey VALUES CPrimaryKey Microtech established ts new office on Feb 20 nextotticecimicr 6 Click the Run SQL script icon to run the script and insert the new tables 7 Double click the Altova table to see the effect in MS Access 2006 Altova GmbH Altova MapForce User Manual 116 MapForce and Databases Mapping XML data to databases EB Altova Table TR BEE EES 1 Organization Chart PrimaryKey Desc EMail Established E 1 The company was es officegnanonul 1992 04 01 2 On March 1st 2000 nextoffiice nan 2001 03 01 2 hlicrotech Orglhart Ups Bes EMail Established E 3 Microtechnology proc officegemicroter 1992 04 01 4 Microtech establishe nextofiicegemic 2001 03 01 Two new offices have been added to the Microtech OrgChart 8 Double click the Office table to see the effect in greater detail 6 Office Table _ PrimaryKey Foreignkey Desc EMail
60. Accommodati E Y Entertainmen r 3 Meal H Lodging A 3 Travel oo means ei Z U Pe P CG e Trav cost GR 4 Create the same mappings that were defined for the first XML source file 2006 Altova GmbH Altova MapForce User Manual 54 MapForce tutorial Mapping multiple source items to single target items Person to Employee 2 Last to Name Title to Title Phone to Tel Email to Email expense item to expense item Scroll down and map Travel to Travel and Trav cost to Travel Cost Heal i Y CashAddvance Lodging E mi ExpReport a Employee 2 Travel ez expense report g Zem Title ow detailed ZE iray CUIrency means Tra cost KS Destination p p E1t Person Email Mileage e ri ie l gt O DomesticDaily Parking gt P J a 3 Y ForeignD ailyR Entertainment i Title WM Y Expense detai Misc OY i Phone de Y expense item Email description E Y expense item joe Currency AQ Travel Travel Cos EM Destinatio A a e Ir Car Rental fl lt Lodging 3 Air Travel TIAA rave gt i i i Misc Trave staid Means DI 3 Accommodat SE Tray cost Ges d UD 5 Click the Output tab to see the result of the mapping Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Mapping multiple source items to single target items 5
61. Code Generali Ol srs irisi E 419 Connect to Custom vente 420 Integration at Document Level nnnnenneeesssssssssssssseseteerressssssssssssssseeeerrereseesssssssssses 421 24 2 1 Use MapForceControl sissccsscsnscetacasssccssasesevedansnsencanncehecsesoncgseseie adeaneneseannsebers 422 24 2 2 Use MapborceControlfiocument 423 24 2 3 Use MapborceControlbl ce Holder 424 24 2 4 Query MapForce Commands sssssccsssccccccssssececcssssssesessssssecccccccsnnees 425 DAD WE 1 426 e ace eee sn E 426 aiuseraht eg Te 426 Placing the MapForceControl NEE 426 Adding the Placeholder Controls eege GEES 427 Retrieving Command Informationer ressesie neei err errr rr E rte 429 Handling Events rerien eree eE EE EEE E EE ET ESENE 431 Testing the Example A E E A A E A E E 432 UIN EE 434 Instantiate the MapForceControl Ve 434 Create Editor Wil e 434 Create Project Kierf Te 434 Create Placeholder for MapForce Helper KK af Te 435 Create a Custom POO I Dat sesvciieeaaacbeciacetenec Aces cneneicinedesn Eeer 435 Create More B ttOiis scscsanaictarcccecscnnstinnediarenanscadsnanssanedscqiadinecesancenantansanbaesacesanencsaen 436 Create Event Handler to Update Bu tton SCAG EEN 437 ere 438 Command Te ea NEE EE eaatuneaesaceseatandesssesasn 439 24 31 File E Cut dE 440 DA EE Et E e 44 Ren D EE 442 2434A Project Menu ss teccosrbeacosinstiacescnancecentstecdassieacasn ea anian tinie dannii rani 443 2433 Component ME 444 2430 Connection
62. CodeDefaultOutputDirectory C test TestCOMServer Java objDoc GenerateJavaCods generate CPP Code use same cpp code options as the last time objOptions CodeDefaultOutputDirectory C test TestCOMServer CPP objDoc GenerateCppCode ff me generate C Code use options C code options as the last time objOptions CodeDefaultOutputDirectory C test TestCOMServer CHash catch ob jDoc GenerateCHashCode err ERROR while generating XSL or program code err hide MapForce to allow it to shut down objMapForce Visible false SEENEN EE EE EE Altova MapForce User Manual 2006 Altova GmbH The MapForce API Overview 357 23 1 3 Example Project Support See also Code Generation The following JScript example shows how you can use the MapForce project and project item objects of the MapForce API to automated complex tasks Depending on your installation you might need to change the value of the variable st rSamplePath to the example folder of your MapForce installation To successfully run all operations in this example below you will need the Enterprise version of MapForce If you have the Professional version running you should comment out the lines that insert the WebService project Users of the Standard edition will not have access to project related functions at all SE Aidid Fo global variables ff 7 7777 07 ttdi var objMapForce null var objWshShell
63. CodeGenSettings_ Language Property codeGenSett ings_Language aS ENUMProgrammingqLanquage Description Gets or sets the language to be used with GenerateCode Or Project GenerateCode This property is consulted only if cCodeGenSettings UseDefault Is set to false Errors Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 401 1700 The object is no longer valid 1701 Invalid language or invalid address for the return parameter was specified CodeGenSettings OutputFolder Property codeGenSettings_OutputFolder aS String Description Gets or sets the output directory to be used with GenerateCode GenerateCodeln Project GenerateCode Of Project GenerateCodeln This property is consulted only if CodeGenSettings UseDefault is set to false Errors 1700 The object is no longer valid 1701 An invalid output folder or an invalid address for the return parameter was specified CodeGenSettings UseDefault Property codeGenSettings_UseDefault aS Boolean Description Gets or sets whether output directory and code language are used as defined by either a the parent folders or b the project root This property is used with calls to GenerateCode GenerateCodelIn Project GenerateCode and Project GenerateCodeln If this property is set to false the values of CodeGenSettings OutputFolder and CodeGenSettings Lanquage are used to generate code for this project item Errors 1700 The object i
64. CompletePO E Lineltem P gt E CompletePO 3 ArticleNr E gt E Customer gt Number 2 3 FirstName LastName pt d aroa z a mE Addresses S K i E Articles i EER i i i State imjName i ba ee g i 2 4 Lineltems fr SinglePrice oe R H 47 Lineltem P E 7 Article FirstName LastName oE Addresses m CustomerHr m City fp State rp Street S fa multiply ZIP value LE ka nia This example consists of two source and one target files e ShortPO xml as a source XML file e CustomersAndArticles mdb as a source database and e CompletePO xml as the target XML file 2006 Altova GmbH Altova MapForce User Manual 326 Code Generator Integrating MapForce code in your application 22 5 1 MapForce code in Java applications This example assumes that you are using Borland JBuilder as your Java environment Having generated the Java code in MapForce and defined a folder named output as the output folder 1 Navigate to the output Mapping folder and open the Mapping jpx project file 2 Double click the MappingConsole java file Mapping jp cae lt Project Source E Com allOva E Com allOva Ob E com altoyva functions i corm altova types 8 com altoyva xml Com Mmaptorce 8 Completero i CustomersAndArticles 28 Shorteo Ges mapforce png ca MappingApplication java Ge MappingConsole java See K
65. Error eCodeGenErrorLevel_ Undefined N CH 2006 Altova GmbH Altova MapForce User Manual 408 The MapForce API Enumerations 23 3 2 ENUMDOMType Description Enumeration values to specify the DOM type used by generated C mapping code Possible values eDOMType_msxml4 eDOMType_xerces See also Code Generation Altova MapForce User Manual 2006 Altova GmbH The MapForce API Enumerations 409 93 3 3 ENUMLibType Description Enumeration values to specify the library type used by the generated C mapping code Possible values eLibType_ static eLibType_dll See also Code Generation 2006 Altova GmbH Altova MapForce User Manual 410 The MapForce API Enumerations 23 3 4 ENUMProgrammingLanguage Description Enumeration values to select a programming language Possible values eUndefinedLanguage 1 eJava D eCpp eCSharp 2 eXSLT 3 eXSLT2 eXQuery 5 Altova MapForce User Manual 2006 Altova GmbH The MapForce API Enumerations 411 23 3 5 ENUMProjectltemType WDescription Enumeration the different kinds of project items that can be children of Project or folder like Projectltems Possible values eProjectltemType_Invalid 1 eProjectitemT ype _MappingFolder 0 eProjectltemT ype Mapping eProjectiItemT ype WebServiceFolder 2 eProjectltemType_ WebServiceRoot 3 eProjectiItemT ype WebServiceService 4 eProjectitemT ype WebServicePor
66. Generating Java code using Sun ONE Studio If you are using Sun ONE Studio e Open Sun ONE studio e Mount the target directory you specified when you generated the Java code Explorer Filesystems 1 ol sl 7 CT Version Control CL Gr D eExpReport 5 Archive JAR Zip E MarketingExpenses The Explorer window at left displays the source file structure Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 313 EE ONE Studio 4 update 1 Community Edition Project Default File Edit View Project Build Debug Versioning Toole Window Help Eee tee ol x Ef Source Editor MappingApplication CH Files ystems O I CTemp iMarketingExpenses atova maptorce E ExpReport G E MarketingExpenses D ES Mapping pplication gt class Mapping4pplication Gr dE Fields dr i Constructors Fl Methods OH main E Bean Patterns C E mMappingconsole Er MappingF rare Ce Ge Mappinghdein Er TraceTargetConsole S maptorce MapForce log MarketingExpenses ant loc build Mapping il Joy EI Filesystem MappingFrame StatButton_ lt import java awt fee Mappingdpplication Jara This file was generated by MAPFORCE 2004 OVERWRITTEN WHEN FOU RA ERUN CODE GENERATION Refer to the MAPFORCE Documentation for further http wow altora con mapforce ZZ FOU SHOULD NOT MODIFY THIS FILE BECAUSE IT WIL Eg package col mapforce
67. ID is 0 and Label is not set The SubCommands collection is empty e Sub Menu The subCommands collection contains MapForceCommand objects and Label is the name of the menu ID is set to 0 and IsSeparator Is false ID Property 1D as long Description ID is 0 for Separators and menus For commands this is the ID which can be used with Exec and QueryStatus Label Property Label as string Description Label is empty for separators For command objects that are children of the ALL_COMMANDS collection this is a unique name Command icons are stored in files with this name See Query MapForceCommands for more information For command objects that are children of menus the label property holds the command s menu text For sub menus this property holds the menu text IsSeparator Property IsSeparator as boolean Description True if the command is a separator SubCommands Property SubCommands aS MapForceCommands Description The SubCommands collection holds any sub commands if this command is actually a menu or submenu 2006 Altova GmbH Altova MapForce User Manual 456 MapForceControl Object Reference 24 5 2 MapForceCommands Properties eka ge Item Description Collection of MapbForceCommand objects to get access to command labels and IDs of the MapForceControl Those commands can be executed with the Exec method and their status can be queried with QueryStatus Count Property c
68. Java BOSC O KO EN OOA secrete esd sents omens once sons 396 IN AWG EE 396 e Eed 396 SE 396 Oupa Leed 397 EE eeben 397 Eet 397 E 397 SVC E 397 23 2 9 ProjectItem Enterprise or Professional Edition ccccccceeeeeeeeeeeeeeees 399 Eeer 200 EE E 400 ee 400 E 400 COGEGCHSCHINOS TAH CUGCG arie E E E 400 CodeGenSettings_OutputFolder cn taw Sicsssarecbensaovecessarenben dan Ssesasaoeabentnorecsssaseibess 401 erte erreneren deene eer 401 EE 401 EE 401 ChEGICM GD PIF OVP 1OY CCL ee Ee EEN 402 Conard e Od EE 402 Conr eC O E 402 Generate odel EE 403 Conero od T eE EA 403 DO ee 403 B e E A EN E EA E E 403 NONO moror erer 404 ODE eege 404 Por E 404 EE 404 EE 405 EE EE 405 DAD OM eebe 406 23 3 1 ENUM CodeGenErrorLevel E 407 Altova MapForce User Manual 24 24 1 24 2 24 3 23 3 2 ENUMDOMT 96 o cccsecssessecssssessecsuessessessucsuessessucssessessussuessessessuesseeseeaseeses 408 233 ECH E TE Ke 409 23 3 4 ENUMProgrammingLanguage eeeeessssssesosoeeerrressessssssssssseeeeerereressssssssssses 410 23 3 9 ENUMProjectitem Type cscicansncessonstatsceasusiesussnasaceannetseerbbassdeestaiusesnareiceateaheee 411 E E e ENUMP O d KE 412 23 3 ENUMViewMode EE 413 MapForceControl 416 Integration at the Application Level ccccccccccccccccccceeeeessseeseeeeeeeeeeeeeeeeeaaaaaeeneeees 417 DA Ned Example CN E BE 418 Instantiate the Control 418 Add Button to Open Default Document 418 Add BUGIS Jor
69. Ka Lee Del We desch d k Va Ei Ke DS Altova 7 PrimaryKey ka A B y Altova de TOW oe Y Primarykey a be Ke Im H emm ka Leer J bal ON E Department de ZA row gE Department 4 Primarykey ePrimaryKey l m Foreignkey Ki E rg Prg d DW Ke Ke Ke Lk ch OI e Please note that the above example DB_Altova_SQLXML mfd does not preserve the table relationships as mappings are created from several different root tables Altova MapForce User Manual 2006 Altova GmbH MapForce How To Mappings and root element of target documents 83 6 2 Mappings and root element of target documents Root element of target XML files When creating a mapping to the root element of the target Schema XML file please make sure that only one element or record is passed on to the target XML as an XML document may only have one root element Use the filter component to limit the mapped data to a single element or record e Inthe example below the ForeignKey is checked to see if it is 1 and only then is one Altova element passed on to the target root element e f no mappings exist from any of the source items to the target root element then the root element of the target schema is inserted automatically Altova Hierarchical fy equal E A Es P ao Altova ES i leng e 4 PrimaryKey EI 3 Office 3 PrimarypKey 4 ForeignKey
70. Manual 2006 Altova GmbH MapForce overview Validating mappings and mapping output 23 Partially connected components can generate two types of warning e If a function component input icon is unconnected an error message is generated and the transformation is halted e If the function output icon is unconnected then a warning is generated and the transformation process continues The offending component and its data are ignored and are not mapped to the target document Validating mapped OUTPUT Clicking the Output tab uses the MapForce XSLT 1 0 2 0 or XQuery engine to transform the data and produce a result in a Text view If the data is mapped to an XML Schema then the resulting XML document can be validated against the underlying schema e Click the Validate button EN to validate the document against the schema A Output XML document is valid message or a message detailing any errors appears 2006 Altova GmbH Altova MapForce User Manual 24 MapForce overview XSLT Output tab generating XSLT or program code 2 7 XSLT Output tab generating XSLT or program code The XSLT XSLT2 XQuery and Output tabs of the Mapping tab group supply a preview of e the generated XSLT or XQuery code and e the resulting transformation produced by the MapForce engine Please note The result generated by the MapForce engine is an on the fly transformation of database Text without you having to generate or compile progra
71. MapForce plug in The extension point gives you access to the COM Interface of the MapForce control and the MapForceAPI Your MapForce Eclipse installation package contains a simple example of a plug in that uses this extension point It checks for any file open events of any new MapForce mappings and sets the zoom level of the mapping view to 70 Installing the Sample extension plug in MapForce plug in requires the JDT Java Development Tools plug in to be installed 1 Start Eclipse 2 Right click in Navigator or PackageExplorer and select the menu item Import 3 Select Existing projects into Workspace and click Next Select Create new projects From an archive file or directory This does nok copy the project into the workspace Select an import source E Archive File eel Checkout oe EU cys ET ae d External Plug ins and Fragments L File system 4 Click the Browse button next to the Select root directory field and choose the sample project directory e g C Program Files Altova MapForce2006 eclipse workspace MapForceExtension Import Projects Select a directory to search For existing Eclipse projects e Select root directory Browse Select archive file Browse 5 Click Finish A new project named MapForceExtension has been created in your workspace Accessing javadoc for the extension point of MapForce plug in 1 Open the index html in the docs folder of the plugin installat
72. MapForceControl Object Reference 24 5 6 Enumerations The following enumerations are defined TCActivexiIntegrationLevel MapForceControlPlaceholderWindow ICActiveXIntegrationLevel Possible values for the IntegrationLevel property of the MapForceControl TCActiveXIntegrationOnApplicationLevel TCActiveXIntegrationOnDocumentLevel 1 MapForceControlPlaceholderWindow This enumeration contains the list of the supported additional MapForce windows MapForceXNowindow l MapForceXLibraryWindow MapForcexXOverviewWindow MapForcexXValidationWindow MapForceXProjectWindow CONF CH Altova MapForce User Manual 2006 Altova GmbH Chapter 25 Appendices 472 Appendices 25 Appendices These appendices contain technical information about MapForce and important licensing information Each appendix contains sub sections as given below Technical Data OS and memory requirements Altova XML Parser Altova XSLT and XQuery Engines Unicode support Internet usage License metering License Information e Electronic software distribution e Copyrights e End User License Agreement Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 473 25 1 Engine information This section contains information about implementation specific features of the Altova XML Validator Altova XSLT 1 0 Engine Altova XSLT 2 0 Engine and Altova XQuery Engine 2006 Altova GmbH Altova MapForce U
73. MapForceControl in HTML code e Implement buttons to load documents and automate code generation tasks e Define actions for some application events The code for this example is available at the following location in your MapForce installation MapForceExamples ActiveX HTML MapForceActiveX_ApplicationLevel htm Instantiate the Control The HTML object tag is used to create an instance of the MapForceControl The Classid is that of MapForceControl Width and height specify the window size No additional parameters are necessary since application level is the default lt OBJECT id objMapForceControl Classid clsi1dad A3863789 5759 4456 Al6 FOULLE0CC2Z2C1 width 800 height 500 VIEWASTEXT gt lt OBJECT gt Add Button to Open Default Document As a simple example of how to automate some tasks we add a button to the page lt input type button value Open Marketing Expenses onclick BtnOpenMEFile gt When clicked a predefined document will be opened in the MapForceControl We use a method to locate the file relative to the MapForceControl so the example can run on different installations lt SCRIPT ID Javahandlers LANGUAGE javascript gt open a pre defined document function BtnOpenMEF ile var pos objMapForceControl BaseHref indexOf ActiveX if pos gt 7 path objMapForceControl BaseHref substr 7 pos 7 remove file protocol objMapForceControl Open path MarketingExpenses
74. Menu eege 445 Altova MapForce User Manual 24 3 7 Function Menu BE 446 24 38 Outp t Menu sssrossisrisinosssrisresii ten ceascanasascencncanecaanuauaceocaanectansesn iaeiei 447 2A VIEW Meni EE 448 AO TOON T EE EE E O EEA E O E 449 DA eld WON ME rE n E A E A E ANT 450 SE TO ER eene 451 24 3 13 Commands not in Main Menu ccc ecsscecccccccceeeeeeeeeeeeeeeeeenaneeeeeeeeeeeeeeees 452 24 4 Accessing MapForce API 4 c cccsscvcadsocenestitsanesasonnendqethesenetocnendbebheretasonsensgeenevenasatnentuetnets 453 DAS e TN 454 24 5 1 MapForceCommand ccccccsssssssssssseeeecccceceeeeeeeeaaaaaessseeeseeeeeeeeeeseeeeeaaas 455 CS WE 455 Label eege 455 E E E TA A E E E T 455 Ee 455 24 5 2 MapForceCommands soeeeeeeeeeesssssssssssssseseeterresssssssssssssseecereeressssssssssssees 456 COPE EE 456 lemi eege 456 2433 Map orce onto EE 457 EE 457 Appearance tere Eeer 457 Application Reeg 458 BorderStyle SE 458 COTES EC GE 458 CommandsStructure deprecated e E EE 458 EnableUserPrompts EE 459 IntegrationLevel eessen eege 459 I ty Wa D 459 ReadOnly ba eebe EE ee 459 Kailer 460 MOI eege 460 Ee E E P EA E E E TE EE 460 Open Seelen tee E EEE E EE 460 QueryStatus EEN 460 T 461 OnDocumentOpened ee 461 OnCloseEditin gWindow E E A E A EE 461 OnProj ectOpened E E Gob re ARE EE E E E E E N EE E EE 461 OnUpdateCmdUI SE 462 24 5 4 MapForceControlDocument eeeeeeesessssesseeeeeeeenssessssssssssseseereere
75. Properties C C Language 3 Select All Configurations 4 Change Treat wchar_t as Built in Type to No Zc wchar_t C The generated C code uses the NET XML classes System Xml and can be used from any NET capable programming language e g VB NET Managed C J or any of the several languages that target the NET platform Project files can be generated for Visual Studio NET 2003 2005 and Borland C Builder Java The generated Java output is written against the industry standard Java API for XML Parsing JAXP and includes a JBuilder project file and an ANT build file Generated output in MapForce Generated output Location MapForce Standard libraries Altova folder EN Schema wrapper libraries Schema name folder DN Database wrapper libraries Database name folder T EN Application Mapping application complete app T Compiling and executing performs the defined mapping v Mapping application can nowextended by user or be N imported into own application 2006 Altova GmbH Altova MapForce User Manual 306 Code Generator Introduction to code generator Code generator templates Output code is completely customizable via a simple yet powerful template language which gives full control in mapping XML Schema built in data types to the primitive datatypes of a particular programming language lt allows you to easily replace the underlying parsing and validating engine customize code according to your c
76. Record ype OrderNord 11 lt 0rderho Total Vveight 332 1 Totalveight lt TotalUnitCost 22537 7 TotallnitCost Currency lt Shipping details Container ship Shipping details lt Detail i lt RecordTypesD RecordT ype gt lt QrderNord 11 lt Orderho lt Productho 4 1579 227 Productho gt o lt UnitvVeight 10 Unityveight o lt Unitho gt 3 lt Unitho sUnitCost 400 lt UnitCost lt Unit descristion Microtome Unit descriptian gt Detail i lt Detail gt f sRecordType Ds Recordtype OrderNo d 11 lt 0rderho gt lt ProductNo B 152 427 Productho i lt Unitvveight Unityveight i lt Unitho 6 Unitho i eUnitCost 1 200 lt UnitCost lt Unit descristion Miscellaneous Unit description Deia Header 2006 Altova GmbH Altova MapForce User Manual 172 MapForce CSV and Text files Creating hierarchies from CSV and fixed length text files The second example uses a slightly different CSV file and is available in the MapForceExamples Tutorial folder as Head detail inline mfd however No record designator H or D is available A common skey field the first field of the CSV file still exists for both header and detail records Head key Detail key The field is mapped to OrderNo in the schema target Header and all respective Detail fields are all on the same line Please note The key fields are mapped to the respective OrderNo items in the sc
77. To do this you need to do the following Install Microsoft Visual Studio NET e Install MapForce Enterprise or Professional Edition Download and run the MapForce Visual Studio NET Edition integration for Microsoft Visual Studio NET package This package is available on the MapForce Enterprise and Professional Editions download page at www altova com Please note You must use the integration package corresponding to your MapForce edition Enterprise or Professional iy Libraries QuotationsDoc mfd CompletePo nfd MFD File1 mfd HE Core e3 conversion functions boolean E Quotations number Ca Quotations of famo gt A People gt amg E Y Person logical functions Li FirstName s string LastName xs string equal 8 5 Hg ear fi string equal or greater i l 4 Quotation 2 string Side xogo Mani savas e equal or less greater less a fi concat logical and 7 alue EI logical not g alue El result logical or P not equal values E E yt Is Add Libraries Mapping Output Messages SE a CompletePO mid Mapping validation successful D errorfs 0 warning s Once the integration package has been installed you will be able to use MapForce in the Visual Studio NET environment Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for MS Visual Studio NET Opening MapForce files in MS VS NET 255 19 1 Opening MapForce files in MS V
78. XPath 2 0 functions see the section XPath 2 0 and XQuery 1 0 Functions General Information The Altova XSLT 2 0 Engine conforms to the World Wide Web Consortium s W3C s XSLT 2 0 Candidate Recommendation of 8 June 2006 Note the following general information about the engine Backwards Compatibility The Altova XSLT 2 0 Engine is not backwards compatible Depending on the Altova product you are using the following options are available e f you wish to run an XSLT 1 0 transformation using AltovaXML then you should use the Altova XSLT 1 0 Engine of this package e lf you are running an XSLT transformation or carrying out an action involving an XSLT transformation within the XMLSpy StyleVision Authentic or MapForce products the correct built in Altova XSLT Engine 1 0 or 2 0 is automatically selected by the application This selection is based on the value of the version attribute of the stylesheet Or transform element of the stylesheet Namespaces Your XSLT 2 0 stylesheet should declare the following namespaces in order for you to be able to use the type constructors and functions available in XSLT 2 0 The prefixes given below are conventionally used you could use alternative prefixes if you wish XML Schema types http www w3 org 2001 XMLSchema XPath 2 0 functions http www w3 org 2005 xpath functions Typically these namespaces will be declared on the xsl stylesheet Of xsl transform element as shown in the following li
79. and browse to the installation folder of your MapForce Eclipse plug in e g C Program Files Altova MapForce2006 eclipse Follow the instructions to access a previously installed plug in Clicking a plug in or folder icon displays various installation options in the right hand pane SS Product Configuration KE Ioj x File Lale 2 ae LL Eclipse SDK Co cleclipses1 ER Eclipse EEN Se MapForce 2006 Enterprise Professional Home Edition DS GC Program Files 4ltova MapForcez006 eclipse Editions for Eclipse 3 0 3 1 version 1 0 0 More info Se MapForce Plugin 1 0 0 MapForce Plugin 1 0 0 Available Tasks Disable You can enable or disable the Functionality of a feature The Feature is not removed by this action Show Properties View properties of the Feature such as version provider name license agreement etc MapForce Plugin 1 0 0 1 Click the Show Properties link displays the specific plug in information Copyright General information etc Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse Installing MapForce plugin 263 To check the currently installed version 1 Select the menu option Help About Eclipse SDK about Eclipse SDK S xi Eclipse SDE Version 3 1 2 Build id M20060118 1600 cl Copyright Eclipse contributors and others 2000 2005 All rights reserved visit Ft ie eclipse org platform This product includes software developed by th
80. another This object is a complete ActiveX control CLSID DFBBOS71 DAFE 4502 BB66 0S8CEB DF5255 ProgID Altova MapForceControlDocument Properties The following properties are defined ReadOnly IsModified ZoomLevel Path Appearance Borderstyle Access to MapForceAPI Document Appearance Property Appearance as short Dispatch Id 520 Description A value not equal to 0 displays a client edge around the document control Default value is 0 BorderStyle Property BorderStyle as short Dispatch Id 504 2006 Altova GmbH Altova MapForce User Manual 464 MapForceControl Object Reference Description A value of 1 displays the control with a thin border Default value is 0 Document Property Document as Document Dispatch Id 3 Description The Document property gives access to the Document object of the MapForce automation server API This interface provides additional functionalities which can be used with the document loaded in the control The property is read only IsModified Property 1sModified as boolean read only Dispatch Id 1006 Description IsModified Is true if the document content has changed since the last open reload or save operation It is false otherwise Path Property Path as string Dispatch Id 1005 Description Sets or gets the full path name of the document loaded into the control ReadOnly Property ReadOnly as boolean Dispatch Id 100
81. as the XML instance file 3 Click the expense report entry hit the key on the numeric keypad to view all items and resize the component if necessary For the sake of clarity the new component has been placed between the two existing ones in the following graphics d ke Lp 3 m CashAdvance b E Employee 2 a Y Title i Mame a Tel i Email sret Y DomesticD at 3 seve Y ForeignDailyRa cette Expense detail A Y expense item mi OC m C Meal m Lodging Ha i Travel P feeen means L Ka H rof E sp epart E expense report detailed oe currency de tY Person First eg Last Y Title 3 Phone oo Email we d AN Basch Bes Besch I LA LA T p DW ka en Tray cost ae Y Destination ow Y Mileage fo Y Parking E Entertainment p 3 Misc ac Y description ar SZ ee Ka Ki I LI LI Li DW Ke e Den Bes Bess H I ELJ KE I ut Li LI LI LA Kl DW Leem Ecg E P e Currency l gt Date a Travel l Travel Cost iol baal awe L Bes es es Bes a I LA LI LI LI Li d Y expense item ae type 3 See expto Bes Bess I LI U e ka DW I U e Lem Bes es Bess i LA LI Li 1 E Bes Bes ess nt F I L I LI LA L ia al Y Destination SE Y Car Rental ow Air Travel 2 he d Misc Travel T
82. countries of the World Wide Web Consortium W3C marks of the W3C are registered and held by its host institutions MIT INRIA and Keio Except as expressly stated above this Software License Agreement does not grant you any intellectual property rights in the Software Notifications of claimed copyright infringement should be sent to Altova s copyright agent as further provided on the Altova Web Site LIMITED TRANSFER RIGHTS Notwithstanding the foregoing you may transfer all your rights to use the Software to another person or legal entity provided that a you also transfer each of this Software License Agreement the Software and all other software or hardware bundled or pre installed with the Software including all copies updates and prior versions and all copies of font software converted into other formats to such person or entity b you retain no copies including 2006 Altova GmbH Altova MapForce User Manual 500 Appendices License Information backups and copies stored on a computer c the receiving party secures a personalized key code from Altova and d the receiving party accepts the terms and conditions of this Software License Agreement and any other terms and conditions upon which you legally purchased a license to the Software Notwithstanding the foregoing you may not transfer education pre release or not for resale copies of the Software 4 PRE RELEASE AND EVALUATION PRODUCT ADDITIONAL TERMS If the pro
83. creation of the C delegate is done for you by the C Framework All you need to do is to fill the empty event handler The handler implementation turns off any file reloading and displays a message box to inform the user that a file loaded by the MapForceControl has been changed from outside private void axMapForceControl_OnFileExternalChange object sender 2006 Altova GmbH Altova MapForce User Manual 432 MapForceControl Integration at Document Level AxMapForceControlLib _DMapForceControlEvents_OnFileExternalChangeEvent ei MessageBox Show Attention The file e strPath has been changed from outside nbut reloading is turned off in the sample application This turns off any file reloading e varRet false Testing the Example After adding the assemblies to the Toolbox see Introduction you can run the sample project with F5 without the need to change anything in the code The main MDI Frame window is created together with a floating Toolwindow containing the Overview window of MapForce The application looks something like the screenshot below aL MapForceControl File Edit Insert Component Connection Function Output View Tools Help Window core a3 logical functions equal equal or greater equal orless greater less logical and logical rat logical or rot equal ei math functions add ceiling divide floor modulus multiply round subtract e node test functions exists h
84. el altova Se Address Se Altova Department Office Person The database component appears in the mapping window You can now create mappings to a target schema XML document 2006 Altova GmbH Altova MapForce User Manual 60 MapForce tutorial Database to schema mapping 3 8 1 Mapping database data Inserting the target schema document 1 Click the Insert XML Schema File icon and select the MFCompany xsd schema 2 Click No when the prompt for a sample XML file appears 3 Select Company as the root element and expand all items You are now ready to map the database data to a schema XML document j mE Address j JE 4 Company e HE Altova e E 7 Address ke Department E i E Ki Jf DW i LV 3 EX eet Hi a UD a gt Office G Person G E CR S Ve Ki 3 2 d d d i Bes es Bess I LA LI Li E Y Person Se Manager ka RK A Ki srn Programmer ke Ki Bebe Degree N First Bes ess es Besse i LA LI LI Li P RK Li ow Title oo PhoneE xt Ecg Ka Ki i Ke Ki Besse LA Li DW i Y Email gt fe Le Mapping database data to a schema document in MapForce Activate the Auto connect child items icon If not already active 2 Click the Person table item in the database component and connect it to the Person item in MFCompany This creates connectors for all item
85. falsell E ExpReport T arget Preview Lo a el 4 Company Foot element d 4 Employee l i 4 Title i C3Name of Email 7 DomesticD ailyR ate l l rete _ ForeignD e Y Expense detail i expense item d Currency ze Bill to T E ae Date Travel e Travel Cost 4 Destination 4 Car Rental tend Air Travel R om Misc Travel a Accommodation a DomesticAcc I i b DomesticAcc Cost 2006 Altova GmbH Altova MapForce User Manual 46 MapForce tutorial Multiple target schemas documents 3 6 1 Viewing and generating multiple target schema output Clicking the Preview icon lets you select which of the schema targets you want to preview To view specific XSLT output 1 Click the Preview icon in the title bar of the second schema component to make it active E ExpReport T arget Preview G STEE Preview J E Company y gt El Company E Employee L Wes E Employee F Title gt s JI Y Title i ae 7 Name A i a Hame KR i LB on Email 2 Click the Output tab of the Mapping tab group lt xml versionea 1 0 encading LITF 8 gt lt Company xmn xsi http Aha ws org 2001 SSMLSchema instance xsi schema Employee lt Tithe Project Manager Tithe gt lt Mame Fred Landis Mame lt Tel 123 456 78 Tel Email landisienanonull com Email sexpense item Currency USD Bill to Sales gt sDate 2003 0
86. for the MapForceControl MapForceControl Document and MapForceControlPlaceHolder Consider using MapForceControl Application MapForceControlDocument Document and MapForceControlPlaceHolder Project for more complex access to MapForce functionality However to open a document always use MapForceControlDocument OpenDocument or MapForceControlDocument NewDocument on the appropriate document control To open a project always use MapForceControlPlaceHolder OpenProject on a placeholder control embedding a MapForce project window See Examples on how to instantiate and access the necessary controls in different programming environments 2006 Altova GmbH Altova MapForce User Manual 422 MapForceControl Integration at Document Level 24 2 1 Use MapForceControl To integrate at document level instantiate a MapForceControl first Set the property InteqrationLevel to ICActivexXIntegrationOnDocumentLevel 1 Set the window size of the embedding window to 0x0 to hide any user interface behind the control You may use Appearance and BorderStyle to configure the appearance of the control s wrapper window Avoid using the method Open since this might lead to unexpected results Use the corresponding open methods of MapForceControlDocument and MapForceControlPlaceHolder instead See Query MapForce Commands for a description of how to integrate MapForce commands into your application Send commands to MapForce via the method Exec Query if a comma
87. if GreetingType Value return new SchemaString Hello World return new SchemaString Hello User j 7 The last step is to compile the code The path where the compiled dll is located must match the reference setting in the implementation element How to write a C library Create the header and cpp files using the exact name at the same location you defined in the implementation element for the whole library Header file 1 Write using namespace altova 2 Add the namespace you specified in the implementation element 3 Add the class you specified in the implementation element of the mff with the functions you specified in the mff d Please remember to write ALTOVA_DECLSPECIFIER in front of the class name this ensures that your classes will compile correctly whether you use dynamic or static linkage in subsequent generated code 5 Remember to use only the schema simpleTypes as input parameters and return values defined in schematypes h of generated C code which start with CSchemaType The resulting header file should look like this ifndef HELLOWORLDLIBRARY_GREETINGS_H_ INCLUDED define HELLOWORLDLIBRARY_GREETINGS_H INCLUDED if MSC VER gt 1000 pragma once endif _MSC_VER gt 1000 using namespace altova namespace helloworldlibrary Altova MapForce User Manual 2006 Altova GmbH Adding custom libraries Writing your libraries 227 class ALTOVA_DECLSPECIFIER Gree
88. implicit timezone is taken from the CuLrenl tame system clock The timezone is always specified in the result e Anerror is raised only if no XML file is available at the specified location or if the file is not well formed The file is validated if a schema is available If the file is not valid the invalid file is loaded without schema information e n a well formed but invalid document that contains two or more elements having the same ID value the first element in document order is returned In SCope preri e Only default namespaces may be undeclared in the XML Xes document However even when a default namespace is undeclared on an element node the prefix for the default namespace which is the zero length string is returned for that node e See note on whitespace in the General Information section e The ASCII character set only is supported Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 485 normalize unic e Not supported ode e See note on whitespace in the General Information section c ntd Function Name notes resolve Ur1 e lf the second optional argument is omitted the URI to be resolved the first argument is resolved against the base URI from the static context which is the URI of the XSLT stylesheet or the base URI given in the prolog of the XQuery document e The relative URI the first argument is appended after the last in the path notation
89. is one continuous string with no carriage returns or line feeds All the files used in the following examples are available in the MapForceExamples Tutorial folder 1 Select the menu option Insert Text file or click the insert Text file icon el This opens the Text import export dialog box in which you can select the type of file and specific settings you want to work with 2 Click the Input file button and select the Altova FLF txt file You will notice that the file is made up of a single string and contains fill characters of type bd Text import export ee d E x Input Output File agram FilestAlkovas h apForce2U05 M apForceE samples T utoriahalkowa FLF bt i OF Output file Cancel Input fle encoding Ge itthe endian byte order lu Code UTF 8 S Se Big endian byte order CS Settings Field delimiter Text enclosed in e Fo Tab Semicolon Ze Comma Space f Custom de Hot f Ge H r Fixed IT First row contains field names Cinli eh Field string Yerno Calaby g Au callabyiinanonull comt Otice Managert REEERE rankeeee Uther 2 f futherna 3 Click the Fixed radio button below CSV 4 Uncheck the Assume record delimiters present check box Field string The preview changes at this point What we now have is a fixed format comprising of e a single field called Field1 e where the format is of type string and the e field length i
90. it will produce This is bold italic XSLT 2 0 elements and functions Limitations and implementation specific behavior of XSLT 2 0 elements and functions are listed in the section XSLT 2 0 Elements and Functions 2006 Altova GmbH Altova MapForce User Manual 478 Appendices Engine information XPath 2 0 functions Implementation specific behavior of XPath 2 0 functions is listed in the section XPath 2 0 and XQuery 1 0 Functions XSLT 2 0 Elements and Functions Limitations The xs1 preserve space and xsl1 strip space elements are not supported Implementation specific behavior Given below is a description of how the Altova XSLT 2 0 Engine handles implementation specific aspects of the behavior of certain XSLT 2 0 functions format date format dateTime formatTime Presentation modifiers and formatting tokens in the variable markers of the Picture argument are not supported and if supplied are ignored The optional Language Calendar and Country arguments are not supported and if supplied are ignored Days and weeks are returned as numbers in the case of single digit numbers there is no preceding zero The component specifier F is returned as a number Weeks of the month are reckoned from Monday to Friday The component specifier Pp returns am or pm in English function available The function tests for the availability of XSLT 2 0 functions not for the availability of XPath 2 0 functions unparsed text The
91. items section in the tutorial for more information Database Table actions Allows you to define the table actions to be performed on the specific target database table Table actions are Insert Update and Delete please see Mapping data to databases for more information Database Key settings Allows you to define the Key settings of database fields please see Database Key settings for more information Cut Copy Paste Delete The standard MS Windows Edit commands allow you to cut copy etc any components or functions visible in the mapping window All connectors will be retained except for those which would have to be replaced Change Root element Allows you to change the root element of the XML instance document Useful in the target schema window as this limits or preselects the schema data Edit Schema definition in XMLSpy Starts XMLSpy and opens the schema file ready for you to edit Component Settings Opens the Component Settings dialog box Allows you to select the input and or output XML Instance as well as define database specific settings for code generation Please see Component Settings for more information on these settings 2006 Altova GmbH Altova MapForce User Manual 14 MapForce overview Functions and libraries 2 3 Functions and libraries The Libraries pane displays the available libraries for the currently selected programming language as well as the individual functions of each library Fun
92. lt SinglePrice 25 SinglePrice PoP lt Price 25 lt Price gt Po shrticles Altova MapForce User Manual 2006 Altova GmbH User defined functions User defined function example 211 10 5 User defined function example The PersonByListBranchOffice mfd file available in the MapForceExamples folder describes the following features in greater detail e Nested User defined functions e g LookupPerson e Look up functions that generate a string output e g LookupPerson e Optional input parameters which can also supply a default value e g the EqualAnd component contained in the LookupPerson component e Configurable input parameters which can also double as a command line parameter s when executing the generated mapping code He input 13 Ca eng Inc h detautt OfficeName 9 PersonList E BranchoOttices g H PersonList gt EEL e eier BO Fenon p pA result O LookupPerson Office Name result P HE First Name _ N I aii m role d DW DW DW DW DW DW l state Last Name E street Y zip de Contact won first 4 last Kg LI LI Li DW DW Ben Bes u Bes e emm e l u u Bess N I N I N I N I N I N I N I N I N I N I N I Kg Fc Fc it it DW DW 2006 Altova GmbH Altova MapForce User Manual 212 User defined functions User defined function example Configurab
93. manual is available at www altova com i in HTML format for online browsing and ii in PDF format for download and to print if you prefer to have the documentation on paper 30 day evaluation period After downloading this product you can evaluate it for a period of up to 30 days free of charge About 20 days into this evaluation period the software will start to remind you that it has not yet been licensed The reminder message will be displayed once each time you start the application If you would like to continue using the program after the 30 day evaluation period you have to purchase an End User License Agreement which is delivered in the form of a key code that you enter into the Registration dialog to unlock the product You can purchase your license at the online shop at the Altova website Distributing the product If you wish to share the product with others please make sure that you distribute only the installation program which is a convenient package that will install the application together with all sample files and the onscreen help Any person that receives the product from you is also automatically entitled to a 30 day evaluation period After the expiration of this period any other user must also purchase a license in order to be able to continue using the product For further details please refer to the End User License Agreement at the end of this section Altova MapForce User Manual 2006 Altova GmbH Appen
94. mapping between the Office items Deactivate the Auto complete child items function by clicking the icon before doing this if it is active Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Using MapForce to create database relationships 153 LS CSS Altova ee Zeng l Pnode row on trueth T ebool for falsel a L equal Department gt m PrimaryKkey gt m ForeignKey a rezulti Office The mapping now defines e for each Office element output the office name and then all departments in that office CH versian 1 0 encoding UTF 0 gt lt 4ltove xmins xsis htt ave ww orai 200 DM Schema instance gt sOfflCes chMemezhenorOl Inc lt hame gt lt Department fo sName gt Administration Mame gt lt Name Marketing Mame lt Name Engineering Mame lt NameslT amp amp Technical Support Mame aDepartment CD d OO On D hi A el IfTTIC s sOTTiCe lt Name Nanonull Partners Inc Name Department l chlame Administrations Mame s NamesMarketings Mame Name lT amp amp Technical Support Mame Department sfOTtice gt lt A itova 2006 Altova GmbH Altova MapForce User Manual 154 MapForce and Databases Mapping large databases with MapForce Tf Mapping large databases with MapForce When using large databases in mappings MapForce creates all database relations between the imported tables of the whole database This is
95. name is empty Invalid address for the return parameter was specified 1705 Mapping could not be assigned to project The file does not exist or is not a MapForce mapping Maybe the file is already assigned to the target folder Application Property Application aS Application read only Description Retrieves the top level application object Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified Close Method close Description Closes the project without saving Errors 1500 The object is no longer valid Count Property count aS Integer read only Description Retrieves number of children of the project s root item Errors 1500 The object is no longer valid Examples See ItemOr NewEnunm 2006 Altova GmbH Altova MapForce User Manual 394 The MapForce API Object Reference CreateFolder Method createFolder i_strFolderName aS String aS ProjectItem Description Creates a new folder as a child of the project s root item Errors 1500 The object is no longer valid 1501 Invalid folder name or invalid address for the return parameter was specified FullName Property FullName as String read only Description Path and name of the project file Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified GenerateCode Method GenerateCode Description Generates code for all project
96. null Var Ob jFSO null adapt the following path to your needs var strSamplePath C Program Files Altova MapForce2006 MapForceExamples EP LULAT AAAA AA Belpera J PPE ai Teer PEE EEE A function Exit strErrorText WScript Echo strErrorText WSceript 0u uit 1 function ERROR strText objErr if objErr null Exit BRROR ob7Frr number amp Datt TT EELER ENER T T Spr Text else Exit ERROR strText function CreateGlobalObjects the Shell and FileSystemObject of the windows scripting host often always useful try objWshShell WScript CreateObject WScript Shell objFSO WScript CreateObject Scripting FileSystemObject catch err Exit Can t create WScript Shell object create the MapForce connection if there is a running instance of MapForce that never had a connection use it otherwise we automatically create a new instance try objMapForce WScript GetObject MapForce Application catch err 2006 Altova GmbH Altova MapForce User Manual 358 The MapForce API Overview Exit Can t access or create MapForce Application EE print project tree items and their properties recursively EE function PrintProjectTree objProjectItemIter strTab while objProjectItemIter atEnd get current project item objItem objProjectItemIter item try
97. object model Application Parent Open and create mappings OpenDocument NewDocument lterating through the collection Count Item ActiveDocument Application Property Application aS Application read only Description Retrieves the application s top level object Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified Parent Property Parent aS Application read only Description Retrieves the application s top level object Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified Count Property count aS Integer read only Description Retrieves the number of documents in the collection Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified Item Property Item nIndex aS Integer aS Document read only Description Retrieves the document at nIndex from the collection Indices start with 1 Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 381 Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified NewDocument Method NewDocument aS Document Description Creates a new document adds it to the end of the collection and makes it the active document Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specif
98. of this Software License Agreement as well as the Altova Privacy Policy Privacy Policy including without limitation the warranty disclaimers limitation of liability data use and termination provisions below whether or not you decide to purchase the Software You agree that this agreement is enforceable like any written agreement negotiated and signed by you If you do not agree you are not licensed to use the Software and you must destroy any downloaded copies of the Software in your possession or control Please go to our Web site at http www altova com eula to download and print a copy of this Software License Agreement for your files and http www altova com privacy to review the privacy policy L SOFTWARE LICENSE a License Grant Upon your acceptance of this Software License Agreement Altova grants you a non exclusive non transferable except as provided below limited license to install and use a copy of the Software on your compatible computer up to the Permitted Number of computers The Permitted Number of computers shall be delineated at such time as you elect to purchase the Software During the evaluation period hereinafter defined only a single user may install and use the software on one computer If you have licensed the Software as part of a suite of Altova software products collectively the Suite and have not installed each product individually then the Software License Agreement governs your use of all of the sof
99. of result Example conversion of a xs string Hello to xs decimal MapForce 2006 Versions up to and including SP1 Hello or NaN when passed to a function dealing with number XSLT2 error invalid lexical value Xquery error invalid lexical value Ot BUILTIN engine C app 0 error values not convertable error values not convertable MapForce 2006 SP2 Hello or NaN when passed to a function dealing with number XSLT2 error invalid lexical value Xquery error invalid lexical value Preview with error string value Hello could not be converted to BUILTIN engine decimal C app error values not convertable C app error values not convertable Java app error values not convertable If type conversion errors occur check that the types have been handled correctly E g use the lang numeric function to check if the source value may be converted into a number and then an if else component to pass a different value in case it fails e g a constant containing 1 on the value false parameter Altova MapForce User Manual 2006 Altova GmbH Chapter 17 MapForce Exceptions 246 MapForce Exceptions 17 MapForce Exceptions MapForce provides support for the definition of exceptions You can define the condition that will throw an error When the condition is satisfied a user defined message appears and the mapping process is stopped The ExpenseLimit m
100. of the base URI notation e If the value of the first argument is the zero length string the base URI from the static context is returned and this URI includes the file name of the document from which the base URI of the static context is derived e g the XSLT or XML file static base ur e The base URI from the static context is the base URI of the 1 XSLT stylesheet or the base URI specified in the prolog of the XQuery document e When using XPath Evaluator in the XMLSpy IDE the base URI from the static context is the URI of the active XML document e The ASCII character set only is supported 2006 Altova GmbH Altova MapForce User Manual 486 Appendices Technical Data 25 2 Technical Data This section contains useful background information on the technical aspects of your software It is organized into the following sections OS and Memory Requirements Altova XML Parser Altova XSLT and XQuery Engines Unicode Support Internet Usage Altova MapForce User Manual 2006 Altova GmbH Appendices Technical Data 487 25 2 1 OS and Memory Requirements Operating System This software application is a 32 bit Windows application that runs on Windows NT 4 0 Windows 2000 and Windows XP Memory Since the software is written in C it does not require the overhead of a Java Runtime Environment and typically requires less memory than comparable Java based applications However each document is loaded fully into me
101. of the project item Availability of some properties and the applicability of certain methods is restricted to specific kinds of project items The description of all methods and properties contains information about these restrictions Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified Name Property Name aS String Description Retrieves or sets the name of a project item The name of most items is read only Exceptions are user created folders the names of which can be altered after creation Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1702 Project item does not allow to alter its name Open Method open as Document Description Opens the project item as a document or makes the corresponding document the active one if itis already open The project item must be a MapForce mapping or for Enterprise edition only Web service operation Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1702 The project item does not refer to a MapForce mapping file 1708 Operation not supported in current edition Parent Property Parent as Project read only Description Retrieves the project that this item is a child of Has the same effect as Application ActiveProject Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was sp
102. or warnings are displayed in the MapForce Messages tab To manually build mapping code for multiple mappings combined into a MapForce project 1 Open or select the MapForce project file 2 Select the root node or any other node in the project document 3 Select Generate Code or Generate Code in from the right mouse button menu The target folder for the generated code is determined by the properties of the selected node or properties of its parents 4 Any errors or warnings are displayed in the MapForce Messages tab 2006 Altova GmbH Altova MapForce User Manual 272 MapForce plug in for Eclipse MapForce code generation 20 6 2 Using MapForce Eclipse projects for automatic build The MapForce plug in has a built in project builder This builder can be identified by the project nature ID com altova mapforceeclipseplugin MapForceNature MapForce Eclipse projects have this nature automatically assigned To use the MapForce project builder in other Eclipse projects see Adding MapForce nature to existing Eclipse Project for more information To create a new MapForce Eclipse Project 1 Click the Navigator tab to make it active 2 Right click in the Navigator window and select New Project 3 Expand the MapForce Eclipse Project entry and select MapForce Eclipse then click Next New Project Select a wizard Wizards DG CHE DL Java pForce Eclipse Projec om Simple 27 Project 4 Enter t
103. settings mapping mixed content Connection Settings x Connection Type Target Driven Standard Copy all Copy child items Ce Source Driven Mixed content MW Map Text content Map Processing Instructions Map Comments Map CDATA sections Annotation Settings Descriptors mixed Starting Location C Source Connection Ce Midpoint Target Connection Alignment Position Horizontal C Vertical Above Line C Below Line Ce Sloped Target Driven Standard Changes the connector type to Standard mapping please see Source driven mixed content vs standard mapping for more information Source Driven mixed content Changes the connector type to source driven mixed content and enables the selection of additional elements to be mapped The additional elements have to be child items of the mapped item in the XML source file to be able to be mapped Annotation settings Individual connectors can be labeled for clarity Double click a connector and enter the name of the connector in the Description field This enables all the options in the Annotation Settings group 2 Use the remaining groups to define the position and alignment of the label Altova MapForce User Manual 2006 Altova GmbH Source driven mixed content mapping Mixed content example 71 4 2 Mixed content example The following example is available as
104. that the content contained in the Software infringes a copyright or violates an intellectual or proprietary right protected by United States or European Union law Claim but only to the extent the Claim arises directly out of the use of the Software and subject to the limitations set forth in Section 5 of this Agreement except as otherwise expressly provided You must notify Altova in writing of any Claim within ten 10 business days after you first receive notice of the Claim and you shall provide to Altova at no cost with such assistance and cooperation as Altova may reasonably request from time to time in connection with the defense of the Claim Altova shall have sole control over any Claim including without limitation the selection of counsel and the right to settle on your behalf on any terms Altova deems desirable in the sole exercise of its discretion You may at your sole cost retain separate counsel and participate in the defense or settlement negotiations Altova shall pay actual damages costs and attorney fees awarded against you or payable by you pursuant to a settlement agreement in connection with a Claim 2006 Altova GmbH Altova MapForce User Manual 502 Appendices License Information to the extent such direct damages and costs are not reimbursed to you by insurance or a third party to an aggregate maximum equal to the purchase price of the Software If the Software or its use becomes the subject of a Claim or its
105. the MapForce API is the Application object To create an instance of the Application object call CreateObject MapForce Application from VisualBasic or a similar function from your preferred development environment to create a COM object There is no need to create any other objects to use the complete MapForce API All other interfaces are accessed through other objects with the Application object as the starting point The application object consists of the following parts each indentation level indicates a child parent relationship with the level directly above Application Options Project Project Item Documents Document MapForceView ErrorMarkers ErrorMarker Once you have created an Application object you can start using the functionality of MapForce You will generally either open an existing Document create a new one or generate code for or from this document Altova MapForce User Manual 2006 Altova GmbH The MapForce API Overview 355 23 1 2 Example Code Generation See also Code Generation The following JScript example shows how to load an existing document and generate different kinds of mapping code for it e pogin EEN EEN Eege Generate Code for existing mapping works with Windows scripting host ff mire ae Nei per FUNC LL Hae See function Exit strErrorText WEE Reihen erter Test Web rk 1 3 function ERROR strText objErr if ob jEre null EXIE EBRRO
106. the XML target schema document Database Inserts a schema component with a database as the data source The database supplies the data for the schema component and displays it in a tree view Text file Inserts a flat file document i e CSV or a fixed length text file Both types of file be used as source and target components abe Constant Inserts a constant which is a function component that supplies fixed data to an input icon The data is entered into a dialog box when creating the component There is only one output icon on a constant function You can select the following types of data String Number and All other Filter Nodes Rows e Inserts a component that uses two input and output parameters node row and bool and on true on false If the Boolean is true then the value of the node row parameter is forwarded to the on true parameter If the Boolean is false then the complement value is passed on to the on false parameter Please see the tutorial example on how to use a filter oJ L t IF Else Condition A condition is a component which allows you to pass on different sets of data depending on the outcome of a preset condition The component header displays the text if else e The first input parameter is a bool which contains the data you are checking against e The value true input parameter supplies the data to be passed on as a result if the condition is true e The value false supplies the data to b
107. the program files 3 A message appears when the code generation was successful 4 Compile and execute the code using your specific compiler Please note A JBuilder project file and Ant build scripts are generated by MapForce to aid in compiling the Java code see the section on JDBC driver setup as well as the code generator section for more information To search for specific data in the Output tab e Select the menu option Edit Find or hit the CTRL F keyboard keys The Find dialog box allows you to specify the search options in great detail and also supports regular expressions Altova MapForce User Manual 2006 Altova GmbH Chapter 3 MapForce tutorial 26 MapForce tutorial MapForce tutorial Tutorial example In the tutorial a simple employee travel expense report will be mapped to a more complex company report Each employee fills in the fields of the personal report This report is mapped to the company report and routed to the Administration department Extra data now has to be entered in conjunction with the employee the result being a standardized company expense report Further formatting cost summation and conditional viewing options of the expense report are made possible by having the target XML document associated with StyleVision Power Stylesheet designed in StyleVision Aim of the tutorial To transform the personal expense report to a company expense travel report Selectively filter the so
108. the return parameter was specified GenerateCHashCode Method GenerateCHashCode Description Generate C code that will perform the mapping Uses the properties defined in Application Options to configure code generation Errors 1200 The application object is no longer valid Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 375 1201 Invalid address for the return parameter was specified 1205 Error during code generation See also Code Generation GenerateCppCode Method GenerateCppCode Description Generates C code that will perform the mapping Uses the properties defined in Application Options to configure code generation Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1205 Error during code generation See also Code Generation GenerateCodeEx Method GenerateCodeEx 1_nLanguage as ENUMProgrammingLanguage as BErrorMarkers Description Generates C code that will perform the mapping The parameter _ nLanguage specifies the target language The method returns an object that can be used to enumerate all messages created the code generator These are the same messages that get displayed in the Messages window of MapForce Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1205 Error during code generation See also Code Gener
109. the template The source code is then compiled into an exe file which can then be started The exe file then accesses the XML data described by the schema file SPL files have access to a wide variety of information that is collated from the source schemas Please note that an SPL file is not tied to a specific schema but allows access to all schemas Make sure you write your SPL files generically avoid structures etc which apply to specific schemas Creating a new file in spl create test cpp include stdafx h close This is very basic SPL file It creates a file named test cpp and places the include statement within it The close command completes the template Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 335 22 7 1 Code Blocks Code generator instructions are enclosed in square brackets T and T Multiple instructions can be included in a bracket pair additional instructions have to be separated by a new line or a colon Valid examples are x 0 x x 1 or x 0 x x 1 2006 Altova GmbH Altova MapForce User Manual 336 Code Generator The way to SPL Spy Programming Language 22 7 2 Comments Comments always begin with a character and terminate on the next line or at a block close character 1 Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language
110. to child data if the parent item is mapped 5 Use the Priority context to prioritize execution of unrelated items Avoid concatenating filter components Every filter component leads to a loop through the source data thus accessing the source n times When you concatenate two filters it loops n n times solution Use logical and components to combine the boolean expressions of two filter components The result is a single filter component looping only n times Connect the on true on false parameter of the filter component to target parent items Filter components work best when they are connected to parent items containing child items instead of individual items directly The filter boolean expression is therefore evaluated against the parent before looping through the child elements Using filters mapped from a database table will generate e SELECT FROM table WHERE lt expression gt if the parent item is mapped or SELECT FROM table and then evaluate for each row if child items are mapped Please note when connecting a filter from a source parent item its also necessary to connect the on true on false parameter to the parent target element If this cannot be done then do not apply this rule Connect the on false parameter to map the complement node set Connecting this parameter allows you quick access to the complement node set defined by the current mapping The same tips apply when using this parameter connect
111. types are identical or if the target type is xs anyType e if the source and target types are not identical and if the target type is not xs anyType the source data is transferred mapped to the respective target items of the same name and the same hierarchy level If the names of the target items differ then the target item is not created e Note that only the names of the child items but not their individual types are compared matched Currently Copy all connections are supported e between XML schema complex types and e between complex components XML schema database and complex user defined functions components containing the same corresponding complex parameters please see Complex output components defining for an example The example below shows these connectors using the MarketingAndDailyexpenses mfd file in the MapForceExamples folder 1 Right click the Person component and select Copy all from the context menu A prompt appears reminding you that the target connectors will be deleted F Person Y Phone age Y First i Y Email d expense item a 3 E mail E expense item a type LEa 7 bo on false gt E CA daily expenses E Person on First 7 oe 3 Last ow Title i Se Y Phone on Email C Marketing E expense item See expense oderoyy on true rar ea eee 2 Click OK if you want to create Copy all connectors
112. use is enjoined or if in the opinion of Altova s legal counsel the Software is likely to become the subject of a Claim Altova shall attempt to resolve the Claim by using commercially reasonable efforts to modify the Software or obtain a license to continue using the Software If in the opinion of Altova s legal counsel the Claim the injunction or potential Claim cannot be resolved through reasonable modification or licensing Altova at its own election may terminate this Software License Agreement without penalty and will refund to you on a pro rata basis any fees paid in advance by you to Altova THE FOREGOING CONSTITUTES ALTOVA S SOLE AND EXCLUSIVE LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT This indemnity does not apply to infringements that would not be such except for customer supplied elements 6 SUPPORT AND MAINTENANCE Altova offers multiple optional Support amp Maintenance Package s SMP for the version of Software product edition that you have licensed which you may elect to purchase in addition to your Software license The Support Period hereinafter defined covered by such SMP shall be delineated at such time as you elect to purchase a SMP Your rights with respect to support and maintenance as well as your upgrade eligibility depend on your decision to purchase SMP and the level of SMP that you have purchased a If you have not purchased SMP you will receive the Software AS IS and will not receive any maintenance re
113. value returned by the fn position fn last and fn count functions For any node selection that selects text nodes also boundary whitespace only text nodes would typically also be included in the selection However since the XML Infoset used by the Altova engines has boundary whitespace only text nodes stripped from it these nodes are not present in the XML Infoset As a result the size of the selection and the numbering of nodes in the selection will be different than that for a selection which included these text nodes The fn position fn last and fn count functions therefore could produce results that are different from those produced by some other processors A situation in which boundary whitespace only text nodes are evaluated as siblings of other elements arises most commonly when xsl apply templates is used to apply templates When the n position fn last and fn count functions are used in patterns with a name test for example para 3 whichis short for para position 3 boundary whitespace only nodes are irrelevant since only the named elements para in the above example are selected Note however that boundary whitespace only nodes are relevant in patterns that use the wildcard for example 10 Note If a boundary whitespace only text node is required in the output then insert the required whitespace within one of the two adjoining child elements For example the XML fragment lt para gt Thi
114. when the same number has been found The rest of the customer data is then passed on as Number FirstName LastName items are all connected to the corresponding items in the target schema Designating the b parameter of the equal function i e item Number as the priority context would cause MapForce to load the first Number into the b parameter Check against the CustomerNr in a if not equal Load the next Number into b check against a and lterate through every Number in the database while trying to find that number in ShortPO 2006 Altova GmbH Altova MapForce User Manual 88 MapForce How To Priority Context ShortPO E CompletePO gt a E ShortPO gt II CompletePO CustomerNr E ls a Customer E Lineltems p o ow Number E Y Lineltem b gt b FirstName ArticleMr e E LastName 3 Amount Le de Address 5 ow Street NW Lt LA LA KI 4 State E 4 Lineltems de 4 Lineltem if DIS Article SS d Y Article m Number ff filter nodeto org or falzel p gt it at 1 le NW Priority context and user defined functions If a user defined function has been defined of type inline the default setting then a priority context cannot be defined on one of the parameters of the user defined function The user defined function can of course contain other Standard user defined functions which have priority contexts set on their parame
115. window at right File system Import resources From the local File system ai H 4 MapForceExamples PES altova_Hierarchical_DB mfd Altova Hierarchical ml rep Altova Hierarchical xsd eed Altova_SOLYML xsd Kl i altova mdb altowa cmp xml Filter Types Select All Deselect All Into Folder MapForce Browse Options LI Oyerwrite existing resources without warning Create complete folder structure e Create selected folders only Back Netz Cancel 5 If not automatically supplied click the Browse button next to the Into folder text box to select the target folder then click Finish The selected folder structure and files will be copied into the Eclipse workspace 6 Double click a file in Navigator to open it Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse Creating new MapForce files mapping and project file 269 20 5 Creating new MapForce files mapping and project file To create a new MapForce mapping or project files e Click the New MapForce combo box and select the required option OBx O Q HHG pd tte Mapping E New MapForce Project File E Hew MapForce Project classpath project e New MapForce mapping creates a single mapping file e New MapForce Project File creates a MapForce project that can combine multiple mappings into one code generation unit You must select this option when you a
116. 1 01 lt iDates PoP lt Accommodation 2 ob DomesticAcc DomesticAcc Cost 1 21 2 PoP lt fAccommodation sfexpense tem sexpense item Currency USD Bill to Sales Dete 2003 03 03 lt Date leperee Zem s Employee lompany CO zl moh ew ha The XML output contains two records both billed to Sales the Domestic Accommodation cost of 121 2 and an Expense item record which only contains a date This record originates from the expense item Meal There is currently no mapping between meal costs and domestic accommodation costs and even if there were no cost would appear as the XML instance does not supply one Please note You can save this XML data by clicking the Save generated output icon while viewing the XML output in the preview window The resulting XML instance file can also be validated against the target schema by E clicking the validate button To generate XSLT 1 0 XSLT 2 0 code for multiple target schemas 1 2 3 Select the menu item File Generate code in XSLT 1 0 or XSLT 2 0 Select the folder you want to place the generated XSLT files and click OK A message appears showing that the generation was successful Navigate to the designated folder and you will find two XSLT files with the file names Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Multiple target schemas documents 47 MapToExpReport Target xslt and MapToExpReport Target2 xslt 4
117. 1 0 Engine supports modules that are stored in a single external XQuery file Such a module file must contain a module declaration in its prolog which associates a target namespace Here is an example module module namespace libns urn module library declare variable Slibns company Altova declare function libns webaddress http www altova com All functions and variables declared in the module belong to the namespace associated with the module The module is used by importing it into an XQuery file with the import module statement in the query prolog The import module statement only imports functions and variables declared directly in the library module file As follows import module namespace modlib urn module library at modulefilename xq it Smodlib company Altova then modlib webaddress else error No match found External functions External functions are not supported i e in those expressions using the external keyword as in declare function hoo Sparam as xs integer as xs string external Collations The default collation is the Unicode codepoint collation No other collation is currently supported Comparisons including the n max function are based on this collation Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 481 Character normalization No character normalization form is supported Precision of numeric types e The xs integer datat
118. 2 Description The Project property gives access to the Project object of the MapForce automation server API This interface provides additional functionalities which can be used with the project loaded into the control The property will return a valid project interface only if the placeholder window has PlaceholderWindowID with a value of MapForceXProjectWindow 3 The property is read only Methods The following method is defined OpenProjyect Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 469 OpenProject Method openProject strFileName as string as boolean Dispatch Id 3 Description OpenProject loads the file st rFileName as the new project into the control The method will fail if the placeholder window has a PlaceholderWindow1D different to MapForcexXProjectWindow 3 Events The MapForceControlPlaceholder ActiveX control provides following connection point events OnModifiedFlagqChanged OnModifiedFlagChanged Event OnModifiedFlagChanged i_bIsModified as boolean Dispatch Id 1 Description This event gets triggered only for placeholder controls with a PlaceholderWindowID of MapForceXProjectWindow 3 Th event is fired whenever the project content changes between modified and unmodified state The parameter _b sModifed is true if the project contents differs from the original content and false otherwise 2006 Altova GmbH Altova MapForce User Manual 470
119. 2 5525552525525 5 5 5 Saves the current file in the specified document control window function BtnSaverFitle ob jDocCtr if ob DocCtrl Path length gt 0 objDocCtrl SaveDocument else 1f strPath value length gt 0 ob 1 DecCtrl Path StrPacth value objDocCtrl SaveDocument alert Please set path for the document first strPath focus ob jDocCtrl setActive lt SCRIPT gt Create Event Handler to Update Button Status Availability of a command may vary with every mouseclick or keystroke The custom event OnUpdateCmduI of MapForceControl gives us an opportunity to update the enabled disabled state of buttons associated with MapForce commands The method MapForceControl QueryStatus IS used to query whether a command is enabled or not lt SCRIPT FOR objMapForceX event OnUpdateCmdUI LANGUAGE Jjavascript gt if document readyState complete complete update status of buttons GeneratexSLT disabled objDocl QueryStatus 13617 amp 0x02 not enabled GenerateJava disabled objDocl QueryStatus 13587 amp 0x02 not enabled GenerateCpp disabled l ob yDocl Ouerystatus 13509 amp Ux02 not enabled GenerateCSharp disabled not enabled objDocl QueryStatus 13588 amp 0x02 btnFuncUserDef disabled ob jDocl QueryStatus 13633 amp 0x02 btnFuncUserDefSel disabled objDocl QueryStatus 13634
120. 3 3 Using functions to map data The aim of this section is to combine two sets of data from the source schema and place the result in a single item in the target document Please note that some of the previously defined mappings are not shown in the following screen shots for the sake of clarity This will be done by e Using the Concat string function to combine the First and Last elements of the source schema e Using a Constant function to supply the space character needed to separate both items e Placing the result of this process into the Name item of the target schema Using functions to combine items 1 Click the concat entry of the string functions group in the Core library and drag it into the Mapping tab gt a E expense report d7 logical functions E detailed math functions a3 string functions concat result contains result hormalize spa result sharts with result sting length result substring result substring afte result substring befte result translate result i DW ke CUITency R E aaa 4 fai concat Se 4 Last Y Title i ei Y Phone Email 4 expense item oon Wpe bs od Ka bw De be DW be Ke Ke a dech Oe dech dech dech ch dech a sansin expto expense report e detailed iow CUtrenCH Y Person E f Tay concat l Y First K ic men Go i bvaluel Y Title vale 2 poeta tY Phone on Email e
121. 33 LibraryType lib new LibraryType BookType book new BookType book addISBN new SchemaString 0764549642 II book addTitle new SchemaString The XML Spy Handbook book addAuthor new SchemaString Altova lib addBook book LibraryDoc doc new LibraryDoc doc setRootElementName http www nanonull com LibrarySample Library J doc setSchemaLocation Library xsd optional doo savet baibraryl xmi Lab Code generated for XML schemas after V2005R3 The standard non parameter constructor is not used because it does not establish a reference to a DOM document A new document is created first which can then be referenced by the root node All new child nodes must then also be created in the correct document This is accomplished by using the generated factory functions called newXXX please see the example code below LibraryDoc doc new LibraryDoc doc setSchemaLocation Library xsd k optional create root element with no namespace prefix LibraryType lib new LibraryType doc http www nanonull com LibrarySample Library BookType book 1ib newBookType factory functions are generated for all members of a complex type book addISBN new SchemaString 0764549642 book addTitle new SchemaString The XML Spy Handbook book addAuthor new SchemaString Altova lib addBook book doc save Libraryl xml li
122. 5 sg dcnl version 1 0 encoding UTF 0 t slompany xmins ls http Mee ws org 00 SAMLSchema instance xsi schema lt Employees lt Tithe Project Manager Title gt lt Name Landis Mame Tel 123 456 78 lt Tel email landiccenanonull com Email sexpense item io Travel Travel Cost 337 88 svVexpense item sexpense itenm sexpense item Travel Travel Cost 1014 22 i svexpense item Sexpense tem fo eTravel Travel Cost 2000 gt l sfexpense tem i sexpense itemss JEmployee gt Employee gt lt Tithe Manager Tithe i Name Johnson Mame gt lt Tel 456 789 125 lt Tel Email j johnm nanonull cam Email sexpense iteme ff eTravel Travel Cost 150 44 t gt l sfexpense tem sexpense item l sexpense iteme fof eTravel Travel Cost 1020 s gt sfexpense tem sexpense item lt Travel Travel Cost 7 0 gt i sfexpense item JEmployee gt company gt CO d M oh P Ww ha The data of the second expense report has been added to the output file Johnson and his travel costs have been added to the expense items of Fred Landis in the company expense report To save the generated output to a file e Click the Save icon o which appears in the title bar when the Output tab is active The file mf ExpReport combined xml is available in the MapforceExamples Tutorial folder Please note that it has been assigned an SPS file which allows you to view the XML file i
123. 61 D Accounts gt Es Applications Groups pea Users Usel ui mGrouplD vu Username nyvarchar DU Login nvarchar 7 0 g Created datetime pe Groups i GrouplD vi mAppiD vu SE Ben Bes a H emm Del K LA K L ona K Vch bam S Ke Dem i 5 Applications eoAppID vu i LA Ke ke L LA V fa URL nvarchar UU m GroupName nvarchar 50 eoAppName ei m Description cert m Category nvarchar 0 Eas L substitute rull Edi Sat replace with Text file e a DL Rows r i SS User string H E Application string i T Category string fy yo Description sting E b fy substitute null field sph Ala Description The first function checks if a Category entry exists in the Applications table As one does not exist for the Notepad application Misc is mapped to the Category item of the Text file The second function checks if a Description entry exist and maps the string No description if one does not exist which is also the case with the Notepad application 2006 Altova GmbH Altova MapForce User Manual Chapter 8 MapForce CSV and Text files 164 MapForce CSV and Text files 8 MapForce CSV and Text files MapForce now includes support for the mapping of flat file formats i e CSV files and Text files as both source and target components Please note that you need to select one of the programming languages Java C
124. 7 Description Using this property you can turn on and off the read only mode of the document If ReadOnly is true It is not possible to do any modifications ZoomLevel Property ZoomLevel as long Dispatch Id 1002 Description The ZoomLevel property allows to set the Mapping view magnification in a range from 1 to 100 A ZoomLevel of 50 is the default and shows the view content at normal size Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 465 Methods The following methods are defined Document handling New Open Reload Save SaveAs OpenDocument deprecated NewDocument deprecated SaveDocument deprecated Command Handling Exec Ke E Et Exec Method amp xec nCmdID as long as boolean Dispatch Id 8 Description Exec Calls the MapForce command with the ID ncmd1Ip If the command can be executed the method returns true The client should call the Exec method of the document control if there is currently an active document available in the application See also CommandsStructure to get a list of all available commands and QueryStatus to retrieve the status of any command New Method New as boolean Dispatch Id 1000 Description This method initializes a new mapping inside the control NewDocument deprecated Method NewDocument as boolean deprecated Description The method resets the content of the MapForceControlDocument object to a
125. Account 8 Click into the Custom text box of the Fixed Length Field Settings group and enter the hash character This has the effect of removing the identical fill character from the text file being input Fired Length Field Settings Fill Character Space Period f Custom P Assume record delimiters present Tel Ext Email el string el string 3 25 Calaby 502 uCallabydenanonull Com Further 471 T furtherienanonull com GE e First 3 sale Se Last Sg Email SS Title 2006 Altova GmbH Altova MapForce User Manual 178 MapForce CSV and Text files Mapping Fixed Length Text files to a database The Text file component appears in the Mapping window Data can now be mapped to and from this component Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Fixed Length Text files to adatabase 179 Mapping text files to a database This section uses the fixed length text file to update the Telephone extension entries in the altova mdb database E Person Table Sees tat Phone gt ae Callaby Office Mane Frank Further 477 Accounts R 1 Select the menu option Insert Database click the Microsoft Access radio button then click Next 2 Select the altova mdb database available in the MapForceExamples Tutorial folder and click Next 3 Select the Person table by clicking the corresponding check box in the Database Tables list bo
126. Application level integration mode Toolbars Property Toolbars aS MapForceCommands read only Dispatch Id 1005 Description This property returns a list of all toolbar descriptions that describe all toolbars available with MapForceControl For more information see C Sample Methods The following methods are defined Open Exec UUervyotalus Exec Method amp xec nCmdID as long as boolean Dispatch Id 6 Description Exec Calls the MapForce command with the ID ncmdID If the command can be executed the method returns true See alSO CommandsStructure to get a list of all available commands and QueryStatus to retrieve the status of any command Open Method Open strFilePath as string as boolean Dispatch Id 5 Description The result of the method depends on the extension passed in the argument strFilePath If the file extension is mfd a new document is opened If the file extension is mfp the corresponding project is opened If a different file extension is passed into the method the control tries to load the file as a new component into the active document Do not use this method to load documents or projects when using the control in document level integration mode Instead use MapForceControlDocument OpenDocument and MapForceControlPlaceHolder OpenProject QueryStatus Method QueryStatus nCmdID as long as long Dispatch Id 7 Altova MapForce User Manual 2006 Altova GmbH MapForceControl
127. C Insert an existing structure as a parameter Path Description ShortPo sd CompletePo xsd Articles xad C Program Files AtovatvapForce2006 MaprF C Program Files Altova apr orce 006 Mapr C Program Files AtovaliMapForce 2006 MapF KEE Ce Insert anew structure of the one of the following types AML Schema Structure Database Structure EQ Structure Flex Test Structure Cancel E 4 Click Insert new structure radio button select the XML Schema structure entry and click OK to continue Select the CompletePO xsd from the Open dialog box Click the element that you would like to become the root element in the component e g Article and click OK to confirm Choose schema element B x Please choose a schema element to become the root element for the parameter G 3 CompletePO E Customer de Lineltems de 4 Lineltem de 7 Article bg C3 Number seve 3 SinglePrice 3 ee 4 Amount gt Price hd Show annotations Show types Cancel The CompletePO component is inserted into the user defined function Please note the output icon Sp to the left of the component name This shows that the component is used as a complex output component Altova MapForce User Manual 2006 Altova GmbH User defined functions Complex user defined function XML node as output 209 H CompletePa V sree CA SinglePrice 3 aa Y Amount gt i Price
128. CS file E Tut company i J Altova y gt 03 Rows gt Name gt p Office name gt de 4 Office d seven Department name l L Name e SS Street I jane A street oe City I d a 3 city oe Office Tel if Il Len Phone s First name d l DC Department gt H Last name d l oo Name b Tel Extension l d de Person gt e i Email d EMail KR p Position 3 D Y First E l Padis Last i jee PhoneE xt Ler F LA LU DW Clicking the Output tab produces the result you see below which may not be what you expect we only see output for the first office 1 Microtech Partners Inc Level Z support Ferrao Byrd 1324 0ttoaw In order to be able to iterate through all offices and have the output appear in the CSV file it is necessary to connect Office to Rows What this means is for each Office item of the source XML create a Row in the target CSV file MapForce allows you to specify the field or item which is to act as the root iterator for the output using the Rows item Mapping the Office item to the Rows item results in all individual Offices and mapped items being output E Tut company E My CS file p e jo A Rows ffice name gt e Y Office i ES i ee Department name gt Name is So Street d The Office items are output in the source file sequence Altova MapForce User Manual 2006 Altova GmbH Ma
129. Click the Select XML button to execute the XQuery sg dn version 1 0 encoding gt sa Company md oc FOE iimy company cannamespace xming xsi http Jay wes org 2001 AML Schema instance xstechemaLocation hite fimy company C CUPROGRA 1 Altova MAFF FORCE 004 apF orceExamples T utorialiexpReport Target xed gt saEmployees lt a Title Project Manager amp Title hemesbred Landis a Name ea Tel 2123 456 78 lt e Tel gt ee Email t landis inanonull com a Email sacexpense tem Currency USD Di to Development Pf ea Detes 2003 01 Deia Date of eg Travel Travel Cost 337 88 s gt i sla expense item sarexpense tem Currency USD Bill to 4ccounting i ea Detes 2003 07 07 lt a Date se Travel Travel Coste 014 22 i sla expense item sarexpense tem Currency USD Gill to Marketing ca Date gt 2003 02 02 lt a Date gt fo se Travel Travel Cost 2000 s gt i sla expense item gt fa Employee sla Company Text Grid Schema SOL Authentic Browser fexpMapToExpReport Target xq fed mf ExpReport ml fa4 Query Output xml An XQuery Output xml file is created which contains the mapped data Please see the Altova XQuery Engine documentation for more information on the command line parameters 2006 Altova GmbH Altova MapForce User Manual Chapter 10 User defined functions 192 User defined functions 10 User defined
130. D242 22 AWS6 1 18 5 188868 Gas Chromatograph Aim of the mapping is to e Map the flat file CSV to an hierarchical XML file and e Filter out the Header records designated with an H and e Associate the respective detail records designated with a D with each of the header records El Orders E Tut headerDetail Fo ab 7 ar e a Rows fi NET Le EI CY Order as OrderNo fy equal 7 Pnoderowl ontus Header l fe RecordT Field4 E Pb G 3 TEA gt Y Total eight ITa Y TotallnitCost Y Currency Y Shipping details El Detail wo Record ype 7 OrderNo SS SS dch asi dch dch dech dch Ka ke DW ke DW Ke ka Ka Fr NM fa filter EI Orders l phode row on trueh ProductNo 3 Unit eight 4 UnitNo UnitCost 2 WW Dip i d cf Unit description ie a Sr e F o Fied5 E g j eyalet me Field l o valez Freld 7 Ges Fieldg P l Fieldd result For this to be achieved the header and detail records must have one common field In this case the common field or key is the second field of the CSV file i e OrderNo In the CSV file both the first header record and the following two detail records contain the common value 111 Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Creating hierarchies from CSV and fixed length text files 171 Notes on the mapping The Orders csv file has been inserted
131. DB object name qualification MF upper function SQL exec multiple stat in one command separator special error handling NN retrieve parameter types special issues when using SQL Execution Transactions Flat transactions supported Start flat transaction via execution of SQL command Nested transactions supported MF begin transaction MF commit transaction ME rollback transaction MF set save point ee set transaction isolation supported Notes y y n TYPE INNODB _ for tables when relations transactions are used n not supported by MapForce y y S via ODBC none none a ae not supported by MapForce y y IDENTITY special implementation for DELETE necessary y with limits MySQL does not produce an error and continues if no nested transactions exist a 2006 Altova GmbH Altova MapForce User Manual 146 MapForce and Databases Database feature matrix MF rollback to save point ROLLBACK TO ME used init Statements SET AUTOCOMMIT 0 Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 147 7 5 5 Database info Sybase supported Notes Sybase DB engine as service own authentication Trusted authentication Connection not supported by MapForce y y n n y ODBC connection string issues Select must be applied Method Cursor y via ODBC ME used init Statements none
132. Database null processing functions New null processing functions have been added to the DB language library is not null result s not null field Is riull result null field set null result set nullf slUbstitute null result substitute null feld replace with is not null Returns false if the field is null otherwise returns true is null Returns true if the field is null otherwise returns false set null Used to set a database column or text field to null This function will also overwrite a default value with null Please note e Connecting this function to another function will generally not lead to a null result The null input will be cast to O or false e Connecting to special functions Filters and IF Else conditions works as expected fields are set to null e Using set null as an input for a simpleType element will not create that element in the target component e Connecting this function to a complexType element as well as a table or row is not allowed A validation error occurs when this is done substitute null Used to map the current field content if it exists otherwise use the item mapped to the replace with parameter The image below shows an example of the substitute null function in use and is available as DB ApplicationList in the MapForceExamples folder Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database null processing functions 1
133. Database info EE 139 7 5 2 Database info MS SQL ener 141 Lao Danba SO OPAC I E 143 T34 Watabase into Vy gegen 145 133 RE a e EE 147 Altova MapForce User Manual 7 5 6 Database info IBM DB2 0 00 00 cece ccc ccc cccecceccecceceececceceececees 7 6 Using MapForce to create database relationships ccccccecccseseees 7 7 Mapping large databases with MapForce essssessssssssessseereeeseessssssssssee 7 7 1 Complete database import sossnsosssssoooooeeeeeessssssssssssssseeereeo 7 7 2 Partial database import ce eesessseseeeeeececceeeeeeeeseeaeeseeeeeees 7 8 Database filters and queries ccccccccccccccceceeeeeaeeeeseesseeeeeeeeeeeeeeeaaaas 7 9 Database null processing functions ce ceeeeeccccecccceceeceeeceeeeeeeeeeees 8 MapForce CSV and Text files 8 1 Mapping CSV files to XML eee ee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees 8 2 Mapping XML to CSV or fixed length text files eee eeeeeeees 8 3 Creating hierarchies from CSV and fixed length text files BA CSV Te OPN eege ee eebe eg 8 5 Mapping Fixed Length Text files to a database eeeeeeeeeeeees 8 5 1 Fixed Length Text file Options cc csseeessssseeeeeeceeeeeeeeeeeees 8 6 Mapping Database to CSV Text files 200 0 eeeeeeeeeeeeeeeeeeeeeeeeeees 9 Generating XQuery 1 0 code 10 User defined functions 10 1 Inline vs Standard user defined functions ccceccecescesceccecesces
134. EXTENT PERMITTED BY APPLICABLE LAW EVEN IF A REMEDY FAILS ITS ESSENTIAL PURPOSE IN NO EVENT SHALL ALTOVA OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL INCIDENTAL DIRECT INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER INCLUDING WITHOUT LIMITATION DAMAGES FOR LOSS OF BUSINESS PROFITS BUSINESS INTERRUPTION LOSS OF BUSINESS INFORMATION OR ANY OTHER PECUNIARY LOSS ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE OR THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES EVEN IF ALTOVA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES IN ANY CASE ALTOVA S ENTIRE LIABILITY UNDER ANY PROVISION OF THIS SOFTWARE LICENSE AGREEMENT SHALL BE LIMITED TO THE AMOUNT ACTUALLY PAID BY YOU FOR THE SOFTWARE PRODUCT Because some states and jurisdictions do not allow the exclusion or limitation of liability the above limitation may not apply to you In such states and jurisdictions Altova s liability shall be limited to the greatest extent permitted by law and the limitations or exclusions of warranties and liability contained herein do not prejudice applicable statutory consumer rights of person acquiring goods otherwise than in the course of business The disclaimer and limited liability above are fundamental to this Software License Agreement between Altova and you d Infringement Claims Altova will indemnify and hold you harmless and will defend or settle any claim suit or proceeding brought against you by a third party that is based upon a claim
135. GmbH User defined functions Complex user defined function XML node as output 207 10 4 1 Complex output components defining Defining complex output components 1 Create a user defined function in the usual manner i e Function Create User Defined function and click Enter to confirm Note that the Inline option is automatically selected Implementation Ce Inline recommended Allows complex parameters filters and multiple outputs C Standard function Allows recursive calls 2 Click the Insert output icon in the icon bar and enter a name e g CompletePO Create Output i l y K Mame CompletePO Type C Simple tyoe integer string etc Datatype stririg Si Structure Choose Root Choose Cancel 3 Click the Complex type radio button then click the Choose button This opens the Insert Inout Parameter dialog box The top list box displays the existing components in the mapping in this example three schemas Note that this list contains all of the components that have been inserted into the active mapping e g XML Schema database file The lower list box allows you to select a new complex data structure i e XML Schema Database file file 2006 Altova GmbH Altova MapForce User Manual 208 User defined functions Complex user defined function XML node as output WW Insert Input Parameter Choose an existing structure or a new structure type to insert
136. H Altova MapForce User Manual 444 MapForceControl Command Table 24 3 5 Component Menu Commands from the Component menu Mem ien Command Name ID Edit Constant ID COMPONENT_EDIT_ CONSTANT Align Tree Left ID_COMPONENT_LEFTALIGNTREE Align Tree Left Align Tree Right ID_COMPONENT_RIGHTALIGNTREE ID_COMPONENT_CREATE_DUPLICATE_ICON Remove Duplicate ID_ COMPONENT _REMOVE_DUPLICATE_ICON Database Key Settings ID_POPUP_VALUEKEYSETTINGS Database Table Actions ID_ POPUP_DATABASETABLEACTIONS Component Settings ID COMPONENT SETTINGS 2341 Altova MapForce User Manual 2006 Altova GmbH MapForceControl Command Table 445 24 3 6 Connection Menu Commands from the Connection menu Settings for Connect Matching Children ID CONNECTION SETTINGS 32344 Connect Matching Children ID CONNECTION _MAPCHILDELEMENTS 2 Standard Mapping target driven ID_POPUP_NORMALCONNECTION 2006 Altova GmbH Altova MapForce User Manual 446 MapForceControl Command Table 24 3 7 Function Menu Commands from the Function menu Create User Defined Function ID_FUNCTION_CREATE_EMPTY Create User Defined Function From ID FUNCTION CREATE FROM SELECTION 32381 Selection Function Settings ID_FUNCTION_SETTINGS nsert Input ID_FUNCTION_INSERT_INPUT nsert Output ID_ FUNCTION_INSERT OUTPUT Altova MapForce User Manual 2006 Altova GmbH MapForceControl Command Table 447 24 3 8 Output Menu Commands from the
137. Indices start with 1 Errors 1800 The object is no longer valid 1801 Invalid address for the return parameter was specified Parent Property Parent aS Application read only Description Retrieves the application s top level object Errors 1800 The object is no longer valid 1801 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 383 2006 Altova GmbH Altova MapForce User Manual 384 The MapForce API Object Reference 23 2 6 ErrorMarker Properties and Methods Properties to navigate the object model Application Parent Access to message information Application Property Application aS Application read only Description Retrieves the application s top level object Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified DocumentFileName Property DocumentFileName as String read only Description Retrieves the name of the mapping file that the error marker is associated with Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified ErrorLevel Property ErrorLevel aS ENUMCodeGenErrorLevel read only Description Retrieves the severity of the error Errors 1900 The object is no longer valid 1901 Invalid address for the return parameter was specified Highlight Method Highlight
138. Insert Input Parameter f x Choose an existing structure or a new structure type to insert Inger an existing structure as a parameter Mame Path Description CompletePo xq C Program Files AttovalvapForce2006 Mapr C Program Files AttovalvapF orce2006 apr C Program Files Atova Map orce 2006 MapF ISS Ce Insert anew structure of the one of the following types AML Schema Structure Database Structure EQ Structure Flex Text Structure 6 Select the Articles xsd from the Open dialog box 7 Click the element that you would like to become the root element in the component e g Articles and click OK to confirm Choose schema element E x Please choose a schema element to become the root element for the parameter 7 Article El Articles 4 Article Gg C3 Number 3 SinglePrice CA ArticleType h Show annotations The Articles component is inserted into the user defined function Please note the input icon 4 to the left of the component name This shows that the component is used as a complex input component 2006 Altova GmbH Altova MapForce User Manual 204 User defined functions Complex user defined function XML node as input D i Articles A Articles E Article d E i Number I 8 Insert the rest of the components as shown in the screenshot below namely a second simple input component filter equal and output components and co
139. Java This command generates the Java file s needed for the transformation from the source file s Selecting this option opens the Browse for Folder dialog box where you select the location of the Java files Note the name of the generated Java file s are defined in the Application Name field of the Mapping Output dialog box This dialog is opened by selecting File Mapping Settings menu option A notification appears when the process has been completed successfully Generate code in C Generates the C code in the selected directory The file name created by the executed code is that which appears in the Output XML instance for Code Generation field of the Component settings dialog box if the target is an XML Schema document Generate code in C Generates the C code in the selected directory The file name created by the executed code is that which appears in the Output XML instance for Code Generation field of the Component seitings dialog box if the target is an XML Schema document Mapping settings Mapping Outputs KE SI Mapping Output Output Encoding Application Mame Java Settings Base Package Mame com mapforce Cancel Altova MapForce User Manual 2006 Altova GmbH MapForce Reference File 283 The global MapForce settings are defined here Mapping Output Output encoding defines the output encoding for the files produced by the XSLT 1 0 2 0 XQuery and Java transformation
140. LT functions or custom libraries e Define general settings such as the default output encoding e Define your specific compiler settings Libraries General Generation C Settings f Microsoft Visual Studio 2005 Microsoft Visual Studio NET 2003 he Microsoft Visual C 6 0 f MSXML 4 amp ML Library C weres amp ML Library e Static Library LIB C Dynamic Link Library LOLL he MFC Support CH Settings Microsoft Visual Studio 2005 Ce Microsoft Visual Studio NET 2003 Microsoft Visual Studio NET 2002 Borland CHBuilder Project Mono Makefile C Settings Defines the specific compiler settings for the C environment Please note that the MFC Support check box must be activated for the source code to be compilable C Settings Defines the specific compiler settings for the C environment 2006 Altova GmbH Altova MapForce User Manual 300 MapForce Reference Help 21 11 Help Allows access to the Table of Contents and Index of the MapForce documentation as well as Altova web site links The Registration option opens the Altova Licensing Manager which contains the licensing information for all of Altova products Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Oracle client installation 301 21 12 Oracle client installation The instructions below describe the setting up of a new connection to an existing Oracle databa
141. LibType Description Specifies the library type used by Document GenerateCppCode Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CppSettings UseMFC Property cppSettings_UseMFC aS Boolean Description Specifies if MFC support should be used by C code generated by Document GenerateCppCode Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CSharpSettings ProjectType Property cSharpSettings_ProjectType aS ENUMProjectType Description Specifies the type of C project used by Document GenerateCHashCode Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation DefaultOutputEncoding Property DefaultOutputEncoding aS Boolean Description File encoding used for output files Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 389 Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation Parent Property Parent as Agplication read only Description The parent object according to the object model Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified
142. Local Variable SparamByValue new value SparamByRef new value CompleteSub finished endsub run sub CompleteSub Call CompleteSub FirstParameter SParamByValue ParamByRef ParamByValue SParamByValue ParamByRef SParamByRef GLOSES Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 347 22 7 10 Built in Types The section describes the built in types used in global variables which describe the parsed schema Namespace Namespace abstraction Name type Description The URI of this namespace The prefix of this namespace ContainsPublicClasses boolean True if the Classes collection contains at least one non internal Class object Classes Class collection Collection of the classes in this namespace step through them using foreach Class Class abstraction Name Type Description ___ SS The Namespace object this Class object is part of e NamespacePrefix string rett of the namespace in which the classis_ NamespaceURI eng Hl of the namespace in which the classis Name string Name of the type in the resulting file SchemaName______string___ Name of the type as in the original schema file is also represented by a Class object BuiltInSchemaBase string Name of the root simple type as in the original schema file True if there is a root element of this type IsSimpleType True if this is a simp
143. MapForce you get all menus toolbars the status bar document windows and helper windows Customization of the application s user interface is restricted to what MapForce provides This includes rearrangement and resizing of helper windows and customization of menus and toolbars The only ActiveX control you need to integrate is MapForceControl Its property InteqrationLevel defaults to application level You may use Appearance and BorderStyle to configure the appearance of the control s wrapper window Do not instantiate or access MapForceControlDocument Of MapForceControlPlaceHolder ActiveX controls when integrating at application level If you have any initialization to do or if you want to automate some behaviour of MapForce use the properties methods and events described for MapForceCont rol Consider using MapForceControl Application for more complex access to MapForce functionality In this section is an example Example HIML showing how the MapForce application can be embedded in an HTML page For usage with other programming languages or more sophisticated access see the Examples of integration at document level 2006 Altova GmbH Altova MapForce User Manual 418 MapForceControl Integration at the Application Level 24 1 1 Example HTML This example shows a simple integration of the MapForce control at application level into a HTML page The integration is described in the following sections e Instantiate a
144. Object Reference 461 Description QueryStatus returns the enabled disabled and checked unchecked status of the command specified by ncmdID The status is returned as a bit mask Bit Value Name Meaning 0 1 Supported Set if the command is supported 1 2 Enabled Set if the command is enabled can be executed 2 4 Checked Set if the command is checked This means that if QueryStatus returns 0 the command ID is not recognized as a valid MapForce command If QueryStatus returns a value of 1 or 5 the command is disabled Events The MapForceControl ActiveX control provides the following connection point events OnUpdateCmdUL OnDocumentOpened OnProjectOpened OnCloseFditinqwindow OnDocumentOpened Event OnDocument Opened objDocument as Document Dispatch Id 3 Description This event gets triggered whenever a document gets opened The argument objDocument Is a Document object from the MapForce automation interface and can be used to query more details on the document or perform additional operations When integrating on document level it is often better to use the event MapForceControlDocument OnDocument Opened instead OnCloseEditingWindow Event OnCloseEdit ingWindow i_strFilePath as String as boolean Dispatch Id 1002 Description This event gets triggered when MapForce needs to close an already open document As an answer to this event clients should close the editor window associated with _ strFilePath Returni
145. Output menu Mentgen CommandName ID 2434 D_SELECT_LANGUAGE_JAVA ID_SELECT_LANGUAGE_CSHARP ID_SELECT_LANGUAGE_CPP Run SQL script ID_ TRANSFORM_RUN_ SQL 32442 2006 Altova GmbH Altova MapForce User Manual 448 MapForceControl Command Table 24 3 9 View Menu Commands from the View menu Menu Text Show Annotations 3 Show Types 3 Show Library In Function Header 3 Show Tips 3 Show selected component D_VIEW_AUTOHIGHLIGHT COMPONENTCONNECTION 32443 S Show connectors from source to ID VIEW RECURSIVEAUTOHIGHLIGHT Zoom ID_VIEW_ZOOM 2451 Status Bar D_VIEW_STATUS_BAR 449 Library Window ID_VIEW_LIBRARY_WINDOW 2445 LA NO LA D_VIEW_VALIDATION_OUTPUT ID_VIEW_OVERVIEW_WINDOW Project Window ID_VIEW_PROJECT_WINDOW LA 2446 2302 connectors Validation Output LA Altova MapForce User Manual 2006 Altova GmbH MapForceControl Command Table 449 24 3 10 Tools Menu Commands from the Tools menu Men ien JL CommandName ID ID_VIEW_CUSTOMIZE 32444 ID_TOOLS_OPTIONS 32441 2006 Altova GmbH Altova MapForce User Manual 450 MapForceControl Command Table 24 3 11 Window Menu Commands from the Window menu Menu Text Close Close All ID WINDOW_CLOSEALL 3 Cascade D WINDOW_CASCADE D_WINDOW_TILE_VERT Tile Horizontal ID_WINDOW_TILE_HORZ Tile Vertical Close Close All Altova MapForce User Manual 2006 Altova GmbH MapForceCont
146. P Te Data Source Cuslomereingircicles mob CompletePO mi Console Out WriteLine Finished catch Exception ei Please note that the path names in the generated source code have been deleted for the sake of clarity Looking at MappingMain1 Object Run All parameters passed to the run method except for the last one CompletePO xml are source files Please ensure that the last parameter is the target file Altova MapForce User Manual 2006 Altova GmbH Code Generator Integrating MapForce code in your application 329 In this example the source files are e XML file Short PO xml e Database file CustomerAndArticles mdb including the connection string the target file is e CompletePO xml To define your own source or target files e Directly edit the parameters passed to the run method of MappingMain1 Object To use an XML input stream as the XML data source e Navigate to the run method declaration in the code and configure the specific parameters there To add extra error handling code Edit the code below the catch Exception e code Mono makefile If you generated CH code and specified a mono makefile in the Generation tab of the Tools Options dialog box e The makefile is placed in the output folder e Edit the MappingConsole cs file in the outoput Mapping folder as mentioned above 2006 Altova GmbH Altova MapForce User Manual 330 Code Generator Integrating MapForce
147. R CT OD JEr number amp Hatt TJT 4 ob Err description T strlext else Exit ERROR strText EE A MAIN ff create the Shell and FileSystemObject of the windows scripting try objWshShell WScript CreateObject WScript Shell ObjFSO WScript CreateObject Scripting FileSystemObject catch err Exit Can t create WScript Shell object fo open MapForce or access running instance and make it visible try objMapForce WScript GetObject MapForce Application objMapForce Visible true remove this line to perform background processing catch err WScript Echo Can t access or create MapForce Application Ly aS open an existing mapping adapt this to your needs objMapForce OpenDocument objFSO GetAbsolutePathName Test mfd Jy SSS access the mapping to nave access to the code generation methods var objDoc objMapForce ActiveDocument jf eege set the code generation output properties and call the code generation methods oe ae adapt Che output Geirectcries to your needs try code generation uses some of these options var objOptions objMapForce Options 2006 Altova GmbH Altova MapForce User Manual 356 The MapForce API Overview ege generate XSLT objOptions XSLTDefaultOutputDirectory C test TestCOMServer XSLT obj Doc G neratexshT generate Java Code objOptions
148. R WR fa equal Tray cost ho Lo Destination lt gt Mileage gt Parking p Entertainment 9 Connect the Travel item in the source schema with the Travel item in the target schema document 10 Connect the Trav cost item with the Travel Cost item in the target schema document ke ka Ke Ke LA LA L LA V J os Location EEE oo Hotel 0 ForeignAc Ka La mmm Bess OR LA LA LA L LA LA LA WW 4s Mea KI lave p Smealtype Lk gt Travel Cost i i fi filter l i 4 Destination Location enode row opchuebh gt Car Rental E Lodging S ebool prefalsely f 7 4 Al Travel on Misc Travel fi equal gt EI 4 Accommodati a d CA DomesticAc g Tray cost l TET HH resu Tp Destination gt eb 7 2 pe Domestic 11 Click the Output tab to see the result 2006 Altova GmbH Altova MapForce User Manual 40 MapForce tutorial Filtering data lt xml version 1 DU encading UTF 8 gt slompany mins si hit Away ves org 2001 NM Schema instance st schemes SEmployee Tithe Project Manager Tithe lt Mame Fred Landis Mame f Tel 123 456 78 Tel gt Email landizienanoanull com Email sexpense item Currency USD Bill to Development 2 Date gt 2003 01 02 Date gt Pf eTravel Travel Cost 337 ga sfexpense tem lt expense item Currency USD Bill to 4 ccounting
149. Report mfd Creating the second target schema component 1 Click the Insert XML Schema File icon 2 Select the ExpReport Target xsd file from the Open dialog box You are now prompted for a sample XML file for this schema 3 Click No and select Company as the root element of the target document The target schema component now appears in the Mapping tab 4 Click the Company entry and hit the key on the numeric keypad to view all the items 5 Click the expand window icon and resize the component Place the schema components so that you can view and work on them easily There is now one source schema mf expReport and two target schemas both ExpReport Target visible in the Mapping tab Gi SC eport T arget Preview fy ExpReport T arget gt F Company Fi I a 4 Employee Y Title concal uel pl gie We E resulti Name ue d oe Tel Se 3 Email DomesticD ailyRate 3 ForeignD ailyR ate H Expense detail i expense item Currency Ke K W Ben Bes i Bel i a i L I LA LA LA LA L Ke K i LA V DW _ 1 Oexpense ow Curren 7 Bill to io Date ld Travel D dch ch Ka S og Travel SS Travel Cost K Wi LA TJ J V nl 3 Destination i gg or Jrueb opr Jalsel Filtering out the non travel data 1 Connect the on false icon of the filter component with the expense item element of the second target schema docum
150. S NET To open a new MapForce mapping file 1 Select the menu option File New 2 Click the MapForce Files entry in Categories New File Categories Templates General isual Studio installed templates E Web visual C Bey New MapForce Mapping Script MapForce Files aMLSpy Editor Files Creates anew MapForce mapping 3 Double click the New MapForce Mapping item in the Templates window An empty mapping file is opened 7 MFD File1 mfd Microsoft Visual Studio Fie Edit View Debug Insert Component Connection Function Output 1 amp Hin En 7 _ MFD File1 mfd Start Page ls Ou LU L T Sr Be a E T Ko 4 2 ER S x Happing Output Messages Zem Si To enable the Libraries window 1 Select the menu item View MapForce Library Window 2006 Altova GmbH Altova MapForce User Manual 256 MapForce plug in for MS Visual Studio NET Opening MapForce files in MS VS NET Debug Insert Component Connection Function Output Authentic 8ML Convert GA Solution Explorer Er AIE L FT Show Types Bookmark window Ctri K Ctrl EO Show Library In Function Header Class view Chrl Shift 0 Show Tips Code Definition Window Crit Cd Show selected component connectors Object Browser Ctrl 4lk Output Alk 2 SOOM Property Manager Library Window Resource view Ctrl Shifk E Messages Toolbox hrl Flk Overview 2 Dock the floating window at the posi
151. ShortApplicationinfo mfd in the MapForceExamples folder A snippet of the XML source file for this example is shown below lt Page xmlns xusi http s w ws org Z00L AMLSchema instance HElinoWamespaceiSchemaLocation SecticonedPage xid gt lt Item lt Title gt xMLSpy lt Title gt MainSection author altovwa gt Altova Trademark gt sMLopy Trademark SubsSection Altova Trademark gt s HMLipyt Trademark gt 005 Enter is SCH industry standard sEeywmord ML rEeyword gt development environment editing debugging and transforming all tHeyword gt sML Reyuord gt technolo automatically generating runtime code in multiple programming languages Hainsection Item gt The mapping is shown below Please note that e The Subsection item connector is of mixed content and is mapped to the Description item in the target XML schema Trademark text is mapped to the Bold item in the target e Keyword text is mapped to the Italic item in the target Gi SectionedPage E Page Al the applications El Item One specific application V Ka E d om Title The application s title E Shortlnfo d EI 3 MainSection Description of the applicaticrl IAE Shortinfo d m amp author Author of the describing text l El Info Le d i a Trademark d Title i Keyword E Y Description j e A SubSection Further description scion rg Bold gt author Suthor of the
152. Starting Eclipse and using MapForce plugin cc ccsssseesseeeeeeceeececeeeeeeeeaeaaeeeeeees 264 20 3 MapForce Editor View and Perspectives ccccccccccccccccceccceccceecccececeeeeeeeeeeeeeeeeees 266 20 4 Importing MapForce examples folder into Navigator ccccecccecccceeceeeeeeeeeeeeeeees 268 20 5 Creating new MapForce files mapping and project file 269 20 6 MapForce code SeneratiOiiisiccceccssacosssncinsvsseccasiadssedcddcennueth N Ana EREE E eaire 270 20 6 1 Build mapping code manyally crsccscsstssivordesncxcnetnecosdcstusasteeawecdeteerqatenecosieenes 271 20 6 2 Using MapForce Eclipse projects for automatic build eee 272 20 6 3 Adding MapForce nature to existing Eclipse Project nnennnenessnssssssseee 275 20 7 Extending MapForce plug in lt c lt cevnsucccesccctecaveuatecesveosechensmenses teotecavouatsdesseescchenemencesteosees 276 21 MapForce Reference 280 3 WE CO 281 Altova MapForce User Manual GAS e Se eee ere re eee ere ere ee rer ey eee rere ry errr ere rr 284 GA ER re GE 285 PA GE 286 DAY E ue E E 288 DAO COMME e EE 292 GAS Er uer e EE 294 EE 297 ARC Oe AC 298 DMO Kee CET 299 Pid Oe Ue TT a ee ee ee T E TT 300 21 12 Oracle client EE ee EE 301 22 Code Generator 304 22 1 Introduction to code generator ou cee eeeeeesseeceeccceceeceeeeaaaaeeeseesseeeececeeeeeeeeeeeaaaaaasesesees 305 222 CCM MA ER 307 D224 Generi JAN AC OCC sata adetinetanarasasanicoosignaes
153. The article numbers in the source XML file are 1 2 3 and 4 1 Use the menu option Function Insert Input to insert the component This opens the Create Input dialog box 2 Enter a name for the function and select the datatype you want to use 3 Click in the Value field and enter a value In this case enter a value different from the one supplied by the constant e g 2 2006 Altova GmbH Altova MapForce User Manual 92 MapForce How To Input values overrides and command line parameters Create Input a x Hame Trueval Datatype nteger M lw Connection required Preview Code generation h Use alternative value Value 2 4 Click the Output tab to see the result of the mapping sm version 1 0 encading LITF 9 gt H lt Articles min xsi http n un 2 org A00 MLS chema instance CO sArticle E eNumber 1 lt Mumber lt hlame gt T Shirt Mame lt SinglePrice 25 SinglePrice gt lt Article lt Article o shumber 1033 lt Number shlame Socks lt Mame lt singlePrice 2 3 lt SinglePrice gt lt Article lt Article chlumbers Ze blumberz NamesPants lt Mame lt SinglePrice 34 lt SinglePrice gt Article gt Article lt Number 4 lt Mumber lt Name Jacket Wame gt lt SinglePrice 57 5 lt SinglePrice gt ef Article lt Articles gt The original article number 2 has been changed to 1033 The value supplied by the input function has taken p
154. This property is available in Ul dialog for the Document Settings Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified See also Code Generation MapForceView Property MapForceView aS Document read only Description This property gives access to functionality specific to the MapForce view Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 378 The MapForce API Object Reference Name Property Name as String Description Name of the document file without file path Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified OutputSettings ApplicationName Property outpuSettings_ApplicationName aS String Description Sets or retrieves the application name available in the Document Seitings dialog Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified See also Code Generation OutputSettings Encoding Property OutputSettings_Encoding aS String Description Sets or retrieves the output encoding available in the Document Settings dialog Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified See also Code Generation Parent Property Parent as Ag
155. Trav cost S m CashAdvance an Y Destination gt S E Employee 2 of Mileage gt fC Exec WW d 3 i I emm DW Kee d e ch ch ech D La 3 Click the expand icon to see the items below it Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Mapping multiple source items to single target items 53 The structure of the new Employee item is an exact copy of the original except for the fact that there are no output icons for the duplicated items eS ka H 3 Travel oo means ofl Mise DI 3 description ac CashA dyance E Employee 2 _ Title TAT ie T e Trav cost iy d Y Destination Sue Y Mileage E Y Parking ac Entertainment m Misc E Y description F J LA LI LI Li Ecg D A VJ vi Ka tz Et V emm H emm Ke ke y Email cesses Y DomesticD ailyR ate Y ForeignD ailyRiate ee Expense detail I ch La sms KA D A VJ VJ r K Ke kv kv E expense item m CashAdyvance m Exec i vr y LA L etd esch VG You can now use these new duplicate items as the target for the second source XML data file Use the same method as before to insert the second XML instance file 1 Click the Insert Schema XML instance icon 2 Select the mf ExpReport xsdi file from the Open dialog box click Yes and select the mf ExpReport2 xml file
156. WD 1 The company was establis officemnanonul 1 On March 1st 2000 Manoli nextofficemnan 2 Microtechnology products officem microter 2 Microtech established ts r nextoficemmic The new offices have been added with primary keys of 3 and 4 respectively Both these new offices are related to the Altova table by their foreign key 2 which references the Microtech OrgChart record SELECT IF CMA Atoval Primaryhey Is MULL 0 MAA ARoval PrimarykKey i 1 As PrimaryKey FROM gt OK One or more rows INSERT INTO Altova Mame Primarykey E VALUES Microtech OrgChart PrimaryKey 6 gt OK 1 rows SELECT IF MAX Ottice Primarykey 1 lS NULL OMAR Ottice Primary key AS PrimaryKey FROM gt OK One or more rows INSERT INTO Office Foreignkey Desc EMail Established Mame PrimaryKey i VALUES 2 Microtechnology products are currently the bleeding edge of computer technology oft gt OK 1 rows SELECT IFIMAX Ottice Primarykey 1 IS NULL OMAR Ottice Primary key i AS PrimaryKey FROM OK One or more rows INSERT INTO Office Foreignkey Desc EMail Established Name PrimaryRKey VALUES 2 Microtech established ts new office on Feb 20 nextotticememicrotech com 2001 03 0 gt OK 1 rows Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML datato databases 117 7 3 4 Database action Update The first exa
157. Wanonull Marketing 753 afficefinanonull com CaA Altova MapForce User Manual 2006 Altova GmbH Chapter 9 Generating XQuery 1 0 code 188 Generating XQuery 1 0 code 9 Generating XQuery 1 0 code MapForce generates XQuery 1 0 program code which can be executed using Altova s XQuery engine in the AltovaXML package or opened directly in XMLSpy and executed using the menu option XSL XQuery XQuery Execution Please note that execution speed of generated XQuery 1 0 code is significantly faster that of generated XSLT 1 0 2 0 code Generated program code such as Java C or C is of course even quicker because it is compiled before execution To download the AltovaXML package which contains the Altova XQuery engine e Point your Browser to http www altova com download_components html then select and install the AltovaXQuery engine This example uses the Tut ExpReport mfd file supplied in the MapForceExamples Tutorial folder Make sure that you have selected the XQuery icon before you preview the results To preview an XQuery result Before generating program code it is a good idea to preview the result of the XQuery using the MapForce Engine Having opened the Tut ExpReport mfd file in MapForce 1 Click the XQuery tab to preview the generated XQuery code 2 Click the Output tab to preview the result of the mapping WC xquery version 1 0 declare namespace a httg Aimy company comnamespace
158. Windows NT contains support for rendering and editing right to left text on the operating system layer 2006 Altova GmbH Altova MapForce User Manual 492 Appendices Technical Data 25 2 5 Internet Usage Altova applications will initiate Internet connections on your behalf in the following situations If you click the Request evaluation key code in the Registration dialog Help Registration the three fields in the registration dialog box are transferred to our web server by means of a regular http port 80 connection and the free evaluation key code is sent back to the customer via regular SMTP e mail If you use the Open URL dialog box to open a document directly from a URL File Open URL that document is retrieved through a http port 80 connection This functionality is available in XMLSpy and Authentic Desktop If you open an XML document that refers to an XML Schema or DTD and the document is specified through a URL it is also retrieved through a http port 80 connection once you validate the XML document This may also happen automatically upon opening a document if you have instructed the application to automatically validate files upon opening in the File tab of the Options dialog Tools Options This functionality is available in XMLSpy and Authentic Desktop If you are using the Send by Mail command File Send by Mail in XMLSpy the current selection or file is sent by means of any MAPI compliant m
159. a MapForce User Manual 2006 Altova GmbH MapForce tutorial Mapping multiple source items to single target items 49 3 7 1 Creating the mappings The method described below is a recapitulation of how to set up the mapping environment 1 Click the Insert XML Schema File icon 2 Select the mf ExpReport xsdi file from the Open dialog box and select the mf ExpReport xml file as the XML instance file 3 Click the expense report entry hit the key on the numeric keypad to view all the items resize the component if necessary 4 Click the Insert XML Schema File icon 5 Select the ExpReport combined xsd file from the Open dialog box You are now prompted for a sample XML file for this schema 6 Click No and select Company as the root element of the target document select raat EMS a l Namespace URI CashAdvance http my company corm Http fry company com Date http 4 my company com Location http my company corm Restaurant http my company com Cancel The target schema component now appears in the mapping tab 7 Click the Company entry hit the key on the numeric keypad to view all the items and resize the window if necessary mf ExpRepart KS ExpReport combined gt a E expense repart gt E Y Company oe detailed de Y Employee oe Title i ane Name Ke i i DW DW DW D i SS CUIreNcy a Y Person y First Last on T
160. ables can be rolled back Transaction option set at Table Actions level e The Transaction exception dialog box appears with the Rollback all and stop option disabled The failed SQL statement for that specific table can be rolled back Transaction option set at both database component and table action level e The Transaction exception dialog box appears with the Rollback all and stop option enabled All previously successful SQL statements for that for the database and all its tables can be rolled back Hitting the Cancel button rolls back the current SQL statement and stops Please note The transaction prompts are only displayed when the transformation is performed interactively 2006 Altova GmbH Altova MapForce User Manual 134 MapForce and Databases Mapping XML data to databases Generated code performs a rollback and stop when the first error is encountered Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 135 7 3 8 Generating output values The Java C and C libraries have been extended by two functions which can generate values for database fields which do not have any input data from the Schema or database database Auto number and create guid can both generate values for fields Both functions are located in the generator functions subset of the lang library auto number is generally used to generate primary key values for a numeric fie
161. ail program installed on the user s PC Note All Internet communication is initiated only when directly requested by you from you This functionality is important in an XML development environment since XML is after all a technology closely related to the Internet Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 493 25 3 License Information This section contains e Information about the distribution of this software product e Information about the copyrights related to this software product e The End User License Agreement governing the use of this software product Please read this information carefully It is binding upon you since you agreed to these terms when you installed this software product 2006 Altova GmbH Altova MapForce User Manual 494 Appendices License Information 25 3 1 Electronic Software Distribution This product is available through electronic software distribution a distribution method that provides the following unique benefits e You can evaluate the software free of charge before making a purchasing decision e Once you decide to buy the software you can place your order online at the Altova website and immediately get a fully licensed product within minutes e When you place an online order you always get the latest version of our software e The product package includes a comprehensive integrated onscreen help system The latest version of the user
162. akpoint Strg Umschalt F8 ZS Add Watch Strgt UmechaltF HTTP Monitor Si Debugger Window Strg 5 In both cases MappingApplication or MappingConsole the MarketingExpenses xml target file is created MappingApplication Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 315 SS Mapforce Application THIS APPLICATION WAS GENERATED BY MAPFORCE 2004 http Away alto comimnaptorce Please check the input and output files and press the Start button Source instance of ExpReport xsd prescht lesa MLS pyExeF older MapForceExamples ExpReport cm Instance of MarketingExpenses xsd IMarketingExpenses xm Loading C Projects Files 2NLSpyExeFolder MapForceExanples ExpReport xml saving MarketingExpenses xnl Finished MappingConsole The screenshot below shows the mapping console output in Sun ONE Studio Fe Output Window MappingConsole 1 0 Mapping Application Loading Ci Projects Files AMNLipyExeFolder MapForceExamples ExpReport xnl saving MarketingExpenses xml Finished 2006 Altova GmbH Altova MapForce User Manual 316 Code Generator Generating program code 22 2 2 Generating C code Prerequisites and default settings The menu option File Mapping settings defines the mapping project settings The default settings are Application name Mapping Database specfic settings can be viewed by clicking a database component and
163. allows you to create and add your own user defined function libraries for Java C and C Libraries can be added by clicking the Add libraries button under the Libraries pane or by selecting the menu option Tools Options Add of the Libraries tab The libraries are shown as files with an mff extension Please note Mappings data using these types of user defined functions cannot be previewed by clicking the Output tab i e using the MapForce Engine as they cannot be compiled by the MapForce engine These functions are of course available when generating code To be able to add user defined functions you need e the mff file which tells MapForce what the interfaces to the functions are and e where the implementation can be found for the generated code A basic mff file for C would for example look like this lt xml version 1 0 encoding UTF 8 gt lt mapping xmlns xsi http www w3 org 2001 XMLSchema instance XS1 noNamespaceSchemaLocation mff xsd version 2 library helloworld gt lt implementations gt lt implementation language cs gt lt setting name namespace value HelloWorldLibrary gt lt setting name class value Greetings gt lt setting name reference value C HelloWorldLibrary HelloWorldLibrary dll gt lt implementation gt lt implementations gt lt group name SsString functions gt lt component name hello gt lt sources gt lt datapoint name greeting_type datatype bo
164. amming languages Java C or C Currently supported databases and connection types are Microsoft Access ADO versions 2000 and 2003 Microsoft SQL Server ADO Oracle OCI MySQL ODBC Sybase ODBC IBM DB2 ODBC Any ADO compliant database e Any ODBC compliant database Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases JDBC driver setup 103 Z I JDBC driver setup JDBC drivers have to be installed for you to compile Java code when mapping database data Overview This section describes how to download and install JDBC drivers and how to use them with Ant and JBuilder A JBuilder project file and Ant build scripts are generated by MapForce when generating Java code JDBC drivers are used by MapForce generated Java applications to connect to and exchange data with several different databases These JDBC drivers need to be installed first to successfully run the generated Java application s In general JDBC drivers can be found at http industry java sun com products jdbc drivers MapForce generated Java applications were tested with the following JDBC drivers MS Access MSSQL2000 Oracle 9i MySQL Sybase IBM DB2 This section assumes the following e the reader is familiar with setting Java CLASSPATHs e Java SDK and Ant or JBuilder is already installed and is working correctly e atleast one of the databases described below is running and the minimum privilege read only i
165. amp 0x02 btnFuncSettings disabled objDoc1 QueryStatus 13632 amp 0x02 JI btninsertInput disabled ob jDocl QueryStatus 13491 amp 0x02 btnGenXSLT disabled objDocl QueryStatus 13617 amp 0x02 btnGenXSLT2 disabled objDocl QueryStatus 13618 amp 0x02 btnGenxXQuery disabled objDocl QueryStatus 13586 amp 0x02 btnGenCPP disabled objDocl QueryStatus 13589 amp 0x02 btnGenCSharp disabled objDocl QueryStatus 13588 amp 0x02 btnGenJava disabled objDocl QueryStatus 13587 amp 0x02 set activity status of simulated toolbar lt SCRIPT gt 2006 Altova GmbH Altova MapForce User Manual 438 MapForceControl Integration at Document Level Visual Basic Source code for an integration of MapForceControl into a VisualBasic program can be found in the folder MapForceExamples ActiveX VisualBasic relative to your MapForce installation Altova MapForce User Manual 2006 Altova GmbH MapForceControl Command Table 439 24 3 Command Table Tables in this section list the names and identifiers of all commands that are available within MapForce Every sub section lists the commands from the corresponding top level menu of MapForce The left most column shows the command s menu text to make it easier for you to identify the functionality behind the command The last sub section is a collection of those commands that are not accessible via the main menu D
166. an optional comparison value as well as a default value e Person2Details combines three person fields and passes on the result to the filter component 2006 Altova GmbH Altova MapForce User Manual 214 User defined functions User defined function example EqualAnd component Il Equaltnd Pe result ee result adetauk Office Mame KW O Eoul r Double clicking this user defined component displays its constituent components shown below What this component does is e Compare two input parameters a and b and pass the result on to the logical and component Note that the b parameter has been defined as the priority context right click the icon to do so This ensures that the person data of the specific office supplied by the input parameter a is processed first e Logical and the result of the first comparison with an optional input parameter Input 3 e Pass on the boolean value of this comparison to the output parameter pdefault ab ral detail HR Optional parameters Double clicking the input 3 parameter of the EqualAnd user defined function shown above allows you to make parameters optional by unchecking the Connection required check box Datatype boolean M l Connection required gt m result me input 1 Cancel default Office_Mame as O EqualAn ziana If Connection required is unchecked then e A mapping connector is not required for the input i
167. and e Hit a keyboard key to enter a new value or e Double click in the Custom field to mark the current value and hit a different keyboard key to change the entry First row contains field names Sets the values in the first record of the text file as the column headers visible in the preview window The column headers then appear as the item names when the Text component is displayed in the mapping Text enclosed in Text files exported from legacy systems sometimes enclose text values in quotes to distinguish them from numeric values Select this option if the text file contains strings which include the Field delimiter that you have currently defined The same delimiter character can then occur within a string without affecting the text file segmentation partitioning E g your fields strings contain a comma character but you are also using this character as the default CSV delimiter Append field Insert field Remove field Allows you to append insert or remove fields in the preview window which defines the structure of the CSV file Next Previous Clicking one of these buttons moves the currently active column left or right in the preview window Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Fixed Length Text files to a database 8 5 Mapping Fixed Length Text files to a database This example maps a simple text file to a MS Access database The source text file
168. and objCommands int idx We are looking for the Menu with the name IDR_MAPFORCE This menu should contain the complete main menu of MapForce if objCommand Label IDR _MAPFORCE ZZ read menu structure Here if objCommand Label ALL COMMANDS read all commands here EnableUserPrompts Property EnableUserPrompts as boolean Dispatch Id 1006 Description Setting this property to false disables user prompts in the control The default value is true IntegrationLevel Property IntegrationLevel aS ICActiveXIntegrationLevel Dispatch Id 1000 Description The IntegrationLevel property determines the operation mode of the control See also Integration at the application level and Integration at document level for more information Note It is important to set this property immediately after the creation of the MapForceControl object MainMenu Property MainMenu as MapForceCommand read only Dispatch Id 1003 Description This property gives access to the description of the MapForceControl main menu For more information see C Sample ReadOnly Property ReadOnly as boolean Dispatch Id 2 2006 Altova GmbH Altova MapForce User Manual 460 MapForceControl Object Reference Description Using this property you can turn on and off the read only mode of the control If ReadOnly is true it is not possible to modify any document loaded This property is only used in the
169. andard type user defined function into one of type Inline Standard user defined functions do not support e Complex input and output components i e XML schema nodes databases etc e Direct connection of filters to input components e Exist type functions on input components Exists Not exists Substitute missing is null is not null substitute null Code generation A standard user defined component generates code for a function call where inputs and outputs are passed as parameters At runtime the input parameter values are evaluated first then the function is called for each occurrence of the input data To change the user defined function type 1 Double click the user defined function to see its constituent components 2 Select the menu option Function Function settings and click the radio button of the type you want to change it to Standard or Inline Please note If the user defined function was originally of type standard with a priority context and was subsequently changed to one of type inline then the priority context is hidden and deactivated Changing the same function back to standard shows the priority context and enables it once again User defined functions and Copy all connections When creating Copy all connections between a schema and a user defined function of type Inline the two components must be based on the same schema It is not necessary that they both have the same root elements
170. anner set forth above This Software License Agreement will bind and inure to the benefit of the parties and our respective heirs personal and legal representatives affiliates successors and permitted assigns The failure of either of us at any time to require performance of any provision hereof shall in no manner affect such party s right at a later time to enforce the same or any other term of this Software License Agreement This Software License Agreement may be amended only by a document in writing signed by both of us In the event of a breach or threatened breach of this Software License Agreement by either party the other shall have all applicable equitable as well as legal remedies Each party is duly authorized and empowered to enter into and perform this Software License Agreement If for any reason any provision of this Software License Agreement is held invalid or otherwise unenforceable such invalidity or unenforceability shall not affect the remainder of this Software License Agreement and this Software License Agreement shall continue in full force and effect to the fullest extent allowed by law The parties knowingly and expressly consent to the foregoing terms and conditions Last updated 2005 05 05 2006 Altova GmbH Altova MapForce User Manual Index 507 index NET differences to MapForce standalone 257 NET 2002 2003 316 2 2005R3 compatibility mode 332 A Access MS Access support 102 A
171. anual EEN 381 ACL E 381 22 TERVOUIVIAI KIS xi oeasececcssesteasdsesneecarcasseissaeonsesgesesaedsneesasagcaaaniagacennteseceecedanaeeoesees 382 EES 382 COMME ierre en E E E EEA seas eenebesascencebase 382 EEN ee 382 LOR eet 382 Pa A WE eg a e E E E A E E E T 384 EE 384 Document FileName E 384 LEO LOTE EE 384 EE 384 ee 385 E SE 385 leg ee ee E ee ee ee ee 385 ie SP Ay PO ee 386 ee 386 CODEC GUO VEIN OCI OI ceases estrone copes ese rates 386 Compa DIN IY MOC sasiessrcasssescacerssstuosttssaupeetiniesssveresenstestanssusaaspeeviadusaseerenendtose 386 CppSetines BOLE Ee 387 Cnp eitige GeneragieVCof roiecrbdle cece eeeeeeeeeeeeeeeeeeeeeeeeeeeeee 387 CppSerines Generate VSProject eege uereg ease 387 COD SCD GS LPT Eege 388 CPPS eunes 1 SOM E 388 CSharpS annos Eege et Sener eee ter 388 DEFAME OID UTE NC OGING excoessasysociantecteteanseceswesacsauaassoossuetesbabeanbecnsuesaceebesteeeates 388 EE 389 MONLO TOONT T E 389 KEE 389 EE 389 SE 390 23 2 8 Project Enterprise or Professional Edition ccccccccccceeceeeceeeeeeeeeeees 391 NOT U E EE E OEA EEE OR 391 SS EE 392 TET akro ece OSE DEER AA E EE 392 ee 393 ADD O ON R EE 393 E E EEE I E ee 393 CO Eege 393 Eege 394 Altova MapForce User Manual EE 394 TIC TALC EE 394 Generale E 394 GC CT OTE OO CII eanresiae conc sacocase nig bento maseeeesn tence annosaaner und avtacoia saan ee 394 Generate OO EINE EE 395 Inser WY COS Een 395 Eege 395
172. anual 2006 Altova GmbH MapForceControl Command Table 441 24 3 2 Edit Menu Commands from the Edit menu Menuen LI Gommand Name D ID_EDIT_UNDO ID_EDIT_REDO ID_EDIT_FIND Cut Paste 1D_EDIT_FINDNEXT Copy EDU GOEN Paste LED PASTE ID_EDIT_CLEAR Select All ID_EDIT_SELECT_ALL 2006 Altova GmbH Altova MapForce User Manual 442 MapForceControl Command Table 24 3 3 Insert Menu Commands from the Insert menu Menu Text Po CommandName ID XML Schema File ID_INSERT_XSD Database ID_INSERT_DATABASE D Constant Filter Nodes Rows F Else Condition ID_INSRT_ CONDITION Exception ID_ INSERT EXCEPTION Altova MapForce User Manual 2006 Altova GmbH MapForceControl Command Table 443 24 3 4 Project Menu Commands from the Project menu Menu Text CommandName _ _ D Add Files to Project Add Active File to Project Create Folder Open Mapping for Operation Create Mapping for Operation Add Mapping File for Operation Remove Item ID_PROJECT_REMOVE_ITEM nsert Web Service ID_POPUP_PROJECT_INSERT_WEBSERVICE 230 Open WSDL file In XMLSpy ID_POPUP_PROJECT_OPENINXMLSPY Generate Code for Entire Project ID_POPUP_PROJECT_GENERATE_PROJECT Generate code in XSLT 1 0 ID_PROJECT_GENERATEXSLT Generate code in XSLT 2 0 ID_PROJECT_GENERATEXSLT2 ID_PROJECT_GENERATEXQUERY Generate code invlava Generate code inG Sharp Generate code inGrs Project Settings 2404 2006 Altova Gmb
173. any number of text nodes can appear within the para element interspersed by any number of bold and italic elements Source XML instance A portion of the XML file used in this section is shown below Our area of concern is the mixed content element para along with it s child nodes bold and italic Please note that the para element also contains a Processing Instruction sort alpha ascending as well as Comment text Company details which can also be mapped see mixed content settings lt Yxml Yersian 1 0 Se UIE G s sl edited with SM G v2005 sp2 U http iw altova Com by Mr Nobody L tova GmbH gt Stro bert REENEN NM GcChema instance xetnohlamespaceschemaLocation Tut OrgCchart xsd gt sLompanyLaga hret nanonull gif l lt Name Organization Chart Mame lt OTfice gt i Mame Manonull nc fame Desc para The company was established insbold gt Yerenossbold in 1995 Manonull eelas nangelectronic technologies tor italic muti core proacessors lt talic February 1999 savy the unveiling of the first prototype lt bold Nano grid bold The company hopes to expand its operations stalic ottshore talic to drive down operational costs i of sort alpha ascending lt l Company details location and general company infoarmation i elpara gt spara White papers and further information vill be made available in the near future i lt iDesc Please note the sequence of the text and bold italic node
174. apForce y y y ODBC connection string issues DATABASE must not be applied n n n y MF used init Statements none MF used final Statements DB object name qualification support for DB schemas y identity support E MF read back identity value must use triggers not supported y BG y E UPPER sub select support JOIN support OLE DB ODBC MF upper function exec multiple stat in one SQL Execution command separator a special error handling retrieve parameter types special issues when using d D OH fe d Flat transactions supported Start flat transaction via execution of SQL command D D S A a y via SAVEPOINTS Nested transactions supported set transaction isolation WE begin transaction y API call API call MF commit transaction MF rollback transaction SAVEPOINT ROLLBACK TO SAVEPOINT MF set save point MF rollback to save point 2006 Altova GmbH Altova MapForce User Manual 144 MapForce and Databases Database feature matrix Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 145 7 5 4 Database info MySQL own authentication Trusted authentication special issues Connection ME used init Statements MF used final Statements support for DB schemas identity Support MF read back identity value sub select support JOIN support a
175. apForce User Manual 364 The MapForce API Object Reference 23 2 1 Application Properties and Methods Properties to navigate the object model Application Parent Options Project Documents Application status Visible Name CULE WindowHandle MapForce designs NewDocument UpenDocument OpenURL ACC i veLocunmen ct MapForce projects NewP ro ject Enterprise or Professional edition is required OpenPro ject Enterprise or Professional edition is required ActivePro ject Enterprise or Professional edition is required MapForce code generation HighlightSerializedMarker Examples The following examples show how the automation interface of MapForce can be accessed from different programming environments in different languages eee tee a pegin VEA example eebe ere create a new instance of lt SPY MAP gt Dim objMapForce As Application Set objMapForce CreateObject MapForce Application T SSS end example eeneg ge ere E Sl aa E begin VESCE ORKIDO Eed access a running or create a new instance of MapForce works with scripts running in the Windows scripting host Set objMapForce GetObject MapForce Application GER S00 Eeer gf ee EE E EEN EE ee eebe Access a running or create a new instance of lt MapForce works with scripts executed in the Windows scripting host try objMapForce WScript GetObject MapForce Application unhide application if it is a new instanc
176. ard connections between mixed content items 1 Right click the para connector and select Target Driven Standard from the popup window The connector now appears as a solid line E Y Office bk gt Office Name a gt gt Name E Desc I p Desec a Opara p BO para ow bold kb ki bold i Y italic b be J italic 2 Click the Output tab to see the result of the mapping lt OTTICE lt Name Nanonull Inc eme Desc fof sparas foi od bid Yereno bold 7 ebold NMano grid lt bold gt gt i i sitalic multi core processors lt Jitalic 7 sitaliceoffshore vitalic gt i i lt jpara io parai s Descs slOTfice SL UTC lt Name Manonull Europe 4ts lt Mame gt Desc spara gt ii lt bold five research scientists lt bold i it sitaliceEuropesuitalice Result e all text nodes of the para element have been removed e mapped bold and italic text content remain e However bold and italic item sequence follow that of the target XML schema file Target Driven Standard properties Standard mapping means the normal method of mapping used in MapForce Le e Mixed content text node content is not supported mapped The sequence of child nodes is dependent on the target XML schema file In this example For each para element first map all bold items then map all italic items This results in the child ttem sequence shown above bold bold italic italic The conten
177. arget schema document 2006 Altova GmbH Altova MapForce User Manual 152 MapForce and Databases Using MapForce to create database relationships D altova no relation KS Altova_Hierarchical fa fiter bnoderow or truel Ess Altova Se Department eee PrimarypKey oo Fy ForeignKey F Phone ol Address 3 Primar 7 be Foreig W ia ai Ke ify Filter Prode row on truel cou i state on falzel d be F street 3 zip de Departm Primar W DW Ke Be Bes i Bel Bes Bes u e u Bess LA L LA LA LA K LA LA LA it J jes The result of the above mapping is shown below e Both office and department names are displayed The order of their occurrence is currently determined by the structure of the target schema document lt xml version 1 0 encoding LITF 38 7 Altova mins sis htth hewn vv org 2001 XML Schema instance sOffices lt Mame Nanonull nesame lt Mame Hanonull Partners Inc Mame gt lt Department lt Name gt Administration Mame 7 lt Mame Marketing Mame gt lt Mame Engineering ame fof sMameslT amp amp Technical Support Mame gt lt Name Administration Mame 7 lt Mame Marketing Mame gt eMame lT Somp Technical Support Mame lt Department sflttice gt lt Altova CO d moh E Wha A It would of course be more useful to output each office with its respective departments e To achieve this create a
178. arget schemas 46 multiple input items 52 Multiple source to single target item 48 Multiple tables to one XML 81 2006 Altova GmbH 516 Index MySQL database info 145 N Name 366 378 396 connector 67 292 Named template namespaces 230 Named template summing nodes 240 Namespace named template 230 Namespace URI DTD 99 namespaces in XQuery document 479 in XSLT 2 0 stylesheet 476 Nested user defined functions 211 NewDocument 366 381 NewProject 367 Nillable not supported 321 Node comparing boolean 86 removing text nodes 67 summing multiple 240 testing 98 Node set complement 37 Null functions 160 substitute 160 O Object reference 363 Object model overview 354 Object tree navigation 368 372 Application 365 Document 374 MapForceView 370 Mapping 378 Options 386 389 Project 393 OnDocumentClosed 373 OnDocumentOpened 365 OnProjectClosed 392 OnProjectOpened 365 Open MapForce files in VS NET 255 OpenDocument 367 381 OpenProject 367 Option CSV file options 173 Optional input parameters 211 Options 367 386 for code generation 378 388 for Java 377 Oracle client installation 301 database info 143 support 57 Oracle Qi drivers 103 OS for Altova products 487 Out of memory 321 Output 297 file CSV 173 file Text 182 find data 24 parameter 211 user defined if bool false 211 validate
179. as input 10 3 1 Complex input components defining Defining complex input components 1 Create a user defined function in the usual manner i e Function Create User Defined function and click Enter to confirm Note that the Inline option is automatically selected Implementation Ce Inline recommended Allows complex parameters filters and multiple outputs C Standard function Allows recursive calls A 2 Click the Insert input component icon in the icon bar 3 Enter the name of the component into the Name field Create Input q X Mame Articles Type C Simple type integer string etc Datatype string Sa Structure Choose Hoot Choose Cancel 4 Click the Complex type radio button then click the Choose button next to the Structure field This opens the Insert Inout Parameter dialog box The top list box displays the existing components in the mapping in this example three schemas Note that this list contains all of the components that have been inserted into the active mapping e g XML schema database file The lower list box allows you to select a new complex data structure i e XML Schema Database file file 5 Click Insert new structure radio button select the XML Schema structure entry and click OK to continue Altova MapForce User Manual 2006 Altova GmbH User defined functions Complex user defined function XML node as input 203 E
180. ase development tools It allows Altova customers to purchase reasonably priced concurrent use multi user licenses Please note that your Altova product at no time attempts to send any information out of your LAN or over the Internet We have also designed the applications so that they send few and small network packets so as to not put a burden on your network The TCP IP ports 2799 used by your Altova product are officially registered with the IANA see http www isi edu in notes iana assignments port numbers for details and our license metering module is tested and proven technology If you are using a firewall you may notice communications on port 2799 between the computers that are running Altova products You are of course free to block such traffic between different groups in your organization as long as you can ensure by other means that your license agreement is not violated You will also notice that if you are online your Altova product contains many useful functions these are unrelated to the license metering technology 2006 Altova GmbH Altova MapForce User Manual 496 Appendices License Information 25 3 3 Copyright All title and copyrights in this software product including but not limited to images photographs animations video audio music text and applets incorporated in the product in the accompanying printed materials and in any copies of these printed materials are owned by Altova GmbH or t
181. ast Further lt Last Titke gt 4ccounts Receivable Title gt PhoneExt 474 lt PhoneExt lt Person Person i First Loby First gt sLast Matize Last Title Accounting Manager Ttle ePhoneExt 963 lt PhoneExt lt Person For more complex examples of database to schema mapping using e multiple source files e flat and hierarchical databases Please see the DB_ Altova SQLXML mfd and DB_Altova_Hierarchical mfd files in the MapForceExamples folder of MapForce 2006 Altova GmbH Altova MapForce User Manual Chapter 4 Source driven mixed content mapping 64 Source driven mixed content mapping Source driven mixed content mapping MapForce now supports source driven mixed content mapping Source driven mixed content mapping enables you to automatically map text and child nodes in the same sequence that they appear in the XML source file Source driven mapping can of course also be applied to XML schema complexType items if you wish Child nodes will then be mapped according to their sequence in the XML source file Source driven mixed content mapping supports e XML schema complexTypes as source components e XML schema complexTypes of type mixed content i e mixed true as source componenis e XML schema complexTypes including mixed content database tables CSV and fixed length files as target components Please note Mixed content text nodes can only be mapped in t
182. ated and are highlighted in the screenshot below a A 3 ShortPO gt d LastName CustomerNr gt gt DI Address P 3 Lineltems f Street EI Lineltem W j oo AtticleNrip D Find rticle Amount E Caneel H WE 4 Article Com 4 Humber de 4 Lineltems E 3 Lineltem SinglePrice P E Article Amount Number 3 Price 7 E it ot i E it it it ot it E it T A SinglePricel Amount Price i it T Please note When creating Copy all connections between a schema and a user defined function of type Inline the two components must be based on the same schema It is not necessary that they both have the same root elements however The left half contains the input parameter to which a single item is mapped e ShortPO supplies the article number to the POArtNr input component The right half contains e a complex output component called Article CompletePO with its XML child nodes which maps the filtered items of the same Article number to CompletePO lt Yxml version 1 0 encoding UITF 3 H ComgleteP A mine vie http vay ng 2 ora 00 AML Schema instance xsi noNamnmespacg gt sLineteme gt sLinetem i Articles iOi ehumber 3 lt Number 7 lt Mame Pants lt Mame gt PoP 7 e ipglefrices Ada Einglebrices PP lt Price 102 lt Price gt Po shrticles eJLinettem i eLinelttem 7 Articles Pf 7 ehumber 1 Mumber 7 sMame gt T Shirt Name PoP 7
183. ath 2 0 and XQuery 1 0 482 G Generate C code 316 C code 318 code 307 code example 322 code from schema 304 Java code 24 309 Java code JBuilder 310 Java code Sun ONE Studio 312 multiple target Java 46 multiple target XSLT 46 XQuery code 188 XSLT 24 generator function 135 Global objects in SPL 338 gradient background 332 Gradients in background 389 guid 135 H Help 300 Hierarchy from text files 170 table 110 HighlightMyConnections 370 2006 Altova GmbH Index 513 HighlightMyConnectionsRecursively 371 Hotkeys Output window zoom factor 250 How to 80 HRESULT and error handling 361 HTML integration of MapForce 434 435 436 437 HTML example of MapForceControl integration 418 419 420 IBM DB2 database info 149 Implementation function 224 implementation specific behavior of XSLT 2 0 functions 478 Implicit datatype 236 implicit timezone and XPath 2 0 functions 482 Import user def functions 192 Include XSLT 230 XSLT 2 0 236 Inline 192 Inline Standard user defined functions 195 Input as command line param 91 comparing boolean nodes 86 default value 211 file CSV 173 file Text 182 optional parameters 211 XML instance 288 Input icon mapping 18 Input parameters and code generation 91 Insert 285 database 60 database action 112 InsertXMLFile 371 InsertXMLSchema 371 InsertXMLSchemaWithSampl
184. ation GenerateJavaCode Method GenerateJavaCode Description Generates Java code that will perform the mapping Uses the properties defined in Application Options to configure code generation Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1205 Error during code generation See also 2006 Altova GmbH Altova MapForce User Manual 376 The MapForce API Object Reference Code Generation GenerateOutput Method GenerateOutput Description Generates all output files defined in the mapping using a MapForce internal mapping language The names of the output files are defined as properties of the output items in the mapping Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1206 Error during execution of mapping algorithm See also Code Generation GenerateXQuery Method GeneratexXQuery Description Generates mapping code as XQuery Uses the properties defined in Application Options to configure code generation Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1204 Error during XSLT XSLT2 XQuery code generation See also Code Generation GenerateXSLT Method GeneratexSLT Description Generates mapping code as XSLT Uses the properties defined in Application Options to configure code generatio
185. ation and view properties Active ShowltemTypes ShowLibraryInFunctionHeader HighlightMyConnections HighlightMyConnectionsRecursivly Adding items InsertXMLFile Insert XMLSchema Insert xMLSchemaWithSample Active Property Active aS Boolean Description Use this property to query if the mapping view is the active view or set this view to be the active one Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified Application Property Application aS Application read only Description Retrieves the application s top level object Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified HighlightMyConnections Property HighlightMyConnections aS Boolean Description This property defines whether connections from the selected item only should be highlighed Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 371 HighlightMyConnectionsRecursivey Property HighlightMyConnectionsRecursively aS Boolean Description This property defines if only the connections coming directly or indirectly from the selected item should be highlighed Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was speci
186. available XSLT 2 0 function 478 fn id in XPath 2 0 support in Altova Engines 483 fn idref in XPath 2 0 support in Altova Engines 483 fn index of in XPath 2 0 support in Altova Engines 483 fn in scope prefixes in XPath 2 0 support in Altova Engines 483 fn last in XPath 2 0 and whitespace 482 fn lower case in XPath 2 0 support in Altova Engines 483 fn normalize unicode in XPath 2 0 support in Altova Engines 483 fn position in XPath 2 0 and whitespace 482 fn resolve uri in XPath 2 0 support in Altova Engines 483 fn static base uri in XPath 2 0 support in Altova Engines 483 fn system property XSLT 2 0 function 478 fn unparsed text XSLT 2 0 function 478 fn upper case in XPath 2 0 support in Altova Engines 483 FullName 374 394 Function 294 adding 14 adding custom XQuery 238 adding custom XSLT 230 adding custom XSLT 2 0 236 Changing type of user defined 192 complex inline 195 conversion boolean 86 custom 14 exporting user defined 192 extendable 14 generator 135 implementation 224 inline 195 input as parameter 91 library 14 nested user defined 211 null 160 Query 14 restrictions in user defined 192 standard user defined function 197 sum 240 user defined 192 user defined changing type 192 user defined look up function 197 visual builder 192 functions importing user defined 192 mapping to 33 see under XSLT 2 0 functions 478 XP
187. ave been created under the Altova table in the database component The diagram below shows the mapping of the hierarchical Access database to Altova_Hierarchical xsd altova S fy Altova Hierarchical i PAE OAltova p J 4 Primarykey p a n p H 1 ow LA LA KL A K i Y Office Y PrimarypKey ForeignKey ba od i seul De HEI KR Kiechenel ocatial gt De kd Laer bool LA V Ke i F Phone E Address Y PrimaryKey Mapping multiple flat file tables to one XML output file The following diagram shows the same type of mapping to a flat file SQL XML database schema Schema prerequisites e The schema structure has to follow the SQL XML specifications e XMLSpy has the ability to create such an SQL XML conformant file from an SQL database by using the menu option Convert Create Database Schema You can then use the schema as the target in MapForce e In this case each table name is mapped to the row child element of the same element 2006 Altova GmbH Altova MapForce User Manual 82 MapForce How To Mapping multiple tables to one XML file name in the schema i e Address is mapped to the row child element of the Address element amp Altova SOLXML gt ah DS Address o E 7 altova m PrimarpKey gt El lt altova fr ForeignKey S P 3 Address i i El row oe PrimarpKey i LI LA Ka DW DW LV i K V be Ka ke NG Ki LA LA V
188. b General tab e Specify if you want to show the logo on start and or when printing e Enable disable the MapForce gradient background e Define the Default Output Encoding e an execution timeout for the Output tab when previewing the mapping result Libraries tab e Add or delete user defined XSLT or programming language Libraries functions to MapForce Mapping settings Select the menu option File Mapping settings to define e the Application name name of generated Java files used when generating code e Base Package Name when compiling for Java 2006 Altova GmbH Altova MapForce User Manual 334 Code Generator The way to SPL Spy Programming Language 22 The way to SPL Spy Programming Language This section gives an overview of Spy Programming Language It is assumed that you have prior programming experience and are familiar with operators functions variables and classes as well as the basics of object oriented programming which is used heavily in SPL You should also have detailed knowledge of XML Schema The templates used by MapForce are supplied in the MapForce2006 spl folder You can use these files as an aid to help you in developing your own templates How code generator works The basis of the generator are the template files spl The template file is interpreted by the code generator and outputs a cpp java cS source code file or project or any other type of file depending on
189. bH MapForce tutorial Mapping multiple source items to single target items 51 To avoid generating empty tags create a filter such as the one described previously in the tutorial under Filtering data 2006 Altova GmbH Altova MapForce User Manual 52 MapForce tutorial Mapping multiple source items to single target items 3 7 2 Duplicating input items We now need to duplicate the input items to be able to create mappings from a different source XML file To achieve this we will e add the second XML source file and e create mappings from it to the same inputs in the target XML file Duplicating input items 1 Right click the Employee entry in the target XML file 2 Select the menu option Duplicate input fH ExpReport combined CA Align Tree Left 17 Align Tree Right 1 Show Types Duplicate Input Remove Duplicate Database Table Actions Database Key Settings E 3 expense report jg A Company oo detailed Al Employee i SS CUITGPCH Title a Y Person oe Name i First l on Last aon Email oe 3 Title DomesticD ailyRate WM Y Phone ae Y ForengnD ailyR ate Email L 3 Expense detail g Y expense item P 3 expense item Se Currency k DW Ke 2 DW z fo 3 Travel E Heal i E Accommodation E Y Lodging is p Y Entertainment E Travel 5 et Mise S means z k mm Y description ow
190. ccess database as a data source to map database data to a schema To use other databases please see the JDBC driver setup section In the current MapForce release the following databases are supported Microsoft Access 2000 and 2003 Microsoft SQL Server Oracle MySQL Sybase IBM DB2 ADO compatible databases e ODBC databases The table below shows the type of database created the restrictions and the connecting methods when inserting databases Insert Database connection methods Create Schema from Database Supported ODBC restrictions ADO restrictions Oracle OCI database unique keys are not supported by ODBC Microsoft Access OK not not ADO recommended Primary and Foreign keys are not supported MS SQL Server OK ADO Oracle OCI e table ed table containing columns containing columns of type of tyoe CLOB CLOB BLOB BFILE BLOB BFILE XML tables owner XML tables information Identity constraints are not read from the database waooo ok Ke CT SOT Sybase ODBC oo SR RER smo oa ET EE Recommended connection method for each database MySQL When creating the ADO connection based on ODBC it is recommended to use either the User or System DSN Not available Creating the database component in MapForce 1 Select File New in MapForce to create a new mapping 2006 Altova GmbH Altova MapForce User Manual 58 MapForce tutorial Database to schema mapping 2 Clic
191. ce The following section lists all the menus and menu options in MapForce and supplies a short description of each Altova MapForce User Manual 2006 Altova GmbH MapForce Reference File 281 21 1 File New Clears the Mapping tab if a previous mapping exists and creates a new mapping document Open Opens previously defined mapping mfd files Save Saves the currently active mapping using the currently active file name Save As Saves the currently active mapping with a different name or allows you to supply a new name if this is the first time you save it Print Opens the Print dialog box from where you can printout your mapping as hardcopy Print Preview Print Setup Use optimal Cancel f 00 oe didi Fage plit of pictures Ce Prevent I Allow Use current retains the currently defined zoom factor of the mapping Use optimal scales the mapping to fit the page size You can also specify the zoom factor numerically Please note that component scrollbars are not printed You can also specify if you want to allow the graphics to be split over several pages or not Print Preview Opens the same Print dialog box with the same settings as described above Print Setup Open the Print Setup dialog box in which you can define the printer you want to use and the paper settings Validate Mapping Validating a Mapping validates e that all mappings connectors are valid e please note that th
192. ce User Manual 400 The MapForce API Object Reference AddActiveFile Method AddActiveFile aS ProjectItem Description Adds the currently active document to this project item if it is a valid child Otherwise the document is added to the Mapping Folder of the project s root Errors 1700 The object is no longer valid 1701 The file name is empty Invalid address for the return parameter was specified 1703 No active document is available 1704 Active documents needs to be given a path name before it can be added to the project 1705 Mapping could not be assigned to project The file does not exist or is not a MapForce mapping Maybe the file is already assigned to the target folder AddFile Method AddFile i_strFileName as String aS ProjectItem Description Adds the specified document to this project item if it is a valid child Otherwise the document is added to the Mapping Folder of the project s root Errors 1700 The object is no longer valid 1701 The file name is empty Invalid address for the return parameter was specified 1705 Mapping could not be assigned to project The file does not exist or is not a MapForce mapping Maybe the file is already assigned to the target folder Application Property Application aS Application read only Description Retrieves the top level application object Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified
193. ce overview MapForce components A AE Address py PrimaryKey m ForeignKey ka dch ch ch Ecg A Ka Ke G HE Altova E Department k g Office ke Person e Schema component context menu Right clicking a schema component in the Mapping window opens the context menu Align Tree Left Align Tree Right Show Types Show Annotations Duplicate Input Remove Duplicate Database Table Actions Database Key Settings Crit Ctrl C Ctrl Delete Change Root Element Edit Schema definition in MLopy Component Settings Align tree left Aligns all the items along the left hand window border This display is useful when creating mappings from the source schema Align tree right Aligns all the items along the right hand window border This display is useful when creating mappings to the target schema Show types Altova MapForce User Manual 2006 Altova GmbH MapForce overview MapForce components 13 Displays the schema data type of all the schema items Show annotations Shows schema annotations Duplicate input Inserts a copy clone of the selected item allowing you to map multiple input data to this item Duplicate items do not have output icons you cannot use them as data sources Please see the Duplicating input items section in the tutorial for an example of this Remove duplicate Removes a previously defined duplicate item Please see the Duplicating input
194. ce u result namespace uril r position result position i F d State E Lineltems a xslt functions E Lineltem 6 Click the XSLT tab to see the generated XSLT code Altova MapForce User Manual 2006 Altova GmbH Adding custom XSLT 1 0 functions 233 L gt xsl stylesheet version 1 0 xmins sl htth nung w3 org S9SSL Transform mines xsi http lt xshoutput method xml encading LITF 8 gt exshinclude href C Program Files AtovaiMAPPORCEZO04 MapForceeExamples Mame spliter xsi lt xeltemplate match lustomers CompletePo gt i of exehattribute name xsinoNamespaceSchemaLocation C PROGRA 1 AttovaMAPPORCEZO0 l axal for each Select Customer gt fo eCustomer l axal for each zeiect Number i sMumber e xsh value of select fod svNumber efxst for each i exetfor each select FirstName l sl variable name V4 993024 47986944 select f gt sxshvariable name V47993824_47939520 sxe call template name tokenize gt CS with param name string select V4 9956824 47966944 gt sesh call template gt i ahesh variable gt Please note As soon as a named template is used in a mapping the XSLT file containing the named template is included in the generated XSLT code xsl include href and is called using the command xsl call template 7 Click the Output tab to see the result of the mapping lt rxml ersion 1 0 encading LITF 8 LompletePO
195. chieved by adding the number conversion function in the conversion section of the core library to each input node Altova MapForce User Manual 2006 Altova GmbH MapForce How To Priority Context 87 6 5 Priority Context When applying a function to different items in a schema or database MapForce needs to know what the context node will be All other items are then processed relative to this one This is achieved by designating the item or node as the priority context A simplified version of the complete DB CompletePO mfd file available in the MapForceExamples folder is shown below Please note that there are multiple source components in this example ShortPO is a Schema with an associated XML instance file while CustomersAndaArticles is a database schema The data from both are then mapped to the CompletePO schema XML file The priority context icon is enclosed in a circle as a visual indication The CustomerNr in ShortPO is compared with the item Number in the database CustomerNr has been designated as the priority context and is placed in the a parameter of the equal function The CustomersAndaArticles database is then searched once for the same number The b parameter contains the Number item from the database If the number is found then the result is passed to the bool parameter of the filter function The node row parameter passes on the Customer data to on true when the bool parameter is true Le
196. clipse 3 x is an open source framework that integrates different types of applications delivered in form of plugins MapForce for the Eclipse Platform is an Eclipse Plug in that allows you to access the functionality of a previously installed MapForce Edition from within the Eclipse 3 0 and 3 1 Platform Installation Requirements To successfully install the MapForce Plug in for Eclipse 3 0 or 3 1 you need the following e The specific MapForce Edition you intend to use Enterprise Professional or Standard e The Eclipse 3 x package as well as e The appropriate Java Runtime Edition The MapForce Plug in for Eclipse supplies the following functionality e A fully featured visual data mapping tool for advanced data integration projects e Code generation capability in the Edition specific programming languages e MapForce user help under the menu item Help MapForce Table of Contents Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse 261 File Edit Navigate Search Project Insert Component Connection Function Output View Bun Window Help w le Qa Lef A l FY mapForce i Java MapForce Tut ExpReport mfd Eclipse SDK ES core rmof E xp eport a conversion functions E expense report exp boolean result boolean e detailed number result number CUITency string result string an E Person First 7 oo Last Y Title 7 See Y Phon
197. cmpy xml as the input XML instance 2 Insert the MS Access database altova mdb into the mapping 3 Create the following mappings Altova to Altova and Name to Name Please note If all Altova Office etc items are automatically mapped the option Auto connect children is active Select undo and then the menu option Connection Auto connect matching children to disable this option ES Altova_Hierarchical d E y Altova L A HE Address ke 3 PrimaryKey HS Altova K Name 3 fe PrimaryKey E 4 Office PrimarnyKey a A ForeignKey 3 i EMail 4 Established d E l 3 4 Right click the Altova entry and select the menu item Database Table Actions There is currently only one table action column defined in this dialog box Insert All Update if and Delete if table actions are selected by clicking the column header combo box whereas additional table actions can be defined by clicking the Append or Insert Action buttons Database Table Actions Altova PE All input data are compared to the DE table data using the operators i 3 defined here C IF all comparitons are true then the specific action i executed Ge Append Action Insert Action Acton on input data fm Primarykey EH mins m ipo m xsi m schemaLocation m Name Delete data in child tables gnore input child data Office eil Delete Action Use Transactions A
198. code in your application 22 5 3 MapForce code in C applications Having generated the C code in MapForce and defined a folder named output as the output folder 1 Navigate to the output Mapping folder and open the workspace file mapping dsw in MS Visual Studio 6 0 E output CH Altova E AltovaDB E AltovaFunctions E AlkovaxXML 2 Double click the Mapping cpp file to open the mapping project file fl Workspace Mapping 8 project s ze Altova files o S AltovaDe files ze AltovaFunctions files o SI Atova ML tiles vu SI CompletePo tiles eel CustomersAndArticles tiles S 24 Mapping files Si TS Source Files ker TERETE FC L bdeppipohdair cap L StdAtx Cp Header Files Resource Files fey AtovaFunctions a CompletePo a Customers4 nd4rtickes o El ShortPO tiles A snippet of the code is shown below ColInitialize NULL d MappingMainl MappingMainlObject HappingHainit Inject Fun _Ti ShortPO eml _Tt Provider Microsoft Jet OLEDB 4 0 Data Source Customersd nd rticles mdb rig Colminitialize toout lt lt _T OK lt lt endl return catch CAltovaException amp ei Please note that the path names in the generated source code have been deleted for the sake Altova MapForce User Manual 2006 Altova GmbH Code Generator Integrating MapForce code in your application 331 of clarity Looking at MappingMain1 Object Run All para
199. codeDebug stda tz obj Configuration Mapping Wins Unicode Debug Compiling resources Compiling StdaAfs cpp Compiling Mapping cpp HMappingMainl cpp Generating Code Linking Mapping exe U error s OU warning Build Debug Find in Files 1 Find in Files 2 Results SaL Debugging 5 Once the code has been built execute the Mapping exe program to map your data 2006 Altova GmbH Altova MapForce User Manual 320 Code Generator Generating program code ex Cr projects testapps MapforceTest tmp OriginalExamples Mapping Application OK Press any key to continue Altova MapForce User Manual 2006 Altova GmbH Code Generator Code generation tips 321 22 3 Code generation tips Out of memory exceptions and how to resolve them lt periodically occurs that mappings produce a very large amount of code which might cause an out of memory exception during compilation In Java this can be rectified by editing the build xml file used by ANT The generated build xml file is automatically created and placed in the folder you define when generating code Change line 6 from lt javac srcdir com mapforce destdir gt to lt javac srcdir com mapforce destdir fork true memoryMaximumSize 80m gt There is a related issue that might occur when compiling very large projects using ANT which might also result in a java lang OutofMemory exception To rectify this e Add
200. complex outputs e g schema structures if this is an Inline user defined function 2006 Altova GmbH Altova MapForce User Manual 296 MapForce Reference Function Create Output CompletePU sting Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Output 297 21 8 Output The XSLT XSLT2 XQuery Java C or C options allow you to define the target language you want your code to be in Note that the MapForce engine presents a preview of the mapping result when you click the Output tab Please see the MapForce engine section for more information Validate Output XML file Validates the resultant XML file against the referenced schema Save Output XML File Saves the currently visible data in the Output tab Run SQL script Executes the pseudo SQL select statements visible in the Output window when the target component is a database 2006 Altova GmbH Altova MapForce User Manual 298 MapForce Reference View 21 9 View Show Annotations fa Displays XML schema annotations in the component window If the Show Types icon is also active then both sets of info are show in grid form Show Types er Displays the schema datatypes for each element or attribute If the Show Annotations icon is also active then both sets of info are show in grid form Gi Show library in function header _ Displays the library name in pa
201. con of this user defined function e g the and parameter of the first EqualAnd function does not have an input connector The input icon has a dashed outline to show this visually e A default value can be supplied by connecting a component within the user defined function e g using a constant component containing the value true Altova MapForce User Manual 2006 Altova GmbH User defined functions User defined function example 215 H i A mapping from another item mapped to the optional Input takes precedence over the default value E g the and parameter of second EqualAnd function receives input data from the result parameter of the first EqualAnd user defined function 2006 Altova GmbH Altova MapForce User Manual 216 User defined functions User defined function example Person2Details component LH Person2Details gt Details Double clicking this user defined component displays its constituent components shown below What this component does is e Concatenate three inputs and pass on the result string to the output parameter e Double clicking an output parameter allows you to change the parameter name Details and select the datatype String fry concat value H output Details HE input 3 Altova MapForce User Manual 2006 Altova GmbH Chapter 11 Adding custom libraries 218 Adding custom libraries 11 Adding custom libraries MapForce
202. ct equal and click OK to confirm Person table data is only updated if the First names of the source and database field are identical The action taken when this is true is actually defined by the mapping In this case the telephone extension is prefixed by 100 and placed in the PhoneExt field of the Person table 12 Click the Output tab to generate the pseudo SQL statements then click the Run SQL script button to execute the SQL statements This QL statements are only for preview and may not be executed in another To execute these statements use function Generate output fram menu Trans Connect to database using the following connection string Provider Microsott Jet OLEDB 4 0 Data Source C Program Files AttovaihaPr id UPDATE Ferson SET PhoneEsxt 100582 WHERE First vernon Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Fixed Length Text files to a database 181 The telephone extension fields of all persons are Set in the database Person Table eT E TO ernor Callaby 100562 Office an Further 100471 Accounts R Mlatise 100963 Accounting Firstbread 100621 Marketing M Sanna 100753 Art Director Landis 100951 Program Ml Record d i F r r of 71 2006 Altova GmbH Altova MapForce User Manual 182 MapForce CSV and Text files Mapping Fixed Length Text files to a database 8 5 1 Fixed Length Text file options Right click th
203. ct the CSV file you want to use as the source file for this component move Field S re Ze Please note This field can remain empty if you are using the Text file component as a target for another text XML file etc In this case the file encoding automatically defaults to UTF 8 You can define the field type field names formatting etc and click OK to create a text file target Clicking the Output tab then allows you to save this text file by clicking the Save generated output as icon including its mapped contents Entering a name in this text box without using a file extension assigns this name to the 2006 Altova GmbH Altova MapForce User Manual 174 MapForce CSV and Text files CSV file options component Output file Select the target file you want to output data to when generating code with MapForce Make sure that the input and output files are different when generating code or the source file will be overwritten when the code is executed This option is only used when generating code for Java C or C File encoding Allows you to define select the encoding of the input text file If there is no entry in the Input file field then the encoding automatically defaults to UTF 8 CSV Settings Field delimiter Select the delimiter type for the text file CSV files are comma delimited per default You can also enter a custom delimiter in the Custom field Click into the Custom field
204. ctions can be directly dragged into the Mapping tab Once you do this they become function components Ce COTE a3 logical functions equal result a equal b egual or greal result a gt b egual or less result a lt b greater result a gt b less result ach math functions string functions xlt Lg xpath functions lang result lanaf string xl Add Libraries The standard core lang xpath2 and xslt libraries are always loaded when you start MapForce and do not need to be added by the user The Core library is a collection of functions that can be used to produce all types of output XSLT XQuery Java C C The other libraries XSLT XSLT2 XPath2 Lang etc contain functions associated with each separate type of output Please note The XPath 2 0 library and its functions are common to both XSLT 2 0 and XQuery languages Selecting XSLT enables the core and XSLT functions XPath 1 0 and XSLT 1 0 functions XSLT2 enables the core XPath 2 0 and XSLT 2 0 functions XQ uery enables the core and XPath 2 0 functions XPath 2 0 restrictions Several XPath 2 0 functions dealing with sequences are currently not available To use a function in Mapping window 1 First select the programming language you intend to generate code for by clicking one of the output icons in the title bar XSLT XSLT2 XQ Java C or C The functions associated with that language are now visible in the Libraries wind
205. ctive 370 ActiveDocument 365 381 Add custom library 218 user def functions 192 Aggregate function 240 Alternative input data 91 Altova Engines in Altova products 489 Altova XML Parser about 488 Altova XSLT 1 0 Engine limitations and implementation specific behavior 474 Altova XSLT 2 0 Engine general information about 476 information about 476 AltovaXQuery engine 188 Annotation connector 292 Annotation settings connector 67 ANT 103 script 24 309 API accessing 453 documentation 352 overview 353 Application 364 365 for Documents 380 Application name 332 Application object 354 365 Application level integration of MapForce 417 Assume delimiters present 182 atomization of nodes in XPath 2 0 and XQuery 1 0 evaluation 482 ATTLIST DTD namespace URIs 99 Autoconnect child items 19 Auto mapping child elements 19 auto number 135 B Background gradient 332 with gradient 389 Background Information 486 backwards compatibility of XSLT 2 0 Engine 476 Base package 332 Base package name for Java 377 Bool boolean values in XSLT 84 output if false 211 Boolean comparing input nodes 86 values in XSLT 84 Build C build configurations 318 Build xml 309 Builder user defined function 192 2006 Altova GmbH 508 Index C C code 304 code generation 374 compile code 316 enumeration 412 error handling 361 ge
206. ctive at File open H Install Update E Preferences shared with MapForce installation E Open MapForce Options Dialog E Run Debug H Team Restore Defaults Arp e Clicking the Open MapForce Options Dialog button opens the Options dialog which allows you to define the specific MapForce settings i e Libraries Code generation settings etc Double clicking a MapForce mapping file mfd initially opens a message box stating that a MapForce perspective is associated with this type of file and prompts if you want Eclipse to automatically switch to the MapForce perspective in the future These settings can be changed later through the Window Preferences MapForce MapForce Perspective option Le C eclipse31 workspace MyProjectCompletePO mfd S SS x The MapForce Perspective is associated with this File type Should the system S7 automatically switch to this perspective for this File type The associated option is accessible in the the MapForce preferences dialog as well Jh Do not ask again 2006 Altova GmbH Altova MapForce User Manual 266 MapForce plug in for Eclipse MapForce Editor View and Perspectives 20 3 MapForce Editor View and Perspectives The MapForce perspective can be automatically set if you activate the Automatically switch to MapForce perspective at file open in the Window Preferences dialog box You can also use the option described below to enable the perspective
207. d function parameters 14 external functions in XQuery document 479 F Field custom CSV 173 182 delimiter 173 fixed length 175 keys in text files 170 File 281 encoding 173 182 Fill characters fixed length file 182 Fill character removing 175 stripping out 182 Filter complement 37 component tips 96 concatenate don t 96 filtering out records by date 94 map parent items 96 priority context 96 Filtering data 37 Find in result 24 output tab 24 XSLT Output tab 284 Fixed create new empty 182 custom field 182 input file 182 lenght files mapping 164 output file 182 Fixed length mapping 175 text file settings 182 Flat file mapping 164 Flat format mapping 175 fn base uri in XPath 2 0 support in Altova Engines 483 fn collection in XPath 2 0 support in Altova Engines 483 fn count in XPath 2 0 and whitespace 482 fn current date in XPath 2 0 support in Altova Engines 483 fn current dateTime in XPath 2 0 support in Altova Engines 483 fn current time in XPath 2 0 support in Altova Engines 483 fn data in XPath 2 0 support in Altova Engines 483 fn deep equal in XPath 2 0 and whitespace 482 fn document XSLT 2 0 function 478 fn element available XSLT 2 0 function 478 fn format date XSLT 2 0 function 478 2006 Altova GmbH 512 Index fn format dateTime XSLT 2 0 function 478 fn format time XSLT 2 0 function 478 fn function
208. d Options Cancel Please note The database settings defined in this dialog box only affect the Output tab the preview or the generated application they do not override the original database settings selections made when inserting the database component i e connection string selected tables owners views etc Modifications made here i e changing the table name in the DataSc field only affect the SQL code in the Output tab and the generated program code e opening the MFD file accesses the original database component settings e the generated application and the pseudo SQL code in the Output window use the modified settings of the component Generic Database settings DataSrc displays the data source name Catalog displays the name of the specific database User Enter the user name needed to access the database if required Password Enter the password needed to access the database if required Use Transactions Enables transaction processing when using a database as a target A dialog box opens when an error is encountered allowing you to choose how to proceed Transaction processing is enabled for all tables of the database component when you select this option JDBC specific Settings JDBC driver Displays the currently active driver for the database component The default driver is automatically entered when you define the database component You can change the driver entered here to suit your nee
209. d in FAR 12 211 and 12 212 48 C F R 12 211 and 12 212 or DFARS 227 7202 48 C F R 227 7202 as applicable Consistent with the above as applicable Commercial Computer Software and Commercial Computer Documentation licensed to U S government end users only as commercial items and only with those rights as are granted to all other end users under the terms and conditions set forth in this Software License Agreement Manufacturer is Altova GmbH Rudolfsplatz 13a 9 A 1010 Vienna Austria EU You may not use or otherwise export or re export the Software or Documentation except as authorized by United States law and the laws of the jurisdiction in which the Software was obtained In particular but without limitation the Software or Documentation may not be exported or re exported 1 into or to a national or resident of any U S embargoed country or ii to anyone on the U S Treasury Department s list of Specially Designated Nationals or the U S Department of Commerce s Table of Denial Orders By using the Software you represent and warrant that you are not located in under control of or a national or resident of any such country or on any such list GENERAL PROVISIONS If you are located in the European Union and are using the Software in the European Union and not in the United States then this Software License Agreement will be governed by and construed in accordance with the laws of the Republic of Austria excluding its conflict of laws
210. d to correspond to the field lengths in the data source Altova FLF e No data can be seen in the preview as the target component is not based on an existing text file e Clicking the Output tab displays the mapped data Check box Assume record delimiters present e if checked a new record is created after the sum of the defined field lengths i e in this case all fields add up to 71 characters a new record will be created for character 72 Yerno Calaby SDAY callabyminanonull com Office Managert EAEEREN Frankeetel urthereeaes ff turthereinanonull conti Accounts Recelvablesteete 1 2 E L obwvSAV MallzeGg SUD al matisemenanonull commits tAccoaunting Managertteetet 4 Joeteeter irsthread61 firsthreadmenananull comMarketing Manager Europe e if unchecked the mapped data appears as one long string including the defined fill characters VernonttCallabytetaoey callabyi nanonull comt Office Managerttetieteeeee rank Append field Insert field Remove field Allows you to append insert or remove fields in the preview window which defines the structure of the CSV file Next Previous Clicking one of these buttons moves the currently active column left or right in the preview window Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Database to CSV Text files 185 8 6 Mapping Database to CSV Text files This example maps a simple MS Access database altova mdb to a CSV file
211. date Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 372 The MapForce API Object Reference Parent Property Parent aS Document read only Description The parent object according to the object model Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified ShowltemTypes Property ShowItemTypes aS Boolean Description This property defines if types of items should be shown in the mapping diagram Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified ShowLibrarylInFunctionHeader Property ShowLibraryInFunctionHeader aS Boolean Description This property defines whether the name of the function library should be part of function names Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 373 23 2 3 Document Properties and Methods Properties to navigate the object model Application Parent File handling FullName Code generation OutputSettings ApplicationName OutputSettings Encoding JavasSettings BasePackageName GeneratexSLT GenerateCppCode GenerateJavaCode GenerateCHashCode GenerateCo
212. dekx HighlightSerializedMarker View access MapForceView Events This object supports the following events OnDocumentClosed OnModifiedF lagChanged OnDocumentClosed Event OnDocumentClosed i_objDocument aS Document Description This event is triggered when a document is closed The document object passed into the event handler should not be accessed The corresponding open event is Application OnDocumentOpened OnModifiedFlagChanged Event OnModifiedFlagChanged i_bIsModified as Boolean Description This event is triggered when a document s modification status changes 2006 Altova GmbH Altova MapForce User Manual 374 The MapForce API Object Reference Activate Method Activate Description Makes this document the active document Errors 1200 The application object is no longer valid Application Property Application aS Application read only Description Retrieves the application s top level object Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified Close Method close Description Closes the document without saving Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified FullName Property FullName as String Description Path and name of the document file Errors 1200 The application object is no longer valid 1201 Invalid address for
213. describing test eR Italic i sii Trademark Le 3 Keyword E SubSection Further description zseciot Mapping result e The mixed content text of each description has been mapped correctly the text as well as the bold and italic tag content have been mapped as they appear in the XML source file 2006 Altova GmbH Altova MapForce User Manual 72 Source driven mixed content mapping Mixed content example sm version 1 0 encoding LITF 8 7 gt lt Shortinto mis xsi http wavy ap 2 org 2001 AML Schema instance et nohamespaceschemaLocation CUPROGRAW1 AltovadMapF orce2005 MapForceExamplesShortinta vd lt Inta gt es HM Spe Tex Description Attova Bold xMLopy Bold 2005 Enterprise Edition is the industry standard sitalic AMLeMtalic development environment for modeling editing debugging and transtorming all eich talic technologies then automatically generating runtime code in muttiple programming languages lt Description lt nto Altova MapForce User Manual 2006 Altova GmbH Source driven mixed content mapping Source driven mixed content vs standard mapping 73 4 3 Source driven mixed content vs standard mapping This section describes the results when defining standard mappings or using standard connectors on mixed content items The files used in the following example Tut Orgchart mfd are available in the MapForceExamples Tutorial folder Creating stand
214. dices License Information 495 25 3 2 License Metering Your Altova product has a built in license metering module that helps you avoid any unintentional violation of the End User License Agreement Your product is licensed either as a single user or multi user installation and the license metering module makes sure that no more than the licensed number of users use the application concurrently This license metering technology uses your local area network LAN to communicate between instances of the application running on different computers Single license When the application starts up it sends a short broadcast datagram to find any other instance of the product running on another computer in the same network segment If it doesn t get any response it will open a port for listening to other instances of the application Other than that it will not attempt to communicate over a network If you are not connected to a LAN or are using dial up connections to connect to the Internet the application will not generate any network traffic at all Multi license If more than one instance of the application is used within the same LAN these instances will briefly communicate with each other on startup These instances exchange key codes in order to ensure that the number of concurrent licenses purchased is not accidentally violated This is the same kind of license metering technology that is common in the Unix world and with a number of datab
215. dit Undo and Redo The Undo and Redo commands affect all actions copy paste etc made in the development environment including all actions in MapForce Menu Tools Customize Toolbar Commands Customize Toolbars Commands Toolbars _ Image Editor E Layout MapForce Code Generation and Validation F MapForce Create Elements MapForce Main Toolbar MapForce Output Bar E MapForce Select Language F MapForce Text Bar Menu Bar F Query Designer Recorder Report Borders F Report Formatting Source Control Standard Use large icons Show ScreenTips on toolbars Show shortcut keys in Screenvips These tabs contain both Visual Studio NET and MapForce commands Menu View The View menu contains the submenu MapForce which allows you to enable or disable the MapForce tool panes It also gives access to MapForce view settings Menu Help The Help menu contains the submenu MapForce Help which is where you can open the MapForce help It also contains links to the Altova Support center Component download area etc Unsupported features of the NET edition of MapForce Both the Project pane and Project menu are not available in these editions This means that MapForce projects as well as WSDL projects cannot be opened in these editions 2006 Altova GmbH Altova MapForce User Manual Chapter 20 MapForce plug in for Eclipse 260 MapForce plug in for Eclipse 20 MapForce plug in for Eclipse E
216. ds Please make sure that the syntax of Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Component 291 the entry in the Database URL field conforms to the specific driver you choose Database URL URL of the currently selected database Make sure that this entry conforms to the JDBC driver syntax of the specific driver entered in the JDBC driver field User Enter the user name needed to access the database if required Password Enter the password needed to access the database if required ADO OLEDB specific settings Provider Displays the currently active provider for the database component The provider is automatically entered when you define the database component add Options Displays additional database options 2006 Altova GmbH Altova MapForce User Manual 292 MapForce Reference Connection 21 6 Connection Auto Connect Matching Children Activates or de activates the Auto connect child items function as well as the icon in the icon bar Settings for Connect Matching Children Opens the Connect Matching Children dialog box in which you define the connection settings Connect Matching Children This command allows you to create multiple connectors for items of the same name in both the source and target schemas The settings you define in this dialog box are retained and are applied when connecting two items if the Auto connect child items icon in the title bar is ac
217. ds and properties from the MapForce automation interface to perform any other project related operations Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 425 24 2 4 Query MapForce Commands When integrating at document level no menu or toolbar from MapForce is available to your application Instead you can query all the commands and the structure of the application menu at runtime Use the property MapForceControl CommandsStructure to access this information Professional applications will need to integrate this menu in a sophisticated manner into their own menu structure Your installation of MapForce even provides you with command label images used within MapForce See the folder MapForceExamples ActiveX Images of your MapForce installation for icons in GIF format The file names correspond to the labels of commands See the C Example for details of how to use the command structure information to create a menu at runtime 2006 Altova GmbH Altova MapForce User Manual 426 MapForceControl Integration at Document Level 24 2 5 Examples This section contains examples of MapForce document level integration using different container environments and programming languages Source code for all examples is available in the folder MapForceExamples Activex of your MapForce installation C The C example shows how to integrate the MapForceControl in a common desktop applicati
218. duct you have received with this license is pre commercial release or beta Software Pre release Software then this Section applies In addition this section applies to all evaluation and or demonstration copies of Altova software Evaluation Software and continues in effect until you purchase a license To the extent that any provision in this section 1s in conflict with any other term or condition in this Software License Agreement this section shall supersede such other term s and condition s with respect to the Pre release and or Evaluation Software but only to the extent necessary to resolve the conflict You acknowledge that the Pre release Software is a pre release version does not represent final product from Altova and may contain bugs errors and other problems that could cause system or other failures and data loss CONSEQUENTLY THE PRE RELEASE AND OR EVALUATION SOFTWARE IS PROVIDED TO YOU AS IS WITH NO WARRANTIES FOR USE OR PERFORMANCE AND ALTOVA DISCLAIMS ANY WARRANTY OR LIABILITY OBLIGATIONS TO YOU OF ANY KIND WHETHER EXPRESS OR IMPLIED WHERE LEGALLY LIABILITY CANNOT BE EXCLUDED FOR PRE RELEASE AND OR EVALUATION SOFTWARE BUT IT MAY BE LIMITED ALTOVA S LIABILITY AND THAT OF ITS SUPPLIERS SHALL BE LIMITED TO THE SUM OF FIFTY DOLLARS USD 50 IN TOTAL If the Evaluation Software has a time out feature then the software will cease operation after the conclusion of the designated evaluation period Upon such expiration date
219. due to the fact that the application cannot automatically decide which tables will be used in the mapping process all possibilities have to be covered These type of large databases increase the size of the database component exponentially which can lead to performance or memory issues The solution to this dilemma is to create multiple database components of the same database which only use import those tables that are needed for the mapping process This method also makes for a more intuitive mapping E g In a production company various components are assembled to produce customer defined units Before delivery the units undergo a unit test and all results are stored in a database At some point during the prototype testing phase it is discovered that a batch of components are faulty and a recall has to be initiated The goal of the mapping is to generate a list of all affected customers to whom a letter must be sent In this case the mapping defines For the ComponentType name Prototype AND the Manufacturer Noname Select all related Customers and their requisite details The relationship diagram of the example database discussed in this section is shown below Seriallr Custo l Froduced t ID Testedat CustomerID Delivered at el Component TypelD Serialhr Aai Manufacturer Spec Amount Cost Name Department Phone EMail Pager Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases
220. e Java internal usage Driver oracle jdoc OracleDriver URL jdbc oracle oci localhost Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Development environments for code generation 105 7 2 Development environments for code generation Below is a list of the requirements for each of the development environments as well as other tools that are needed when generating code using MapForce Java Minimum requirements Java2 SDK SE Standard Edition 1 4 1 Apache ANT 1 5 3 Other vendor supported IDEs Borland JBuilder 8 Optional Sun 1 Studio import of ANT build file into IDE C Minimum requirements Microsoft Nei Framework SDK 1 0 for compilation and build process Additionally Microsoft Visual Studio NET 2002 2003 Microsoft Visual Studio NET 2005 Borland C Builder 1 0 MONO 0 26 Optional C Minimum requirements Microsoft Visual Studio 6 0 for compilation build process and as IDE 2006 Altova GmbH Altova MapForce User Manual 106 MapForce and Databases Mapping XML data to databases 7 3 Mapping XML data to databases MapForce allows you to not only map database data to XML documents but you can do the reverse as well map XML data to databases and even create mappings between databases MapForce takes primary and foreign key constraints into account and also generates transaction data which ensure data integrity Database functions table actions currently supp
221. e Tut ExpReport mfd Eer File Edit Insert Project Component Connection Function Output wiew Tools Window Help De Slo mo Bs BX oh Ge ae Dasa to ye ce TEENEST we RE Project aux E ml ExpReport Si ExpReport_ Tutorial E Y expense report exp a E 7 Com EN Mapping Folder 2 e detailed 5 H En e Tut ExpReport r currency Ect M Tut headerD eta a Ch Person valuel amp ne oF a Y First valez Ej result 2 be WAN 7 Sie Last valued 7 ae COP 2 S Title i We Or ioe F Phone jn CPF 2 e Y Email La E 2 ee YE E expense item E me type Se 7 eg expto 2 7 Sieg Date ed E Meal fe aan mealtype oe 2 7 Gg Name LU fa filter i 2 2 7 Se Location D A ie a 4 d Happing MOLT Output BY Tut headerDetail md gt x Cyerview 7 A Messages 7 A II sel Libraries Project Ready CAP NUM SCRL g 2006 Altova GmbH Altova MapForce User Manual 8 MapForce overview Terminology 2 1 Terminology Library A Library is a collection of functions visible in the Libraries window There are several types of functions core and language specific as well as user defined functions Please see the section on functions for more details Component In MapForce a component is a very generic object Almost all graphical elements you can insert import or place in the Mapping tab become components Components are recog
222. e a3 logical functions equal result a equal b equal or qre result a gt b equal or les result a lt b Greater result a gt b 2 F Email less result az b E expense item logical and result logical an logical not result logical na logical or result logical or Hot equal result logical na a Y Meal on mealtype el math functions PL fi Dier add result value i ceiling result ceilingl w Mapping ALT Output divide result value floor result floor vali modulus result value rm multiply result value d dell me rom ilk zs FCO wel LA Add Libraries writable 2006 Altova GmbH Altova MapForce User Manual 262 MapForce plug in for Eclipse Installing MapForce plugin 20 1 Installing MapForce plugin Installing the MapForce Plug in for Eclipse To install the MapForce Plug in e Download and install the MapForce edition you intend to use from the Download section of the Altova com website i e Enterprise Professional or Standard edition e Download and install the MapForce Plug in for Eclipse from the Download section of the Altova com website You will be prompted for the installation folder of Eclipse during the installation process Configuring an eclipse installation to use a previously installed MapForce plug in 1 Start Eclipse and select the menu option Help Software Updates Manage Configuration 2 Select the menu option File Add an extension location
223. e creates a new file the file has to be closed with the close instruction append filename appends items to a specific file the file has to be closed with the close instruction 2006 Altova GmbH Altova MapForce User Manual 340 Code Generator The way to SPL Spy Programming Language 22 7 6 Conditions adding conditions to your code if SPL allows you to use standard if instructions the syntax is as follows if condition instruction block else instruction block endif or without else if condition instruction block endif Please note that there are no round brackets enclosing the condition Conditions As in any other programming language conditions are constructed with logical and comparison operators which are Logical operators Operator perator in SPL And T Comparison operators Not equal Equal Greater than Greater than or equal Less than or equal A sample if instruction with a condition looks like this if namespace ContainsPublicClasses and namespace Prefix lt gt whatever you want inserts whatever you want in the resulting file endif Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 341 22 7 7 foreach Vectors and iterators A vector is a collection of objects like a ordinary array Iterators solve the problem of storing and incrementing array indexes when accessing obj
224. e 371 Install plug in for Eclipse 262 Instance input XML instance 288 output XML instance 288 Integrate into C 328 into C 330 into Java 326 Integrate MapForce code 325 Integrating MapForce in applications 416 Internet usage in Altova products 492 Introduction code generator 305 Introduction to MapForce 3 Item 380 duplicating 52 Rows 168 schema mapping 30 Iterating through text files 168 Iteration priority context 87 J Java Ant scripts 24 code 304 code generation 375 generate code 309 generate multiple target 46 integrate generated code 326 JBuilder 310 JBuilder project file 24 JDBC setup 103 mapping database data 60 multiple targets 43 options 377 386 settings 332 Sun ONE studio 312 2006 Altova GmbH 514 Index JavaScript License metering error handling 361 in Altova products 495 JBuilder 103 Load Java generate code 310 DB loading errors 95 project file 24 Logo JScript code generation sample 355 K Key database 130 fields in text files 170 L Label connector 67 last function in XPath 1 0 474 last function in XPath 2 0 see fn last 482 Legal information 493 Lib compiler settings 332 Library add custom 218 adding XQuery functions 238 adding XSLT 2 0 functions 236 adding XSLT functions 230 C 225 custom 14 defining component UI 222 function 14 generator function 135 import use
225. e Apache Software Foundation Akko ww apache org Feature Details Plug in Details Configuration Details 2 Click the MapForce icon to view the version specifics 2006 Altova GmbH Altova MapForce User Manual 264 MapForce plug in for Eclipse Starting Eclipse and using MapForce plugin 20 2 Starting Eclipse and using MapForce plugin Ce Workbench 50 to the workbench Place the cursor over the arrow symbol and click when the Go to the workbench text appears This opens an empty MapForce window in Eclipse Starting Eclipse and Using MapForce Plug in Having used the MapForce for Eclipse installer you are presented with an empty Eclipse environment Java Eclipse SDK 5 x Fie Edit Navigate Search Project Run Window Help I ES OR oO G sei l Java EEG Swe o 0n Neviastor XI fz outing SN den OES An outline is not available 0 errors D warnings D infos In Folder MapForce MapForce properties 1 Select the menu option Window Preferences and click the MapForce entry 2 Activate the available check box to switch to the MapForce perspective when opening a file Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse Starting Eclipse and using MapForce plugin 265 Preferences 2 Ioj ES type filter text sl Mapntorce CO e Co ER General EI Ant MapForce Perspective EI Help Automatically switch to MapForce perspe
226. e HRESULT to detect errors VisualBasic scripting languages and other high level development environments do not give the programmer access to the returning HRESULT of a COM call They use the second error raising mechanism supported by the MapForce API the IErrorInfo interface If an error occurs the API creates a new object that implements the TErrorInfo interface The development environment takes this interface and fills its own error handling mechanism with the provided information The following text describes how to deal with errors raised from the MapForce API in different development environments VisualBasic A common way to handle errors in VisualBasic is to define an error handler This error handler can be set with the On Error statement Usually the handler displays an error message and does some cleanup to avoid spare references and any kind of resource leaks VisualBasic fills its own Err object with the information from the LErrorInfo interface Example Sub Validate place variable declarations here set error handler On Error GoTo ErrorHandler if generation fails program execution continues at ErrorHandler objMapForce ActiveDocument GenerateXSLT additional code comes here exit Exit Sub RrrorHandler MsqgBox Error amp Err Number vbOb Jecthrror amp Chr 13 S Description amp Err Description End Sub JavaScript The Microsoft implementation of JavaScript JScript provides a t
227. e objMapForce Visible true catch err WScript Echo Can t access or create MapForce Application eege EEN See eS eee Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 365 Events This object supports the following events OnDocumentOpened OnPro ectOpened OnDocumentOpened Event OnDocument Opened i_objDocument aS Document Description This event is triggered when an existing or new document is opened The corresponding close event iS Document OnDocumentClosed OnProjectOpened Event onProjectOpened i_objProject aS Project Description This event is triggered when an existing or new project is loaded into the application The corresponding close event is Project OnProjectClosed ActiveDocument Property ActiveDocument aS Document read only Description Returns the automation object of the currently active document This property returns the same aS Documents ActiveDocument Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified ActiveProject Property ActiveProject aS Project read only Description Returns the automation object of the currently active project Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Application Property Application aS Application read only Description Retrieves the application s top l
228. e path value C HelloWorldLibrary gt lt setting name include value Greetings h gt lt setting name source value Greetings cpp gt lt implementation gt e namespace is the namespace in which your Greetings class will be defined It must be equal to the library name e path is the path in which the include and the source files are to be found e The source files will then be copied to the directory targetdir libraryname defined when selecting the menu option File Generate xxx code and selecting the directory e If you have multiple include files or source files just add an additional setting element for include or source All the include files you supply will be included in the generated Algorithm Adding a component Each component you will define will be located within a function group Staying with the helloworld example lt group name string functions gt lt component name hello gt lt component gt lt Grouo gt Please make sure the component name hello is in lowercase or it will not appear in the library window 2006 Altova GmbH Altova MapForce User Manual 222 Adding custom libraries Defining the component user interface 11 2 Defining the component user interface The code shown below defines how the component will appear when dragged into the mapping area lt component name hello gt lt sources gt lt datapoint name greeting_type datatype boolean gt l
229. e Altova FLF Text file component and select Component Settings to open the dialog box Fixed Length Text import export options When defining field formats in this dialog box type checking of the respective fields is automatically performed If the inout data and the field format defined here to do not agree then the data is highlighted in red Please note The field types that one can select for a specific column are based on the default XML schema datatypes E g The Date type is in the form YYYY MM DD Text import export Input Output File JAPFORCE 2008 MapForce xamples TutorialsAltovarFLF tit Input file Output file Cancel File encoding C Little endiar bi Unicode UTF 8 Litte endian byte onder Big endian byte order Fited Length Field Settings Fill Character Space Period Ce Custom Assume record delimiters present i coy f Fired Tel Ext Email Title a e E string string string 8 E 3 25 25 Vernon Calaby 582 v callaby nanonull comee Office M Further 471 f furthergnanonull comeet Account Input file Select the text file you want to use as the source file for this component Please note This field can remain empty if you are using the Text file component as a target component for a mapping In this case the file encoding automatically defaults to UTF 8 You can define the field type field names formatting etc and click OK to create a text file tar
230. e Generator The way to SPL Spy Programming Language Function return values To return a value from a subroutine use the return statement Such a function can be called from within an expression Example define a function Sub MakeQualifiedName ByVal SnamespacePrefix ByVal SlocalName if SnamespacePrefix return SlocalName else return SnamespacePrefix amp amp SlocalName endif EndSub Subroutine invocation Use call to invoke a subroutine followed by the procedure name and parameters if any Call SimpleSub or Call CompleteSub FirstParameter SParamByValue ParamByRef Legal parameter types Variables strings numbers true and false are the only data types that may currently be used within parameters Do not use expressions To invoke a function any subroutine that contains a return statement simply use its name inside an expression Do not use the call statement to call functions Example SQName MakeQualifiedName namespace entry Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 345 Subroutine example Highlighted example showing subroutine declaration and invocation A sample SPL fife create Soutputpath amp S module amp output tet define sub SinpleSubf sub Li S5impleSub called endsub execute sub SimpleSubt call SParanby Value ParamBy alue ParanbyRet ParanbyRet Ori
231. e and target keys are not identical i e source keys exist which have no match in the target database the update if condition fails therefore e none of the Department records are updated Processing sequence Person table Person table Update if condition true source and target keys are identical therefore e update each Person record where the keys are identical e if records exist in the database with no counterpart in the source file then these records are retained and remain unchanged Person table Update if condition false source and target keys are not identical i e source keys exist which have no match in the target database the update if condition fails therefore e move on to the next Table Action column Insert Rest e insert the new Person records into the Person table if any exist In this case two new person records are added to the Admin department with the person primary keys of 30 and 31 respectively 2006 Altova GmbH Altova MapForce User Manual 122 MapForce and Databases Mapping XML data to databases Microsoft Access Altova Table d File Edit View Insert Format Records Tools Window Help A foel H SY wy hale E PrimaryKey a ae a a 1 http iewe ml Atto iiaa alto http fan wc httg A E r es se 1 The company wa officemnanonul 1992 04 01 a EES 1 Admin PrimaryKey EMail TI First Last 1 A Algnchomicrotech co Albert Aldrich 2 b banderaimicrotech cor Ber
232. e comparing two values all input values are converted to a common datatype Using the previous example the datatype string is less restrictive than integer Comparing integer value 4 with the string 12 converts integer value 4 to the string A which is then compared with the string 12 The type handling for comparing mixed types follows the XSLT2 guidelines and prevents any content sensitive type conversion strategies The advantage is that the logic is fixed by the mapping and does not change dynamically Additional checks Version SP2 additionally checks mappings for incompatible combinations and raises validation errors and warnings if necessary Examples are the comparison of dates with booleans or datetimes with numerical values In order to support explicit data type conversion Version SP2 introduces three new type conversion functions to the core library boolean number and string In the previously mentioned context these three functions are suitable to govern the interpretation of comparisons SCH COTE L3 conversion functions boolean result boolean arg number result number arg string result string arg ei logical functions equal result a equal b Adding these conversion functions to input nodes of related functions might change the common data type and the result of the evaluation in the desired manner E g if string nodes store only numeric values a numerical comparison is a
233. e component In this case all tables can be rolled back Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 133 MAPFORCE Database Transaction Exception x Error in Transaction Jauthors_1 Reason for the error Violation of PRIMARY KEY constraint UPK CL _auidind Cannot insert duplicate key in object authors SOL statement INSERT INTO dbo authors au_id au_lname au_ fname phone address city state VALUES 1 f2 32 71 76 Mute Johnson 408 496 7225 1 0932 Bigge F Cp Choose how to continue f Rollback this transaction and stop C Rollback this transaction and continue Rollbackscontinue for all further errors C Rollback all and stop This action it available when Use Transactions ie set in the database component settings Cancel No Transaction options set If the transaction check box has not been activated in the table options or in the component settings and an error occurs e Execution stops at the point the error occurs All previously successful SQL statements are executed and the on trues are stored in the database Transaction option set at database component level e Execution stops at the point the error occurs All previously successful SQL statements are rolled back No changes are made in the database All previously successful SQL statements for that for the database and all its t
234. e current release supports mixed content mapping Please see Validating mappings for more information Generate code in selected language Generates code in the currently selected language of your mapping The currently selected 2006 Altova GmbH Altova MapForce User Manual 282 MapForce Reference File language is visible as a highlighted programming language icon in the title bar XSLT XSLT 2 XQuery Java C or C Generate code in XSLT XSLT2 This command generates the XSLT file s needed for the transformation from the source file s Selecting this option opens the Browse for Folder dialog box where you select the location of the XSLT file Note the name of the generated XSLT file s is defined in the Application Name field of the Mapping Output dialog box This dialog is opened by selecting File Mapping Settings menu option A notification appears when the process has been completed successfully Generate code in XQuery This command generates the XQuery file s needed for the transformation from the source file s Selecting this option opens the Browse for Folder dialog box where you select the location of the XQuery file Note the name of the generated XQuery file s is defined in the Application Name field of the Mapping Output dialog box This dialog is opened by selecting File Mapping Settings menu option A notification appears when the process has been completed successfully Generate code in
235. e missing is null is not null substitute null O Find rticle POArtN Y SinglePrice Amount 4 Price Inline user defined functions do not support e The setting of a priority context on a parameter e Recursive calls to user defined functions Code generation In essence an inline user defined component implements the constituent components of the user defined function instead of generating a function call All parameters are evaluated and purged If the user defined function is defined as inlined filters and exists like functions can be used because MapForce generates code that works exactly as the function s constituent components 2006 Altova GmbH Altova MapForce User Manual 196 User defined functions Inline vs Standard user defined functions Standard user defined function support e Only simple input components e Only a single output component e Recursive calls to user defined functions where the exit condition must be supplied e g use an If Else condition where one branch or value exits the recursion e Setting a priority context on a parameter M LookupPerzon HE Office_ Name fresult HE First Name Last Name Please note Although Standard user defined functions do not support complex input and output components they can be created in this type of function An error message appears when you try to preview the result of the mapping and prompts if you want to change the current St
236. e passed on if the condition is false e The result parameter outputs the data supplied by the value true false input parameters Exception el The exception component allows you to interrupt a mapping process when a specific condition is met Please see MapForce Exceptions for more information 2006 Altova GmbH Altova MapForce User Manual 286 MapForce Reference Project 21 4 Project MapForce supports the Multiple Document Interface and allows you to group your mappings into mapping projects Project files have a mfp extension Add files to project Allows you to add mappings to the current project through the Open dialog box Add active file to project Adds the currently active file to the currently open project Create Folder This option adds a new folder to the current project structure and only becomes active when this is possible The default project settings can be applied or you can define your own by clicking the Use following settings radio button Project Item Properties x Mame New Folder 4 Code Generation Settings Use following settings Output Directory Browse Language ES LT sl nt Remove item Removes the currently selected item from the project tree Project properties Opens the Project properties dialog box Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Project 287 Project Settings my xi Project Mame Duen Pers
237. e section Connect matching Children dialog box This command allows you to create multiple connectors between items of the same name in both the source and target components 1 Connect two parent items that share identically named child items in both components 2 Right click the connector and select the Connect matching child elements option MW Joore Namespaces W Recursive M Mix Attributes and Elements Existing Connections Jh gnore existing output connections Ce Retain C Overwrite Delete all existing OUR Cancel 3 Select the required options discussed in the text below and click OK to create the Mappings Mappings are created for all the child items that have identical names and adhere to the settings defined in the dialog box Please note The settings you define here are retained and are applied when connecting two items if the Auto connect child items icon in the title bar is active Clicking the icon switches between an active and deactive state Ignore Case Ignores the case of the child item names Ignore Namespaces Ignores the namespaces of the child items Recursive Having created the first set of connectors the grandchild items are then checked for identical names If some exist then connectors are also created for them The child elements of these items are now checked and so on Mix Attributes and Elements Allows the creation of connectors between it
238. easenithecsaut cpsatani oiir rae aroi 309 Generating Java code using JBuilder srs swonnssinesdiecaossavesdestouncnnencontansedsedaosse 310 Generating Java code using Sun ONE Studio 312 E EE 30616 E a E eer eC Tm nt ms eer nr nen tee cnn 316 22 2 3 Generating E 318 GE Code gon ran EE 321 224 COde generation mapping example ep sa cccccavosctgepsaccenceve sotgendunctatevanconensenetneevacctaensencuuneuss 322 22 5 Integrating MapForce code in your application 0ssssssooeeeneeessssssssssssssseeterrerssesssss 325 22 5 1 MapForce code in Java applications ccccccccccccsssssssssseseeseeeeceeeeeeeeeeeaaas 326 22 5 2 MapForce code in CH applications ccccccccccccccceceeessssesseseseeeeeeeeeeeeeeeeaaas 328 22 5 3 MapForce code in C applications 0 0 cccccccccsssssssssssssseseeeeeeeeeeeeeseeaaas 330 220 Code generator ODLIOIG siessen E ea E e EE aa S NES 332 22 7 The way to SPL Spy Programming Language cc cccccccecceceeeeeeeeeeeeeeeeeeees 334 Seck Eeer 335 Dl OMICS ap E E E E S 336 e e Ee 337 221A GlOWAl ODICCUS seers eaa EER EE rE 338 Laa Ke EI 339 SEELEN egen 340 Ge Ge Me EE 341 EE ENEE tex NO LINCS esere E iar a a 342 2219 SUDCOV EE 343 KE 343 Altova MapForce User Manual Subroutine iVGecgdffon ceccccececcccccecccccecccecuccccscscuecascscecusususcscecucususcecucsuecess 344 KE 345 225110 Built mi Types ceecee EEEa EE ES 347 EE 347 CASS eebe 347 Eege 348 TACO eege 349 Ee 350
239. ecified QualifiedName Property QualifiedName aS String read only Description Retrieves the qualified name of a Web service item Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 405 Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1702 The project item is not a part of a Web service Remove Method Remove Description Remove this project item and all its children from the project tree Errors 1700 The object is no longer valid WSDLFile Property WSDLFile aS String read only Description Retrieves the file name of the WSDL file defining the Web service that hosts the current project item Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1702 The project item is not a part of a Web service 2006 Altova GmbH Altova MapForce User Manual 406 The MapForce API Enumerations 23 3 Enumerations This is a list of all enumerations used by the MapForce API If your scripting environment does not support enumerations use the number values instead Altova MapForce User Manual 2006 Altova GmbH The MapForce API Enumerations 407 23 3 1 ENUMCodeGenErrorLevel Description Enumeration values to identify severity of code generation messages Possible values eCodeGenErrorLevel_ Information eCodeGenErrorLevel_ Warning eCodeGenErrorLevel_
240. ect from expense item where type Travel Most of the work is now done by the database and the resulting dataset is then passed on for further processing The MapForce functions that support direct queries are show below Operators available for all database types MapForce function Database function equal not equal lt gt equal or greater gt equal or less an less KC greater gt logical or or logical and and add subtract Ka multiply nan divide S modulus Ao Functions for all database types logical not not Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database filters and queries 159 MS SQLServer specific functions MapForce function floor ceiling round concat substring contains string length uppercase lowercase find substring empty MS Access specific functions MapForce function round concat substring contains string length uppercase lowercase find substring empty Database function FLOOR CEILING ROUND SUBSTRING CHARINDEX LEN UPPER LOWER CHARINDEX IsEmpty Database function Round Mid InStr 1 Len UCase LCase InStr 1 IsEmpty 2006 Altova GmbH Altova MapForce User Manual 160 MapForce and Databases Database null processing functions 7 9
241. ect Reference 399 23 2 9 Projectitem Enterprise or Professional Edition Properties and Methods Properties to navigate the object model Application Parent Project tree navigation CounG Item NewEnum Project item properties Kind Name WSDLFile only available to Web service project items QualifiedName only available to Web service project items Project tree manipulation AddActiveFile only available to folder items AddFile only available to folder items CreateFolder only available to folder items CreateMappingForPro ject only available to Web service operations Remove Document access Open only available to mapping items and Web service operations Code generation CodeGenSettings UseDefault CodeGenSettings OutputFolder CodeGenSettings Language GenerateCode GenerateCodekEx GenerateCodelin GenerateCodelInkx For examples of how to use the properties and methods listed above see Example Project support Note that in order to use these properties and methods you will need to have the Enterprise or Professional edition of MapForce installed on your computer For operations with Web services the Enterprise edition is required _NewEnum Property NewEnum aS Unknown read only Description This property supports language specific standard enumeration Errors 1700 The object is no longer valid Examples See Project Item Or Project NewEnum 2006 Altova GmbH Altova MapFor
242. ections Je Ignore existing output connections f Retain C Overwrite Delete all existing 2 Activate all four check boxes and click OK E mf ExpReport E ExpReport T arget G expense report a F Company Se detailed E Employe E currency e Title 4 Person p F First 7 ee Y Last Title 7 ae gt Phone i Email E expenze item L Mappings have been automatically created for the Title and Email items of both schemas 3 Click the Output tab to see if there is a result sg dcnl version 1 0 encoding UTF 07 gt Company ml xsi http e w 2 org 200 ML Schema instance gt Employee lt Tithe Project Manager Titlhe gt lt Email t landisminanonull com Email JEmployee gt flompany Z E 4 5 G T a 2006 Altova GmbH Altova MapForce User Manual 32 MapForce tutorial Mapping schema items You will notice that the Title and Email fields contain data originating from the XML Instance document 4 Click the Mapping tab to continue mapping Please note The settings you select in the Connect Matching Children dialog box are retained until you change them These settings can be applied to a connection by either using the context menu or by clicking the Auto connect child items icon to activate or deactivate this option Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Using functions to map data 33
243. ects foreach example foreach class in classes if not Sclass IsInternal class class Name endif next The first line classes is the global object of all types classes is also a vector a collection of single class objects Foreach steps through all the items in classes and executes the code within the instruction In each iteration class is assigned to the next class object You simply work with the class object instead of using classes i gt class gt Name as you would in C foreach is executed till the next instruction 2006 Altova GmbH Altova MapForce User Manual 342 Code Generator The way to SPL Spy Programming Language 22 7 8 Adding text to files lterating through collections and incrementing variables will not generate compilable files Text not enclosed by and is written directly to the file It s similar to using javascript in ASP If you want to place the value of a variable in the result document use the following method The result of your calculation is x so have a nice day assuming that the value of variable x is 23 the file output will be The result of your calculation is 23 so have a nice day Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 343 22 7 9 Subroutines Code generator supports subroutines in the form of procedures or functions Features e By value and by reference pa
244. ee ee 87 Command line Er 89 Input values overrides and command line parameterg 91 Filtering database data by date rsen E EE eases 94 Specifying alternate database resources sseesessesssssesssesssssresessesessseeseseeereesseeeeses 95 Filter components Eeer 96 ee E EE 98 Using DTDs as schema components 2 0 0 ccecccccceecceeeeaeeeeeeseeeeeeeeeeeeeeeeeeeeaaaaseaeessees 99 MapForce and Databases 102 IDEC e 10 a nee nen teense ener ee eee eee ee ee 103 Development environments for code generation sssssssssssssssssssssssssssssssssssssssssesseeee 105 Mapping XML data to databases E 106 7 3 1 Setup of XML to database mapping ossnenneseesssssssssssssseseeereerssessssssssssss 107 7 3 2 Components and table relationships cc cccesssssseeeseeeeeeeceeeeeeeeeeeaaaeeeeeeees 110 ede Database ACTION UNS CLE TTT 112 Tote Database action Update E 117 Update if combinations with delete Child dot 122 7 3 5 Database action RTE 127 lao Database key SEMINO oo ccca coset sca cousepcauaasenseneeneiasnccurseauausysctusarencaesessiicasisess 130 7 3 7 Database Table Actions and transaction processing cccccccceeeeeeeeeeeeeeeees 131 V3 8 Geneceratne EE ValUES c c2ssiiccccasedesadbsatesesanccencncbsloestancdaiaadebinsbearcscedoaiiorts 135 Database relationships and how to preserve or discard them ccccccccsecssssseeeeees 136 Database feature NACI sieerricrnrenra niar E ERRA E TEE 138 7 5 1
245. ees 10 2 Standard user defined function ccc cc ec cecscecceccsccececceccscesceccecescesees 10 3 Complex user defined function XML node as input eee 10 3 1 Complex input components defining cc ecceeeeeeeees 10 4 Complex user defined function XML node as output ee 10 4 1 Complex output components defining 0 0 0 eeeeeeeeeeees 10 5 User defined function example cccccccccccccccceccccceeececceeeeeeeeeeeeeeeees 11 Adding custom libraries RN eg A the r gare ccicss tects tuendecaenteranabacncenaes tasers buepdodetntavanesaursouess 11 2 Defining the component user interface 0 0 0 ccccccccessssseeeeeeeseeeeeeeees 11 3 Function implementation details ccccccccccceccccececeeeessessesseeeeeeeeees 114 Write your e EE 12 Adding custom XSLT 1 0 functions Altova MapForce User Manual 13 Adding custom XSLT 2 0 functions 236 14 Adding custom XQuery functions 238 15 Aggregate functions summing nodes in XSLT1 and 2 240 16 Type conversion checking 244 17 MapForce Exceptions 246 18 MapForce engine 250 19 MapForce plug in for MS Visual Studio NET 254 19 1 Opening MapForce files in MS VS NET 255 19 2 Differences between NET and standalone versions ccccceeceeceecceeeeeeeeeeeeeeeeeees 257 20 MapForce plug in for Eclipse 260 20 1 Installing MapForce plugin ccc eeeessessseeecccccececeeeeaaaaeeessseeseeeeccceeeeeeseeeaaaagesssssses 262 20 2
246. eholderwindowIC Size TabIndex TabStop Tag Visible axMapForceControlOutput Default False Top Left True Bottom HoContral PTF 473 False Private MapForcex alidationWindow 620 152 d True True The Placeholders also have the Anchor and Dock properties set in order to react on resizing of the Frame window Placeholder on a separate Toolwindow lt is also possible to place a Placeholder control on a separate floating Toolwindow To do this create a new Form as a Toolwindow and add the control as shown above The Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 429 MapForceOverviewWnd in the sample project contains the Overview window of MapForce Properties of the Overview Toolwindow DataBindings DynamicProperties Marnie axMapForceControlOverview 4ccessibleDescription AccessibleName 4ccessibleRole Default AllowDrop False Anchor Top Bottom Left Right Causes alidation True Dock None ImeMode HoContral Location 0 Locked False Modifiers Public PlaceholderWwindowIb MapForcexOverview Window Size 2792 766 TabIndex Oo TabStop True Tag visible True However all Placeholder controls need a connection to the main MapForceControl Normally this connection can be established automatically and there is nothing more to do The two placeholders on the MDI Frame work like this In the case of the Placeholder control in the Toolwindow we
247. elow The Library Name The library name is found in the mff file line shown below Please make sure that the library name is written in lowercase letters lt mapping xmlins xsi http www w3 org 2001 XMLSchema instance xS1l noNamespaceSchemaLocation mff xsd version 2 library helloworld gt The entry that will appear in the libraries window will be called helloworld Note that the library will not appear immediately after you have clicked the Add button in the Settings dialog box Libraries are only displayed if at least one component exists containing an implementation for an enabled programming Language Libraries and their functions can be toggled on or off by deleting or adding the respective library file mff To add the new mff file to the libraries pane 1 Click the Add libraries button 2 Click the Add button in the libraries dialog box 3 Select the MFF library you want to include and click Open to load the file in the Options dialog box Implementations Element for the helloworld library lt mapping xmlns xsi http www w3 org 2001 XMLSchema instance XS1 noNamespaceSchemaLocation mff xsd version 2 library helloworld gt lt implementations gt lt implementation language cs gt lt setting name namespace value HelloWorldLibrary gt lt setting name class value Greetings gt lt setting name reference value C HelloWorldLibrary He lLloWorlobiabrary dli gt lt implementat
248. em Currency USD Bill to Sales 2 Dete 2003 01 02 lt Dates Date 2003 01 01 lt Date gt Date gt 2003 07 07 Date gt Dates 2003 02 02 Date gt 2 Dete 2003 03 03 lt Dates sfexpense item lt JEmployee gt flompany gt There are currently five items originating from the assigned XML instance file 2006 Altova GmbH Altova MapForce User Manual 36 MapForce tutorial Using functions to map data Please note Functions can be grouped into user defined functions components to maximize screen space Please see the section on User defined functions components for an example on how to combine the concat and constant functions into a single user defined function component Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Filtering data 37 3 4 Filtering data The aim of this section is to filter out the Lodging and Meal expenses and only pass on the Travel expenses to the target schema document This will be done by Using the Equal function to test the value of a source item Using a Constant function to supply the comparison string that is to be tested Using the Filter function which passes on the Travel data if the bool input value is true Placing the on true result of this process into the expense item element of the target schema document Filtering data 1 Insert a constant component and enter the string Travel in the input field Mileage i m Parking
249. ems of the same name even if they are of different types e g two Name items exist but one is an element the other an attribute If set active a connecior is created between these items Existing connections Altova MapForce User Manual 2006 Altova GmbH MapForce overview Mapping between components 21 Ignore existing output connections Creates additional connectors to other components even if the currently existing output icons already have connectors Retain Retains existing connectors Overwrite Recreates connectors according to the settings defined Existing connectors are scrapped Delete all existing Deletes all existing connectors before creating new ones 2006 Altova GmbH Altova MapForce User Manual 22 MapForce overview Validating mappings and mapping output 2 6 Validating mappings and mapping output Validating a Mapping validates e that all mappings connectors are valid e please note that the current release supports mixed content mapping Connectors and validation lt is not mandatory for functions or components to be mapped The Mapping tab is a work area where you can place any available components XSLT 1 0 XSLT 2 XQuery Java C or C code is only generated for those components for which valid connections exist To validate your mapping e Click the Validate Mapping icon or select the menu item File Validate Mapping e Click one of the preview tabs XSLT XSLT
250. enerated by MapForce to aid in compiling the Java code see the section on JDBC driver setup for more information 2006 Altova GmbH Altova MapForce User Manual 48 MapForce tutorial Mapping multiple source items to single target items 3 7 Mapping multiple source items to single target items In this section two simple employee travel expense reports will be mapped to a single company report This example is a simplified version of the mapping you have already worked through in the Multiple target schemas documents section of this tutorial Aim of this section To merge two personal travel expense reports into a company expense travel report Please note that the files used in this example have been optimized to show how to map data from two input XML files into a single item in the target schema this is not meant to be a real life example Files used in this section mf ExpReport xml Input XML file used in previous section mf ExpReport2 xml The second input XML file mf ExpReport combined xml The resulting file when the mapping has been successful ExpReport combined xsd The target schema file into which the two XML source data will be merged ExpReport combined sps The StyleVision Stylesheet used to view the mapping result in Authentic view Tut ExpReport msource mfd The mapping file for this example Please note The files used in this section are also available in the MapForceExamples Tutorial folder Altov
251. enerator can distinguish between them When generating XSLT there is no need to do this 1 Right click the second target schema document and select the Component Settings option 2 Enter a file name in the Output XML instance field C Progra 1 Altova MapForce MapForceExamples Tutorial SecondXML xml for example Note that you have to insert the absolute path when generating code The example above uses the default installation path of MapForce Creating mappings for the rest of the expense report data 1 Connect the Lodging item in the source schema to Accommodation in the second target schema 2 Connect the Lodging item to DomesticAcc 3 Connect the Lodge Cost item to DomesicAcc Cost 4 Create the following mappings between the source schema and second target schema Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Multiple target schemas documents 45 You created the same connectors for the first target schema so there is nothing new here Source schema connect to second Target schema Person Employee Result of existing First Nam and Last concatenation Title Title Phone Tel Email Email currency Currency expto Bill to Date Date E ExpReport T arget Preview 3 DomesticD ailyRate vse A ForeignD ailyR ate i 3 Expense detail D 3 expense item i Currency 7 Ss Bill to AO Trave i Lo Travel Cost 4 Destination Ke 3 Car Rental er e
252. ent 2006 Altova GmbH Altova MapForce User Manual 44 MapForce tutorial Multiple target schemas documents E ExpReport T arget Preview Gi ExpReport T arget b a E 3 Company Foot element f gt a E Company Root element E Employee i DW DW d Employee J 4 Title ee 9 Title Name i f Name 7 es Co Email l b 7 sense 4 Email 7 DomesticD ailyR ate l l DomesticD ailyR ate 7 sone 4 ForeignD ailyRate l l 7 vest 4 ForeignD ailyRate 4 Expense detail l Expense detail E expense item l P 7 expense item We Currency l oben Currency 7 as Bill to i i Bill to Date d 7 Date S EC Travel z f EI Travel fa filter iii m d gt SS Travel Cost Geesen bet CC Oposinas ZE bool or talsel Tee Ger gt i i Car Hental A message appears stating that you are now working with multiple target schemas documents 2 Click OK to confirm g Employee Li Employee ee Name Sg L i Hame 8 SE Y Email An Preview icon is now visible in the title bar of each target schema component Clicking the Preview icon defines which of the target schema data is to be displayed when you subsequently click the XSLT XSLT2 XQuery or Output tabs Defining multiple target schemas of the same name for code generation Both target schemas have the same name in this example so we have to make sure the code g
253. epending on the edition of MapForce you have installed some of these commands might not be supported See Query MapForce Commands on how to query the current resource structure and command availability The same topics shows how to use the same command icons that are used by MapForce if you are not already integrating on application level Use the command identifiers with MapForceControl QueryStatus Or MapForceControlDocument QueryStatus to check the current status of a command Use MapForceControl Exec Of MapForceControlDocument Exec to execute a command File Menu Edit Menu Insert Menu Project Menu COmponent Menu Connection Menu Function Menu vu puc Menu View Menu Tools Menu Window Menu Help Menu Commands not in Main Menu 2006 Altova GmbH Altova MapForce User Manual 440 MapForceControl Command Table 24 3 1 File Menu Commands from the File menu Menu Text 3 3 3 3 3 3 Close Al 3 Save Project Close Project Print Preview Print Setup ID_FILE PRINT SETUP Generate code in selected language ID_FILE_GENERATEXSLT2 ID_FILE_GENERATECSCODE Mapping Settings Recent Files Recent File D FILE MRU_FILE1 Recent Projects Recent Project LA NO CA OD NO Generate code in XSLT 2 0 LA enerate code in C Sharp LA NO oo O mS Save All Generate code in XSLT 1 0 Generate code in XQuery Generate code in Java Generate code in C LA NO oO CA GN Altova MapForce User M
254. epid evel yal Add Libraries writable The individual MapForce tabs are now visible in the Eclipse Environment e Libraries tab at left allows you to select predefined or user defined functions e Messages tab displays validation messages errors and warnings e Overview tab displays an iconized view of the mapping file The editor pane is where you design your mappings and preview their output and consists of the following tabs Mapping which displays the graphical mapping design XSLT which displays the generated XSLT code The name of this tab reflects the programming language you have selected under Output XSLT 1 0 Java C etc Output which displays the Mapping output in this case the XML data Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse MapForce Editor View and Perspectives 267 2006 Altova GmbH Altova MapForce User Manual 268 MapForce plug in for Eclipse Importing MapForce examples folder into Navigator 20 4 Importing MapForce examples folder into Navigator To Import the MapForce Examples folder into the Navigator 1 Right click in the Navigator tab and click Import 2 Select File system then click Next 3 Click the Browse button to the right of the From directory text box and select the MapForceExamples directory in your MapForce folder 4 Activate the MapForceExamples check box This activates all files in the various subdirectories in the
255. er Products that are referred to in this document may be either trademarks and or registered trademarks of the respective owners The publisher and the author make no claim to these trademarks While every precaution has been taken in the preparation of this document the publisher and the author assume no responsibility for errors or omissions or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document Published 2006 2006 Altova GmbH Table of Contents 1 MapForce 2006 3 2 MapForce overview 6 ak nee E 8 22 MapForce EECH 10 293 Funcions and We Ee 14 GENEE e CN 17 29 Mapping between COMPONEIUG siecsiccctncsetscosdecsevssnshceanheceadosnsotscesdacunssudsioeanhsandnedoiseatecs 18 eh Connector Proper oS ee 19 2 6 Validating mappings and mapping output sssessssssesseoeeeereesssssssssssssssseerereessssssssssssess 22 2 7 XSLT Output tab generating XSLT or program code ee ecccceccceceeeeeeeeeeeees 24 3 MapForce tutorial 26 3 1 Setting up The mapping environment E 28 32 Mappe schema METIS jacevesesacstorcancenacesassacuqucie EE 30 Bed Using functions to EE 33 34 eet 37 393 Generating XSLT 1 0 and 2 0 COGS scdvcccvssccvsermscoasvicnscisssinsdwessivonssn
256. er Any given computer especially servers needs to support many different encodings yet whenever data is passed between different encodings or platforms that data always runs the risk of corruption Unicode is changing all that Unicode provides a unique number for every character no matter what the platform no matter what the program and no matter what the language The Unicode Standard has been adopted by such industry leaders as Apple HP IBM JustSystem Microsoft Oracle SAP Sun Base and many others Unicode is required by modern standards such as XML Java ECMAScript JavaScript LDAP CORBA 3 0 WML etc and is the official way to implement ISO IEC 10646 It is supported in many operating systems all modern browsers and many other products The emergence of the Unicode Standard and the availability of tools supporting it are among the most significant recent global software technology trends Incorporating Unicode into client server or multi tiered applications and web sites offers significant cost savings over the use of legacy character sets Unicode enables a single software product or a single web site to be targeted across multiple platforms languages and countries without re engineering It allows data to be transported through many different systems without corruption Windows NT4 0 2000 XP Altova s XML products provide full Unicode support To edit an XML document you will also need a font that supports the U
257. er component 2 Select the Number radio button in the Insert constant dialog box and 3 Enter 1 for True and 0 for false depending on the condition you want satisfied 2006 Altova GmbH Altova MapForce User Manual 86 MapForce How To Boolean comparison of input nodes 6 4 Boolean comparison of input nodes Data type handling in boolean functions difference between MapForce 2006 SP1 and SP2 During the evaluation of the core functions less than greater than equal not equal less equal and greater equal the evaluation result of two input nodes depends on the input values as well as the data types used for the comparison Example The less than comparison of the integer values 4 and 12 yields the boolean value true since 4 is less than 12 If the two input strings contain A and 12 the lexical analysis results in the output value false since A is alphabetically greater than the first character 1 of the second operand 12 lf all input data types are of the same type e g all input nodes are numerical types or strings then there is no difference between the SP1 and SP2 versions Differing input node types only version SP2 If the input nodes are of differing types e g integer and string or string and date then version SP2 introduces a new rule The data type used for the comparison is always the most general i e least restrictive input data type of the two input types Befor
258. er 90 are redundant and cause a large overhead 2006 Altova GmbH Altova MapForce User Manual 156 MapForce and Databases Mapping large databases with MapForce 7 1 2 Partial database import Option 2 Import only those tables that are necessary to extract the necessary information i e e retrieve all defective units e retrieve all customers to whom these units were supplied Insert two database components from the same database importing different sets of tables Component 1 insert the following tables e ComponentType e Unit Components e Unit Component 2 insert e Unit e Customer Units e Customer Mapping process e filter out the Component Name Prototype AND the Manufacturer NoName component 1 e use the equal function compare the unit ID from component 1 with the unit ID from component 2 e ifthe IDs are equal use the filter component to pass on the associated customer data from component 2 to the Customers XML file Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping large databases with MapForce 157 D Production PZ Componentiype Sat d knggdeioal arme SE Gef eem eech DW P Ka Ke EL equal Ael esa bvauez DW P Ka Unit C t p nt Lomponents ual ke DW L equal resulti Ka hp DW Ka a eaii m FroducedAt L FAT estedAt l m Delivered t E Customers gt E Custom
259. erator s default templates automatically generate class definitions corresponding to all declared elements or complex types which redefine any complex type in your XML Schema preserving the class derivation as defined by extensions of complex types in your XML Schema as well as all necessary classes which perform the mapping In the case of complex schemas which import schema components from multiple namespaces MapForce preserves this information by generating the appropriate C or C namespaces or Java packages Additional code is implemented such as functions which read XML files into a Document Object Model DOM in memory representation write XML files from a DOM representation back to a system file as well as XML validation and transformation The output program code is expressed in C Java or C programming languages C The C generated output uses either MSXML 4 0 or Apache Xerces 2 2 or later Both MapForce and XMLSpy generate complete project and solution workspace files for Visual C 6 0 Visual C 7 1 Visual Studio NET 2003 and 2005 directly sin and vcproj files are generated in addition to the dsw dsp files for Visual Studio 6 0 Please note When building C code for Visual Studio 2005 and using a Xerces library precompiled for Visual C 6 0 a compiler setting has to be changed in all projects of the solution 1 Select all projects in the Solution Explorer 2 Project Properties Configuration
260. ered are Mapping multiple tables to one XML file How to map data to the root element of target components Using boolean values in XSLT 1 0 Mixed content data and MapForce Defining the Priority context MapForce command line parameters Using input functions to override values and act as parameters in command line execution Filter components Tips Node testing Altova MapForce User Manual 2006 Altova GmbH MapForce How To Mapping multiple tables to one XML file 81 6 1 Mapping multiple tables to one XML file Mapping multiple hierarchical tables to one XML output file e You have a database and want to extract map a certain number of tables into an XML file e Primary and foreign key relationships exist between the tables e Related tables are to appear as child elements in the resulting XML file The DB_Altova_Hierachical mfd sample file in the MapForceExamples folder shows how this can be achieved when mapping from an hierarchical database The Altova_Hierarchical xsd schema is also supplied in the same folder The schema structure is practically identical to the Access database hierarchy The same method can also be used to map flat format XML SQL databases The MS Access database Altova mdb is supplied in the MapForceExamples Tutorial folder Schema prerequisites e All tables related to Altova appear as child items of the target root element e To preserve the table relationships all mappings h
261. ermitted Number of users provided that only the Permitted Number of users actually use the Software at the same time The Permitted Number of concurrent users shall be delineated at such time as you elect to purchase the Software licenses d Backup and Archival Copies You may make one backup and one archival copy of the Software provided your backup and archival copies are not installed or used on any computer and further provided that all such copies shall bear the original and unmodified copyright patent and other intellectual property markings that appear on or in the Software You may not transfer the rights to a backup or archival copy unless you transfer all rights in the Software as provided under Section 3 e Home Use You as the primary user of the computer on which the Software is installed may also install the Software on one of your home computers for your use However the Software may not be used on your home computer at the same time as the Software is being used on the primary computer f Key Codes Upgrades and Updates Prior to your purchase and as part of the registration for the thirty 30 day evaluation period as applicable you will receive an evaluation key code You will receive a purchase key code when you elect to purchase the Software The purchase key code will enable you to activate the Software beyond the initial evaluation period You may not re license reproduce or distribute any key code except with the ex
262. ers prode ow ortuelh ub TE C Customer booo Joie Number 4 FirstName Beas LastName H El Address 3 Street EE Ki Unit Unit Components k Do Sn F L I L leng m SeralHr m Produced t mTestedAt m DelveredAt Please note Try to restrict the number of tables used in a single database component to about 10 related tables This will ensure speedy loading and processing as well as make the mapping process more intuitive 2006 Altova GmbH Altova MapForce User Manual 158 MapForce and Databases Database filters and queries 7 8 Database filters and queries When generating program code MapForce optimizes database access by generating direct database queries where possible The MAPFORCE filter component in conjunction with specific functions is what makes this possible The filter component generally retrieves every record of a specific table and checks each to see if the filter condition is satisfied If it is the record is forwarded to the on true on false parameters This generates a select statement something like select type from expense item This method is time consuming when using large databases and an alternative method is used which transfers the workload to the database MapForce analyzes the mapping and checks for specific functions that support direct queries Select statements are then generated for these functions e g sel
263. erts an input component into the mapping or into a user defined function If you are working in the main Mapping tab the dialog box shown below is displayed This type of input component allows you to e define an override value for the data that is being input by the current mapping input and e use this input component as a parameter in the command line execution of the compiled mapping Please see Input values overrides and command line parameters for more information Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Function 295 Create Input E x Mame Trueval Datatype nteger M Connection required Preview Code generation h Use alternative value Value 2 If you are working in a user defined function tab the dialog box shown below is displayed This type of input component allows you to define simple inputs if this is a Standard user defined function complex inputs e g schema structures if this is an Inline user defined function Create Input R E Mame Articles Type C Simple type integer string etc Datatype string ba Structure Choose Root FO hose Cancel Insert Output Inserts an Output component into a user defined function In a user defined function tab the dialog box shown below is displayed This type of input component allows you to define e simple outputs if this is a Standard user defined function
264. es and functions will be imported as well e Each named template appears as a function below each library name e The amount of mappable input icons depends on the number of parameters used in the template call optional parameters are also supported e Updates to imported XSLT files occur at program start e Namespaces are supported Please note When writing named templates please make sure that the XPath statements used in the template are bound to the correct namespace s The namespace bindings of the mapping can be viewed by clicking the XSLT tab Please see the XSLT 1 0 implementation specific document for more information The files needed for the simple example shown below are available in the MapForceExamples directory e Name splitter xslt e Name splitter xml the XML instance file for Customer xsd e Customers xsd e CompletePO xsd Please see Aggregate functions for an additional example of using named templates to sum nodes Altova MapForce User Manual 2006 Altova GmbH Adding custom XSLT 1 0 functions 231 To add a custom XSLT function 1 Create an XSLT file that achieves the transformation result you want The example below Name splitter xsIt shows a named template called tokenize with a single parameter string What the template does is work through an input string and separate capitalized characters with a space for each occurrence exs stylesheet version 1 D xmins xal httg ww vv or
265. ettings CS generates the C application using special configuration given in option field of the command line parameters VS2005 generates Microsoft VisualStudio Net 2005 solution files VS2003 generates Microsoft VisualStudio Net 2003 solution files VS2002 generates Microsoft VisualStudio Net 2002 solution files BORLAND generates Borland C Builder 1 0 project group files MONO generates makefile for MONO environment CPP generates the C application using the configuration of the mapping seitings CPP generates the C application using special configuration given in options field of the command line parameters VC8 generates Microsoft VisualStudio 2005 solution files VC71 generates Microsoft VisualStudio Net 2003 solution file MSXML generates code using MSXML 4 0 XERCES generates code using XERCES LIB generates code for static libraries DLL generates code for dynamic linked libraries MFC generates code supporting MFC NoMFC generates code without MFC support Builtin generates code using the built in transformation engine Outputdir directory the log file is to be placed in LOG LogFileName name of the log file to be generated Please Note VC6 workspace files are always generated Examples MapForce exe Filename starts MapForce and opens the file defined by Filename 2006 Altova GmbH Altova MapForce User Manual 90 MapForce How To Command line parameters generate all XSLT files and outp
266. evel object Errors 1000 The application object is no longer valid 2006 Altova GmbH Altova MapForce User Manual 366 The MapForce API Object Reference 1001 Invalid address for the return parameter was specified Documents Property Documents aS Documents read only Description Returns a collection of all currently open documents Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified HighlightSerializedMarker Method HighlightSerializedMarker i_strSerializedMarker aS String Description Use this method to highlight a location in a mapping file that has been previously serialized If the corresponding document is not already loaded it will be loaded first See Document GenerateCodeEx for a method to retrieve a serialized marker Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified 1007 The string passed mt strSerializedMarker is not recognized a serialized MapForce marker 1008 The marker points to a location that is no longer valid Name Property Name aS St ring read only Description The name of the application Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified NewDocument Method NewDocument aS Document Description Creates a new empty document The newly opened document becomes the Act iveDocume
267. f fice lt Office gt lt Name Manonull Europe Ats Mame Desc i spara Pot sitalicsEuropesJitalic i lt bold gt tive research scientists lt bold gt io sJpara gt all text nodes of the para element have been removed mapped bold and italic text content remain bold and italic item sequence still follow that of the source XML file Text nodes and mixed content mapping Text nodes can only be mapped in their entirety you cannot limit or transform the data they contain All text nodes of the para element are either mapped or excluded as in the example above Filters or any other type of function cannot be used to access text node data Mixed content child node data i e data enclosed in bold italic tags in this example can of course be mapped individually If a connector exists then the child data will be mapped There is currently no way of accessing the text node s of a mixed content element for further processing or filtering Mixed content settings Right click the para connector and select Connection Settings This opens the Connection Settings dialog box in which you can define the specific mixed content settings of the current connector Note that unavailable options are greyed out Please note that these settings also apply to complexType items which do not have any text nodes 2006 Altova GmbH Altova MapForce User Manual 70 Source driven mixed content mapping Default
268. fd file in the MapForceExamples folder is a sample mapping that contains an exception function To insert an exception component e Select the menu option Insert Exception or click the Exception icon el in the icon bar ali Tame gt E Y Company Root ele Lo 3 Street gt 7 El Address i l i City d 0 Name i gt G4 Person i i Street i S Manager sy n City i l sven Programmer E Person I been Degree sean Manager gt i sven First i aa Programmer i en Last oo Degree i i ice Y Title i First 1 PhoneExt EIB ZA Last d Email o Fite ees a Title 8 Sg PhoneF xt 5 J edero ontu pt O Email zm result Please delete Mr Ma The example above shows how exceptions are defined in mappings The exception should be triggered when the Last name of a person equals Matise e The equal component checks to see if Last equals Matise and the bool result is passed on to the filter component e When the condition is satisfied i e Matise is True the on true parameter of the filter component activates the exception and the mapping process is stopped Note that you can also connect the exception to the on false parameter if that is what you need e The error text supplied by the constant component is output e The error text appears in the Output tab and also when running the compiled code Please note It is very important to
269. ff EE print common properties strGlobalText strTab objItem Kind objItem Name n Iy Ee print code generation properties if available try if objiItem CodeGenSettings_UseDefault strGlobalText strTab Use default code generation settings n else strGlobalText strTab code generation language is objItem CodeGenSettings_Language output folder is T ob jiltem CodeGenSettings Outputrolder n catch err if a print WSDL settings if available try d strGlobalText strTab WSDL File is objItem WSDLFile Qualified Name is objItem QualifiedName n catch err catch ex strGlobalText striTab WI obqltem Kind n 4 recurse PrintProjectTree new Enumerator objItem strTab rs objProjectItemIter moveNext Load example project installed with MapForce function LoadSampleProject close open project objProject objMapForce ActiveProject if objProject null objProject Close Altova MapForce User Manual 2006 Altova GmbH The MapForce API Overview 359 open sample project and iterate through it sump properties of all project items objProject objMapForce OpenProject strSamplePath Maprorcebzanples mip strGlobalText
270. fied InsertXMLFile Method Insert XMLFile i_strXMLFileName aS String i_strRootElement as String Description Adds a new item to the mapping The item s internal structure is determined by the schema defined in the specified XML file The second parameter defines the root element of this schema if there is more than one candidate The specified XML file is used as the input sample to evaluate the mapping Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified InsertXMLSchema Method Insert XMLSchema i_strSchemaFileName aS String i_strRootElement as String Description Adds a new item to the mapping The item s internal structure is determined by the specified schema file The second parameter defines the root element of this schema if there is more then one candidate No XML input sample is assigned to this item Errors 1300 The application object is no longer valid 1301 Invalid address for the return parameter was specified InsertXMLSchemaWithSample Method Insert XMLSchemaWithSample i_strSchemaFileName aS String i_strXMLSampleName as String i_strRootElement aS String Description Adds a new item to the mapping The item s internal structure is determined by the specified schema file The second parameter is stored as the XML input sample for mapping evaluation The third parameter defines the root element of this schema if there is more then one candi
271. floor result value result value result rouric result value result exist result not e result subs E ExpReport El expense report expense repc detailed con currency total sum de Person 2 t C First Se CA Title i Phone Y Email de 4 expense item type A H 4 E H Mapping 4 Algorithm Output Add Libraries After you load the document you can try using menu commands Note that context menus are also available If you like you can also load additional documents Save any modifications using the File Save command 2006 Altova GmbH Altova MapForce User Manual 434 MapForceControl Integration at Document Level HTML This example shows an integration of the MapForce control at document level into a HTML page The following topics are covered e Instantiate a MapForceConitrol ActiveX control object in HTML code e Instantiate a MapForceControlDocument ActiveX control to allow editing a MapForce mapping e Instantiate one MapForceControlPlaceHolder for a MapForce project window e Instantiate one MapForceControlPlaceHolder ActiveX control to alternatively host one of the MapForce helper windows e Create a customer toolbar for some heavy used MapForce commands e Add some more buttons and sample automation code e Use event handlers to update command buttons This example is available in its entirety in the file MapForceActiveX_ApplicationLevel htm
272. functions MapForce allows you to create user defined functions within user defined libraries which can contain any number of input and outputs where any of these can be in the form of simple values XML nodes or databases There are two types of user defined functions those defined as Inline and the others as Standard please see Inline vs Standard user defined functions for more information Also note that user defined functions can be changed from the one type to the other The main use of user defined functions is to combine data sources as well as input and output components into a single user defined function component which can be used across different mappings User defined functions can be e built from scratch or e use functions currently available in the mapping tab This example uses the Tut ExpReport mfd file available in the MapForceExamples folder To create a user defined function 1 Drag to mark both the concat and the constant functions you can also hold down the CTRL key and click the functions individually mf ExpReport El Y expense report exp detailed amet Currency K concat de 3 Person ow First value E result Last Title i Se Phone oon Email E expense item ba E type A E expto Select the menu option Function Create User Defined Function from Selection Enter the name of the new user defined function First_Last Note val
273. g 107 XPath summing multiple nodes 240 XPath 2 0 functions general information about 482 implementation information 482 see under fn for specific functions 482 XPath functions support see under fn for individual functions 483 XPath2 library 14 XQuery adding custom functions 238 AltovaX Query engine 188 and databases 102 functions 14 generate code 188 XQuery 1 0 Engine information about 479 XQuery 1 0 functions general information about 482 implementation information 482 see under fn for specific functions 482 XQuery processor in Altova products 489 xs QName also see QName 483 xsl preserve space 474 xslI strip space 474 XSLT adding custom functions 230 boolean values 84 code generation 376 generate multiple target 46 options 390 standard library 14 template namespace 230 XSLT 1 0 Engine limitations and implementation specific behavior 474 XSLT 1 0 2 0 generate tutorial 41 XSLT 2 0 adding custom functions 236 XSLT 2 0 Engine general information about 476 information about 476 XSLT 2 0 functions implementation specific behavior of 478 see under fn for specific functions 478 XSLT 2 0 stylesheet namespace declarations in 476 XSLT processors in Altova products 489 XSLT2 0 date constructor 236 Z Zoom 2006 Altova GmbH Index 521 Zoom factor in Output window 250 2006 Altova GmbH
274. g 2001 AML Schema instance si mohlamez lt Name Organization Chart Mame gt lt Office gt lt Mame gt NManonull Inc lt Mame gt Desc Data The company was established in lt bold Yereno pold in 1995 Nanonull devel fof oP slpara gt paras White papers and further information will be made available in the near future io s para gt svDescs slOTfice SCT Tice lt Name Manonull Europe Ats Mame gt Desc lt parasIn May 2000 Manonull italic Europesitalic was set up in Vienna The team cc Desc softice lt lompan Persoan WP 5 Click the word Wrap icon LI to view display the complete text in the Output window 2006 Altova GmbH Altova MapForce User Manual 68 Source driven mixed content mapping Default settings mapping mixed content lt Name Organization Chart Mame gt lt Office gt lt Mame gt NManonull Inc lt Mame i Desc Data The company was established in lt bold Yereno bold in 1995 Nanonull develops nancelectronic technologies forsitalic muti core processors lt talic gt February 1999 saw the unveiling of the first prototype bold Mano grid bold The company hopes to expand its operations lt italic ottshore italic to drive down operational costs foo sJpara gt lt parasyhite papers and further information vill be made available in the near future io sJpara gt Desc lt fOTfice lt Office gt lt Name Manonull Europe Ats Mame Desc lt pa
275. g 99S SL Transform lt xshoutput method xml version 1 0 encoding UTF 8 ment wes rz xeltemplate match gt lt xehfor each select gt xsl call template name tokenize sexs ywith param names string select i gt lt fxst call template est for each lt fcshtemplate gt xSTemplate name tokenize gt eysi param name string select gt exel variable name caps select translatel string abcdetghiikimnopaqrstu s variable name capscount select string length capsy gt exelvariable name token 2 Click the Add Libraries button and then click the Add button in the following dialog box Libraries 555555 lx COTE SC xslt L3 xpath functions lang result langi strin last result Lost local name result local ram name result namel rno namespace u result namespar position result position 3 xslt Functions curent result currenti document result documen el Lens sunk l raul Le ilk Lens sunk Add Libraries 3 Select the XSL or XSLT file that contains the named template you want to act as a function in this case Name splitter xslt The XSLT file appears in the Libraries tab 2006 Altova GmbH Altova MapForce User Manual 232 Adding custom XSLT 1 0 functions Libraries General Generation 3 Add eil Delete 4 Click OK to insert the new function core xsstylesheet version D xmins xsl hittp iy
276. g XML data to databases Delete datainchildtables Je oo ooo Ignore input child data RI WE child table Person E WEG D Table action Update if lcompare PrimaryKey Delete data in child tables Ignore input child data Kl Result e Updates parent table data Department records e Deletes child data of those tables which satisfy the Update if condition Person records Retains existing database tables Engineering in this case which do not have a counterpart in the input XML file no source keys for the Update if comparison e Update if condition defined for the Person table fails because all Person records in the database have been deleted by the Delete data in child tables option There is no way to compare the database and XML data primary keys as the database keys have been deleted No records are updated Update if on parent table Delete if on child table Delete data in child tables active Parenttable Department J o oo o Table action Updae if compare PrimaryKey Delete data in child tables A J ooo Ignore input child data J child table Person fT Table action Delete if compare PrimaryKey Delete data in child tables III Ignore input chid data III e Updates parent table data Department records e Deletes child data Person records from all Departments because the Delete data in child tables option is active All Person records are deleted for each Depa
277. gain to re run the script Inserting tables and related child tables This example uses the previous example as a basis and extends it by inserting related Office child tables to the Altova parent table Table relationships are only generated automatically wnen mappings are created between child tables of a root table In this case mappings are created between the Office fields that appear directly under the Altova parent or root table 1 SE Right click the Office entry and select the menu item Database Table Actions The Insert All table action is selected by default you do not have to make any changes here click OK to confirm Right click the Office PrimaryKey field and select the Database Key Settings entry Select the Maximum number entry and click OK to confirm Create the following mappings between the two components Office to Office Desc to Desc and Email to Email Established to Established and Name to Name Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 115 emm a DW DW ka E Office Y PrimarpKey 4 ForeignKey KN Ka Ke Ke KA Ke ka D Ka WR DW DW ka k i 7 Phone E 4 Address E Y Department Ka LA L LA LA LA Vi LA LA LA L LA LA GZ DW Ke WW ka Ka SELECT IIFIMA Atova Prina Key ES NULL 0 MAS Altova PrimaryKey 1
278. ge java gt lt function name HelloFunction gt lt implementation gt lt implementation language cpp gt lt function name HelloFunctionResponse gt lt implementation gt lt implementations gt lt component gt The value you supply as function name must of course exactly match the name of the function in the Java C or C class Altova MapForce User Manual 2006 Altova GmbH Adding custom libraries Writing your libraries 225 11 4 Writing your libraries How to write a Java library Create a new Java class using the previous example name it Hello Add the package name you provided under lt implementation language java gt lt setting name package value com hello functions gt lt setting name class value Hello gt lt implementation gt Add the line import com altova types this enables you to use the Schema simpleTypes If you encounter problems finding the com altova types on your computer please generate and compile Java code without user defined functions you will then find the classes in the directory you specified Add the functions you specified in the mff file as public static Do not forget that you may only use the Schema simpleTypes as input output parameters package com hello functions import com altova types public class Hello public static SchemaString HelloFunction SchemaBoolean GreetingType if GreetingType getValue return
279. get Clicking the Output tab then allows you to save this text file with its mapped output by clicking the Save generated output as icon l Entering a name in this text box without using a file extension assigns this name to the component Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Fixed Length Text files to a database 183 Output file Select the target file you want to output data to when generating code with MapForce Make sure that the input and output files are different when generating code or the source file will be overwritten when the code is executed This option is only used when generating code for Java C or C File encoding Allows you to define select the encoding of the input text file If there is no entry in the Input file field then the encoding automatically defaults to UTF 8 Fill Character This option allows you to define the characters that are to be used to complete or fill in the rest of the fixed field when the incoming data is less shorter than the respective field definitions The custom field allows you to define your own fill character in the Custom field Stripping fill characters If the incoming data already contains specific fill characters and you enter the same fill character in the Custom field then the incoming data will be stripped of those fill characters You can also enter a custom fill character in the Custom field Clic
280. ginal Value SParamByV alue Original Value SParamBbyFRet define sub Completesubl sub SS param byval paramByValue byref paramByRef JCompleteSub called param Sparam paramBbyValue SparamBbyValue paramnbyret SparamnbyFRet SParamByReft Local Variable SparanbyValue new value SparamBbyReft new value Set values inside sub SParamByReft Local Variable SparanbyValue new value SparamBbyReft new value JGompleteSub finished endsub run sub ConpleteSubl 3 call t FirstParameter ParamnBbyValue ParanbyValue SParanByValue ParamBbyRet ParanByRet Close The same sample code create Soutputpath amp Smodule amp output txt define sub SimpleSub Sub SimpleSub SimpleSub called endsub execute sub SimpleSub Call SimpleSub SParamByValue Original Value ParamByValue SParamByValue SParamByRef Original Value ParamByRef SParamByRef define sub CompleteSub SParanbyRet Sub CompleteSub Sparam ByVal SparamByValue ByRef SparamByRef 2006 Altova GmbH Altova MapForce User Manual 346 Code Generator The way to SPL Spy Programming Language CompleteSub called param Sparam paramByValue SparamByValue paramByRef SparamByRef SParamByRef Local Variable SparamByValue new value SparamByRef new value Set values inside Sub SParamByRef
281. greal result egual or less result greater result less result logical and result logical not result logical or result not egual rezult expense report 3 math functions ei string functions 4 Click the expense report entry and hit the key on the numeric keypad to view all the items 5 Click the expand icon at the lower right of the component window and resize the window Libraries SCH Core ei logical functions detailed equal i e currency D Person ow First im Last Title ees CX Phone om Email E expense item one type math functions d E expto e3 string functions Add Libraries D Mapping Project Output Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Setting up the mapping environment 29 Creating the target schema component 1 Click the Insert XML Schema File icon 2 Select the ExpReport Target xsd file from the Open dialog box You are now prompted for a sample XML file for this schema 3 Click No and select Company as the root element of the target document Select root element a E Namespace URI Cash dwance http my company com http mycompany conn Date http my company com Location http my company com Restaurant http my company corm Cancel The target schema component now appears in the mapping tab 4 Click the Company entry and hit the key on the numeric keypad to view all
282. gt ProductaAc Wame gt Amount LO Amount Price gt S lt Price gt ZZ Product Product Name gt ProductBe Name gt Amount gt 52 amount Price gt 7O0 Price lt Product lt r Products gt f Input gt iji E a 4 5 6 d 3 The screenshot below shows the XSLT stylesheet which uses the named template Total and a single parameter string What the template does is work through the XML input file and sum all the values obtained by the XPath expression Product Price in the document tubl version 1 0 encodings UTF 85 7T 451 stylesheet version Di ymlns xsl http rrm oi org ls Zell output method xml version 1 0 encoding UTF s j xeLitemplate match F gt uel for each select _ gt xeLicall template name Total gt xuesLiwith param name string selects y gt xsl call template gt xsl for each gt xelitemplate gt xueLitemplate name Total gt nEli param name string gt ueLivalue at select sumltstring Product Price gt xelitemplate gt ueli stylesheet 1 Click the Add Libraries button and select the Libraries tab of the Options dialog box 2 Click the Add button and select the Summing nodes xslt file from the MapforceExamples Tutorial folder 3 Drag in the Total function from the newly created Summing nodes library and create the mappings as shown below Altova MapForce User Manual 2006 Altova GmbH Aggrega
283. h their separate license agreement with Altova or other agreement with 2006 Altova GmbH Altova MapForce User Manual 498 Appendices License Information Altova Altova reserves all other rights in and to the Software With respect to the feature s of UModel that permit reverse engineering of your own source code or other source code that you have lawfully obtained such use by you does not constitute a violation of this Agreement Except as otherwise permitted in Section 1 h reverse engineering of the Software is strictly prohibited as further detailed therein b Server Use You may install one copy of the Software on your computer file server for the purpose of downloading and installing the Software onto other computers within your internal network up to the Permitted Number of computers If you have licensed SchemaA gent then you may install SchemaAgent Server on any server computer or workstation and use it in connection with your Software No other network use is permitted including without limitation using the Software either directly or through commands data or instructions from or to a computer not part of your internal network for Internet or Web hosting services or by any user not licensed to use this copy of the Software through a valid license from Altova c Concurrent Use If you have licensed a Concurrent User version of the Software you may install the Software on any compatible computers up to ten 10 times the P
284. he project name e g MapForce and change any of the other project settings to suit your environment then click Finish Note the default setting in the Additional Builders group use JTD builder Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse MapForce code generation 273 New MapForce Project i K Specify Name and Code Language of Project Create new MaoForce Ecliose Proiect Project name MapForce Project contents hg Use default Directory C eclipses workspacelMapForce Browse Builder For MapForce mappings and projects h add MapForce builder to project Additional Builders For Code Generated by MapForce C use no additional builders Ce use JOT builder use Following nature org eclipse jdt core javanature lt Back ext gt pa Cancel An Eclipse project folder and optionally some more folders and files inside this folder have been created Java Eclipse SDK File Edit Navigate Search Project Run Window Help C4 OB O Q H ee classpath project You can now create MapForce mappings and MapForce project files inside this Eclipse project or copy existing ones into it Whenever a mapping or MapForce project file changes the corresponding mapping code will be generated automatically Code generation errors and warnings will be shown in the MapForce view called Messages and added to the Problems view of Ecl
285. he respective supplier This software product is protected by copyright laws and international treaty provisions This software product 1998 2006 Altova GmbH All rights reserved The Sentry Spelling Checker Engine 2000 Wintertree Software Inc STLport 1999 2000 Boris Fomitchev 1994 Hewlett Packard Company 1996 1997 Silicon Graphics Computer Systems Inc 1997 Moscow Center for SPARC Technology Scintilla 1998 2002 Neil Hodgson lt neilh scintilla org gt ANTLR Copyright 1989 2005 by Terence Parr www antlr org All other names or trademarks are the property of their respective owners Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 497 25 3 4 Altova End User License Agreement THIS IS A LEGAL DOCUMENT RETAIN FOR YOUR RECORDS ALTOVA END USER LICENSE AGREEMENT Licensor Altova GmbH Rudolfsplatz 13a 9 A 1010 Wien Austria Important Read Carefully Notice to User This End User License Agreement Software License Agreement is a legal document between you and Altova GmbH Altova It is important that you read this document before using the Altova provided software Software and any accompanying documentation including without limitation printed materials online files or electronic documentation Documentation By clicking the I accept and Next buttons below or by installing or otherwise using the Software you agree to be bound by the terms
286. he specific table action is then executed depending on the outcome of this comparison Please note This table action should not be confused with the Delete data in child tables option available in the table action dialog box The Delete if table action only affects the table for which the action is defined no other tables are affected Aim e To delete the existing Person records in the database and e Insert new Person records from the input XML file 1 Insert the Altova_Hierarchical schema and assign altova cmpy extra xml as the input XML instance 2 Insert the MS Access database altova mdb into the mapping E Altova_Hierarchical Se Address Se Altova Se Department Se Office d Address JE Person de 1 Department Y PrimaryKey 4 ForeignKey Bes ess 1 I LA LI L I I LU I Ka Ke de 4 Person Y PrimaryKey 4 ForeignKey EMail Sech eee Wa m LI U Ka ka Si 3 Select the menu option Connection Auto Connect matching children 4 Click the Person item in the XML source file and drag the connector to the Person item of the database Make sure that you connect to the root table Person All matching child items are mapped automatically Right click the Person entry and select the menu item Database Table Actions Click the Table action combo box and select Delete if Click the Append Action button This automatically inserts a new Table action col
287. heir entirety you cannot limit or transform the data they contain Filters or any other type of function cannot be used to access text node data The image below shows an example of mixed content mapping The para element is of mixed content and the connector is shown as a dotted line to highlight this a Office i e 4 Office Name H bk l sone 7 Hame a Desc ie E Desc S para k i E para bold 5 l bold 4 italic i Y italic Pp K k Location Right licking a connector and selecting Connection settings allows you to annotate or label the connector Please see section Connection in the Reference section for more information Altova MapForce User Manual 2006 Altova GmbH Source driven mixed content mapping 65 The files used in the following example Tut Orgchart mfd are available in the MapForceExamples Tutorial folder The image below shows the content model of the Description element Desc of the Tut OrgChart xsd schema file This definition is identical in both the source and target schemas used in this example Content model of para element e para is acomplexType with mixed true of type TextType e bold and italic elements are both of type xsd string they have not been defined as recursive in this example i e neither bold nor italic are of type TextT ype e bold and italic elements can appear any number of times in any sequence within para e
288. hema target The Detail item in the schema target file has been duplicated and is displayed as Detail 2 This allows you to map the second set of detail records to the correct item The result of this mapping is exactly the same XML file that was produced in the above example E Orders inline key S oy Field gt amp Field E i oo Field4 gt b Z Field5 R Field6 i me Field i eg Detail key 1 fF See Field Sg Field 10 l oo Field11 i Field1 SE Eeldi i Field14 gt Detail key2 N Se Field16 gt b Field S Se Field18 gt oo amp Field 9 L br Field 0 gt om Field gt ne Field22 gece HI ead key l Tut headerD etal G Order E 4 Header sae Record Type i ee Y Order o H F Totaly eight 7 oa Y TotalUnitCost Currency i a 3 Shipping details IO Detail om Record ype 7 ee CX OrderNo Producto Unitweight E i UnitNo UnitCost ow Unit description E Detail 2 oo Record ype 7 PR Y DrderNo ProductNo Uniteight UnitNo 7 un 4 UnitCost oe CEU nit description DW Ke Ke ka DW Ke 2 baal DW Ke Ke Se DW Ka Ke hh Eh hhh Se Sse i i ae en i ee LI LA LI LI LI LA LI LI LI LA LI LI LI LA LI LI ke Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files CSV file op
289. hentic Desktop Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial 27 Personal Expense Re port M Detailed report Employee Information Fred Landis Project Manager First Hame Last Hame Title E landsidnanonull com 125 456 s E Mail Phone Expense List Date eg Sg Z i 01 i 1 Lode Travel Development gew 2 Siche SE Biz jet 3 66 add Lodging Bei Wil 1 Lode Lodging sl Sales ote L Se SE Motel maria add Travel 11217 Type Expense To Expenses Description it TE 1 Lods Travel sl Accounting Gem 2 Se Ambassador class Jla add Lodging a Wl 1 Loda Travel Marketing e ME x Se Hone E ong UO add Lod Meal sl Sales ewe Zoos Late For Free add Travel add Lodging 2006 Altova GmbH Altova MapForce User Manual 28 MapForce tutorial Setting up the mapping environment 3 1 Setting up the mapping environment This section deals with defining the source and target schemas we want to use for the mapping e Start MapForce Creating the source schema component 1 Click the Insert XML Schema File D icon 2 Select the mf ExpReport xsd file from the Open dialog box You are now prompted for a sample XML file to provide the data for the preview tab 3 Click Yes and select the mf ExpReport xml file The source schema component now appears in the Mapping tab Libraries Eo SES E mt pennt ei logical functions egual result egual or
290. here you can edit it Duplicate input Inserts a copy clone of the selected item allowing you to map multiple input data to this item Duplicate items do not have output icons you cannot use them as data sources Please see the Duplicating input items section in the tutorial for an example of this Remove duplicate Removes a previously defined duplicate item Please see the Duplicating input items section in the tutorial for more information Database Table actions Allows you to define the table actions to be performed on the specific target database table Table actions are Insert Update and Delete please see Mapping data to databases for more information Database Key settings Allows you to define the Key settings of database fields please see Database key settings for more information Component Settings Opens a dialog box which displays the currently selected component settings If the component is an XML Schema file then the Component Settings dialog box is opened If the component is a Text file then the Text import export dialog box is opened Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Component 289 Component Settings 3 E x Input s ML Instance Browse Output sML Inetance for Code Generation FORCE 2004 MapForceE xamples DraChart am Browse Schema file Files ValtovaS MAPFORCE 2004M apF orceE samples Orglhart xed Drei for target namespace cence I
291. however Please see Complex output components defining for an example Altova MapForce User Manual 2006 Altova GmbH User defined functions Standard user defined function 197 10 2 Standard user defined function This example is provided as the lookup standard mfd file available in the MapForceExamples folder Aim To create a generic look up function that e supplies Articles Number data from the Articles XML file to be compared to Article numbers of a different XML file ShortPO in this case Shop Gi CompletePo E ShortPO P i F CompletePO 4 CustomerNr gt E a Y Customer E Y Lineltems E Lineltems 1 Lineltem 3 Q Lineltem oaaae a oaa Amount 4 Number SinglePrice Y Amount Price e Insert the ShortPO xsd and assign ShortPO xml as the source XML file e Insert the CompletePO xsd schema file and select CompletePO as the root element e Insert a new user defined function using the method described below To create a user defined function from scratch 1 Select the menu option Function Create User defined function 2 Enter the name of the function e g LookupArticle Create User defined Function Settings Function name Lookup rticle Library name Juser Inline recommended Allows complex parameters filters and multiple outputs Standard function Allows recursive calle A tab only containing only one item an output function is displayed
292. href attribute accepts i relative paths for files in the base uri folder and ii absolute paths with or without the file protocol Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 479 25 1 3 XQuery 1 0 Engine Implementation Information The Altova XQuery 1 0 Engine is built into Altova s XMLSpy and MapForce XML products It is also available in the free AltovaXML package This section provides information about implementation defined aspects of behavior Standards conformance The Altova XQuery 1 0 Engine conforms to the World Wide Web Consortium s W3C s XQuery 1 0 Candidate Recommendation of 8 June 2006 The XQuery standard gives implementations discretion about how to implement many features Given below is a list explaining how the Altova XQuery 1 0 Engine implements these features Schema awareness The Altova XQuery 1 0 Engine is schema aware Encoding The UTF 8 and UTF 16 character encodings are supported Namespaces The following namespace URIs and their associated bindings are pre defined Namespace Name Prefix Namespace URI XML Schema types http www w3 org 2001 XMLSchema Schema instance http www w3 org 2001 XMLSchema instance Built in functions http www w3 org 2005 xpath functions Local functions http www w3 org 2005 xquery local functions The following points should be noted e The Altova XQuery 1 0 Engine recognizes the prefixes listed above as being bound to
293. i MappingF rame java d i Mappinghtain java E Com maptorce CompletePo ce com maptorce Customersand Articles fi Com maptorce bor A snippet of the code is shown below try fi System out printlin Mapping Application TraceTargetConsole tte new TraceTargetCconsoleli Class forName sun jdbe adbe JdbcodbeDriver MappingMainl MappingMainlOGbhject new MappingMainl i MappingMainlOhject registerTraceTarget tte MappingMainlOhject runtl Sib RE xml java sql DriverMNanager getCaonnectionl Jdbcr odbc DRIVER Microsott Access Driver mdb DBO sCustomersand rticles mdb FF Fr f EH S CompletePo xml SYStem out printin Finished catch Exception ei Please note that the path names in the generated source code have been deleted for the sake of clarity Looking at MappingMain1 Object run All parameters passed to the run method except for the last one CompletePO xml are source files Please ensure that the last parameter is the target file In this example the source files are e XML file Short PO xml Altova MapForce User Manual 2006 Altova GmbH Code Generator Integrating MapForce code in your application 327 e Database file CustomerAndArticles mdb including the connection string The two empty parameters following the initial database parameter are intended for the Username and Password in clear text for those databases where this data is necessary
294. ibe how to use these functions For more information about the usage of functions see the World Wide Web Consortium s W3C s XQuery 1 0 and XPath 2 0 Functions and Operators CR of 8 June 2006 General Information Standards conformance e The Altova XPath 2 0 Engine implements the World Wide Web Consortium s W3C s XPath 2 0 Candidate Recommendation of 8 June 2006 The Altova XQuery 1 0 Engine implements the World Wide Web Consortium s W3C s XQuery 1 0 Candidate Recommendation of 8 June 2006 The XPath 2 0 and XQuery 1 0 functions support in these two engines is compliant with the XQuery 1 0 and XPath 2 0 Functions and Operators CR of 8 June 2006 e The Altova XPath 2 0 Engine conforms to the rules of XML 1 0 Third Edition and XML Namespaces 1 0 Default functions namespace The default functions namespace has been set to comply with that specified in the standard Functions can therefore be called without a prefix Boundary whitespace only nodes in source XML document The XML data and consequently the XML Infoset that is passed to the Altova XPath 2 0 Engine and Altova XQuery 1 0 Engine is stripped of boundary whitespace only text nodes A boundary whitespace only text node is a child whitespace only text node that occurs between two elements within an element of mixed content This stripping has an effect on the value returned by the fn position fn last fn count and fn deep equal functions For any node selection
295. icense agreement for any such later versions of the Pre release Software 5 LIMITED WARRANTY AND LIMITATION OF LIABILITY a Limited Warranty and Customer Remedies Altova warrants to the person or entity that first purchases a license for use of the Software pursuant to the terms of this Software License Agreement that 1 the Software will perform substantially in accordance with any accompanying Documentation for a period of ninety 90 days from the date of receipt and 11 any support services provided by Altova shall be substantially as described in Section 6 of this agreement Some states and jurisdictions do not allow limitations on duration of an implied warranty so the above limitation may not apply to you To the extent allowed by applicable law implied warranties on the Software if any are limited to ninety 90 days Altova s and its suppliers entire liability and your exclusive remedy shall be at Altova s option either 1 return of the price paid if any or 11 repair or replacement of the Software that does not meet Altova s Limited Warranty and which is returned to Altova with a copy of your receipt This Limited Warranty is void if failure of the Software has resulted from accident abuse misapplication Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 501 abnormal use Trojan horse virus or any other malicious external code Any replacement Software will be warranted for the re
296. id characters are alohanumeric a z A Z 0 9 as well as underscore hyphen dash and colon 4 Use the Syntax and Detail fields to add extra information on the new function and click OK to confirm The library name user is supplied as a default you can of course define your own library name in this field wo N Altova MapForce User Manual 2006 Altova GmbH User defined functions 193 Create User defined Function l x Settings Function name First_Last Library name est Description Syntax resutl concat string space char sting Detail Cormbines two strings and inserts a space character between them Implementation Ce Inline recommended Allows comples parameters filters and multiple outputs C Standard function Allows recursive calls The individual elements that make up the function group appear in a tab with the function name The new library user appears in the Libraries pane with the function name First_Last below it Libraries q Ge core logical functions math functions Bo output string functions result edifact Ge Long j datetime functor generator functic logical functions math functions string functions l4 4 bk bl Overview Validation Ge user Eat Last Add Libraries Ready Click the Home button Sg to return to the mapping window The three functions have now been combined into a single function called First_Last U
297. ied OpenDocument Method OpenDocument strFilePath as String aS Document Description Opens an existing mapping document mfd Adds the newly opened document to the end of the collection and makes it the active document Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified ActiveDocument Property ActiveDocument aS Document read only Description Retrieves the active document If no document is open nu11 is returned Errors 1600 The object is no longer valid 1601 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 382 The MapForce API Object Reference 23 2 5 ErrorMarkers Properties and Methods Properties to navigate the object model Application Parent lterating through the collection Count Item Application Property Application as Application read only Description Retrieves the application s top level object Errors 1800 The object is no longer valid 1801 Invalid address for the return parameter was specified Count Property count aS Integer read only Description Retrieves the number of error markers in the collection Errors 1800 The object is no longer valid 1801 Invalid address for the return parameter was specified Item Property Item nIndex aS Integer as ErrorMarker read only Description Retrieves the error marker at nIndex from the collection
298. import javax suing DIManager Class Mapping pplication boolean packFrame false public MappingfApplication MappingFrame frame new MappingFr if packFrame frame pack else frame validate i e Open either the MappingApplication or MappingConsole folder depending on which you want to edit and compile e Click the main method in the Methods folder to view the generated code e Select the menu option Build Build to build the selected application either e MappingApplication or e MappingConsole 2006 Altova GmbH Altova MapForce User Manual 314 Code Generator Generating program code BSJ Sun ONE Studio 4 update 1 Community Edition Project Deft File Edit View Project Debug Wersioning Tools Vind B ei BS 2 Compile FO 3 Be com mpile All UmechaltFo Umzchalt ki D CH com Er altowa T Mest Error A Previous Error Umeschalt F 12 d SS ch e gt Execute The build window displays a successful message when complete e Select the menu option Debug Start to execute the selected application Finish Umsch alt FS Running Attach Explorer Filesystems Ob Continue E Files ystems Pause Q E CiTempiMarketingExpense D com vr Run to Cursor F4 Er altova e Step Over FS Q maptorce CG Step Irto F7 de ExpReport Step Out AlttUmechalt FF ta GoTo Called Method Strat AltOben 449 GoTo Calling Method Strg Alt Unten CA Toggle Breakpoint Umschalt EG ft Add Bre
299. ing Input items for more information e Functions can have any number of input and output icons one for each parameter E g the Add Function has two input icons and one output icon e Special components can have any number of icons e g the Constant component only has an output icon This example shows how you can use the concat function to combine the First and Last names and place the result in the Title element The constant component supplies the space character between the two names rof E xpR eport ExpReport T arget G expense report exph b E Company Root detailed e d gt o Employee l E Curency ic gt 4 Title EI Person S C i Gel Name Pret j ID Altova MapForce User Manual 2006 Altova GmbH MapForce overview Mapping between components 19 2 5 1 Connector properties Connectors and their properties Clicking a connector highlights it in red Hitting the Del key while highlighted deletes it immediately Right clicking a connector opens the connector context menu Double clicking a connector opens the Connection Settings dialog box Viewing connectors ENEE Ra Sa MapForce allows you to selectively view the connectors in the mapping window Show selected component connectors Switches between showing e all mapping connectors or e those connectors relating to the currently selected component Show connectors from source to target oe Switches be
300. ing jpx e GD Project Sources a Mappingd pplication java ii Com alle DR com atova functions 2 This file was generated by MAPFORCE 2004 0 corm altova types ci Com aktora ml 6 YOU SHOULD NOT MODIFY THIS FILE BECAUSE IT WIL 3 i com mapforce T OVERWRITTEN WHEN YOU RE RUN CODE GENERATION Gre ExpReport MarketingExpenses mapforce png SES S Mapping Application java Se VK Mappinglonsole java SC Vi Mapping rane java l Vi Mappinchdsair java D OR corm maptorce ExpReport E r com mapforce MarketingExpenses Refer to the MAPFORCE Documentation for further http rwn altowa com mapforce package com mapforce A e i i D OD Va ti PM CH lo CO I import javax swing UIManager import java at I E LA 20 public class Mapping4 pplication boolean packFrame false public Mapping pplication MappingFrame frame new MappingFrame iil if packFrame frame packii m a Inporta 3 Mapping pplication Mapping Applicationl i maint string args 1 SES Ty backFrame aire frame validate Project Run Team Wizards Tools Window Help Ty Rebuild Project Mapping jp Make Mapping4pplication jawa Strg F Rebuild Mapping4pplication java Au Make Project Group Kg Rebuild Project Group Apply Filter Select the menu option Run Run project Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 311
301. ings The default settings are Application name Mapping Database specfic settings can be viewed by clicking a database component and selecting the menu option Component Component Settings To generate C code in MapForce 1 2 Select the menu option File Generate code in C You are then prompted for the target directory of the generated files Select the directory you want to place the files in and click OK to confirm eg c codegen C A C Code generation completed message appears when the process was successful If not an error message appears detailing the specific error s Open the mapping dsw or mapping slin file in the Mapping subdirectory i e c codegen C mapping in Microsoft Visual C Mapping Microsoft isual C MappingMaini cpp E File Edit View Insert Project Build Tools Window Help wing Unicode Debug sl Wa s pel ER Er Gul KindDefaut E H Ie S a 2 o s I E H E Altova classes Ee AltovaFunctions classes Eel AltovasML classes MappingMsinl cpp eel ExpReport classes This file was generated by MAPFORCE 2004 C S Mapping classes MappingM aint YOU SHOULD HOT MODIFY THIS FILE BECAUSE IT WILL BE Globals OVERWRITTEN WHEH YOU RE RUN CODE GENERATION a SI MarketingExpenses classes Refer to the MAPFORCE Documentation for further details http www altova com maptorce POPPER LL ALE OE EOE PE OL OL OE OPP ODE OPEL A EOL OPP PPE FAP LAE OEE ELE OE PE EOE SE
302. ining the component user interface 223 displayed as a ToolTip when you place the mouse cursor over the short description Short description EE helloworld hella result hellolgreeting_type Long description Ce helloworld helo Returne a greeting sentence according to the given greeting type Ee 2006 Altova GmbH Altova MapForce User Manual 224 Adding custom libraries Function implementation details 11 3 Function implementation details We are now at the point where we need to make a connection between the function in the library window and the function in the Java C or C classes This is achieved with the lt implementation gt element As previously stated one function may have multiple implementation elements one for each supported programming languages lt component name hello gt lt implementations gt lt implementation language cs gt lt function name HelloFunction gt lt implementation gt lt implementations gt lt component gt A function may be called HelloFunction in Java or HelloFunctionResponse in C This is why you need to specify a separate function name for each programming language A function for each of the three programming languages might look like the following SE name hello gt lt implementations gt lt implementation language cs gt lt function name HelloFunction gt lt implementation gt lt implementation langua
303. into the database If the script was successful a confirmation message appears Click OK to confirm 10 Open the Altova database in Access to see the effect 2006 Altova GmbH Altova MapForce User Manual 114 MapForce and Databases Mapping XML data to databases Es Altova Table Primarykey Name E 1 Organization Chart 2 Microtech OrgChart A new Microtech OrgChart record has been added to the Altova table with the new PrimaryKey 2 The data for this record originated in the input XML instance 11 Switch back to MapForce CO d Mm On E GA ha You will now see a record of what happened when the SQL script was processed D The following QL statements were executed during Generate output function Every single result is written right to the zs string These statements are only for previews and may not be executed in another GO Guer Tool The database was connected using the following connection string Provider Microsott Jet CL EIDA UD Data Sources Program Files ttovaihiAPPORCELO04 MapF orceExamples VT ut Si SELECT IFIMAx Atoval Primarykey ES MULL OMA Attoval Primarykey ij 1 AS Primarykey FROM Altova gt gt OK One or more rows INSERT INTO Atova Name Primary Key VALUES Microtech OrgChart PrimaryKey 2 gt gt OK 1 roves Please note You can only run SQL scripts once from the Output window you have to switch back to the Mapping window and to the Output window a
304. ion e g c Program Files Altova MapForce2006 eclipse plugins com altova mapforceeclipseplugin_1 0 0 docs Running the Sample extension plug in Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse Extending MapForce plug in 277 1 Switch to the Java perspective 2 Select the menu option Run Run 3 Select Eclipse Application and click New_configuration Run Create manage and run configurations Create a configuration to launch an Eclipse application Configurations Name New configuration S e Eclipse Application New V configuration E Java Geet Main Plug ins Configuration Tracing PS Zeng Java Application f Launch with all workspace and enabled external plug ins Ju JUnit Ju JUnit Plug in Test ES SWT Application Choose plug ins and Fragments to launch From the list Use features in the workspace simulated normal startup ie Workspace Plug ins me i MapForceclient 1 0 05 ER KE External Plug ins guho com alova eclipseplugin 1 0 0 fy tb com altova mapforceeclipseplugin 1 0 0 4 Check that the project MapForceClient is selected in the Plug ins tab 5 Click the Run button A new Eclipse Workbench opens 6 Open any MapForce mapping in the new Workbench It will now open with a zoom level of 70 2006 Altova GmbH Altova MapForce User Manual Chapter 21 MapForce Reference 280 MapForce Reference 21 MapForce Referen
305. ion gt lt implementations gt For each language that the helloworld library should support an implementations element has to be added The settings within each implementation allow the generated code to call the specific functions defined in Java c or CH The specific settings for each programming language will be discussed below Java lt implementation language JjJava gt lt setting name package value com hello functions gt lt setting name class value Hello gt lt implementation gt Altova MapForce User Manual 2006 Altova GmbH Adding custom libraries Configuring the mff file 221 It is important for the generated code to be able to find your hello class file This can be achieved by making sure that it is entered in the classpath The classpath is found in the system environment variables C lt implementation language cs gt lt setting name namespace value HelloWorldLibrary gt lt setting name class value Hello gt lt setting name reference value C HelloWorldLibrary Hel loWorldhibrary dll y gt lt implementation gt Note for C it is very important that the generated code uses the namespace which is defined here C also needs to know the location of the dll that is to be linked to the generated code C lt implementation language cpp gt lt setting name namespace value helloworld gt lt setting name class value Greetings gt lt setting nam
306. ion has changed or the data source name does not exist any more If this is the case a message box opens allowing you to continue the process and select a different database connection maproree x The connection bo the Following database could not be opened OSMW Barnabas iSeries ODBC Database Connection Error Reason Data source name not Found and no default driver specified Do you want to continue loading and specify a different connection e Clicking No halts the file loading process Any additional database components connections in the mapping are ignored e Clicking Yes opens the Select a source database dialog box in which you can start the database selection process If the database connection can be established then the file opening process continues If additional database connections cannot be opened you are also prompted to select them anew If the database connection cannot be established then the loading process is halted This is the same as clicking the No button in the dialog box A message box is opened showing all errors that were encountered while trying to open the mapping file The aim is to give you more information on why the mapping could not be loaded Mapping project could not be loaded because Barnabas iSeries ODBC Database Connection Error Reason Data source name not Found and no default driver specified datetest Database Connection Error Reason Could not connect to the database
307. ions allow you to test for the existence of nodes in the XML instance files Elements or attributes defined as optional in the XML Schema may or may not appear in the XML instance file Use these functions to perform the specific node test and base further processing on the result Exists Returns true if the node exists else returns false The HasMarketingExpenses mfd file in the MapForceExamples folder contains the small example shown below If an expense item exists in the source XML then the hasExpenses attribute is set to true in the target XML Schema file KS ExpReport El expense report x BA e detailed fi concat concal e m SUNEN fy HasExperses l gt E resulti AE marketing expen pyalue3 gt SS Y Person ge total sum E Person SEH First E hasE xpenses i FullName Y Title Title 3 Phone i Y Email de expense item L exists ee type j Prode resulti aguii ekplo Not exist Returns false if the node exists else returns true substitute missing Used to map the current field content if the node exists in the XML source file otherwise use the item mapped to the replace with parameter Y Person i value i S Li Person Y First i i h substitute missing es Ge E node o Er dereplace with mai el 4 expense item l gt d C 3395113 3141 In the image above the existence of the node Phone i
308. ipse A MapForce Eclipse project is an Eclipse project with the MapForce nature assigned to it and therefore uses the MapForce builder If one or more MapForce project files are present in the Eclipse project the code generation language and output target folders are determined by the settings in these files lf a MapForce project file is not present in the Eclipse project 2006 Altova GmbH Altova MapForce User Manual 274 MapForce plug in for Eclipse MapForce code generation But the Eclipse project has been assigned the JDT nature e Then the mapping code generation defaults to Java language and the project s Java source code directory is used as the mapping code output directory Saving a mapping automatically generates the mapping code in Java and compilation of the Java code Use the Java debug or run command to test the resulting mapping application But the project has not been assigned the JDT nature e Then the output target folder is the project folder and the code generation language defaults to the current setting in the MapForce Options To activate the Automatic Build process 1 Make sure that the menu option Project Build automatically is checked To temporarily deactivate automatic building of MapForce mapping code This is only available to Eclipse projects that have added the MapForce nature Right click the Eclipse project in the Navigator pane Select Properties from the context menu Click
309. irst sLast Further Last gt lt PhoneExt 471 lt PhoneExt lt Email f further nanonull com Email Person gt 15 E Person Manager true gt The data from the CSV file have been successfully mapped to an XML file Please note Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping CSV files to XML 167 The connector from the Rows item in the CSV file to the Person item in the schema is essential as it defines which elements will be iterated through i e for each Row in the CSV file a new Person element will be created in the XML output file Please see the examples that follow on how the Rows item influences the output if you are mapping to a CSV or fixed length text file 2006 Altova GmbH Altova MapForce User Manual 168 MapForce CSV and Text files Mapping XML to CSV or fixed length text files 8 2 Mapping XML to CSV or fixed length text files This example is available in the MapForceExamples Tutorial folder as Tut xml2csv mfd e Tut company xsd and Tut company xml are the source schema and XML data source respectively e My CSV file is the text file component The name is entered in the Input file field of the Text import export dialog box The mapping example is for illustration purposes only it is not supposed to be a real life example The diagram below shows how you would generally expect to map an XML file to a CSV file E My
310. isons are true then the specific action i executed Ge Append Action Insert Action Acton on input data fm Primarykey xmins m ipo XSI m schemaLocation m Name Delete data in child tables gnore input child data E Office eil Delete Action E Use Transactions Files used to illustrate this example e Altova_hierarchical xsd e Altova cmpy extra xml e Altova mdb Update if on parent table Insert all on child table Parent table Department J o o Table action LL Update if compare PrimaryKey Delete data in child tables Aa II Ignore input child data DI TI child table Person II TI Table action Insert all _ compare PrimaryKey S o Delete data in child tables III Ignore input chid data III Result e Updates parent table data Department records e Deletes child data of those tables which satisfy the Update if condition Person records Retains existing database tables Engineering in this case which do not have a counterpart in the input XML file no source keys for the Update if comparison e Inserts all Person records from the input XML instance This also includes new records that might not already exist in the database Update if on parent table Update if on child table Parenttable Department_ Jooo Table action Update it compare PrimaryKey 2006 Altova GmbH Altova MapForce User Manual 124 MapForce and Databases Mappin
311. it the key on the numeric keypad to view the items resize the component if necessary Click the Insert Database icon select the Microsoft Access ADO entry and click Next Click the C icon in the title bar to specify the language the generated code should support This setting also loads the language related library into the Libraries window Select a Source Database Please select 4 source database or a stored connection and click on nest Microsoft SOL Server 400 C Oracle OCI MySGL ODBC C Subase ODBC IEM DEZ ODBC C Any ADO Any ODBC Next Cancel Click the Browse button to select the altova mdb database available from the MapForceExamples Tutorial folder and click Next This dialog box allows you to define the specific Tables Views or System tables that you want to appear in the Database component 2006 Altova GmbH Altova MapForce User Manual 108 MapForce and Databases Mapping XML data to databases Create Schema Microsoft Jet Connection Access altova Database Tables T able C Views System Be Address Be Altova Be Department Bs Office Die Person Database Owrers Select Gi Deselect Gi Selected T ables me Address Pis Altova Pis Department Flt Altova a PrimarypKey Altova Department E Office Office wom PrimaryKey d Person ForeignKey 7 Desc EMail Established 7 Click the expand icon of the Al
312. item and its children The code language and output location is determined by CodeGenSettings UseDefault CodeGenSettings Language and CodeGenSettings OutputFolder Children of this project item can have their own property settings related to code generation Errors 1700 The object is no longer valid 1706 Error during code generation GenerateCodeEx Method GenerateCode as ErrorMarkers Description Generates code for this project item and its children The code language and output location are determined by CodeGenSettings UseDefault CodeGenSettings Language and CodeGenSettings OutputFolder Children of this project item can have their own property settings related to code generation An object that can be used to iterate through all messages issued by the code generation process is returned These messages are the same as those shown in the Messages window of MapForce Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1706 Error during code generation Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 403 GenerateCodeln Method GenerateCodelIn i_nLanguage aS ENUMProgrammingLanquage Description Generates code for the project item and its children in the specified language The output location is determined by CodeGenSettings UseDefault and CodeGenSettings OutputFolder Children of this project item can have their own property
313. items of the project The code language and output location is determined by properties of the project and project items Errors 1500 The object is no longer valid 1706 Error during code generation GenerateCodeEx Method GenerateCode as ErrorMarkers Description Generates code for all project items of the project The code language and output location are determined by properties of the project and project items An object that can be used to iterate through all messages issued by the code generation process is returned These messages are the same as those shown in the Messages window of MapForce Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified 1706 Error during code generation GenerateCodeln Method GenerateCodelIn i_nLanguage aS ENUMProgrammingLanquage Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 395 Description Generates code for all project items of the project in the specified language The output location is determined by properties of the project and project items Errors 1500 The object is no longer valid 1706 Error during code generation GenerateCodelnEx Method GenerateCodelIn i_nLanguage aS ENUMProgrammingLanquage as RrrorMarkers Description Generates code for all project items of the project in the specified language The output location is determined by properties of the project and project items
314. itle ass Phone Email y Expense detaill g expense item rt die D expense item Ka ka Ka Ka Ka WR Ke Ke AN pA CA Email I i C3 DomesticD ailyRate DW Ke NM Ke ka Ka i Y ForergnD ailyR ate Ka Ka Bes ess Bell res Jess Jess es i LI LI LA LI LI LI L to al Ke Bes ess es Bes ee i es d LI LI LI LA LI LI LI LA LI L D Ki 3 Ki Ki Ki gt D Ki OI LA LA LA L LA LA LA Li Make sure that the Auto connect child items icon is deactivated before you create the following mappings Create the following mappings between the two components e Expense report to Company Person to Employee Last to Name Title to Title Phone to Tel Email to Email expense item to expense item Travel to Travel and 2006 Altova GmbH Altova MapForce User Manual 50 MapForce tutorial Mapping multiple source items to single target items e Trav cost to Travel Cost The mapping is shown below GI mi EspReport DI Y expense report _ detailed e Currency de Y Person lt First Seet Last Y Title wow C3 Phone Email g Y expense item V Ke DW ka e AN DW ka e k DW ka e m Meal Lodging EI 3 Travel PT Means E i Km Li ka e Bess Bess Bess H i LI LI See rav cost
315. ization when returned by XPath 2 0 functions 483 Query select from where 158 Quit 368 R Reference 280 Relationship create 150 preserve discard 136 Reserve method name 321 Right to left writing systems 491 Root element of target 83 Root tables 110 Rows mapping from text files 170 mapping to text files 168 S Save 379 397 Java code 24 XML output 250 XML preview 24 2006 Altova GmbH 518 Index Save 379 397 XSLT code 24 SaveAs 379 Saved 379 397 Schema code generator 304 components 10 database as source 57 database component 10 multiple source 288 multiple target 43 viewing multiple targets 46 schema validation of XML document for XQuery 479 schema awareness of XPath 2 0 and XQuery Engines 482 Script ANT 309 Search output tab 24 XSLT Output tab 284 Select from where DB query 158 Set null 160 Setting connector 292 fill character 182 Settings c and c 332 changing component 288 fixed length text file 182 ShowltemTypes 372 ShowLibraryFunctionHeader 372 shutdown of application 368 Software product license 497 Solution file 316 Source multiple and code generation 322 Source driven mixed content mapping 64 creating mapping 67 text node settings 67 vs standard mapping 73 SPL 334 adding text to files 342 code blocks 335 comments 336 conditions 340 foreach 341 global objects 338 subroutines
316. ization and code of the Software are the valuable trade secrets and confidential information of Altova and its suppliers The Software is protected by copyright including without limitation by United States Copyright Law international treaty provisions and applicable laws in the country in which it is being used You acknowledge that Altova retains the ownership of all patents copyrights trade secrets trademarks and other intellectual property rights pertaining to the Software and that Altova s ownership rights extend to any images photographs animations videos audio music text and applets incorporated into the Software and all accompanying printed materials You will take no actions which adversely affect Altova s intellectual property rights in the Software Trademarks shall be used in accordance with accepted trademark practice including identification of trademark owners names Trademarks may only be used to identify printed output produced by the Software and such use of any trademark does not give you any right of ownership in that trademark XMLSpy Authentic Style Vision MapForce Markup Your Mind Axad Nanonull and Altova are trademarks of Altova GmbH registered in numerous countries Unicode and the Unicode Logo are trademarks of Unicode Inc Windows Windows 95 Windows 98 Windows NT Windows 2000 and Windows XP are trademarks of Microsoft W3C CSS DOM MathML RDF XHTML XML and XSL are trademarks registered in numerous
317. jCommand objCommands int idx We are looking for the Menu with the name IDR_MAPFORCE This menu contains the complete main menu of MapForce if objCommand Label IDR_MAPFORCE d InsertMenuStructure mainMenu Menultems 1 objCommand 0 0 false mainMenu Is the name of the menu object of the MDI Frame window created in the Visual Studio IDE InsertMenuStructure takes the MapForce menu from the IDR_ MAPFORCE command object and adds the MapForce menu structure to the already existing menu of the sample project No commands from the File Project or Window menu are added The new commands are instances of the class Cust omMenuItem which Is defined in CustomMenulItem cs This class has an additional member to save the MapForce command ID which is taken to execute the command using Exec on selecting the menu item This code from InsertMenuStructure creates the new command CustomMenultem newMenulItem new CustomMenultem if objCommand IsSeparator newMenultem Text else newMenultem Text strLabel newMenulItem m_MapForceCmdID int objCommand ID newMenulItem Click new EventHandler AltovaMenulItem_Click You can see that all commands get the same event handler AltovaMenulItem_Click which does the processing of the command private void AltovaMenulItem_Click object sender EventArgs ei if sender GetType System Type GetType MapForceApplication CustomMenuItem
318. k into the Custom field and e Hit a keyboard key to enter a new value or e Double click in the Custom field to mark the current value and hit a different keyboard key to change the entry Assume record delimiters present If a fixed length text file Single string is the data source for another fixed length text file mapping of two text files then setting this option in the target file creates new rows after the last column of the target has been filled Altowa FLF El Text file Lo Rows gt Field wow amp Field bo Field2 zs Held if on Field Field3 gt Field4 e Field4 gt vow Field5 Field5 In the example above the Altova FLF text file is mapped to an empty target text file my text file 2006 Altova GmbH Altova MapForce User Manual 184 MapForce CSV and Text files Mapping Fixed Length Text files to a database bW Component Settings Input Output File Input file my text file Output file input He encoding Unicode LITF 28 Ge itte endian byte order CC Big endian byte order Fited Length Field Settings Fill Character f Space Period C Custom Assume record delimiters present Field3 Field4 Field el string el string el string A 29 29 Please note e There is no Input file entry which means that this text component only receives data from the mapped source component e Field lengths have been define
319. k one of the programming language icons in the title bar Java C or C 3 Click the Insert Database icon in the icon bar Select a Source Database Please select a source database or a shored connection and click on nest Microsoft SOL Server ADO Oracle OCI MySOL ODBC Sybase ODBC C IBM DBE2 0DEC C Arn ADO C Any ODBC Next Cancel Click the Microsoft Access radio button Click the Next button to continue Click the Browse button to select the database you want as the data source altova mdb in the MapForceExamples Tutorial folder in this case The connection string appears in the text box ool Select a MS Access Database f Click browse and select an Existing Microsoft Access Database JFiles ltova MAPFORCE 2004 MapForceE wamples Tutorial altova mdb Browse SEH 7 Click the Next button This opens the Create Schema dialog box Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Database to schema mapping 59 Create Schema Microsoft Jet Connection Access altova Database Tables T able C Views 1 1 System Ba Address Ba Altova Ba Department Be Office Ba Person Database Ownrers Select Gi Deselect i Selected T ables el Ba Address Ba Altova Ba Department Insert Mow Cancel 8 Click Select All then click the Insert Now button to insert the database schema component
320. key values and you want to Insert records e an input icon is not available when you select this option e the select statement inserts the mapped data into the database queries the database for the key value generated by the identity function and writes it into the key field Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 131 7 3 7 Database Table Actions and transaction processing Table actions allow you to define how specific table data are to be manipulated MapForce currently supports the table actions insert update and delete One or more fields are used to compare source and target data to determine if the table action is to be executed The Table Action dialog box allows you to define the e fields that will be compared e g PrimaryKey e operators used for the comparison equal equal ignore case and e action taken when all conditions of each column are fulfilled E Altova_Hierarchical el altova Address gE Altova Data may originate from any data source XML file database text Constant component etc The mappings that define which data are to be manipulated are created using connectors in the Mapping window Database Table Actions Altova All input data are compared to the DE table data using the operators defined HS Cancel IF all comparisons are true then the specie action ie executed i A Append Action el Insert Action
321. l 2006 Altova GmbH MapForce and Databases Database relationships and how to preserve or discard them 137 SE HER Altova DS Department i 2 egual m PrimaryKey HE 2 result E fry filter bnoderow on truel on talzely Ay Result of the above mapping OrgChart gt E 4 OrgChart Bes I Jl 5 7 Desc E 4 Addre i wee 1 Lem j Ka ka DW ta al Ka P Ke Ke Bes es ess Bell res es es es ol LI LI LI LA LI LI LI Li This mapping method does not deliver the same result as the table dependencies between the Department and Person tables are now not taken into account The result contains the last names of all 21 persons in the database the filtering by the Department primary key has clearly not succeeded lt xml version 1 0 encoding UTF 8 H lt 0rgChart smns xsi http wey 3 org 2001 DM Schema instance Office Mame gt Callaby Mame lt Name Further Mame Name gt Matise hame gt lt Name Firstbread Mame Mame Redgreens Mame lt OTTice lt lrglhart 2006 Altova GmbH Altova MapForce User Manual 138 MapForce and Databases Database feature matrix 7 5 Database feature matrix The following tables supply information on the mapping capabilities of MapForce vis a vis the major database types The following information is supplied e General info relating to Database as service and authentication issues e Su
322. l or FAILED and a detailed error message e The following QL statements were executed during Generate output function Every single result is written right to the gt string These statements are only for previews and may not be executed in another GO Guer Tool The database was connected using the following connection string Provider Microsott Jet OLEDB 4 0 Data Sources Program Files 4AttovahiAPPORCEZO04 MapF orceExamples VT ut e CO d M On amp GA hi SELECT IFEOMAvOTAtoseal Primarykey ES MULL 0 MAA Atoval PrimarykKey ij 1 AS PrimarykKey FROM Altova gt gt OK One or more rows INSERT INTO Akova Name Primary Key VALUES Microtech OrgChart PrimaryKey 2 gt gt OK 1 roves Hotkeys for the Output window keyboard and numeric key pad CTRL and zoom in on the text CTRL and zoom out of the text CTRL and 0 resets the zoom factor to standard CTRL and mouse wheel forward backward achieve the same zoom in out effect 2006 Altova GmbH Altova MapForce User Manual Chapter 19 MapForce plug in for MS Visual Studio NET 254 MapForce plug in for MS Visual Studio NET 19 MapForce plug in for MS Visual Studio NEI You can integrate your version of MapForce2006 into the Microsoft Visual Studio NET IDE versions 2002 2003 and 2005 This unifies the best of both worlds integrating advanced mapping capabilities with the advanced development environment of Visual Studio NET
323. lculation The subtract function when performed on two xs date values is actually the abstract op subtract dates function which returns an xdt dayTimeDuration value Altova MapForce User Manual 2006 Altova GmbH Chapter 14 Adding custom XQuery functions 238 Adding custom XQuery functions 14 Adding custom XQuery functions MapForce allows you to import XQuery library modules Please see the XQuery implementation specific document for more information Altova MapForce User Manual 2006 Altova GmbH Chapter 15 Aggregate functions summing nodes in XSLT1 and 2 240 Aggregate functions summing nodes in XSLT1 and 2 15 Aggregate functions summing nodes in XSLT1 and 2 This section describes the method you can use to process multiple nodes of an XML instance document and have the result mapped as a single value to a target item The files used in this example are available in the MapforceExamples Tutorial folder and consists of Summing nodes mfd mapping input xml input XML file input xsd and output xsd source and target schema files Summing nodes xslt xslt file containing a named template to sum the individual nodes The screenshot below shows the XML input file The aim of the example is to sum the Price fields of any number of products in this case products A and B sml version 0 encoding UTF s ts J k Input cm lner xSL http fa oi org 2001 SAMLochema Products gt Product gt Wame
324. ld create guid Creates a globally unique identifier as a hex encoded string for the specific field 2006 Altova GmbH Altova MapForce User Manual 136 MapForce and Databases Database relationships and how to preserve or discard them ZA Database relationships and how to preserve or discard them Maintaining database relationships To map all Last names from the Person table where the Department primary key is equal to 4 create mappings under the same root table Department e PrimaryKey is mapped from the Department root table e Last is mapped from the Person table which is a child of the Department root table a er DI Y OrgChart ESCH d E Compan a daa es P filter Lie on falzelp Result of the above mapping The last names of the persons in the Department with the primary key of 4 IT amp Technical support are displayed in the Output tab lt xml version 1 0 encoding UTF 0 7 gt OrgChart xmn xsi http kay wa ora 200i AML Schema instance sOTtice gt lt MamesMartin Mame lt Name Hammer Mame gt o sMame Bander stame Mame King stamne sfOitice lt flrglhart 1 2 3 A 5 b H S g T _ Discarding database relationships Create mappings of the same fields from different root tables e g Department and Office e PrimaryKey is mapped from the Department root table e Last is mapped from the Person root table Altova MapForce User Manua
325. le clicking this user defined component displays its constituent components shown below What this component does is e Compares the Office First and Last names of BranchOffices xml with the same fields of the Altova_Hierarchical xml file using the input components and the EqualAnd user defined components e Combines the Email PhoneExt and Title items using the Person2Details user defined function e Passes on the combined person data to the output component if the previous EqualAnd comparisons are all true i e supplied true to the filter component A user defined function always outputs a value which may even be an empty string This would be the case if the filter component bool value is false Only an empty string would be output instead of data supplied by the Person2Details component Altova_Hierarchical a E 3 Altova PrimaryKey i A Office PrimaryKey ForeignKey ORTEN Lo ME and Hel a Tb deteub Office Name cwresult Ke 2 WR i il LA Lt LA T py i LA V Ka Ke WW default First Name GC detautt last Name k how ae bool gt Phone fl Address de 4 Department Y PrimaryKey ForeignkKey Pr a Bam omg Ki WW Person2Details gt Details ho Se L L e The three input components input 1 to input 3 receive their data from the BranchOffices xml file e The EqualAnd component compares two values and provides
326. le input parameters The input 1 component receives data supplied when a mapping is executed This is possible in two ways e as acommand line parameter when executing the generated code e g Mapping exe OfficeName Nanonull Partners Inc e as a preview value when using the MapForce Engine to preview the data in the Output window G input 14 Manonull Inc Officename bs i SE 7 BranchOffices i gt 3 life Name To define the Input value 1 Double click the input 1 component and enter a different value in the Value text box of the Preview Mode group e g Nanonull Partners Inc and click OK to confirm 2 Click the Output tab to see the effect A different set of persons are now displayed Please note that the data entered here is only used in preview mode i e when clicking the Output tab If a value is not entered or the check box is deactivated then the data mapped to the input icon default is used Please see Input values overrides and command line parameters for more information E Create Input 4 x Mame Office ame Datatype string M lw Connection required Preview Code generation hd Use alternative value Value Nanonul Partners Inc Altova MapForce User Manual 2006 Altova GmbH User defined functions User defined function example 213 LookupPerson component LookupPerson 5 Office Name eH result First Name 2 Last Name Doub
327. le type IsComplexFromSimpleType boolean True if this is a complex type and is derived from a simple type True if the top level group type is sequence True if the top level group type is choice IsGlobal if this type is usable anywhere in the generated files 2006 Altova GmbH Altova MapForce User Manual 348 Code Generator The way to SPL Spy Programming Language IsAnonymous boolean jtrue if this type is a kind of a help object that will not be shown in the generated files IsInternal boolean true if this is a help object dealing with root elements Members Member JA class representing a complexType contains one or collection jmore Members Facets Facet A class representing a simpleType or a collection complexType derived from a simpleT ype may contain Facets Member Abstraction of a member variable inside a class Name Type Description _ _ NamespaceURI string The namespace URI of this Element Attribute within XML instance documents streams Name eng ______ Name in the resulting file SchemaName string Name as in the original schema file XmIName string The name as it is expected to appear in XML instance documents streams Type string The name of the class which represents the schema type SchemaType The schema type TypeObject See explanation below HasTypeObject boolean _ true when typeobject has a valid value Description string Description of the Element A
328. leases or updates However Altova at its option and in its sole discretion on a case by case basis may decide to offer maintenance releases to you as a courtesy but these maintenance releases will not include any new features in excess of the feature set at the time of your purchase of the Software In addition Altova will provide free technical support to you for thirty 30 days after the date of your purchase the Support Period for the purposes of this paragraph a and Altova in its sole discretion on a case by case basis may also provide free courtesy technical support during your thirty 30 day evaluation period Technical support is provided via a Web based support form only and there is no guaranteed response time b If you have purchased SMP then solely for the duration of its delineated Support Period you are eligible to receive the version of the Software edition that you have licensed and all maintenance releases and updates for that edition that are released during your Support Period For the duration of your SMP s Support Period you will also be eligible to receive upgrades to the comparable edition of the next version of the Software that succeeds the Software edition that you have licensed for applicable upgrades released during your Support Period The specific upgrade edition that you are eligible to receive based on your Support Period is further detailed in the SMP that you have purchased Software that is introduced as se
329. les all the options in the Annotation Settings group 2 Use the remaining groups to define the position and alignment of the label 2006 Altova GmbH Altova MapForce User Manual 294 MapForce Reference Function 21 7 Function Create user defined function Creates a new user defined function Selecting this option creates and empty user defined function into which you insert the components you need Please note that a single output function is automatically inserted when you define such a function and that only one output function can be present in a user defined function Please see Creating a user defined function from scratch for more information Create user defined function based on selection Creates a new user defined function based on the currently selected elements in the mapping window Please note only one output component may exist amongst the selected components Please see Adding user defined functions for more information Function settings Opens the settings dialog box of the currently active user defined function allowing you to change the current settings Use this method to change the user defined function type i e double click the title bar of a user defined function to see its contents then select this menu option to change its type Implementation Ce Inline recommended Allows comples parameters filters and multiple outputs C Standard function Allows recursive calls Insert Input Ins
330. les to XML Tel extension Email Position el string el string el string SIS Wicallabycenanonull com Office Manari 47 fturthereinanonall comn Accounts Re ie Lmatiseminanonull com Accounting t SEN firsthreadminanoanull com Marketing Mes foo S sannaenanonull cam Art SS H Please note Hitting the Tab keyboard key allows you to cycle through all the fields header1 field type1 header2 etc 3 Click the OK button when you are satisfied with the settings The CSV component is now visible in the Mapping 4 Select the menu option Insert XML Schema file and select MFCompany xsd 5 Click No when asked if you want to supply a sample XML file and select Company as the root element eeng First name a E de Address H E Last name p o 4 Person Tel_ extension 3 ge Manager Email _ Programmer Position d a Degree ow First 4 Title 4 PhoneExt Email 6 Map the corresponding items of both components making sure to map the Rows item to the Person item in the schema target then click the Output tab to see the result lt xml version 1 0 encoding UTF 0 t H lompany xmins xsi hittp e vw 3 orgi 001 wl Echema instance xsi CO lt Person Manager true lt First Vernon lt First sLast Callaby Last gt PhoneExt 582 PhoneExt lt Email callabyi inanonull com Email Person lt Person Manager true lt First Frank lt JF
331. lse Private True 2245112 1 False False Set the Visible flag to False to avoid any confusion about the control for the user Adding the Placeholder Controls Placeholders on the MDI Frame The example project has to place Placeholder controls on the main MDI Frame They are also added via the Toolbox window by dragging a rectangle on the destination Form To set the type of the Placeholder which should be displayed one has to set the PlaceholderWindowID property This property can also be changed during runtime in the code of the application The Placeholder control would change its content immediately Properties of the Library window on the left side of the MDIMain Frame window are shown below 2006 Altova GmbH Altova MapForce User Manual 428 MapForceControl Integration at Document Level DataBindings DynamicProperties Mame 4AccessibleDescription 4ccessibleHame 4ccessibleRole SllowOrop Anchor Causes alidation Dock ImeMode Location Locked Modifiers PlaceholderwindowIC Size Tablndex TabStop Tag Visible axMapForceControlLibrary Default False Top Left True Left MoContral 0 0 False Private MapForcexLibrary Window eff 625 Fa True True Properties of the Output window at the bottom DataBindings DynamicProperties Marnie 4ccessibleDescription 4AccessibleName 4ccessibleRole AllowOrop Anchor Causes alidation Dock ImeMode Location Locked Modifiers Plac
332. ltova MapForce User Manual 2006 Altova GmbH User defined functions Complex user defined function XML node as input 201 10 3 Complex user defined function XML node as input This example is provided as the lookup udf in mfd file available in the MapForceExamples folder What this section will show is how to define an inline user defined function that contains a complex input components Note that the user defined function FindArticle consists of two halves A left half which contains the input parameters e asimple input parameter POArtNr e acomplex input component Articles with mappings directly to its XML child nodes A right half which contains e asimple output parameter called Name E ShortPO Botzen p i Y Customer gt E Ch Lineltems EIS O CompleteP0 E Lineltem gt HAK Customer i lt f H Number Gg EE gt e FirstName mee bei POArtN 3 LastName 7 PA Articles Artic o E Address G E E Article P Lineltems O Number D BOLto A 3 Articles d a a E Article d SE Number The screenshot below shows the constituent components of the user defined function the two input components at left and the output component at right fa equal i result D Articles esa fi filter E OArticles f bool de 4 Article Number 2006 Altova GmbH Altova MapForce User Manual 202 User defined functions Complex user defined function XML node
333. m code We would recommend that you use this option until you are satisfied with the results and then generate program code once you are done The generated program code will have a much faster execution speed To save the generated XSLT code 1 Select the menu option File Generate code in XSLT 1 0 or XSLT 2 0 2 Browse for the folder where you want to save the XSLT file 3 A message appears when the generation was successful 4 Navigate to the previously defined folder where you will find the generated XSLT file To save the XML or output data from the Output tab 1 Click the Output tab to preview the mapping result 2 Click the Save generated output icon a and specify where you want the result to be saved If the target is an XML Schema file e The Save generated output icon is active Click it to save the output If the target is a Database e The Run SQL script icon is active Click it to update insert or delete the database data To transform an XML Schema file using the generated XSLT 1 Open the XML file in the editor of your choice KMLSpy for example 2 Assign the XSLT file to the XML file XSL XQuery Assign XSL 3 Start the transformation process XSL XQuery XSL Transformation The transformed XML document appears in your editor To generate program code 1 Select the specific menu option File Generate code in XSLT XSLT2 XQuery Java C C 2 Browse for the folder where you want to save
334. m in the source schema database to any other item element attribute in the target schema The source data then appears at the position defined by your mapping in the target document You can also define multiple output schemas MapForce then generates XSLT XQuery or program code for each target schema You can then selectively preview the different output schemas in the Output preview window please see the section XSLT and Output previews for more information Please note It is not necessary to associate an XML Instance document to a target schema If you do so then the XML instance document is ignored and does not affect the transformation in any way Clicking the root element of a schema and hitting the key on the numeric keypad expands all the schema items To create a Database component source target The database structure is the basis of the component and is displayed it in a tree view 1 2 3 Click the Insert Database icon Select the source database type by clicking on one of the radio buttons e g Microsoft Access and click Next Click Browse to select navigate and select an Access database e g Tutorial altova mdb and then click Next Select the database tables you want to import or have access to Select All Click the Insert Now button at the bottom of the dialog box The database component now appears in the Mapping window 2006 Altova GmbH Altova MapForce User Manual 12 MapFor
335. mainder of the original warranty period or thirty 30 days whichever is longer This limited warranty does not apply to Evaluation and or Pre release Software b No Other Warranties and Disclaimer THE FOREGOING LIMITED WARRANTY AND REMEDIES STATE THE SOLE AND EXCLUSIVE REMEDIES FOR ALTOVA OR ITS SUPPLIER S BREACH OF WARRANTY ALTOVA AND ITS SUPPLIERS DO NOT AND CANNOT WARRANT THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING THE SOFTWARE EXCEPT FOR THE FOREGOING LIMITED WARRANTY AND FOR ANY WARRANTY CONDITION REPRESENTATION OR TERM TO THE EXTENT WHICH THE SAME CANNOT OR MAY NOT BE EXCLUDED OR LIMITED BY LAW APPLICABLE TO YOU IN YOUR JURISDICTION ALTOVA AND ITS SUPPLIERS MAKE NO WARRANTIES CONDITIONS REPRESENTATIONS OR TERMS EXPRESS OR IMPLIED WHETHER BY STATUTE COMMON LAW CUSTOM USAGE OR OTHERWISE AS TO ANY OTHER MATTERS TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW ALTOVA AND ITS SUPPLIERS DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS EITHER EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE SATISFACTORY QUALITY INFORMATIONAL CONTENT OR ACCURACY QUIET ENJOYMENT TITLE AND NON INFRINGEMENT WITH REGARD TO THE SOFTWARE AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS YOU MAY HAVE OTHERS WHICH VARY FROM STATE JURISDICTION TO STATE JURISDICTION c Limitation Of Liability TO THE MAXIMUM
336. mapped fields of the Person tables are updated 8 Click the Output tab at the bottom of the mapping window to see the pseudo SQL code that this mapping produces 9 Click the Run SQL Script icon in the function bar to run the script and update the database records If the script was successful a confirmation message appears Click OK to confirm 10 Open the Altova database and double click the Person table to see the effect All the person records of the database have been updated Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML datato databases 119 E Person Table a a a ee E TA Algnchomc Albert Ibhbande mcr Bert 1 c clovistemicra Clive 2 d Dumelbommcr Dave 2 e allasi microt Eve 3 ffortunasigmic Fred 2 g gundallicemicr Gerry 3 h hardyigdmicra Harry 2 Liglko rmcrote Ingrid 2 Llugv mmicroter June 2kkromeomcrot Karl CU LU CO OI On amp Ob Aldrich Bander Clovis Durnelll Ellas Fortunas Gundall Hardy Idilko Judy Krove Second Example This slightly more complex example attempts to update records in both the Department and Person tables as well as add any new Person records which might exist in the XML input file The root table used in this example is thus the Department table Files used in this example e Altova_Hierarchical xsd e altova cmpy extra xml is the XML instance for Altova_hierarchical xsd e altova mdb e to u
337. me name as schema datatypes e g fn string and fn boolean Both xs string and xs boolean are defined The namespace prefix determines whether the function or type constructor is used XML source document and validation XML documents used in executing an XQuery document with the Altova XQuery 1 0 Engine must be well formed However they do not need to be valid according to an XML Schema If the file is not valid the invalid file is loaded without schema information If the XML file is associated with an external schema and is valid according to it then post schema validation information is generated for the XML data and will be used for query evaluation Static and dynamic type checking The static analysis phase checks aspects of the query such as syntax whether external references e g for modules exist whether invoked functions and variables are defined and so on No type checking is done in the static analysis phase If an error is detected in the static analysis phase it is reported and the execution is stopped Dynamic type checking is carried out at run time when the query is actually executed If a type is incompatible with the requirement of an operation an error is reported For example the expression xs string 1 1 returns an error because the addition operation cannot be carried out on an operand of type xs string Library Modules Library modules store functions and variables so they can be reused The Altova XQuery
338. meters passed to the run method except for the last one CompletePO xml are source files Please ensure that the last parameter is the target file In this example the source files are e XML file Short PO xml e Database file CustomerAndArticles mdb including the connection string the target file is e CompletePO xml To define your own source or target files e Directly edit the parameters passed to the run method of MappingMain1 Object To use an XML input stream as the XML data source e Navigate to the run method declaration in the code and configure the specific parameters there To add extra error handling code e Edit the code below the catch CAltovaException ei code 2006 Altova GmbH Altova MapForce User Manual 332 Code Generator Code generator options 22 6 Code generator options The menu option Tools Options lets you specify general as well as specific MapForce settings Generation tab This tab lets you define the settings for C and C programming languages C e Microsoft Visual Studio 2005 NET 2003 or Visual C 6 0 project file e generate code using either MSXML 4 or Xerces XML library note that MapForce currently supports Xerces Version 2 2 or higher e generate static libraries or Dynamic link libraries e generate code with or without MFC support C Select the type of project file you want to generate e Microsoft Visual studio 2005 2003 or 2002 project file e Borland C B
339. mfd else alert Unable to locate MarketingExpenses mfd at objMapForceControl BaseHref lt SCRIPT gt Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at the Application Level 419 Add Buttons for Code Generation Although code generation for the active document is available via menus we want to have buttons that will generate code without asking the user for the location of the output The method is similar to that used in the previous section First come the buttons lt input type button value Generate XSLT onclick BtnGenerate 0 gt lt input type button value Generate Java onclick BtnGenerate 1 gt lt input type button value Generate C onclick BtnGenerate 2 gt lt input type button value Generate C onclick BtnGenerate 3 gt Then we provide the script that will generate the code into sub folders of the currently defined default output folders lt SCRIPT ID Javahandlers LANGUAGE javascript gt generate code for active document into language specific sub folders of the current default output directory No user interaction necessary function BtnGenerate languageID get top level object of automation interface var objApp objMapForceControl Application get the active document var obyjDocument objApp ActiveDocument retrieve object to set the generation output path var objOptions objApp Options if
340. mory so as to parse it completely and to improve viewing and editing soeed The memory requirement increases exponentially with the size of the document For example a 512kB document would typically require about 2MB of RAM whereas a 5MB document can consume up to 50MB Memory requirements are also influenced by the unlimited Undo history When repeatedly cutting and pasting large selections in large documents memory can rapidly be depleted 2006 Altova GmbH Altova MapForce User Manual 488 Appendices Technical Data 25 2 2 Altova XML Parser When opening any XML document the application uses its built in validating parser the Altova XML Parser to check for well formedness validate the document against a schema if specified and build trees and Infosets The Altova XML Parser is also used to provide intelligent editing help while you edit documents and to dynamically display any validation error that may occur The built in Altova XML Parser implements the Final Recommendation of the W3C s XML schema specification New developments recommended by the W3C s XML Schema Working Group are continuously being incorporated in the Altova Parser so that Altova products give you a State of the art development environment Altova MapForce User Manual 2006 Altova GmbH Appendices Technical Data 489 25 2 3 Altova XSLT and XQuery Engines Altova products use the Altova XSLT 1 0 Engine Altova XSLT 2 0 Engine and Altova XQ
341. mpl complement node set 37 Complex function inline 195 User defined complex input 202 2006 Altova GmbH Index 509 Complex User defined complex output 207 User defined function 201 206 Component change database 288 changing settings 288 database 57 defining UI 222 exception 246 schema 10 Concatenate filters don t 96 Configure mff file 220 Connect reselect database 95 Connection properties 19 settings 292 Connections type driven 76 Connector annotate 67 mapping with 18 naming 292 properties 19 Constructor XSLT2 236 Context priority 14 priority context 87 Conversion functions boolean 86 type checking 244 Copyright information 493 Count 380 count function in XPath 1 0 474 count function in XPath 2 0 see fn count 482 Create function 33 new mapping project in Eclipse 269 user defined function 192 CSV creating hierarchies keys 170 custom field 173 field datatypes 173 file options 173 input file 173 mapping 165 output file 173 Custom fill character Fixed 182 function 14 lilbrary 14 XQuery functions 238 XSLT 2 0 functions 236 XSLT functions 230 Custom library adding 218 D Data filtering 37 Database and multiple sources 288 change DB 288 complete mapping 155 component 10 create relationship 150 feature matrix 138 filters and queries 158 IBM DB2 info 149 insert 60 invalid con
342. mple deals with the simple task of updating existing Person records Mappings are created from the XML data source to the root table Person Files used in this example e Altova_Hierarchical xsd e altova cmpy xml e altova mdb Aim To update the person fields of the Person table 1 Insert the Altova_Hierarchical schema and assign altova cmpy xml as the input XML instance 2 Insert the MS Access database altova mdb into the mapping Lal zez Address EJ Altova Ges Department sel Office Person ke ZK Of ee I oJ LI DW Dess P I L Besse H i L 4 Phone E Address de 4 Department Y PrimaryKey ka L nee ech La sms nee ch iL KA dch e e ka LJ Ka Ka Bess Bel i es Bess I LI LI LA LI Li fe PrimaryKey mForeignkey fEMail 1 oJ LI Of U LJ I J WE LJ 3 Ke i LA LI LI LI First last Sbhonet wt Ft Title mE Department ka de 7 Person Y PrimaryKey 4 ForeignKey EMail Y First Ka Ka I ke Ke Peng e m m Zeen I Li ka Ben nn LA LI LI L Ka Bess L DW I LA LI LI U LJ LJ L it Y PhoneE xt 4 Title U Ka 3 Activate the Auto connect matching children icon 4 Click the Person item in the XML source file and d
343. mpleted message appears when the process was successful If not an error message appears detailing the specific error s If you are using an ANT build script e Navigate to the Java subdirectory and execute ant which automatically opens the build xml file e This will compile and execute the Java code The XML target instance file is automatically generated at the end of this sequence ey C WINDOWS Systems2 cmd exe Ss HE 8 MKAKETOMVEK 22 ATTERT Buildfile build xml compile javac Compiling 47 source files to C TempMarket ingExpenses javac Compiling 340 source Files to C Temp Market ingExpenses Mapping Application 1 Loading C Projects Files aANLS pyExeFo lder NapForceExamples ExpRe port javal Saving MarketingExpenses xml java Finished BUILD SUCCESSFUL Total time 5 seconds 2 TempMarket ingExpenses gt For further information please see Generating Java code using JBuilder 2006 Altova GmbH Altova MapForce User Manual 310 Code Generator Generating program code Generating Java code using JBuilder If you are using Borland JBuilder e Navigate to the Java subdirectory and open the Mapping jpx file to compile the Java code Cy JBuilder 9 C Temp MarketingExpenses com mapforce MappingApplication jayra File Edit Search View Project Run Team Wizards Tools Window Help o gt D g lkogese nx i E E Mapping bz e RES MappingApplication Mapp
344. mpting you to select an XML instance file if you intend to use this schema as a data source in this mapping 3 Click Yes if this is the case and select the XML instance file The schema component now appears in the Mapping tab El expense report detailed cane DI OD Person pee A First 7 ben Last Title 7 E Y Phone i Email E expense item You can now connect the schema source output icons with the target or function input icons to create your mappings To create a schema component target 1 Click the Insert XML Schema File icon Di 2 Select the schema file you want to use from the Open dialog box Select No when you are prompted to supply an XML instance file 3 Select the Root element of the schema you want to use Company and click OK Altova MapForce User Manual 2006 Altova GmbH MapForce overview MapForce components 11 E ExpReport T arget ow Email 4 DomesticD ailyRi 7 pees ForeignD ailyR all gt Y Expense detail gt r H de expense item The schema snippet with the root element appears as a schema component The target schema is the basis of the XML document you want to have generated by the transformation The target schema document can of course differ dramatically from the source schema This is where the mapping process comes in you can map any ite
345. n Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1204 Error during XSLT XSLT2 XQuery code generation See also Code Generation GenerateXSLT2 Method GenerateXxSLT2 Description Generates mapping code as XSLT2 Uses the properties defined in Application Options to Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 377 configure code generation Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 1204 Error during XSLT XSLT2 XQuery code generation See also Code Generation HighlightSerializedMarker Method HighlightSerializedMarker i_strSerializedMarker aS String Description Use this method to highlight a location in a mapping file that has been previously serialized If the corresponding document is not already loaded it will be loaded first See GenerateCodeEx for a method to retrieve a serialized marker Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified 1007 The string passed in _ strSerializedMarker is not recognized a serialized MapForce marker 1008 The marker points to a location that is no longer valid JavaSettings BasePackageName Property JavaSettings_BasePackageName aS String Description Sets or retrieves the base package name used when generating Java code
346. n Authentic View of Authentic Desktop or XMLSpy To remove duplicated items e Right click the duplicate item and select the Remove Duplicate entry from the menu To see a further example involving duplicate items please see the PersonList mfd sample file available in the MapForceExamples folder In the example 2006 Altova GmbH Altova MapForce User Manual 56 MapForce tutorial Mapping multiple source items to single target items e Different elements of the source document are mapped to the same element in the target Schema XML document e Specific elements Manager etc are mapped to a generic one using a role attribute SS d C Manageri e Y PersonList gt g Employees a C Person E Manager Pee p Grena i 3 us gt First in Y LastName Ef PhoneExt pe Programmer i r EH Li Person 2 ZEN E mail b Poe role KE k First Shads role Le L F T I LA LA LI Li E Ka ka ke de 4 Programmer ue Y FirstName b 7 LastName oe PhoneExt gt S i Y Email de 4 Support Y FirstName 4 LastName 7 PhoneE xt Email j P DW _ _ feeg lh CU we _ Ka i i i i j r E DW NG i ww L Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Database to schema mapping 57 3 8 Database to schema mapping This section will show how to use a simple Microsoft A
347. nabling the integration to be adapted to a wide range of needs For a successful integration you have to consider the following main design factors e What technology or programming language can the hosting application use to integrate the MapForceControl e Should the integrated Ul look exactly like MapForce with all its menus toolbars and windows or will a subset of these elements like allowing only one document and a restricted set of commands be more effective e How deep will the integration be Should the MapForce user interface be used as is Are user interface extensions and or restrictions required Can some frequently used tasks be automated The sections Integration at the Application Level and Integration at Document Level both of which have examples in various programming languages will help you to make the right decisions quickly The section Object Reference describes all COM objects that can be used for integration together with their properties and methods For automation tasks the MapForce Automation Interface is accessible from the MapForceControl as well Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at the Application Level 417 24 1 Integration at the Application Level Integration at application level is simple and straightforward It allows you to embed the complete interface of MapForce into a window of your application Since you get the whole user interface of
348. nciples and the U N Convention on Contracts for the International Sale of Goods and you expressly agree that exclusive jurisdiction for any claim or dispute with Altova or relating in any way to your use of the Software resides in the Handelsgericht Wien Commercial Court Vienna and you further agree and expressly consent to the exercise of personal jurisdiction in the Handelsgericht Wien Commercial Court Vienna in connection with any such dispute or claim This Software License Agreement will not be governed by the conflict of law rules of any jurisdiction or the United Nations Convention on Contracts for the International Sale of Goods the application of which is expressly excluded Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 505 This Software License Agreement contains the entire agreement and understanding of the parties with respect to the subject matter hereof and supersedes all prior written and oral understandings of the parties with respect to the subject matter hereof Any notice or other communication given under this Software License Agreement shall be in writing and shall have been properly given by either of us to the other if sent by certified or registered mail return receipt requested or by overnight courier to the address shown on Altova s Web site for Altova and the address shown in Altova s records for you or such other address as the parties may designate by notice given in the m
349. nd is currently enabled or disabled using the method QueryStatus Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 423 24 2 2 Use MapForceControlDocument An instance of the MapForceControlDocument ActiveX control allows you to embed one MapForce mapping editing window into your application You can use any number of instances you need Each instance will have one mapping loaded New instances contain a new mapping at creation Use the method OpenDocument to load any other existing mapping file The control supports a read only mode via the property ReadOnly Use Path and SaveDocument or methods and properties accessible via the property Document to access document functionality 2006 Altova GmbH Altova MapForce User Manual 424 MapForceControl Integration at Document Level 24 2 3 Use MapForceControlPlaceHolder Instances of MapForceControlPlaceHolder ActiveX controls allow you to selectively embed the additional helper windows of MapForce into your application The property PlaceholderWindowID selects the MapForce helper window to be embedded Use only one MapForceControlPlaceHolder for each window identifier See Enumerations MapForceControlPlaceholderWindow for valid window identifiers For placeholder controls that select the MapForce project window additional methods are available Use OpenProject to load a MapForce project Use the property Project and the metho
350. ne item as an argument anda sequence of more than one item is submitted then an error is returned e All string comparisons are done using the Unicode codepoint collation Results that are QNames are serialized in the form prefix localname Funetionname notes OO 2006 Altova GmbH Altova MapForce User Manual 484 Appendices Engine information page uri e f external entities are used in the source XML document and if a node in the external entity is specified as the input node argument of the base uri function it is still the base URI of the including XML document that is used not the base URI of the external entity e The use of the xml base attribute in the source XML document is not supported This means that the base URI of a node in the XML document cannot be altered using the xm1 base attribute collection e The collection function is a mapping of form string nodes Currently called available collections and left empty by the external environment The function therefore returns either i the empty sequence when called with no argument or with an empty sequence or ii an error when called with a non empty argument e See note on whitespace in the General Information section cContd FunetionName Notes current date gt The current date and time is taken from the system clock current dateT1 The timezone is taken from the implicit timezone provided by need the evaluation context the
351. nection 95 JDBC setup 103 Key settings 130 mapping data Java 60 mapping from XML 107 mapping large DBs 154 mapping to 106 MS Access info 139 MS SQL Server 141 MySQL info 145 null functions 160 Oracle info 143 partial mapping 156 query optimization 158 support 102 Sybase info 147 table actions 131 XQuery 102 2006 Altova GmbH 510 Index Database action delete 127 insert 112 update 117 update and delete child 122 Database relationships preserve discard 136 Database support 57 Datatype explicit implicit 236 datatypes field 173 in XPath 2 0 and XQuery 1 0 482 Date filtering DB date records 94 XSLT 2 0 constructor 236 DB filtering date records 94 deep equal function in XPath 2 0 see fn deep equal 482 Default input value 211 default functions namespace for XPath 2 0 and XQueyr 1 0 expressions 482 in XSLT 2 0 stylesheets 476 Delete database action 127 user defined function 192 Delete child and update 122 Delimited files CSV 165 Delimiter assume present 182 field 173 Development environments 105 Distribution of Altova s software products 493 494 496 DII compiler settings 332 Document 373 closing 374 creating new 366 381 filename 378 on closing 373 on opening 365 opening 367 381 path and name of 374 path to 378 retrieving active document 381 save 379 save as 379 Document level e
352. need to add some code to the public MDIMain method in MDIMain cs m_MapForceOverview new MapForceOverviewWnd MapForceControllLib MapForceControlPlaceHolderClass type MapForceControlLib MapForceControlPlaceHolderClass m_MapForceOverview axM apForceControlOverview GetOcx type AssignMultiDocCtrl MapForceControlLib MapForceControlClass axMapForc eControl GetoOcx gt m_MapForceOverview Show The MapForceOverviewWnd is created and shown here In addition a special method of the Placeholder control is called in order to connect the MapForcecontrol to it AssignMultiDocCtri1 takes the MapForceControl as parameter and registers a reference to it in the Placeholder control Retrieving Command Information The MapForceControl gives access to all commands of MapForce through its CommandsStructure property The example project uses the MapForceCommands and MapForceCommand interfaces to dynamically build a menu in the MDI Frame window which contains most of the MapForce commands The code to add the commands is placed in the MD Main method of the MapForceApplication Class in the file MDIMain cs public MDIMain 2006 Altova GmbH Altova MapForce User Manual 430 MapForceControl Integration at Document Level MFLib MapForceCommands objCommands objCommands axMapForceControl CommandsStructure long nCount objCommands Count torilong ele Hee lt mCount idxt MFLib MapForceCommandobjCommand ob
353. nerate code 316 integrate generated code 328 integration of MapForce 426 427 429 431 432 options 386 388 settings 332 C build configurations 318 code 304 code generation 375 compile code 318 enumeration 408 409 error handling 361 generate code 318 integrate generated code 330 options 386 387 388 settings 332 Call template 230 Character fill 175 character entities in HTML output of XSLT transformation 474 character normalization in XQuery document 479 Check type checking 244 Child items autoconnect 19 Children standard with children 73 Class ID in MapForce integration 418 Client Oracle installation 301 Close 374 project 393 Code built in types 347 generation 307 generation example 322 integrating MapForce code 325 SPL 334 Code compatibility v2005R3 332 code generation 382 384 and absolute path 43 and input parameters 91 C 374 C 375 enumerations 408 409 410 412 413 generate XQuery 188 input parameters 91 Java 375 options 378 options for 386 387 388 sample 355 XSLT 376 Code Generator 304 Code generation options for 367 390 collations in XPath 2 0 482 in XQuery document 479 COM API documentation 352 Comma CSV files 165 Command line parameters 89 parameters and input values 91 XQuery engine 188 Comments in SPL 336 Compatibility mode v2005R3 332 Compile C code 316 C code 318 Compiler settings 332 co
354. new Enumerator ob jProject WScript Echo strGlobalText catch err ERROR while creating new project err 2006 Altova GmbH Altova MapForce User Manual 360 The MapForce API Overview _ Generate code for a project s sub tree Mix default code generation parameters and overloaded parameters _ function GenerateCodeForNewProject since the Web service project contains only initial mappings we generate code only for our custom folder code generation parameters from project are used for Folderl whereas Folder2 provides overwritten values objFolder objProject Item 0 objFolderl GenerateCode d CEREAL COLE Cee ET EEN SE CELE EP EL CELE LeeLee ee Cees CreateGlobalObjects objMapForce Visible true LoadSampleProject CreateNewProject GenerateCodeForNewProject uncomment to shut down application when script ends objMapForce Visible false Altova MapForce User Manual 2006 Altova GmbH The MapForce API Overview 361 23 1 4 Error handling The MapForce API returns errors in two different ways Every API method returns an HRESULT This return value informs the caller about any malfunctions during the execution of the method lf the call was successful the return value is equal to S_OK C C programmers generally us
355. new SchemaString Hello World return new SchemaString Hello User Compile the Java file to a class file and add this to your Classpath You have now finished creating your custom library How to write a C library 1 2 5 Open a new Project and create a class library Go to add reference and add the Altova dll If you encounter problems finding Altova dll on your computer please generate and compile the C code without user defined functions you will then find the DLL in the directory you specified Add the using Altova Types line The class name should be the same as you specified here Greetings lt implementation language cs gt lt setting name namespace value HelloWorldLibrary gt lt setting name class value Greetings gt lt setting name reference value C HelloWorldLibrary HelloworLldLibrary dli gt lt implementation gt Add the namespace using the same value as you specified in the implementation 2006 Altova GmbH Altova MapForce User Manual 226 Adding custom libraries Writing your libraries settings shown above 6 Add your functions as public static and remember to only use the Schema simpleTypes supplied by the Altova dll The sample code should look like this using System using Altova Types namespace HelloWorldLibrary public class Greetings public Greetings public static SchemaString HelloFunction SchemaBoolean GreetingType
356. new empty document Please use the Path property to set path and filename Otherwise the control can t save the document using SaveDocument Open Method open st rFileName as string as boolean Dispatch Id 1001 2006 Altova GmbH Altova MapForce User Manual 466 MapForceControl Object Reference Description Open loads the file st rFileName as the new document into the control OpenDocument deprecated Method OpenDocument strFileName as string as boolean deprecated Description OpenDocument loads the file strFileName as the new document into the control QueryStatus Method QueryStatus nCmdID as long as long Dispatch Id 9 Description QueryStatus returns the enabled disabled and checked unchecked status of the command specified by ncmdID The status is returned as a bit mask Bit Value Name Meaning 0 1 Supported Set if the command is supported 1 2 Enabled Set if the command is enabled can be executed 2 4 Checked Set if the command is checked This means that if QueryStatus returns 0 the command ID is not recognized as a valid MapForce command If QueryStatus returns a value of 1 or 5 the command is disabled The client should call the QueryStatus method of the document control if there is currently an active document available in the application Reload Method Reload as boolean Dispatch Id 1002 Description Reload updates the document content from the file system save Method
357. ng true from this event indicates that the client has closed the document Clients can return false if no specific handling is required and MapForceControl should try to close the editor and destroy the associated document control OnProjectOpened Event OnProjectOpened ob Project as Project Dispatch Id 2 Description This event gets triggered whenever a project is opened The argument objProjectDocument IS a Project object from the MapForce automation interface and can be used to query more details on the project or perform additional operations 2006 Altova GmbH Altova MapForce User Manual 462 MapForceControl Object Reference OnUpdateCmdUI Event OnUpdateCmdUI Dispatch Id 1 Description Called frequently to give integrators a good opportunity to check status of MapForce commands using MapForceControl QueryStatus Do not perform long operations in this callback Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 463 24 5 4 MapForceControlDocument Properties Appearance Borderstyle Document IsModified Path ReadOnly ZoombLeve Ll Methods Exec New Open UuUervolatus Reload Save SaveAs If the MapForceControl is integrated in the Document Level mode each document is displayed in an own object of type MapForceControlDocument The MapForceControlDocument contains only one document at the time but can be reused to display different files one after
358. nicode characters being used by that document Windows NT typically includes support for all common single byte writing systems in its Arial Times and Courier New fonts and will additionally include all required fonts for the writing system in your own country i e if you install the Japanese version of Windows NT you will automatically have fonts that support the Katakana Hiragana and Kanji writing systems as well as the input methods and dictionaries to enter Kanji and to switch between Katakana and Hiragana If you wish to edit any document from a foreign writing system you may want to install additional Windows NT components for that writing system or purchase special Unicode fonts for these writing systems such fonts are available from all leading type vendors Please note that most fonts only contain a very specific subset of the entire Unicode range and are therefore typically targeted at the corresponding writing system Consequently you may encounter XML documents that contain unprintable characters because the font you have Altova MapForce User Manual 2006 Altova GmbH Appendices Technical Data 491 selected does not contain the required glyphs Therefore it can sometimes be very useful to have a font that covers the entire Unicode range especially when editing XML documents from all over the world The most universal font we have encountered is a typeface called Arial Unicode MS that has been created by Agfa Monoty
359. nizable by the small triangles they possess These triangles input and output icons allow you to map data by creating a connection between them The following graphical elements are all components All schema types Source and target schemas All database types Source and target databases All flat files CSV and text files All function types XSLT XSLT2 XQuery Java C and C functions as well as Constants Filters and Conditions Function A function is basically an operation on data e g Add Functions have input and or output parameters where each parameter has its own input output icon Functions are available in the Libraries window and are logically grouped Dragging a function into the Mapping window creates a function component Please see the section functions and Libraries for more details Item An item is the unit of data that can be mapped from schema to schema An item can be either an element an attribute a database field Each item has an input and output icon which allows you to map data from one item to another It is not mandatory that items be of the same type element or attribute when you create a mapping between them Input Output icon The small triangles visible on components are input and output icons Clicking an icon and dragging creates a connector which connects to another icon when you drop it there The connector represents a mapping between the two sets of data the icons represent Please see
360. nnect them as shown d Article bool _ on falselp 4 Number 7 Name Please note e The Articles input component receives its data from outside of the user defined function Input icons that allow mapping to this component are available there e An XML instance file to provide data from within the user defined function cannot be assigned to a complex input component e The other input component input 1 supplies the ShortPO article number data to which the Articles Number is compared e The filter component filters out the records where both numbers are identical and passes them on to the output component 10 Click the Home icon Sg to return to the mapping 11 Drag the newly created user defined component from the Libraries pane into the Mapping Libraries left EE UZET FindArticle Add Libraries 12 Create the connections as shown in the screenshot below Altova MapForce User Manual 2006 Altova GmbH User defined functions Complex user defined function XML node as input 205 E ShortPO a E CA ShortPO K CustomerNr gt dE 4 Lineltems E Lineltem oo ArticleNr E CompletePa Le JI CA CompletePO DI Customer oo Number yA t D O FindArticle 2 ee Y FirstName moun Bi POATNT rh ame gt 9 LastName bo Articles Artic DI Address G E E Article E i Lineltems E Articles Number a aL A 3 Articles d a eege d
361. note the filter placement in the example e Both parameters of the filter component on true and on false must be mapped One of them needs to be mapped to the fault component and the other to the target component that receives the filtered source data If this is not the case the exception component will never be triggered e The exception and target components must be directly connected to the filter component Functions or other components may not be placed between the filter and Altova MapForce User Manual 2006 Altova GmbH MapForce Exceptions 247 either the exception or target components e When generating XSLT 2 0 and XQuery code the exception appears in the Messages window and a Preview failed message box appears Clicking the OK button in the message box switches to the respective XSLT2 or XQuery tab and the line that triggered the exception is automatically highlighted 2006 Altova GmbH Altova MapForce User Manual Chapter 18 MapForce engine 250 MapForce engine 18 MapForce engine The MapForce engine allows you to immediately preview and save the result of a transformation without having to go the path of generating program code compiling it and viewing the results This is achieved by simply clicking the Output tab The Output tab also supports the find command enabling you to find any XML data or SQL statement that you might need to find MapForce can also be started from the c
362. nput XML Instance Allows you to select or change the XML Instance for the currently selected schema component This field is filled when you first insert the schema component and assign an XML instance file Output XML Instance for code generation This is file name and path where the XML target instance is placed when generating and executing program code The entry from the Input XML Instance field is automatically copied to this field when you assign the XML instance file If you do not assign an XML Instance file to the component then this field contains the entry schemafilenameandpath xml Schema file Shows the file name and path of the target schema Prefix for target namespace Allows you to enter a prefix for the Target Namespace if this is a schema XML document A Target namespace has to be defined in the target schema for the prefix to be assigned here The database settings for this dialog box are only displayed if you open the component settings dialog box of a database component 2006 Altova GmbH Altova MapForce User Manual 290 MapForce Reference Component Component Settings SS x Generic Database Settings DataSre WE elem User Catalog lous Password Use Transactions JDBC specitic Settings JBEC driver sur idbe odbe IdbeO dbeD river Database UAL Jidbc odbc DRIVER Microsoft Access Driver fm 400 OLEDB speciic Settings Provider Microsoft J et OLEDB 4 0 ad
363. nses xml CoUninitialize tcout lt lt _T OK lt lt endl return 0 catch tcerr lt lt return 1 CAltovaException e _T Error lt lt e GetInfo c_str lt lt endl catch com error amp e tcerr lt lt _T COM Error from lt lt TCHAR e Source lt lt tcerr lt lt TCHAR e Description lt lt endl return 1 catch std exception amp ei cerr lt lt Exception lt lt e what lt lt endl return 1 catch tcerr lt lt TT Unknown error lt lt endl return 1 De lt lt end Altova MapForce User Manual 2006 Altova GmbH Code Generator Integrating MapForce code in your application 325 22 5 Integrating MapForce code in your application MapForce generated code can be integrated or adapted to your specific application even though the result of code generation is a complete and fully functioning application The mapping project visible below DB_CompletePO mfd is available in the MapforceExamples folder Please also see the section Generating program code for information on how the generated code is produced This section describes how to e Modify the source and target files of a mapping project e Use an XML input stream as a data source and e Where to add your own error handling code E ShortPO gt G Y ShortPO gt oo Y CustomerMr Ek Pnode row vu El Lineltems fp bool E
364. nt This method is a shortened form of Documents NewDocument Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 367 NewProject Method NewProject aS Project Description Creates a new empty project The current project is closed The new project is accessible under Project Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified OpenDocument Method OpenDocument i_strFileName aS String aS Document Description Loads a previously saved document file and continues working on it The newly opened document becomes the ActiveDocument This method is a shorter form of DocumenlLs penDocumen Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified OpenProject Method NewProject aS Project Description Opens an existing Mapforce project mfp The current project is closed The newly opened project is accessible under Project Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified OpenURL Method OpenURL i_strURL aS String i_strUser aS String i_strPassword as String Description Loads a previously saved document file from an URL location Allows user name and pass
365. ntains the user defined function s you want to import The user defined functions now appear in the Libraries window under user if that is the default library you selected 2 Drag the imported function into the mapping to make use of it To change the user defined function type 1 Double click the user defined function to see its constituent components 2 Select the menu option Function Function settings and click the radio button of the type you want to change it to Standard or Inline Altova MapForce User Manual 2006 Altova GmbH User defined functions Inline vs Standard user defined functions 195 10 1 Inline vs Standard user defined functions The main difference between these two types of functions is the level of complexity that they each support and the implementation of each during code generation The graphical representation of the two types also differ e Standard user defined functions are shown with a solid outline e Inline user defined functions are shown with a dashed outline Implementation Ce Inline recommended Allows complex parameters filters and multiple outputs C Standard function Allows recursive calls Inline user defined functions Support Complex input and output components i e XML schema nodes databases etc Multiple output components within a function Direct connection of filters to input components Exist type functions on input component e g exists not exists substitut
366. o the DB table data using the operators defined IF all compartons are true then the specitic action ie executed Schon on input data Update if eilnsert Rest KA m PrimaryKey fia Foreignkep HEM ail m First m Last m PhoneE xt litle e Table action Insert Rest defined as the second table action should the first comparison Update if fail Click the Append Action button to append a new Table action column Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 121 UPDATE Department SET Foreignkey 1 MName Admin WHERE Primarykey 1 SELECT Foreignk ey Frimaryk ey FROM Department WHERE Frimary k evi UPDATE Ferson SET EMailj 4 Aldrtch rmicrotech com First Slbert Last Aldrich PhoneEst 582 UPDATE Ferson SET EMail h bandereeimicrotech corm First Bert Last Bander PhoneExt 4 1 Tit UPOATE Ferson SET EMail c clovictemicrotech com First Clive Last Clovis PhoneExt 963 Title Processing sequence Department table Department table Update if condition true source and target keys are identical therefore e update each Department record where the keys are identical e if records exist in the database with no counterpart in the source file then these records are retained and remain unchanged in this example the Engineering table Department table Update if condition false sourc
367. objDocument null alert no active document found else if languageID 0 objOptions XSLTDefaultOutputDirectory objOptions XSLTDefaultOutputDirectory XSLTGen objDocument GenerateXSLT else if languageID 1 objOptions CodeDefaultOutputDirectory objOptions CodeDefaultOutputDirectory JavaCode objDocument GenerateJavaCode i else if languageID 2 objOptions CodeDefaultOutputDirectory objOptions CodeDefaultOutputDirectory CPPCode objDocument GenerateCppCode else if languageID 3 objOptions CodeDefaultOutputDirectory objOptions CodeDefaultOutputDirectory CSharpCode objDocument GenerateCHashCode lt SCRIPT gt 2006 Altova GmbH Altova MapForce User Manual 420 MapForceControl Integration at the Application Level Connect to Custom Events The example implements two event callbacks for MapForceControl custom events to show the principle lt custom event OnDocumentOpened of MapForceControl object gt lt SCRIPT FOR ob jMapForceControl event OnDocumentOpened obyDocument LANGUAGE Jjavascript gt alert Document objDocument Name opened lt SCRIPT gt EE AE N E Ee 2 lt custom event OnDocumentClosed of MapForceControl object gt lt SCRIPT FOR ob jMapForceControl event OnDocumentClosed obyjDocument LANGUAGE Javascript gt alert Document ob jDocument Name cl
368. ode values from the XML document are assigned the xdt unt ypedAtomic datatype The xdt untypedAtomic type works well with implicit type conversions For example e the expression xdt untypedAtomic 1 1 results in a value of 2 because the xdt untypedAtomic value is implicitly promoted to xs double by the addition operator e Arithmetic operators implicitly promote operands to xs double e Value comparison operators promote operands to xs string before comparing In some cases however it is necessary to explicitly convert to the required datatype E mf ExpReport H rof ExpReport El lt expense report B Y Person cesses detailed fi we gate Y First E Currency fa subtract gt i i Last HE Person i Title SS expense item 3 G RS Phone Ee type E mail i explo de 4 expense item ee type DW DW Ke ot LI LA ZZ e DW DW DW E Meal E Lodging E Travel l Parking Lr i vi SE Ss explo ce ee m i Heal E Lodging 2004 07 07 S E Travel To allow date calculations as shown in the example above the value of the Date element although defined as being of type xs date datatype must be explicitly converted to xs date using the xs date constructor before it can be used for a date calculation Similarly the string constant 2004 07 07 must also be explicitly converted to the xs date datatype before being used for a date ca
369. of MapForce enables clients to easily access the functionality of MapForce As a result it is now possible to automate a wide range of tasks MapForce follows the common specifications for automation servers set out by Microsoft It is possible to access the methods and properties of the MapForce API from common development environments such as those using C C and VisualBasic and with scripting languages like JavaScript and VBScript The following guidelines should be considered in your client code e Do not hold references to objects in memory longer than you need them If a user interacts between two calls of your client then there is no guarantee that these references are still valid e Be aware that if your client code crashes instances of MapForce may still remain in the system See Error handling for details of how to avoid annoying error messages e Free references explicitly if using languages such as C or C Altova MapForce User Manual 2006 Altova GmbH The MapForce API Overview 353 23 1 Overview This overview of the MapForce API provides you with the object model for the API and a description of the most important API concepts The following topics are covered The object model Example Code Generation Example Project Support Error handling 2006 Altova GmbH Altova MapForce User Manual 354 The MapForce API Overview 23 1 1 Object model The starting point for every application which uses
370. oject tree manipulation AddActiveFile AddFile InsertWebService Enterprise edition only Cree lerolder Code generation Output Folder Output Language Output TextEncoding Java BasePackageName GenerateCode GenerateCodekx GenerateCodelin GenerateCodelInEx For examples of how to use the properties and methods listed above see Example Project Support Note that in order to use these properties and methods you will need to have the Enterprise or Professional edition of MapForce installed on your computer For operations with Web services the Enterprise edition is required _NewEnum Property NewEnum aS IUnknown read only Description This property supports language specific standard enumeration Errors 1500 The object is no longer valid Examples EE JScript sample enumeration of a project s project items function AllChildrenOfProjectRoot objProject objMapForce ActiveProject 2006 Altova GmbH Altova MapForce User Manual 392 The MapForce API Object Reference if objProject null d for objProjectIter new Enumerator objProject objProjectIter atEnd objProjectIter moveNext d Obj Proj ectitem objProjectIter item do something with project item here EE JScript sample iterate all project items depth first function IterateProjectItemsRec objProjectItemIter while ob jProjectItemIter atEnd objProjectItem objProjectItemI
371. olean gt lt sources gt lt Cargqgets lt datapoint name result datatype string gt lt targets gt lt implementations gt lt implementation language cs gt lt function name HelloFunction gt lt implementation gt lt implementations gt lt description gt lt short gt result hello greeting_type lt short gt lt long gt Returns a greeting sentence according to the given greeting_type lt long gt lt description gt lt component gt lt Groups lt mapping gt The image below shows the appearance of the mff file in MapForce The new library helloworld appears as a library entry sorted alphabetically containing the hello string function Altova MapForce User Manual 2006 Altova GmbH Adding custom libraries 219 Libraries SCH Core logical functions math functions string functions edifact SCH helloworld hello result hello greetin SCH lang datetime functions generator functions logical functions Mff files can of course be written for more than one language Every additional language must therefore contain an additional lt implementation gt element The specifics on the implementation element are discussed later in this document 2006 Altova GmbH Altova MapForce User Manual 220 Adding custom libraries Configuring the mff file 11 1 Configuring the mff file The steps needed to adapt the mff file to suit your needs are described b
372. ommand line and produce a result without having to generate any intermediate code We would still however recommend that code be generated in one of the respective programming languages after the development phase due to the better execution speed of generated code Depending on the target component of your mapping the Output tab may show different things XML Schema document as target The result of the mapping is immediately presented in the Output tab Any data source components can be used XML Schema files Text and CSV files databases the result you would have achieved if the Java C or C code had been executed appear in the Output tab The screen shot below shows the output of the DB_CompletePO mfd mapping available in MapForceExamples folder An XML Schema document as well as a database are used as source components in this mapping lt xml version 1 0 encading LITF 8 gt lt CompletePO xmins xsi http Sv v3 org 2001 D ML Schema instance Customer lt Mumber 3 lt Mumber gt lt FirstWame gt Ted F irstName gt lt LastNamesLittle Lasthame Address lt flustamer sl nees i eLineltem sArticle gt PoP GP chumber 3 lt Number lt hame Pants lt Mame gt PoP SinglePrice 34 lt SinglePrice gt A mount S 4mount PoP OE lt Price 170 lt Price gt sArticles Lineltem Lineltem PoP Articles Linetem Lin tems CompletePo gt FAIC The re
373. ommands lt button id btnInsertXML title Insert XML Schema File onclick BtnDoCommand 13635 gt lt img src Images ID_INSERT_XSD gif width 16 height 16 gt Seet lt button id btninsertDB title Insert Database onclick BtnDoCommand 13590 gt lt img src Images ID_INSERT_DATABASE gif width 16 height 16 gt lt DULL On gt lt button id btninsertEDI title Insert EDI onclick BtnDoCommand 13591 gt lt img src Images ID_INSERT_EDI gif width 16 height 16 gt lt button gt On clicking one of these buttons the corresponding command Id is sent to the manager control lt SCRIPT ID Javahandlers LANGUAGE Jjavascript gt perform any command specified by cmdID command routing includes application active document and view function BtnDoCommand cmdID 2006 Altova GmbH Altova MapForce User Manual 436 MapForceControl Integration at Document Level objMapForcexX Exec cmdID msgtext innerText Command cmdID H performed lt SCRIPT gt Create More Buttons In the example we add some more buttons to show some automation code lt p gt lt input type button value New File onclick BtnNewFile objDocl gt lt input type button value Save File onclick BtnSaveFile objDocl gt lt input type text title Path id strPath width 150 gt lt input type button value Open MarketingExpenses onclick BtnOpenMEFile objDocl g
374. ompany s writing conventions or use different base libraries such as the Microsoft Foundation Classes MFC and the Standard Template Library STL Built in code generation frees software developers from the mundane task of writing low level infrastructure code enabling them to focus on implementing critical business logic By automatically generating a programming language binding MapForce accelerates project development time from initial design to final implementation resulting in substantial cost savings and time to market advantages Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 307 22 2 Generating program code This example shows the general sequence that needs to be followed to generate program code from MapForce The example uses the MarketingExpenses mfd file available in the MapforceExamples folder Please also see Integrating code in your application for more information 1 Open the MarketingExpenses mfd mapping file E ExpRepott MarketingE xpenses fy conca L I A expense report gt ri gt keting gt co detailed b Fal a atm 4 string resulti b HE lt Person Sa CUITency gt einng Besch A LS Bech Ke iT oo 4 gt FullName Sit total sum gt S Se Y Title E Person wea l z i hd Y First 7 Sech YE mail S i spm p EI expense item Y Phone l Festing i rit d a resulti on Email ka
375. on created with C using Visual Studio NET 2003 The following topics are covered e Building a dynamic menu bar based on information the MapForceControl API provides e Usage of MapForce Placeholder controls in a standard frame window e Usage of a MapForce Placeholder control in a sizeable Tool Window e How to handle an event raised by the MapForceControl API Please note that the example application is already complete There is no need to change anything if you want to run and see it working The following steps describe what general actions and considerations must be taken in order to create a project such as this Introduction Adding the MapForce components to the Toolbox Before you take a look at the sample project please add the assemblies to the NET IDE Toolbox The MapForce Installer will have already installed the assemblies in the NET Global Assembly Cache GAC If you open the Toolbox dialog under Tools Add Remove Toolbox Items the controls will appear as AxMapForceControl AxMapForceControlDocument and AxMapForceControlPlaceholder on the NET Framework Components tab Check all to make them available to the IDE Now you can open the MapForceApplication sin file in the ActiveX C MapForceApplication folder to load the project Placing the MapForceControl It is necessary to have one MapForceControl instance to set the integration level and to manage the Document and Placeholder controls of the MapForce library The con
376. on database Project Directory C Program Files 4ltovast apForce 2006 SM apForcee Browse Output Settings Output Directory C Program Files 4 ltovath apForce20064M apF orceE x Browse Test Encoding Unicode LITF 2 Language Java Java Settings Base package name com mapforce Cancel Generate code in default language Generates project code in the currently selected default language Right click the project name in the Project window and select Project settings to define the default language Generate code in Generates project code in the language you select from the flyout menu 2006 Altova GmbH Altova MapForce User Manual 288 MapForce Reference Component 21 5 Component Edit Constant Allows you to change the entry currently defined in the Constant component A Constant is obec added by clicking the Insert Constant icon Align tree left Aligns all the items along the left hand window border Align tree right Aligns all the items along the right hand window border This display is useful when creating mappings to the target schema Change Root element Allows you to change the root element of the XML instance document Useful in the target schema window as this limits or preselects the schema data Edit Schema Definition in XMLSpy Selecting this option having previously clicked an XML Schema document opens the XML Schema file in the Schema view of XMLSpy w
377. on or in the Software You may not modify adapt or translate the Software You may not directly or indirectly encumber or suffer to exist any lien or security interest on the Software knowingly take any action that would cause the Software to be placed in the public domain or use the Software in any computer environment not specified in this Software License Agreement You will comply with applicable law and Altova s instructions regarding the use of the Software You agree to notify your employees and agents who may have access to the Software of the restrictions contained in this Software License Agreement and to ensure their compliance with these restrictions you agree that you are solely responsible for the accuracy and adequacy of the software for your intended use and you will indemnify and HOLD harmless ALTOVA from any 3rd party suit to the extent based upon the accuracy and adequacy of the software in your use without limitation The Software is not intended for use in the operation of nuclear facilities aircraft navigation communication systems or air traffic control equipment where the failure of the Software could lead to death personal injury or severe physical or environmental damage INTELLECTUAL PROPERTY RIGHTS Acknowledgement of Altova s Rights You acknowledge that the Software and any copies that you are authorized by Altova to make are the intellectual property of and are owned by Altova and its suppliers The structure organ
378. onships 151 In this example we want to retrieve the Altova office names as well as the departments that exist in each office e Compare the Office foreign key to the Altova primary key using the equal component If both keys are the same then e Pass on the contents of Office Name to the node row parameter of the filter component and e Place the on true result in the Office Name item in the target schema document D altova no relation E Altova _Hierarchica AE Altova a resulti ff Hie P mere bool orl Talsel bo M Lt Jt Lt P DW PrimarnyKey m Foreignkey ip Desc EMail Established L bs d Y Address Fax sl Prima Name i Y Foreig B i se en ee LI LI LI LA LI Li The result of the above mapping is shown below both Altova office names appear under the Office element denn version 1 0 encoding UTF 0 7 gt 4 ltova xmins xsi htp ien wa orgi 00 DM Schema instance sQffice Name gt NManonull nc amer lt Name Nanonull Partners Inc eme sfOttice gt lt JAltova 1 z E 4 5 b H S The next bit of information we want to extract are the department names of each office e Compare the Department foreign key with the Office primary key If both keys are the same then e Pass on the contents of the Department name to the node row parameter of the filter component and e Place the on true result in the Department Name item in the t
379. oolean Description True if MapForce is displayed on the screen though it might be covered by other applications or be iconized False if MapForce is hidden The default value for MapForce when automatically started due to a request from the automation server MapForce Application is false In all other cases the property is initialized to true An application instance that is visible is said to be controlled by the user and possibly by clients connected via the automation interface It will only shut down due to an explicit user request Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 369 To shut down an application instance set its visibility to false and clear all references to this instance within your program The application instance will shut down automatically when no further COM clients are holding references to it Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified WindowHandle Property WindowHandle as long read only Description Retrieve the application s Window Handle Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 370 The MapForce API Object Reference 23 2 2 MapForceView Properties and Methods Properties to navigate the object model Application Parent View activ
380. or C as the mapping output to be able to work with text or CSV files This bi directional mapping support includes e XML schema to from flat file formats e Database to from flat file formats e There are two ways that mapped flat file data can be generated saved e By clicking the Output tab which generates a preview using the built in MapForce engine selecting the menu option Output Save output file or clicking the o icon to save the result e By selecting File Generate code in Java C or C then compiling and executing the generated code Please note All the following examples using CSV files as source or target components can also be accomplished with Fixed length text files The only difference is that the field lengths have to be defined manually please see Mapping Fixed Length Text files on how define field lengths Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping CSV files to XML 165 8 1 Mapping CSV files to XML This example maps a simple CSV file to an XML file based on the MFCompany xsd schema file All the files used in the following examples are available in the MapForceExamples Tutorial folder e Having made sure you selected one of the programming languages Java C or C by clicking the respective toolbar icon 1 Select the menu option Insert Text file or click the Insert Text file icon This opens the Text import export dialog box in
381. orted by MapForce e Insert e Update e Delete e Database key field handling Examples for each of these table actions follow and are of a simple nature to get you acquainted with how to achieve the specific goals Currently supported databases and connection types are Microsoft Access ADO Microsoft SQL Server ADO Oracle OCI MySQL ODBC Sybase ODBC IBM DB2 ODBC Any ADO compliant database e Any ODBC compliant database Files used in this section Altova_Hierarchical xsd the hierarchical schema file containing identity constraints Altova cmpy xml the Altova company data file which supplies the XML data Altova mdb the Altova MS Access database file which functions as the target database All these example files are available in the MapForceExamples folder Please note This section makes heavy use of the Altova mdb database to show the database as target functionality of MapForce Make sure you backup the file before you try any of the examples shown here Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 107 7 3 1 Setup of XML to database mapping Setting up an XML to database mapping is in no way different from the methods previously described 1 2 5 Click the Insert Schema XML instance icon and select the Altova_Hierarchical xsd Select the Altova cmpy xml file as the XML instance file Click the Altova entry and h
382. osed lt SCRIPT gt Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 421 24 2 Integration at Document Level Integration at document level gives you freedom over instantiation and placement of the following parts of the MapForce user interface Editing windows for MapForce mappings MapForce overview window MapForce library window MapForce validation window MapForce project window If necessary a replacement for the menus and toolbars of MapForce must be provided by your application You will need to instantiate and access multiple ActiveX controls depending on which user interface parts you want to re use All these controls are contained in the MapForceControl OCX e Use MapForceControl to set the integration level and access application wide functionality e Use MapForceControlDocument to create any number of editor windows It may be sufficient to create only one window and re use it for different mapping files depending on your needs e Optionally Use MapForceControlPlaceholder to embed MapForce overview library validation and project windows e Access run time information about commands menus and toolbars available in MapForceControl to seamlessly integrate these commands into your application s menus and toolbars See Use MapForceCommands for more information If you want to automate some behaviour of MapForce use the properties methods and events described
383. ot exists sLibstitue missing ag string functions corcat contains pDprrpnalze 2pare Add Libraries result 4 eql result a gt result a lt result a gt b result as b result logic result logic result logic result logic result value result cellin result value result floor result value result value result roun result value result exists result not e result subsl result conc result cont res ilk norm on The floating Overview Toolwindow is also created Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 433 Ss Overview Use File Open to open the file Market ingExpenses mfd which is in the MapForce examples folder The file is loaded and displayed in an own document child window n MapForceControl File Edit Insert Component Connection Function Output Ce core I ei logical functions wiew Tools Help Window MapForceDoc equal equal or qreater equal or less greater less logical and logical riot logical or not egual L3 math functions add ceiling divide floor modulus multiply round subtract ei node test functions exists not exists substitute missing result 4 eq result a result at rezult a b result a g b result logic result logic result logic result logic result value result Cen result value result
384. ount as long Description Number of MapForceCommand objects on this level of the collection Item Property Item n as long aS MapForceCommand Description Gets the command with the index n in this collection Index is 1 based Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 457 24 5 3 MapForceControl Properties IntegrationhLevel Appearance Application Borderstyle CommandshList CommandsStructure deprecated EnableUserPrompts MainMenu ReadOnly Toolbars Methods Open Exec QuUeryotalus Events OnDocument Opened OnProjectOpened OnUpdateCmdUL OnCloseFditingqwindow This object is a complete ActiveX control and should only be visible if the MapForce library is used in the Application Level mode CLSID ASC637h9 5759 4456 A167 FO0 11 60CCZ2Cl ProgID Altova MapForceControl Properties The following properties are defined IntegrationLevel ReadOnly EnableUserPrompts Appearance Borderstyle Command related properties CommandsList MainMenu Toolbars CommandsStructure deprecated Access to MapForceAPI Application Appearance Property Appearance as short Dispatch Id 520 Description A value not equal to 0 displays a client edge around the control Default value is 0 2006 Altova GmbH Altova MapForce User Manual 458 MapForceControl Object Reference Application Property Application as Application Dispatch Id 4 Desc
385. ow The expand and contract icons show or hide the functions of that library Click the function name and drag it into the Mapping window Use drag and drop to connect the input and output parameters to the various icons Ohm Note that placing the mouse pointer over the result xxx expression in the library pane displays a ToolTip describing the function in greater detail Function tooltips Explanatory text visible in the libraries pane on individual functions can now be toggled on off Altova MapForce User Manual 2006 Altova GmbH MapForce overview Functions and libraries 15 by clicking the Show tips icon in the title bar Placing the mouse pointer over a function header displays the information on that function To add new function libraries MapForce allows you to create and integrate your own function libraries please see the sections Adding custom function libraries Adding custom XSLT 1 0 functions Adding custom XSLT 2 0 functions and User defined functions for more information Please note custom functions libraries can be defined for Java C and C as well as for XSLT Extendable functions Several functions available in the function libraries are extendable for e g the concat and logical and functions The parameters of these types of function can be inserted appended and deleted at will Clicking the plus icon inserts or appends the same type of parameter while clicking the check ma
386. p at right as well as the Overview and Messages panes below The actual mapping process is achieved by manipulating the on screen graphical elements in the mapping window e The Libraries pane displays language specific and user defined libraries as well as the individual library functions Functions can be directly dragged into the Mapping tab The Add Libraries button allows you to import external libraries into the tab group e The Mapping tab displays the graphical elements used to create the mapping transformation between the two schemas The source schema is the mf ExpReport component window displaying the source schema tree The target schema is the ExpReport Target window displaying the target schema tree Connectors connect the input and output icons of each schema item Schema items can be either elements or attributes The XSLT XSLT2 and XQuery tabs display a preview of the transformation depending on the specific language selected The Output tab displays a preview of the transformed or mapped data in a text view e The Overview pane displays the mapping area as a red rectangle which you can drag to navigate your Mapping e The Messages pane displays any validation warnings or error messages that might occur during the mapping process Clicking a message in this pane highlights it in the Mapping tab for you to correct Altova MapForce User Manual 2006 Altova GmbH MapForce overview 7 k MapForc
387. pForce CSV and Text files Mapping XML to CSV or fixed length text files 169 Microtech Inc Lewel 1 support Major Ave 1 Vancouver 558s33 Microtech Partners Inc Level support Perroa Bed Lse4 0tta E Tut comparny ka Ka Office name LA cesses Department name See Ctreet at Ka Y city Kb b nn Office Tel gt Phone b i _ First name O Department ie d seven Last name d Vi a dch dech dech Im D emm dch dech d Ka J el_ Extension The Departments are output in the source file sequence for each Office Microtech Inc Admin Major Ave 1 Vancouver 5588339 Clive Cloa Microtech Inc Sales and Marketing MNajor Ave 1 Vancouver 555 Microtech Inc Manufacturing Major Ave 1 Vancouver 55883339 F Microtech Inc Level 1 support Major Ave 1 Vancouver 5585339 Microtech Partners Inc Admin Perro Byrd la24 O0ttowa 3549702 Microtech Partners Inc Sales and Marketing Perro Byrd 1ls24 0 Microtech Partners Inc Lewel Z support Perro Byrd 1324 0ttow ID J n on Wh ky Mapping Person to the Rows item results in all the Persons being output E Tut company EI Mu COM De 3 Rows Sen Office name i eg Department name 4 Department K g Last name Name i b 3 en Tel Extension E 4 Person S 4 EMail is b i Position The Persons are output in the source file sequence i e each Person within each Department
388. pForce User Manual 2006 Altova GmbH Source driven mixed content mapping Default settings mapping mixed content 67 4 1 Default settings mapping mixed content Creating mixed content connections between items 1 Select the menu option Connection Auto Connect matching children to activate this option if it is not currently activated 2 Connect the Desc item in the source schema with the Desc item in the target schema A message appears asking if you would like to create a mixed content connection You are also notified that the text and child items will be transferred in the same order they appear in the XML source file 3 Click Yes to create a mixed content connector Please note Although the Desc is not of mixed content a message appears because the auto connect option has been activated and para exists in both source and target components Para is of content and makes the message appear at this point The mixed content message also appears if you only map the para items directly without having the autoconnect option activated D 3 Office il p Name 2 Opara k A para E Y italic Location All child items of Desc have been connected The connector joining the para items is displayed as a dotted line to show that it is mixed content 4 Click the Output tab to see the result of the mapping lt xml version 1 0 encoading LITF a gt Company Person xmn xsi http Say vw 2 or
389. pForceControl Integration at Document Level 435 lt PARAM name PlaceholderWindowID value 3 gt lt PARAM name FileName value MapForceExamples MapForceExamples mfp gt lt OBJECT gt Create Placeholder for MapForce Helper Windows The HTML oBJEcT tag is used to instantiate a MapForceControlPlaceHolder ActiveX control that can host the different MapForce helper window Initially no helper window is shown lt OBJECT id objPlaceholderWindow Classid clsid FDEC3B04 05F2 427d 988C F03A85DE53C2 width 200 height 200 VIEWASTEXT gt lt PARAM name PlaceholderWindowID value 0 gt lt OBJECT gt Three buttons allow us to switch the actual window that will be shown The JavaScript execute on button click sets the property Pl1aceHolderWindowID to the corresponding value defined in MapForceControlPlaceholderWindow lt input type button value Library Window onclick BtnHelperWindow 0 gt lt input type button value Overview Window onclick BtnHelperWindow 1 gt lt input type button value Validation Window onclick BtnHelperWindow 2 gt lt SCRIPT ID Javahandlers LANGUAGE javascript gt a specify which of the helper windows shall be shown in the placeholder control function BtnHelperWindow i_ePlaceholderWindowID objPlaceholderWindow PlaceholderWindowID i_ePlaceholderWindowID lt SCRIPT gt Create a Custom Toolbar The custom toolbar consists of buttons with images of MapForce c
390. parate product is not included in SMP Maintenance releases updates and upgrades may or may not include additional features In addition Altova will provide Priority Technical Support to you for the duration of the Support Period Priority Technical Support is provided via a Web based support form only and Altova will make commercially reasonable efforts to respond via e mail to all requests within forty eight 48 hours during Altova s business hours MO FR Sam UTC 10pm UTC Austrian and US holidays excluded and to make reasonable efforts to provide work arounds to errors reported in the Software During the Support Period you may also report any Software problem or error to Altova If Altova determines that a reported reproducible material error in the Software exists and significantly impairs the usability and utility of the Software Altova agrees to use reasonable commercial efforts to correct or provide a usable work around solution in an upcoming maintenance release or update which is made available at certain times at Altova s sole discretion If Altova in its discretion requests written verification of an error or malfunction discovered by you or requests supporting example files that exhibit the Software problem you shall promptly provide such verification or files by email telecopy or overnight mail setting forth in reasonable detail the respects in which the Software fails to perform You shall use reasonable efforts to coopera
391. pdate the Department Name records e to update existing Person records e insert any new Person records i Altova Hierarchical 4 PrimaryKey oo ForeignKey g 3 a Y state T street 3 zip de 41 Department Y PrimaryKey A 4 Person oom PrimaryKey ForeignKey EMail Y First L 7 PhoneExt G Title Altova DS Department fe PrimaryKey m Foreignkey ES Office p2 Person Office Person 2006 Altova GmbH Altova MapForce User Manual 120 MapForce and Databases Mapping XML data to databases The source and target primary keys of both tables are compared using the equal operator If the two keys are identical then the mapped fields of the Department and Person tables are updated If the comparison fails in the Person table then the next table action is processed i e Insert Rest Table action Department table e Table actions Update if equal defined for PrimaryKey i e update the Department name if it has changed Database Table Actions All input data are compared to the OB table data using the operators LF all comparisons are true then the specie action is executed Acton op input data Update if m PrimaryKey fia Foreignkey mi Name Delete data in child tables Ignore input child data Person Table action Person table e Table action Update if equal defined for PrimaryKey Database Table Actions All input data are compared t
392. pe for Microsoft This font contains over 50 000 glyphs and covers the entire set of characters specified by the Unicode 2 1 standard It needs 23MB and is included with Microsoft Office 2000 We highly recommend that you install this font on your system and use it with the application if you are often editing documents in different writing systems This font is not installed with the Typical setting of the Microsoft Office setup program but you can choose the Custom Setup option to install this font In the Examples folder in your application folder you will also find anew XHTML file called Unicode UTF8 htm1 that contains the sentence When the world wants to talk it speaks Unicode in many different languages Wenn die Welt miteinander spricht spricht sie Unicode and writing systems St ion TFS Unicode CF o this line has been adopted from the 10th Unicode conference in 1997 and is a beautiful illustration of the importance of Unicode for the XML standard Opening this file will give you a quick impression on what is possible with Unicode and what writing systems are supported by the fonts available on your PC installation Right to Left Writing Systems Please note that even under Windows NT 4 0 any text from a right to left writing system Such as Hebrew or Arabic is not rendered correctly except in those countries that actually use right to left writing systems This is due to the fact that only the Hebrew and Arabic versions of
393. ping XML data to databases 7 3 6 Database Key settings When mapping to databases MapForce lets you specify how the primary key will be handled The three options below are only available if you right click a key field and select the menu option Database Key settings The primary key setting should take the table action defined for that table into account E g when inserting records the primary key setting should generally be Maximum number so that new records are automatically appended to existing ones An input icon is only available when Default handling is selected This allows source data to be mapped to the database field directly Table Field PrimaryKey x Kep values generation handling f Default handling C Mamm number Database generated value Default handling This is the standard setting for all database fields e aninput icon exists when this option is selected allowing you to map data directly e the value supplied by the source item is used as the key value in the database Maximum number Use this setting when you want to Insert records into the database e aninput icon is not available when you select this option e the select statement queries the database for the maximum value of the primary key This value is then incremented by one and inserted into the new field Database generated value Use this setting when the database generates uses the Identity function to generate
394. plication read only Description The parent object according to the object model Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified Path Property Path as String Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 379 Description Path of the document file without name Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified Save Method save Description Save the document to the file defined by Document FullName Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified SaveAs Method saveAs i_strFileName as String Description Save document to specified file name and set Document Ful1Name to this value if save operation was successful Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified Saved Property Saved as Boolean read only Description True if the document was not modified since the last save operation false otherwise Errors 1200 The application object is no longer valid 1201 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 380 The MapForce API Object Reference 23 2 4 Documents Properties and Methods Properties to navigate the
395. plied mf ExpReport xml document Select the menu option Tools Options and click the XSL tab Enter ml in the Default file extension of output file field and click OK Select the menu option XSL XQuery XSL Transformation Select the previously generated MapToExpReport Target xslt file and click OK An XSL Output xml file is created XMLSpy automatically selects the correct XSLT engine for the transformation Select the menu option Authentic Assign a StyleVision Power Stylesheet Select the supplied stylesheet ExpReport Target sps and click OK Click the Authentic tab to switch to the Authentic view Company expense Report Travel Title Hame Tal Email Detal Project Manager Fred Landis 123 456 765 flandisi inanonull com add Expense detai Fred Landis Domestic daily rate add DomesticDailyRate Foreign daily rate add ForeigniD aily Domestic cash advance add CashAdvance Foreign cash advance add CashAdvanc Click the add Expense detail text in the Detail column The field changes to a check box 10 Click the check box to see the detailed expenses 2006 Altova GmbH Altova MapForce User Manual 42 MapForce tutorial Generating XSLT 1 0 and 2 0 code Company expense Report Travel EMPLOYEES Title Project Manager Harme Fred Landis Fred Landis Domestic daily rate Domestic cash advance Expense items General info Cost Destination lar Rental Sir Travel Whisc Travel 2003 01 02 Bd
396. pping code The sequence shown here is repeated later in this document with additional information on the build and compile process of each of the programming languages For more information please see the sections below Generating Java code Generating C code Generating C code Altova MapForce User Manual 2006 Altova GmbH Code Generator Generating program code 309 22 2 1 Generating Java code Prerequisites and default settings The generated mapforce application supports Java 5 code JDBC drivers have to be installed for you to compile Java code when mapping database data Please see the section JDBC driver setup for more information The menu option File Mapping settings defines the mapping project settings The default settings are Application name Mapping and Base Package Name com mapforce JDBC specific settings can be viewed by clicking a database component and selecting the menu option Component Component Settings The table below shows the different applications that can be compiled in each of the environments MappingConsole java Console application JM lge MappingApplication java Dialog application O0 W BE To generate Java code in MapForce 1 Select the menu option File Generate code in Java You are then prompted for the target directory of the generated files 2 Select the directory you want to place the files in and click OK to confirm eg c codegen Java A Java Code generation co
397. pported connection types e SQL support for schemas join statements etc e Transaction methods supported Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 139 7 9 1 Database info MS Access supported implemented in OLEDB provider or ODBC driver authentication is possible own authentication Trusted authentication Connection y y OLE DB connection string none OLE DB ODBC ODBC connection string DB must be applied y a ODBC connection string DATABASE NN y y Wa Wa Cc Wu Wo must not be applied via ODBC JDBC URL issues MF used init Statements none none MF used final Statements none DB object name qualification or support for DB schemas n not supported by Access identity support WO MF read back identity value sub select support y aa JOIN support limited support MF upper function Ucase JF OJD SQL Execution exec multiple stat in one command separator n n Q WE special error handling NN retrieve parameter types Transactions Flat transactions supported y Start flat transaction via execution of SQL command Nested transactions supported not supported by Access not supported by Access n n n n n n set transaction isolation MF begin transaction API call 2006 Altova GmbH Altova MapForce User Manual 140 MapForce and Databases Database feature ma
398. press written permission of Altova If the Software that you have licensed is an upgrade or an update then the update replaces all or part of the Software previously licensed The update or upgrade and the associated license keys does not constitute the granting of a second license to the Software in that you may not use the upgrade or update in addition to the Software that it is replacing You agree that use of the upgrade of update terminates your license to use the Software or portion thereof replaced g Title Title to the Software is not transferred to you Ownership of all copies of the Software and of copies made by you is vested in Altova subject to the rights of use granted to you in this Software License Agreement As between you and Altova documents files stylesheets generated program code including the Unrestricted Source Code and schemas that are authored or created by you via your utilization of the Software in accordance with its Documentation and the terms of this Software License Agreement are your property h Reverse Engineering Except and to the limited extent as may be otherwise specifically provided by applicable law in the European Union you may not reverse engineer decompile disassemble or otherwise attempt to discover the source code underlying ideas underlying user interface techniques or algorithms of the Software by any means whatsoever directly or indirectly or disclose any of the foregoing except to the ex
399. r def functions 192 XPath2 14 library modules in XQuery document 479 Library type enumerations for C 409 for C 386 387 388 License 497 information about 493 display on startup 389 option for printing 389 Makefile 316 Map large database 154 large database complete 155 large database partial 156 MapForce API 352 engine 250 integration 416 introduction 3 Overview 6 parent 372 plug in for Eclipse 260 plug in for VS NET 254 terminology 8 MapForce API 352 accessing 453 overview 353 MapForce API Type Library 363 MapForce integration example of 418 419 420 MapForce plug in applying MapForce nature 275 building code automatically 272 building code manually 271 code generation 270 create new mapping project 269 Editor View perspective 266 importing examples folder 268 MapForce view enumerations for 413 MapForceCommand in MapForceControl 455 MapForceCommands in MapForceControl 456 MapForceControl 2006 Altova GmbH Index 915 MapForceControl documentation of 416 example of integration at application level 418 419 420 examples of integration at document level 426 in MapForceControl 457 integration at application level 417 integration at document level 421 422 423 424 425 integration using C 426 427 429 431 432 integration using HTML 434 435 436 437 integration using Visual Basic 438 object reference 454 MapForceControlDoc
400. r foreign keys e new relations can be created that do not currently exist in the database The MS Access altova no relation mdb database used in this example is a simplified version of the Altova mdb database supplied with MapForce The Person and Address tables as well as all table relationships have been removed in MS Access E altoya no relation Altova Hierarchical Ki gt Elz Altova fe PrimaryKey Bess Besse cl i K LA LA i Li LA LA V F Phone d 4 Address i Y Drmarvk eu SE j gt ForeignKey Desc A i hates HE Mail re Y state Established street Bern zip E Department oom PrimaryKey ForeignKey Kg Be Bes i a i K LA LA V Be Bes i Bel i K LA LA V a Ka ch Ke None of the tables visible in the altova no relation tree have any child tables all tables are on the same root level The content of each table is limited to the fields it contains We can however use MapForce to extract related database data even though relationships have not been explicitly defined Having defined mappings switching to the Output tab allows you to preview the result of your mappings immediately Database data cannot be previewed if the target language is XSLT a message will appear and the database component will be greyed out Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Using MapForce to create database relati
401. ra In May 2000 Nanonulleitalic Eurapestalic was set up in Vienna The team consists of lt bold five research scientists lt bold and one administrative statt para gt svDescs lt f Office gt lt Llompan Person The mixed content text of each office description has been mapped correctly the text as well as the bold and italic tag content have been mapped as they appear in the XML source file 6 Switch back to the Mapping view Removing text nodes from mixed content items 1 Right click the para connector and select Connection Settings Connection Settings x Connection Type Target Driven Standard Copy all Copy child items fe Source Driven Mixed content h Map Test content Map Processing Instructions Map Comments IT Map CDATA sections The image shows the default settings when you first create mixed content mapping The Map Text content check box is active per default 2 Deactivate the Map Text content check box and click OK to confirm 3 Click the Output tab to see the result of the mapping Altova MapForce User Manual 2006 Altova GmbH Source driven mixed content mapping Default settings mapping mixed content 69 Result J sMame Nanonull Inc stame i Desc lt para gt bois Yerenosbold i i sitalic mutti core processors lt italic lt bold Nano grid lt bold i i sitalicsottshore italic ob s paras apara sDescs
402. rag the connector to the Person item of the database Make sure that you connect to the root table Person All matching child items are mapped automatically 2006 Altova GmbH Altova MapForce User Manual 118 MapForce and Databases Mapping XML data to databases Altova i Altova Hierarchical l e Address i LA A Phone Department fl Address e Office de Department E Person a PrimaryKey Primary key ForeignKey L i m Foreignkey Ken Zen Zen Zen T Ka ke i Ke Ke DW DW Ka ki bk WW de 4 Person ow PrimarypKey 4 ForeignKey EMail 4 First Ke be ka Gw Jm wm mm we kd LI LA LI LI LI L DW Li a ia ol De 4 PhoneE xt Y Title a ol ot LA LA LA ot LA LA LA it LA LA V 4 Right click the Person entry and select the menu item Database Table Actions Click the Table action combo box and select Update if Click the combo box in line with the PrimaryKey entry and select the equal entry click OK to confirm EE Database Table Actions Person All input data are compared to the DB table data using the ope IF all comparisons are true then the specific action i executed Action on input data Update if fa Primark en egual fa ForeignkKey EMail iFirst m Last Fl ll ll 4 Use Transactions The source and target primary keys are compared using the equal operator If the two keys are identical then all the
403. rce user interface and functions through MapForce API Activex control e Project management functions to group mappings e Definition of custom XSLT 1 0 and 2 0 libraries e Support for XPath 2 0 functions in XSLT 2 0 and XQuery e Definition of user defined functions components having complex in outputs e Advanced search and replace functions in transformation preview data e XML Schema substitution groups e Support for source driven mixed content mapping e MapForce plug in for Eclipse e MapForce for MS Visual Studio NET All transformations are available in one workspace where multiple sources and multiple targets can be mixed and a rich and extensible function library provides support for any kind of data manipulation Copyright 21998 2005 Altova GmbH All rights reserved Use of this software is governed by and subject to an Altova software license agreement SMLSpy MapForce StyleVision SemanticWorks SchemaAgent UModel Dit Dog Authentic Altova 8ML and ALOWA are trademarks and or registered trademarks of Altova GmbH Patent Sl pending AML SSL SATMIL and WSC are trademarks registered in numerous countries of the world Wide web Consortium marks of the WC are registered and held by its host institutions MIT INRIA and Keio UNICODE andthe Unicode Logo are trademarks of Unicode Inc This software contains material that is 01334 1334 Dundas Software Lid all rights reserved The Sentry Spelling Checker Engine
404. re creating webservices e New MapForce Project creates a new MapForce Eclipse project adding the folder to the Navigator window MapForce Eclipse projects are Eclipse projects with a MapForce builder assigned to them See Using MapForce Eclipse projects for automatic build for details 2006 Altova GmbH Altova MapForce User Manual 270 MapForce plug in for Eclipse MapForce code generation 20 6 MapForce code generation Build Integration MapForce mappings can be contained in any eclipse project Generation of mapping code can be triggered manually by selecting one of the Generate Code menu entries for the mapping or MapForce project file Full integration into the Eclipse auto build process is achieved by assigning the MapForce builder to an Eclipse project For manual code generation see Build mapping code manually For automatic generation of mapping code please see Using MapForce Eclipse projects for automatic build and Adding MapForce nature to existing Eclipse Project Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse MapForce code generation 271 20 6 1 Build mapping code manually To manually build mapping code for a single mapping 1 Open or select the mapping and select File Generate Code in or File Generate Code in Selected Language You are prompted for a target folder for the generated code 2 Select the folder and click OK to start code generation Any errors
405. recedence over the value supplied by the constant Input values and Code generation Values or strings entered in the Create Edit input dialog box are only applicable when e Previewing results in the Output tab or e when generating program code in XSLT 1 0 2 0 The data directly supplied by the input icon are used when generating code Using input values as parameters in command line execution of mappings Input values can be used as parameters when calling the generated mapping where Altova MapForce User Manual 2006 Altova GmbH MapForce How To Input values overrides and command line parameters 93 e the generated application name is Mapping exe e the input value name TrueVal is the first parameter and e the input value 2 is the second parameter The command line thus becomes mapping exe TrueVal 2 Please note Running mapping exe without parameters displays a warning message and help on the command line syntax needed e Alternative values are NOT used if the specific command line parameters are not supplied during command line execution of the generated EXE file e g mapping exe In this case the default or data supplied by the connected item is used Ge Command Prompt Co tmp userdef ined funct ions mapping Mapping Application WARNING Mo parameters givent SYNTAX Mapping exe in Hind ind Hote If you want to use spaces as values write them inbetween double quote OK
406. renthesis in the function title IMFO Show Tips L Displays a tooltip containing explanatory text when the mouse pointer is placed over a function H Show selected component connectors Switches between showing e all mapping connectors or e those connectors relating to the currently selected components Show connectors from source to target oe Switches between showing e connectors that are directly connected to the currently selected component or e connectors linked to the currently selected component originating from source and terminating at the target components Zoom Opens the Zoom dialog box You can enter the zoom factor numerically or drag the slider to change the zoom factor interactively Status Bar Switches the Status Bar visible below the Messages window on or off Library Window Switches the Library window containing all library functions on or off Messages Switches the Validation output window on or off When generating code the Messages output window is automatically activated to show the validation result Overview Switches the Overview window on or off Drag the rectangle to navigate your Mapping view Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Tools 299 21 10 Tools Customize The customize command lets you customize MapForce to suit your personal needs Options Opens the Options dialog box through which you can e Add or delete user defined XS
407. ription The Application property gives access to the Application object of the complete MapForce automation server API The property is read only BorderStyle Property BorderStyle as short Dispatch Id 504 Description A value of 1 displays the control with a thin border Default value is 0 CommandsList Property CcommandList aS MapForceCommands read only Dispatch Id 1004 Description This property returns a flat list of all commands defined available with MapForceControl For more information see C Sample CommandsStructure deprecated Property commandsStructure aS MapForceCommands deprecated Dispatch Id 3 Remark This property is deprecated Instead use CommandsList MainMenu Toolbars Description The CcommandsStructure collection contains all commands of the MapForceControl as MapForceCommand objects At the first level of the collection two special MapForceCommand objects with the following labels are accessible e IDR _MAPFORCE This object holds all commands as hierarchical menu structure e ALL COMMANDS This object holds all commands in a flat list Sample C code to access the first level of the collection MapForceCommands obyCommands objCommands axMapForceControl CommandsStructure long nCount objCommands Count for long idx O 1idx lt nCount idx Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 459 MapForceCommand ob jCommand objComm
408. rk deletes the parameter Please note dropping a connector on the plus symbol automatically inserts appends the parameter and connects it Insert value on pyalue result pallu E Append value evalue E Append value Frae Delete value Function context menu Right clicking a function in the Mapping window opens the context window Edit Constant Priority Context Fe _ Show library in Function header Replace component with internal Function structure Chrl s Ctrl c Cr A E x Delete Edit Constant Allows you to change the entry currently defined in the Constant component A Constant is pb added by clicking the Insert Constant icon Priority Context 2006 Altova GmbH Altova MapForce User Manual 16 MapForce overview Functions and libraries When applying a function to different items in a schema or database MapForce needs to know what the context node will be All other items are then processed relative to this one This is achieved by designating the item or node as the priority context A circle appears around the icon so designated Please see Priority Context in the Reference section for an example fh equal E T resulti Ch Show library in function header Displays the library name in the function component Replace component with internal function structure Replaces the user defined component function with its constituent parts
409. rol Command Table 451 24 3 12 Help Menu Commands from the Help menu Menu Text Table of Contents ndex 2323 Registration DC REGISTRATION DC_OPEN_ORDER_PAGE Support Center DC OPEN SUPPORT PAGE FAQ on the Web IDC_SHOW_FAQ Components Download DC OPEN COMPONENTS_PAGE MapForce on the Internet DC OPEN XML_SPY_ HOME MapForce Training IDC_OPEN MAPFORCE_TRAINING_ PAGE About MapForce ID APP ABOUT 2006 Altova GmbH Altova MapForce User Manual 452 MapForceControl Command Table 24 3 13 Commands not in Main Menu Commands not in the main menu Menu Text Edit FlexText Configuration Priority Context nsert Input Replace component with internal function structure Add Active File to Project C Sharp ava XQuery XSLT 1 0 XSLT 2 0 enerate All Open Properties Po CommandName ID D_FUNCTION_REMOVE 32385 ID_ FUNCTION_REPLACE_WITH_COMPONENTS 32386 ID_FUNCTION_INSERT_INPUT_AT_POINT 32384 3 ID_ POPUP_PROJECT_GENERATEXQUERY ID_POPUP_PROJECT_GENERATEXSLT ID_POPUP_PROJECT_GENERATEXSLT2 ID_ POPUP_PROJECT_GENERATE_ALL ID_POPUP_PROJECT_GENERATE_CODE ID_ POPUP_PROJECT_OPEN_MAPPING D_POPUP_PROJECT_PROJECTPROPERTIES ID_POPUP_PROJECT_REMOVE D_PREV_PANE Altova MapForce User Manual 2006 Altova GmbH MapForceControl Accessing MapForce API 453 24 4 Accessing MapForce API The focus of this documentation is the Ac
410. rson d bool I ig i es Alt i First Ki SES A Last j l 4 Title To use boolean values as comparison values in XSLT 1 Supply a boolean value using the constant component e g true 2 Use the equal component to check if the value of the constant is equal to the content of the boolean node detailed 3 Pass the result of the comparison on to the bool parameter of the if else condition If the detailed element supplies true then the equal result parameter is also true E mf E pA eport Ca true E ExpR eport T arget gt a F expense report IS i gt ew detailled l 3 egual l i T currency pE Person 2 resulti ew First i i aswea 3 Last g it Title p fh i in F Phone pool resulti e If the bool value of if else is true then the value of First is passed on to the target schema e If false then the value of Last is passed on to the target schema Altova MapForce User Manual 2006 Altova GmbH MapForce How To Boolean values and XSLT 1 0 85 Forcing boolean values There might be instances where you want to predefine or force the result of a condition mf ExpReport a ExpReport T arget EI 4 expense report gt a 4 Company 2 ER detailed g f ee 3 i currency A vw ES 4 Title i SE ZA Hame value talze Y Person e Kiem prs en 7 ee Last 1 Connect the constant component directly to the bool parameter of an if else filt
411. rtment which has a corresponding PrimaryKey in the source XML l e even Person records of the database which have no counterpart in the source XML are deleted Retains existing database tables Engineering in this case which do not have a counterpart in the input XML file no source keys for the Update if comparison e The child table data Person records are deleted before the Table action Delete if is executed no records are deleted Update if on parent table Delete if on child table Delete data in child tables deactivated Parent table Department TUTE Table action Update if compare PrimaryKey Delete data in child tables Di Delete data not active Ignore input child data Of Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 125 child table Person Tt Table action Delete if compare PrimaryKey Delete data in child tables f Ignore input child data III Result Updates parent table data Department records Retains existing database tables Engineering in this case which do not have a counterpart in the input XML file no source keys for the Update if comparison Delete if only deletes those Person records for which a corresponding Person PrimaryKey exists in the source XML file Database records which do not have the corresponding Person key are retained To see a further example involving duplicate i
412. ry catch mechanism to deal with errors raised from COM calls It is very similar to the VisualBasic approach in that you also declare an error object containing the necessary information Example Function Generate please insert variable declarations here try objMapForce ActiveDocument GeneratexSLT catch Error 2006 Altova GmbH Altova MapForce User Manual 362 The MapForce API Overview sError Error description nerrorCode Error number amp Oxffff return false return true C C C C gives you easy access to the HRESULT of the COM call and to the IErrorInterface HRESULT hr Call GenerateXSLT from the MapForce API Tf FAILED hr ipDocument gt GenerateXSLT IErroriInfo ipErroriInfo Null If SUCCEEDED GetErrorInfo 0 amp ipErroriInto BSTRbstrDescr ipErroriInfo gt GetDescription amp bstrDescr i handle Error information wprintf L Error message t s n bstrDescr PEOVSE TeSStT ring bstrbescr release Error info ipErroriInfo gt Release Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 363 23 2 Object Reference Object Hierarchy Application Options Project Project Item Documents Document MapForceView Enumerations Description This section contains the reference of the MapForce API 1 0 Type Library 2006 Altova GmbH Altova M
413. s e lf the update condition on the parent is not satisfied i e no corresponding key field in source XML file exists then child data are not deleted e Existing database records that do not have a counterpart in the source file are not deleted from the database they are retained Ignore input child data Use this option when you want to update specific table data without affecting any of the child tables records of that table For example your mapping setup might consist of 3 source records and 2 target database records You would therefore need to e define an Update if condition to update the existing records e activate the Ignore input child data check box of the Update if column to ignore the related child records and e define an Insert Rest condition for any new records that have to be inserted Use Transactions The Use Transaction check box allows you to define what is to happen if a database action does not succeed for whatever reason When such an exception occurs a dialog box opens prompting you for more information on how to proceed You then select the specific option and click OK to proceed Activating this option for a specific table using the table action dialog box allows that specific database table to be rolled back when an error occurs The transaction setting can also activated for the database component by right clicking it in the Component Settings dialog box of the respective databas
414. s as fn string Hello not aS xs string Hello Schema awareness The Altova XSLT 2 0 Engine is schema aware Whitespace in XML document By default the Altova XSLT 2 0 Engine strips all boundary whitespace from boundary whitespace only nodes in the source XML document The removal of this whitespace affects the values that the fn position fn last fn count and fn deep equal functions return For more details see Whitespace only Nodes in XML Document in the XPath 2 0 and XQuery 1 0 Functions section Note If a boundary whitespace only text node is required in the output then insert the required whitespace within one of the two adjoining child elements For example the XML fragment lt para gt This is lt b gt bold lt b gt lt i gt italic lt gt lt para gt when processed with the XSLT template lt xsl template match para gt lt xsl apply templates gt lt xsl template gt will produce This is bolditalic To get a space between bold and italic in the output insert a space character within either the lt b gt or lt i gt elements in the XML source For example lt para gt lhis is lt b gt bold lt b gt lt i gt i2talic lt gt lt para gt or lt para gt This is lt b gt bold amp x20 lt b gt lt i gt italic lt gt lt para gt or spara Ihis is lt b bold lt b5 lt 1 546752051 Calio gt lt Sara When such an XML fragment is processed with the same XSLT template given above
415. s checked in the XML instance file If the node is not present then the value supplied by the constant is mapped Altova MapForce User Manual 2006 Altova GmbH MapForce How To Using DTDs as schema components 99 6 12 Using DTDs as schema components MapForce 2006 SP2 supports namespace aware DTDs for source and target components The namespace URIs are extracted from the DTD xmlns attribute declarations to make mappings possible Adding DTD namespace URIs There are however some DTDs e g DTDs used by StyleVision which contain xmIns attribute declarations without namespace URIs These DTDs have to be extended to make them useable in MapForce e The DTD has to be altered by defining the xmIns attribute with the namespace URI as shown below lt ATTLIST fo root xmIins fo CDATA FIXED http www ws org 1999 XSL Format 2006 Altova GmbH Altova MapForce User Manual Chapter 7 MapForce and Databases 102 MapForce and Databases 7 MapForce and Databases MapForce allows you to not only map database data to XML documents but you can do the reverse as well map XML data to databases and even create mappings between databases MapForce takes primary and foreign key constraints into account and also generates transaction data which ensures data integrity Please note XQuery code can currently only be generated for XML data sources Database access currently requires that you use one of the progr
416. s granted MS Access The JDBC ODBC bridge is already installed with Java SDK Java internal usage Driver sun jdoc odbc JdbcOdbcDriver URL jdbc odbc DRIVER Microsoft Access Driver mdb DBQ Sourcename Microsoft SQL Server 2000 Download from http Awww microsoft com sql Ant Settings Please make sure that the following jar file entries are in the CLASSPATH C Program Files Microsoft SQL Server 2000 Driver for JDBC lib msbase jar C Program Files Microsoft SQL Server 2000 Driver for JDBC lib mssqlserver jar C Program Files Microsoft SQL Server 2000 Driver for JDBC lib msutil jar assuming that C Program Files Microsoft SQL Server 2000 Driver for JDBC was your installation folder JBuilder Settings Use the menu option Tools Configure JDKs then click Add to add all the jar files listed above 2006 Altova GmbH Altova MapForce User Manual 104 MapForce and Databases JDBC driver setup Java internal usage Driver com microsoft jdoc sqlserver SQLServerDriver URL jdoc microsoft sqlserver localhost Oracle 9i Download the Oracle9i Release 2 9 2 0 3 driver for JDK 1 4 ojdbc14 jar from http otn oracle com software tech java sqlj_ jdbc You will need to have an account or sign up to the Oracle Technology Network to access these drivers Ant Settings Add the full path to ojdoc14 jar to the CLASSPATH JBuilder Settings Use the menu option Tools Configure JDKs then click Add to add the jar file abov
417. s is lt b gt bo0ld lt b gt lt i gt italic lt gt lt para gt when processed with the XSLT template lt xsl template match para gt lt xsl apply templates gt lt xsl template gt will produce Ths is bolditalac To get a Space between bold and italic in the output insert a space character within either Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 475 the lt b gt or lt i gt elements in the XML source For example lt para gt This is lt b gt bold lt b gt lt i gt italic lt gt lt para gt or lt para gt iThis is lt b gt bold amp x20 lt b gt lt i gt italicx gt lt para gt or para loans 1s lt bebold lt b gt s1 367 370s a lacK gt lt para When such an XML fragment is processed with the same XSLT template given above it will produce This is bold italic 2006 Altova GmbH Altova MapForce User Manual 476 Appendices Engine information 25 1 2 XSLT 2 0 Engine Implementation Information The Altova XSLT 2 0 Engine is built into Altova s XMLSpy StyleVision Authentic and MapForce XML products It is also available in the free AltovaXML package This section describes the engine s implementation specific aspects of behavior It starts with a section giving general information about the engine and then goes on to list the implementation specific behavior of XSLT 2 0 functions For information about implementation specific behavior of
418. s no longer valid 1701 Invalid address for the return parameter was specified Count Property count aS Integer read only Description Retrieves number of children of this project item Also see Item Errors 1700 The object is no longer valid Examples See Project Item Or Project NewEnum CreateFolder Method createFolder i_strFolderName aS String aS ProjectItem Description Creates a new folder as a child of this project item Errors 2006 Altova GmbH Altova MapForce User Manual 402 The MapForce API Object Reference 1700 The object is no longer valid 1701 Invalid folder name or invalid address for the return parameter was specified 1702 The project item does not support children CreateMappingForProject Method createMappingForProject i_strFileName aS String aS ProjectItem Description Creates an initial mapping document for a Web service operation and saves it to i_strFileName When using Project InsertWebService you can use the i_bGenerateMappings flag to let MapForce automatically generate initial mappings for all ports Errors 1700 The object is no longer valid 1701 Invalid address for the return parameter was specified 1707 Cannot create new mapping The project item does not support auto creation of initial mappings or a mapping already exists 1708 Operation not supported in current edition GenerateCode Method GenerateCode Description Generates code for this project
419. s of Nanonull Inc in the XML instance file they are lt para gt The company lt bold gt Vereno lt bold gt in 1995 lt italic gt multi core lt italic gt February 1999 2006 Altova GmbH Altova MapForce User Manual 66 Source driven mixed content mapping lt bold gt Nano grid lt bold gt The company lt italic gt offshore lt italic gt to drive lt para gt Mapping The initial state of the mapping is shown below KS Tut OrgChart a A A OrgChart E 4 CompanyLogo SG href i Ke Ke ke Ka D Office Name de 7 Desc E para DW Ke kb ad Ka LA it LA LA LA L LA LA LA L LA LA V Output of above mapping GI TutPerson El Company Person de 4 CompanyLogo oe 2 href E D Office Gg CO Name E Desc d para 4 italic b F Location i cece Y Phone e oo 3 EMail A DW Ke Ke Se ie ai Ka Ke Ka DW Ke kog SW i it LA LA LA L LA LA LA L LA LA V ml V Ka The result of the initial mapping is shown below Organization Chart as well as the individual office names have been output lt Ysml version 1 DU encoding UITF 3 7 Company Person xmins xsi http Nne sw orgl2001 DM Schema instance si nolames Name Organization Chart Mame lt Office gt Mame Manonull Inc lt hMame gt sfOttice gt lt OTfice gt lt Name NManonull Europe Ats Mame gt sfOTtice gt lt flompany Person Altova Ma
420. s of the same name in both components e a Address i y E 4 Company i mH Altova de 4 Address l Department i l Office b Person esch Ke Bes ess LI LA E CM DI it as eet C Ka Lem LA LI LI E Y Person cots Manager ot i LI Ke K ka 7 Programmer I Steg Degree i Kee Y First ka Ka Ke ow Title 3 PhoneE xt 3 E mail Bes Bes Bess LA LI LI U LI ka 4 Save the MapForce file PersonDB for example 5 Click the Output tab to see the result preview of this mapping The MapForce engine generates results on the fly without you having to generate or compile code Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Database to schema mapping 61 Generating Java code and the resulting XML file 1 Select the menu option File Generate code in Java 2 Select the directory you want to place the Java files in and click OK The Java Code generation completed message appears when successful 3 Compile the generated code and execute it The following MFCompany xml file is created dml Yersian 1 DU encoding LITF 3a Company pls xsi http iy ww 3 org 2001 AML Scheme instance lt Person i First Vernon First l lt Last Callaby lt Last lt Title Otfice Manager lt Title gt ePhoneExt 582 lt PhoneExt lt Person Person lt First Frank First CO d OO P Wha lt L
421. s one character V from person Vernon 2006 Altova GmbH Altova MapForce User Manual 176 MapForce CSV and Text files Mapping Fixed Length Text files to a database Field 1 now contains additional data 5 Click into the row containing the 1 character change the value to 8 and hit Return More data is now visible in the first column which is now defined as 8 characters wide 6 Click the Append Field button to add a new field and make the length of the second field 10 characters Calaby t labyinanon 7 Use the same method to create three more fields of the following lengths 3 25 and 25 characters and change the field headers to make them easier to map First Last Tel Ext Email Title The preview will then look like this Altova MapForce User Manual 2006 Altova GmbH MapForce CSV and Text files Mapping Fixed Length Text files to a database 177 Text import export Input Output File JAPFORCE 2008 MapForcet xamples TutorialsAltovarFLF tit Input file Output file Cancel File encoding Litte endian byte order lu Code LITF 8 ll a 2 Big endian byte order Fised Length Field Settings Fill Character Space Period Ce Custom Assume record delimiters present si Ce Fived Last Tel Ext Email Title string string el string el string 10 ZE 25 Calaby ett SIS Y CGalsbv tk parnonull comt Office Ml Further 471 f furthergnanonull comeet
422. sdsassctevesiesancaseteiececteeses 482 Ganera Eege 482 ees 483 MOC MIC eebe EE 486 25 2 1 OS and Memory Requirements ccccccccccccccecceeeeeeeesssseseeeeeeeeeeeeeeeeaaaas 487 e EN re e MIL E asc censssatccertatnsassestiecsuiatssavavehicerstataseareatiedsbiciataaneetiaceeaietes 488 25 2 3 Altova XSLT and XQuery BMG eS eegen Eege 489 2324 Unicode Te 490 Windows Eeer 490 Altova MapForce User Manual El AY LL ECE OE Te ere ee eee errr eee 491 PLS ee Ee 492 e SE License normalom EE 493 25 3 1 Electronic Software Distribution cece ccccccccssssseeeecceceeeeeeeeeeecceeessaaaeeeeeees 494 e D E E e E 495 Dy OPV eee a esses atic acts sess natayro ts seceas eat dansssaetsapsesacesne te saceceeeac 496 25 3 4 Altova End User License Agreement 0 0 cccccccsssssssssseeeeeeeeeceeceeeeeeeeaas 497 Index Altova MapForce User Manual Chapter 1 MapForce 2006 MapForce 2006 3 1 MapForce 2006 MapForce 2006 Professional Edition is a visual data mapping tool for advanced data integration projects MapForce can generate custom mapping code in XSLT 1 0 and 2 0 XQuery Java C and C and supports e Schema to Schema mapping e Database to Schema XML mapping e XML Schema to Database mapping e Database to Database mapping e Flat file mapping CSV and Text files as source and target e On the fly transformation and preview of database data without code generation or compilation e Accessing MapFo
423. se somewhere on the local network The Local net service name configuration wizard follows the same sequence when installing the Net Service during the initial installation of the Oracle client 1 GE ae ND 10 11 Select the menu option Programs Oracle OraHome92 Configuration and migration tools Net Configuration Assistant This opens the Oracle Net Configuration Assistant Click the Local Net Service Name configuration radio button and click Next Click Add to add a new net service name and click Next Select the installed Oracle version e g Oracle 8i or later and click Next Enter the Service Name of the database you want to connect to e g TestDB and click Next The database s service name is normally its global database name Select the network protocol used to access the database e g TCP and click Next Enter the Host name of the computer on which the database is installed and enter the port number if necessary Click Next to continue Click the Yes radio button to test the database connection and click Next You can change the Login parameters if the test was not successful by clicking the Change Login button and trying again Click Next to continue Enter the Net Service Name in the field of the same name this can be any name you want This is the name you will enter in the Database field of the Oracle login dialog box in MapForce Click Next to continue This completes the Net Service Name configura
424. selecting the menu option Component Component Settings To generate C code in MapForce 1 Select the menu option File Generate code in C sharp You are then prompted for the target directory of the generated files 2 Select the directory you want to place the files in and click OK to confirm eg c codegen C A C Code generation completed message appears when the process was successful If not an error message appears detailing the specific error s Folder c codegen C mapping You can compile the project in VS NET 2002 2003 2005 or use the mono makefile e Mapping sin for VS NET 2002 2003 2005 e The makefile is placed in the C directory if Mono Makefile was selected in the Generation tab of the Tools Options dialog box 1 Navigate to the Mapping subdirectory and open the Mapping solution file Mapping sIn Solution Explorer Mapping H x f 3 oe Solution Mapping 6 projects fea Altova E AltovaFunctions E AltovaxML l This file was generated by MAFFORCE 2004 i EF ExpReport Main string args Happinglonsole cs GI Mapping E Gi References YOU SHOULD NOT MODIFY THIS FILE BECAUSE IT WILL BE Si AssemblyInka cs OVERWRITTEN WHEN YOU RE RUN CODE GENERATION Si MappingConsole cs MappingMaini cs Refer to the NAPFORCE Documentation for further details H E MarketingExpenses http www altova com mapforce using System El namespace Mapping d public class MappingConsole d
425. seliesamasecvacossasesdwoscicoscys 4 3 6 Maltipletarset schemas COCUMECHIIS s 15 s0sssssceacseses cccannsdecsatseavassensinacseeraceeabesdocssusaases 43 3 6 1 Viewing and generating multiple target schema output sneeesenesssssssssseeee 46 3 7 Mapping multiple source items to single target items ccccccccceeeeeeeeeeeeeseeeeeeeees 48 SLL Creanno ihe En Lk rr 49 3 1 2 Duplicating input temis sote eege 52 De Database to schema Mapping siessen na a EEE 57 3 8 1 Mapping database data 60 4 Source driven mixed content mapping 64 4 1 Default settings mapping mixed content ee eeeeeeeeeeeeeeeteeeeeeeeeeeeeeetenteeeeeaeaaaaaaees 67 A MAKEC COMLENL example deene Eed 71 4 3 Source driven mixed content vs standard mapping ssssssssssseeeeersesssssssssssssssserereee 73 Altova MapForce User Manual 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 7 1 TZ 7 3 7 4 7 5 Copy all connections 76 MapForce How To 80 Mapping multiple tables to one XML file wo eesseeeeeeeeeeeeeeeeeeeeeensseeeeeeeeeeeeeeeeaaaes 81 Mappings and root element of target documents sssssssssssssssssssssssssssssssssssssssssssssssseees 83 Boolean values and XSLT LO secensstccecteseseneatecastetozemeatecenetetetersesticacielozennsabecennteteseen 84 Boolean comparison Of input nodes cccccecccccceeccececeeeeaeseeseesseeeceeeeeeeeeeeeeaeaaaaaeeesees 86 Pory Gre Ic eee ene nee ee eee een A ee
426. sensssssssssees 463 EEN 463 Appearance be 463 BorderStyle eege ee 463 D cu ument erer carder cat cca Scart teagan wre we we ate eee eee 464 EEr a E EA E IEEE EEE essen E EAE A EA NEE ENET 464 ent heet 464 ReadOnly Ed 464 Altova MapForce User Manual 25 25 1 Zi Zoomi eVe Mee ee ete een ee anne Erne nner re rer ee tne eee eer errr ee 464 IOS ee 465 E 465 E EE 465 NewDocument deprecated Bee 465 Open ees 465 OpenDocument deprecated S 466 QueryStatus EE 466 Fes EE 466 eh 466 Ee 466 SaveDocument deprecatedl ee 467 TOV CTS ee 467 OnDocu umentClosedeeersssarrsirssieccsreisircririirnisssi strains ena CEES ET eE iiS 467 OnDocumentOpened RE 467 OnModifiedFlagChanged Sukie dara adnan aviata tu Gi E viadaue E O E 467 24 5 5 MapborceControlbl ce Holder 468 EE 468 PACS GS VV LIM ee 468 Project EE 468 IVA TOG E 468 OpenProject ee 469 PAGS EE 469 OnModifiedFlagChanged Gef 469 Peer E Ee ee 470 OA GH VCR INTE OT FH ONION E E E E ys 470 MapForceControlPlaceholder Wind 470 Appendices 472 Egine TAGE eier 473 25 1 1 XSLT 1 0 Engine Implementation Information ccccccccccceeeeeeeeees 474 25 1 2 XSLT 2 0 Engine Implementation Information cccccccccceceeeeeeeeeeees 476 E 476 XSLT 2 0 Elements and Funections 478 25 1 3 XQuery 1 0 Engine Implementation Information 0000snnnenennnnnenssssssesse 479 25 1 4 XPath 2 0 and XQuery 1 0 Functions 3 cssessiceccatesecessce
427. ser Manual 474 Appendices Engine information 25 1 1 XSLT 1 0 Engine Implementation Information The Altova XSLT 1 0 Engine is built into Altova s XMLSpy StyleVision Authentic and MapForce XML products It is also available in the free AltovaXML package The Altova XSLT 1 0 Engine implements and conforms to the World Wide Web Consortium s XSLT 1 0 Recommendation of 16 November 1999 and XPath 1 0 Recommendation of 16 November 1999 Limitations and implementation specific behavior are listed below Limitations e The xsl preserve space and xsl strip space elements are not supported e When the method attribute of xsl output is set to HTML or if HTML output is selected by default then special characters in the XML or XSLT file are inserted in the HTML document directly as special characters they are not inserted as HTML character references in the output For instance the character 160 the decimal character reference for a non breaking space is not inserted as amp nbsp in the HTML code but directly as a non breaking space Implementation s handling of whitespace only nodes in source XML document The XML data and consequently the XML Infoset that is passed to the Altova XSLT 1 0 Engine is stripped of boundary whitespace only text nodes A boundary whitespace only text node is a child whitespace only text node that occurs between two elements within an element of mixed content This stripping may have an effect on the
428. ser defined functions of type Inline are displayed with a dashed outline 2006 Altova GmbH Altova MapForce User Manual 194 User defined functions E mf ExpReport gt E Y expense report exp ong detailed i EH Currency F i Person CH First_Last J Y First Last Y Title cH result Connect the First and Last items to the input parameters of the user defined function and the result parameter to the Name item Dragging on the function name in the Libraries pane and dropping it in the mapping window allows you to use it elsewhere Please note Double clicking a user defined function displays the individual components in a tab of that name User defined functions can be defined to contain complex inputs outputs XML nodes etc as well as multiple output components Please see Standard user defined function and Complex user defined function for more information To delete a user defined function from a library 1 Double click the specific user defined function in the Libraries window The user defined function is visible in its tab 2 Click the Erase button in the title bar to delete the function user First Last HE input 1 fi concat EH output D ER rm Reusing exporting and importing User defined functions User defined functions defined in one mapping can be imported into any other mapping 1 Click the Add Libraries button and select a previously defined mfd file that co
429. ses local windows user accounts see own authentication not supported by MapForce Trusted authentication Connection y y y n y y via ODBC MF used init Statements none MF used final Statements none support for DB schemas identity support MF read back identity value y y identity_val_local sub select support y y JOIN support UPPER el OO JIT Wi ow m Ololo LD WE DB object name qualification MF upper function SQL exec multiple stat in one command separator special error handling ee retrieve parameter types n special issues when using SQL Execution mr d D OH fe d Flat transactions supported Start flat transaction via execution of SQL command Nested transactions supported n y n y n n not supported by DB2 y NN set transaction isolation WO MF begin transaction API call API call MF commit transaction MF rollback transaction not supported by DB2 not supported by DB2 MF set save point MF rollback to save point ME used init Statements none 2006 Altova GmbH Altova MapForce User Manual 150 MapForce and Databases Using MapForce to create database relationships 7 6 Using MapForce to create database relationships MapForce allows you to extract related database data even if no such relationships exist in the source database e any database fields can be used as primary o
430. settings related to code generation Errors 1700 The object is no longer valid 1701 Invalid language specified 1706 Error during code generation GenerateCodelnEx Method GenerateCodelIn i_nLanguage aS ENUMProgrammingLanquage as ErrorMarkers Description Generates code for the project item and its children in the specified language The output location is determined by CodeGenSettings UseDefault and CodeGenSettings OutputFolder Children of this project item can have their own property settings related to code generation An object that can be used to iterate through all messages issued by the code generation process is returned These messages are the same as those shown in the Messages window of MapForce Errors 1700 The object is no longer valid 1701 Invalid language specified or invalid address for the return parameter was specified 1706 Error during code generation Item Property ttem i_nItemIndex aS Integer aS Project Item read only Description Returns the child at i_ nItemIndex position of this project item The index is zero based The largest valid index is Count 1 For an alternative to visit all children see _NewEnum Errors 1700 The object is no longer valid Examples See Project Item Or Project NewEnum Kind Property Kind aS ENUMProjectItemType read only Description 2006 Altova GmbH Altova MapForce User Manual 404 The MapForce API Object Reference Retrieves the kind
431. shCode Document GenerateJavaCode and Document aGeneracexral Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CppSettings DOMType Property copSettings_DOMType aS ENUMDOMType Description Specifies the DOM type used by Document GenerateCppCode Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CppSettings GenerateVC6ProjectFile Property cppSettings_GenerateVC6ProjectFile aS Boolean Description Specifies if VisualC 6 0 project files should be generated by Document GenerateCppCode Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CppSettings GenerateVSProjectFile Property cSharpSettings_GenerateVSProjectFile aS ENUMProjectType Description Specifies which version of VisualStudio project files should be generated by Document GenerateCppCode Only eVisualStudio2003Project and eVisualStudio2005Project are valid selections Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified 2006 Altova GmbH Altova MapForce User Manual 388 The MapForce API Object Reference See also Code Generation CppSettings LibraryType Property copSettings_LibraryType aS ENUM
432. ssing of values e Local global parameters local within subroutines e Recursive invocation subroutines may call themselves Subroutine declaration Subroutines Syntax Sub SimpleSub lines of code EndSub Sub is the keyword that denotes the procedure SimpleSub is the name assigned to the subroutine Round parenthesis can contain a parameter list The code block of a subroutine starts immediately after the closing parameter parenthesis e EndSub denotes the end of the code block Please note Recursive or cascaded subroutine declaration is not permitted i e a subroutine may not contain another subroutine Parameters Parameters can also be passed by procedures using the following syntax All parameters must be variables Variables must be prefixed by the character Local variables are defined in a subroutine Global variables are declared explicitly outside of subroutines Multiple parameters are separated by the comma character within round parentheses e Parameters can pass values Parameters passing values Parameters can be passed in two ways by value and by reference using the keywords ByVal and ByRef respectively syntax define sub CompleteSub Sub CompleteSub Sparam ByVal SparamByValue ByRef SparamByRef ll aes e ByVal specifies that the parameter is passed by value e ByRef specifies that the parameter by reference 2006 Altova GmbH Altova MapForce User Manual 344 Cod
433. sting lt xsl stylesheet version 2 0 xmins xsl http www w3 org 1999 XSL Transform xmins xs http www w3 org 2001 XMLSchema xmlns fn http www w3 org 2005 xpath functions lt xsl stylesheet gt The following points should be noted e The Altova XSLT 2 0 Engine uses the XPath 2 0 and XQuery 1 0 Functions namespace listed in the table above as its default functions namespace So you can use XPath 2 0 and XSLT 2 0 functions in your stylesheet without any prefix If you declare the XPath 2 0 Functions namespace in your stylesheet with a prefix then you can Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 477 additionally use the prefix assigned in the declaration e When using type constructors and types from the XML Schema namespace the prefix used in the namespace declaration must be used when calling the type constructor for example xs date e With the CRs of 8 June 2006 the untypedAtomic and duration datatypes dayTimeDuration and yearMonthDuration which were formerly in the XPath Datatypes namespace typically prefixed xat have been moved to the XML Schema namespace e Some XPath 2 0 functions have the same name as XML Schema datatypes For example for the XPath functions fn string and fn boolean there exist XML Schema datatypes with the same local names xs string and xs boolean So if you were to use the XPath expression st ring Hello the expression evaluate
434. sultant XML file can be saved by clicking the Save icon and validated against the referenced schema by clicking the validate icon in the icon bar III Database as target SQL pseudo code is displayed when a database component is the target The complete select statement all Select Insert Update or Delete statements is displayed for you to preview Altova MapForce User Manual 2006 Altova GmbH MapForce engine 251 before executing the SQL statement ee This SGiL statements are only for preview and may not be executed in another GO Guer To execute these statements use function Generate output fram menu Transformation Connect to database using the follaying connection string Provider Microasott Jet COU EID A II Data Sources Program Files AtovaiMAPPORCEZO04 zb 1 2 E 5 b H S SELECT IFMA tosaal Primarykey 5 MULL OMA Atoval Primary Key AS Prima INSERT INTO Attova Mame PrimaryKey VALUES Microtech OrgChart PrimaryKey 6 III Clicking the Run SQL script icon executes the SQL select statement and presents you with a report on the database actions as shown in the screen shot below e Actual SQL statement that were executed on the target database e Multiple table actions if any occurred i e UPDATE gt gt gt OK 0 rows affected and the INSERT gt gt OK 1 rows affected e Results of every SQL statement e g OK and xx rows affected if successfu
435. t lt p gt lt p gt lt input type button id GeneratexSLT value Generate XSLT onclick BtnGenerate objDocl 0 gt lt input type button id GenerateJava value Generate Java onclick BtnGenerate objDocl 1 gt lt input type button id GenerateCpp value Generate C onclick BtnGenerate ob jDocl 2 gt lt input type button id GenerateCSharp value Generate C onclick BtnGenerate objDocl 3 gt lt p gt The corresponding JavaScript looks like this lt SCRIPT ID Javahandlers LANGUAGE javascript gt open a document in the specified document control window function BtnOpenMEFile objDocCtrl do not use MapForcex Application OpenDocument to open a document since then MapForceControl wouldn t know a control window to show the document in Instead var pos objMapForcex BaseHref indexOf ActiveX 1f pos gt 7 path objMapForceX BaseHref substr 7 pos 7 oe remove file protocol objDocCtrl OpenDocument path MarketingExpenses mfd objDocCtrl setActive else alert Unable to locate MarketingExpenses mfd at objMapForcexX BaseHref EE open a new empty document in the specified document control window function BtnNewFile objDocCtr1l ob DocCtrl OpenDocument obJDocCtrl setActive Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 437 2 2 2 5 2 252
436. t 5 eProjectltemType_WebServiceOperatio 6 n eProjectltemType_ExternalFolder 7 eProjectltemType_LibrarzFolder 8 eProjectitemT ype ResourceFolder 9 eProjectitemType_VirtualFolder 10 See also ProjectIitem Kind 2006 Altova GmbH Altova MapForce User Manual 412 The MapForce API Enumerations 23 3 6 ENUMProjectType Description Enumeration values to select a project type for generated C mapping code Possible values eVisualStudioProject eVisualStudio2003Project eBorlandProject eMonoMakefile eVisualStudio2005Project Hol ou ue oil RWNM OO See also Code Generation Altova MapForce User Manual 2006 Altova GmbH The MapForce API Enumerations 413 23 3 7 ENUMViewMode Description Enumeration values to select a MapForce view Possible values eMapForceView 0 eXSLView eOutputView 2 2006 Altova GmbH Altova MapForce User Manual Chapter 24 MapForceControl 416 MapForceControl 24 MapForceControl MapForceControl is a control that provides a means of integration of the MapForce user interface and the functionality described in this section into most kinds of applications ActiveX technology was chosen so as to allow integration using any of a wide variety of languages this enables C C VisualBasic or HTML to be used for integration All components are full OLE Controls which makes integration as simple as possible Two different levels of integration are provided thus e
437. t sourcdes gt lt CaLrgece lt datapoint name result datatype string gt lt targets gt lt implementations gt lt implementations gt lt description gt lt short gt result hello greeting_type lt short gt lt long gt Returns a greeting sentence according to the given greeting_type lt long gt lt description gt lt component gt The new MapForce component LES Datapoints Datapoints can be loosely defined as the input or output parameters of a function The datapoints datatype parameter specifies the parameters return values type Please note Only one target datapoint but multiple source datapoints are allowed for each function The datatype of each datapoint must be one of the following datatypes any Type boolean decimal string datetime duration date time These datatypes have to correspond to the datatypes of the function s parameters you defined in your Java C or C library Altova has therefore provided support for Schema simpleTypes as classes for each of the supported programming languages The integration of these Schema simpleTypes in your library will be explained later in this document Function Descriptions Functions are accompanied by short and long descriptions in the library window The short description is always shown to the right of the function name while the long description is Altova MapForce User Manual 2006 Altova GmbH Adding custom libraries Def
438. t Bander 3 c clovisigamicrotech com Clive Clovis aU c Cicadatmicrotech cor Camilla Cicada 31 c corrigani microatech ce Carol Corrigan 2 sales and Marketing E 3 Engineering PrimaryKey EMail First Last b b flandisGnanonull com Fred Landis Yo omlandisinanonull com Michelle Butler Fi o tlittleainanonullcaom Ted Little a 4 awayicinanonull com Ann Way a 10 gardnerainanonull cam Liz Gardner gt 11 p smithiginanonull cam Paul mb G 4 Level 1 support PrimaryKey EMail First Last 12 a marting nanonull cam Alex Martin 13 g hammerainanonull cor George Hammer 14 nnewburyGmicroatech cr Mira Newbury 15 c orgonegmicrotech co Olanda Urigone 2 On March 1st 2 nextoficemnan 2001 03 01 Primarykey Name BE 5 Admin b Sales and Marketing Level 2 support Update if combinations with delete child data This section describes the effect of the Update if condition on a parent table combined with each of the possible table actions defined for related child tables The Delete data in child Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 123 tables option is active in all but one of these examples You can continue to use the mapping from the previous section for this section Database Table Actions Altova All input data are compared to the DE table data using the operators defined here C IF all compar
439. t in a tree view za ze Address Let us call the table names visible in the above diagram root tables i e they are the top level or root of the tree view Expanding a table name displays all the tables related to it The root tables are usually displayed in alphabetical sort order this has no bearing on the actual table relationships however When creating queries mappings of databases with relations including flat format SQL KML databases make sure that you create mappings between tables that appear under one of the root tables if you want the table relationships to be maintained i e when creating queries that make use of joins The graphic below shows the expanded Office root table of the Altova database The arrows to the left of the expand contract icons of each table name as well as the indentation lines show the table relationships Starting from the Office table and going down the tree view e Arrow left denotes a child table of the table above Address is a child table of Office e Department is also a child of Office as well as a sibling table of Address both have the same indentation line Person is also a child table of Department e Arrow right denotes a parent of the table above Altova is the parent of the Office table Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML data to databases 111 fe PrimaryKey ir ForeignKey
440. t of each item is mapped if a connector exists Please note If one of the child nodes items use the anyType datatype then the node content is not mapped only the empty item node name is transferred to the target component 2006 Altova GmbH Altova MapForce User Manual 74 Source driven mixed content mapping source driven mixed content vs standard mapping The anyType datatype allows unconstrained content including mixed content and MapForce cannot automatically ascertain the varied structure of such types of nodes Change the datatype to anySimple type or a more specific type e g xs string if empty nodes appear in the output window or define a complexType in the schema and map the respective items Copy all mapping 1 Right click the para connector and select Copy all from the popup window The connector now appears as a solid line with the child items branching out of and below it Please see Copy all connections for more information E Desc d d E Desc El para para Altova MapForce User Manual 2006 Altova GmbH Chapter 5 Copy all connections 76 Copy all connections 5 Copy all connections This type of connection allow you to organize your workspace and automatically connect all identical items in source and target components meaning that depending on the source and target type e all source child items are copied to the target component if either the source and target
441. te functions summing nodes in XSLT1 and 2 241 SE Input gt EE gt E gt Output de Y Products string result wo Total de A Product g A Product 4 Amount 4 Amount 4 Price CA Price 4 Click the Output tab to preview the mapping result sm version 1 0 encading LITF e r stpt mins ts Pip Anda ws org 2001 AML Schema instance xsi noa lt Total 25 lt T otal gt lt Product Name Product4 lt Mame o sAmount 1 O mount lt Price S lt Price lt Product 5 lt Product i lt Name ProductB hMame E mount 5 lt 4maunt i lt Price gt 20 lt Price gt lt Product lt lutput The two Price fields of both products have been added and placed into the Total field To sum the nodes in XSLT 2 0 e Change the stylesheet declaration in the template to version 2 0 Zem version 1 0 encoding UTF a 7 gt lt 41 stylesheet vwersion 2 0 xumlnsixs xelioutput method xul version 2006 Altova GmbH Altova MapForce User Manual Chapter 16 Type conversion checking 244 Type conversion checking 16 Type conversion checking From MapForce 2006 SP2 on the generated applications and preview with the builtin execution engine check for type conversion errors in more detail inline with XSLT2 and XQUERY Converting values from one type to another may now result in a runtime error where in prior versions of MapForce would have produced some type
442. te in diagnosis or study of errors Altova may include error corrections in Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 503 maintenance releases updates or new major releases of the Software Altova is not obligated to fix errors that are immaterial Immaterial errors are those that do not significantly impact use of the Software Whether or not you have purchased the Support amp Maintenance Package technical support only covers issues or questions resulting directly out of the operation of the Software and Altova will not provide you with generic consultation assistance or advice under any circumstances Updating Software may require the updating of software not covered by this Software License Agreement before installation Updates of the operating system and application software not specifically covered by this Software License Agreement are your responsibility and will not be provided by Altova under this Software License Agreement Altova s obligations under this Section 6 are contingent upon your proper use of the Software and your compliance with the terms and conditions of this Software License Agreement at all times Altova shall be under no obligation to provide the above technical support if in Altova s opinion the Software has failed due to the following conditions 1 damage caused by the relocation of the software to another location or CPU 41 alterations modifications or attempts
443. tem in the source schema and drag A connector line is automatically created from the output icon and is linked to the mouse pointer which has now changed shape 2 Move the mouse pointer near to the Company item in the target schema and drop the connector the moment the mouse pointer changes back to the arrow shape A small link icon appears below the mouse pointer and the input icon is highlighted when the drop action will be successful A connector has now been placed between the source and target schemas A mapping has now been created from the schema source to the target document E ExpReport T arge D expense report p A ow 5 detailed a currency DC Person LC First DC expense report JZ detailed i E Employee i Title Auto mapping MapForce allows you to automatically connect child elements of the same name in both schemas For more information please see the section on Connector properties 1 Right click the Person connector and select Connect matching children from the pop up menu If the child items are automatically connected auto connect child items is active Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Mapping schema items 31 ExpReport T arget expense report El Y Company detailed i H dx Employee CUTency Connect Matching Children 7 Person Delete MW Ignore Namespaces M Recursive E Mis Attributes and Elements Existing Conn
444. tems Insert Update and transactions please see the Customers_DB mfd sample file available in the MapForceExamples folder The example shows how XML schemas and database sources can be mapped to target databases In the example XML Schema to database Customers and Addresses exist in the target database These entries are updated with the new data from the from the source XML Schema document The FirstName an LastName items are used to find the correct rows in the database Database to database Address and Person data are supplied by the database source and are inserted into the database The target table Customers is duplicated CustomerID for each record are created anew with the initial value being A1000 2006 Altova GmbH Altova MapForce User Manual 126 MapForce and Databases Mapping XML data to databases E Customers I Customers gt d 7 Customer Number 7 4 LastName EI Y Address C Street Le d L fa auto number ia start a tat d ZE result LI Leimctease gt d gt d gl lz Addresses z Customer D EE Addresses Number Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML datato databases 127 7 3 5 Database action Delete The table action Delete if is used to selectively delete data from tables This is achieved by selecting specific items fields of the source and target components which are to be compared T
445. tent you may be expressly permitted to decompile under applicable law in the European Union if it is essential to do so in order to achieve operability of the Software with another software program and you have first requested Altova to provide the information necessary to achieve such operability and Altova has not made such information available Altova has the right to impose reasonable conditions and to request a reasonable fee before providing such information Any information supplied by Altova or obtained by you as permitted hereunder may only be used by you for the purpose Altova MapForce User Manual 2006 Altova GmbH Appendices License Information 499 described herein and may not be disclosed to any third party or used to create any software which is substantially similar to the expression of the Software Requests for information from users in the European Union with respect to the above should be directed to the Altova Customer Support Department 1 Other Restrictions You may not loan rent lease sublicense distribute or otherwise transfer all or any portion of the Software to third parties except to the limited extent set forth in Section 3 or otherwise expressly provided You may not copy the Software except as expressly set forth above and any copies that you are permitted to make pursuant to this Software License Agreement must contain the same copyright patent and other intellectual property markings that appear
446. ter item do something with project item here IterateProjectItemsRec new Enumerator objProjectItem objProjectitemiIter moveNext function IterateAllProjectItems objProject ob jMapForce ActiveProject if ob jProject null IterateProjectItemsRec new Enumerator objProject Events This object supports the following events OnProjectClosed OnProjectClosed Event OnProjectClosed i_objProject as Project Description This event is triggered when the project is closed The project object passed into the event handler should not be accessed The corresponding open event is Application OnProjectOpened AddActiveFile Method AaddActiveFile aS ProjectItem Description Adds the currently open document to the mapping folder of the project s root Errors 1500 The object is no longer valid 1501 Invalid address for the return parameter was specified Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 393 1503 No active document is available 1504 Active documents needs to be given a path name before it can be added to the project 1705 Mapping could not be assigned to project Maybe it is already contained in the target folder AddFile Method addFile i_strFileName as String aS ProjectItem Description Adds the specified document to the mapping folder of the project s root Errors 1500 The object is no longer valid 1501 The file
447. ters If the user defined function was originally of type standard with a priority context and was subsequently changed to one of type inline then the priority context is hidden and deactivated Changing the same function back to standard shows the priority context and enables it once again Please see Altova MapForce User Manual 2006 Altova GmbH MapForce How To Command line parameters 89 6 6 Command line parameters The command line parameter syntax for MapForce is shown below Please note that MapForce currently supports XERCES version 2 2 0 General syntax MapForce exe Filename BUILTIN XSLT XSLT2 XQuery Java CS CS VS2005 VS2003 VS2002 BORLAND MONO CPP CPP VC8 VC71 MSXML XERCES LIB DLL MFC NoMFC outputdir LOG logFileName e The square brackets denote optional e The round brackets denote a parameter group containing several choices e The pipe symbol denotes OR e g XSLT or Java Description of parameters Filename path and YourUAPFORCEfile MFD If the path or file name contains a space please use quotes around the path file name i e c Program Files Filename BUILTIN generates all outputs using the built in transformation engine XSLT generates all XSLT files IXSLT2 generates XSLT files XQuery generates XQuery code Java generates the Java application ICS generates the C application using the configuration of the mapping s
448. that selects text nodes also boundary whitespace only text nodes would typically also be included in the selection However since the XML Infoset used by the Altova engines has boundary whitespace only text nodes stripped from it these nodes are not present in the XML Infoset As a result the size of the selection and the numbering of nodes in the selection will be different than that for a selection which included these text nodes The fn position fn last fn count and fn deep equal functions therefore could produce results that are different from those produced by some other processors A situation in which boundary whitespace only text nodes are evaluated as siblings of other elements arises most commonly when xsl1 apply templates is used to apply templates When the n position fn last and fn count functions are used in patterns with a name test for example para 3 whichis short for para position 3 boundary whitespace only nodes are irrelevant since only the named elements para in the Altova MapForce User Manual 2006 Altova GmbH Appendices Engine information 483 above example are selected Note however that boundary whitespace only nodes are relevant in patterns that use the wildcard for example 10 Numeric notation On output when an xs double is converted to a string scientific notation for example 1 0E12 is used when the absolute value is less than 0 000001 or greater than 1
449. the Builders entry in the left pane of the project properties dialog Un check the MapForce builder check box in the right pane Modifications to any mapping files or MapForce project files in this Eclipse project will now no longer trigger automatic generation of mapping code eet eng Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for Eclipse MapForce code generation 275 20 6 3 Adding MapForce nature to existing Eclipse Project Applying the MapForce Nature to Existing Projects Add the following text to the natures section of the project file in the Eclipse project e g in the c eclipse3 1 workspace MapForce folder lt nature gt com altova mapforceeclipseplugin MapForceNature lt nature gt lt natures gt lt naturetorg eclipse jdt core javanature lt nature gt lt nature gt com altova mapforceeclipseplugin MapForceNature lt nature gt lt natures gt Any MapForce project files and mappings contained in this project will now participate in the automatic build process For MapForce specific details see Using MapForce Eclipse projects for automatic build 2006 Altova GmbH Altova MapForce User Manual 276 MapForce plug in for Eclipse Extending MapForce plug in 20 7 Extending MapForce plug in MapForce plug in provides an Eclipse extension point with the ID com altova mapforceeclipseplugin MapForceAPI You can use this extension point to adapt or extend the functionality of the
450. the Tools Options dialog Properties and Methods Properties to navigate the object model Application Parent General options showLoqoOnPrint ShowLogoOnStartup UseGradientBackqround Options for code generation CompatibilityMode DefaultOutputEncoding XSLTDefaultOutputDirectory CodeDefaultOutputDirectory CopsSettings DOMType CopSettings LibraryType Copsettings UseMFC CopsSettings GenerateVCoProjectFile CopSettings GenerateVsSProjectFile CSharpSettings Pro jectType Application Property Application aS Application read only Description Retrieves the application s top level object Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified CodeDefaultOutputDirectory Property codeDefaultOutputDirectory aS String Description Specifies the target directory where files generated by Document GenerateCppCode Document GenerateJavaCode and Document GenerateCHashCode are placed Errors 1400 The application object is no longer valid 1401 Invalid address for the return parameter was specified See also Code Generation CompatibilityMode Property compat ibilityMode aS Boolean Altova MapForce User Manual 2006 Altova GmbH The MapForce API Object Reference 387 Description Set to true to generate code compatible with Version 2005R3 Set to false to use newly added code generation features in Document GenerateCppCode Document GenerateCHa
451. the diagram below as an aid to creating the mappings in the user defined function please take note of the following 8 Right click the a parameter and select Priority context from the pop up menu 9 Double click the output function and enter the name of the output parameter in this case Name defaut Article W output 1 E Articles gt JA t Articles d Y Article ih filter Number iprode row oriu boo orrfalsel This ends the definition of the user defined function Please note Double clicking the input and output functions opens a dialog box in which you can change the datatype of the input parameter as well as define if the function is to have an input icon Connection required in this dialog The user defined function e has one input function ArticleNr which receives data from the ShortPO XML file e compares the ShortPO ArticleNr with the Article Number from the Articles input XML instance file inserted into the user defined function for this purpose e uses a filter component to forward the Article Name records to the output component if the comparison returns true e has one output function Name which forwards the Article Name records to the CompletePO XML file 10 Click the Home icon Sg to return to the mapping The LookupArticle user defined function is now available under the user library 2006 Altova GmbH Altova MapForce User Manual 200 User defined functions Standard user defined function
452. the environmental variable ANT_OPTS which sets specific ANT options such as the memory to be allocated to the compiler and add values as shown below Edit User Variable Variable name ANT OPTS Variable value server meb L 2m ms512m Reserving method names When customizing code generation using the supplied spl files it might be necessary to reserve method names To do this C and Java 1 Navigate to the program installation directory e g c Program Files Altova MapForce2006 spl 2 Open either the cs spl or java spl file and insert a new line into the reserve section e g reserve myReservedWord 3 Regenerate the program code C 1 Navigate to the cpp subdirectory e g c Program Files Altova MapForce2006 spl cpp 2 Open the settings spl file and insert a new line into the reserve section e g reserve myReservedWora 3 Regenerate the program code XML Schema support Please note that the attribute nillable true is not supported during the code generation process 2006 Altova GmbH Altova MapForce User Manual 322 Code Generator Code generation mapping example 22 4 Code generation mapping example The mapping example shown below uses the Marketing Expenses mapping project MarketingExpenses mfd available in the MapforceExamples folder Please also see Integrating code in your application for more information E ExpReport g MarketingE xpenses concal i B expense reportl gt
453. the items 5 Click the expand window icon and resize the window GI ExpReport T arget Eli expense report gt a E Company seas detailed de 4 Employee l E CurtencH on Title EI Person ow Name First R Y Last Title 7 m Phone i Email expense item Lae J LA Leem LA Bes I ka ka DW LI A Ka teal Ki Ke Ke DW Bess ess Bes Besse L LI LI LI LA Ka Bes es es Bess LA LA LI U E Ki Email 4 DomesticD ailyR ate gt ForeignDailyRate i 3 Expense detail LU _ Den LA I DW Se e e ka MM tegt ia al ka r Ka Ecg Eng VW WV Rai a ees Soe Sees es eS DW Ka de 4 expense item bes Currency eg Bill to E CO Date E Y Travel i be Travel Cost Ke dirai type Gees GE explo iw K V We DW DW Bes Bess Bes Bess L LI LI LI LA Ka Bes ess es Besse LA LA LI U E Ki Dess ry a A i Meal re Fe mealtype j L Lo Kg Ka Ke Bess Bes 4 Destination We are now ready to start mapping schema items from the source to the target schema 2006 Altova GmbH Altova MapForce User Manual 30 MapForce tutorial Mapping schema items 3 2 Mapping schema items This section deals with defining the mappings between the source and target schema items 1 Click the expense report i
454. the section Mapping between components for more information Connector The connector is the line that joins two icons It represents the mapping between the two sets of data the icons represent Please see the section Mapping between components for more information Several types of connector can be defined e Target Driven Standard connectors see source driven mixed content vs standard mapping Copy all connectors please see Copy all connections e Source Driven mixed content connectors see Source driven and mixed content mapping Constant A constant is a component that supplies fixed data to an input icon The data is entered into a Altova MapForce User Manual 2006 Altova GmbH MapForce overview Terminology H dialog box when creating the component There is only one output icon on a constant function You can select from the following types of data Number and All other String Filter Node Row A filter is a component that uses two input and output parameters node row and bool and on true on false If the Boolean is true then the value content of the node row parameter is forwarded to the on true parameter The on false output parameter outputs the complement node set defined by the mapping please see Multiple target schemas documents for more information IF Else Condition A condition is a component which allows you to pass on different sets of data depending on the outcome of a preset condi
455. tings PUBLICI static CSchemaString HelloFunctionResponse const CSchemaBoolean amp rGreetingType Es namespace HelloWorldLibrary endif HELLOWORLDLIBRARY_GREETINGS_H_INCLUDED In the cpp file 1 The first lines need to be the includes for StdAfx h and the definitions from the Altova base library please copy these lines from the sample code supplied below 2 The Altova path is correct for your source files because they will be copied to a separate project in the resulting code that will be found at targetdir libraryname GE The next line is the include for your header file you created above Add the implementations for your functions Please remember that the implementations need to be in the correct namespace you specified in the header file and in the implementations element of the mt The sample cpp file would look like this include include include include include include Wot OA A Altova Altova h Altova AltovaException h Altova SchemaTypes h Altova SchemaTypeString h Greetings h namespace helloworld CSchemaString Greetings HelloFunctionResponse const CSchemaBoolean amp rGreetingType if rGreetingType return CSchemaStrang _t Helloe World 3 return CSchemastriang _F Hello Useri E In contrast to Java or C you do not need to compile your source files They will be copied to the generated code and are compiled
456. tion When class TypeA is generated the member B is also generated To find out the type of B use the TypeObject method of the element which returns the class TypeB So we can get the name and use it there Facet This class consists of the constraint itself and several boolean variables The boolean variables tell you the kind of constraint you re currently dealing with The names of the Boolean variables are identical to those used in the schema specification Name ge Description Constraint string Holds the value of the facet_ IsLength boolean nl IsMinLength J oolean ooo o IsMaxLength oglean IsMinInclusive oglean TI IsMinExclusive boolean LI IsMaxinclusive boolean IsMaxExclusive boolean IsTotalDigis bogean LI IsFractionDigis boolean IsWhiteSpace_ooolean LI IsPattern noden TI 2006 Altova GmbH Altova MapForce User Manual 350 Code Generator The way to SPL Spy Programming Language lsEnumeration boolean Enumeration Enumeration collection Holds a collection of Enumeration objects if this facet is of type enumeration Enumeration Abstraction of an enumeration entry inside a facet Name ge Description Index integer a RSS O the index of this enumeration value starting with 1 Value string Holds an enumeration value Altova MapForce User Manual 2006 Altova GmbH Chapter 23 The MapForce API 352 The MapForce API 23 The MapForce API The COM based API
457. tion Click Next to close the dialog box 2006 Altova GmbH Altova MapForce User Manual Chapter 22 Code Generator 304 Code Generator 22 Code Generator MapForce includes a built in code generator which can automatically generate Java C or C class files from XML Schema definitions text files and databases Mapping is not limited to simple one to one relationships MapForce allows you to mix multiple sources and multiple targets to map any combination of different data sources in a mixed environment The result of the code generation is fully featured and complete software code which performs the mapping for you You may insert the generated code into your own application or extend it with your own functionality XML is not a full programming language in that it cannot be compiled or executed as a stand alone binary executable file rather XML documents must be bound to an external software application or runtime environment such as a business to business application or Web service Program coding is most commonly done through the use of high level XML processing Application Program Interfaces API such as Microsoft MSXML and Apache Xerces Version 2 2 0 and higher which are freely available for various programming languages Altova MapForce User Manual 2006 Altova GmbH Code Generator Introduction to code generator 305 22 1 Introduction to code generator In the case of XML Schemas the MapForce code gen
458. tion The component header displays the text if else Please see Condition in the Reference section for an example The first input parameter is a bool which contains the data you are checking against e The value true input parameter supplies the data to be passed on as a result if the condition is true e The value false supplies the data to be passed on if the condition is false e The result parameter outputs the data supplied by the value true false input parameters 2006 Altova GmbH Altova MapForce User Manual 10 MapForce overview MapForce components 2 2 MapForce components When creating a mapping single or multiple data sources can be mapped to multiple target components e Data sources can be XML Schemas documents CSV or text files databases e Target components can be XML Schemas documents CSV or text files as well as databases The mapping process allows the source data to be selectively transformed or manipulated using functions before it is output or made available in the Output preview window A data source can have a database CSV or text fileas its source Once a data source has been imported converted it is used in exactly the same way as any of the other schema components in the Mapping tab To create a schema component source 1 Click the Insert XML Schema File icon Di 2 Select the schema file you want to use from the Open dialog box A further dialog box appears pro
459. tion you want to use it e g left border To open an supplied sample file 1 Select the menu option File Open navigate to the MapForceExamples folder and open a MapForce file CompletePO mfd is shown in the screenshot below it Libraries ox CompletePO mfd MFO Filel mfd Start Page core b Ee E ShortPo a conversion functions boolean H F ShortPO gt Y CustomerNr DI Lineltems EI 3 Lineltem 4 ArticleNr Amount number T string T JO Javag amp E3 logical functions egual xogo 3 equal or qreater equal or less E Customers greater e El lt Customers gt de Y Customer gt Number i 4 FirstName gt LastName E 4 Address we Add Libraries Happing MOLT Output less logical and logical not logical or not equal Messages v 4 Bi BiG all Si CompletePO mfd Mapping validation successful 0 eortsl D warning s Altova MapForce User Manual 2006 Altova GmbH MapForce plug in for MS Visual Studio NET Differences between NET and standalone versions 257 19 2 Differences between NET and standalone versions The Enterprise and Professional MapForce plug ins are integrated into all versions of MS Visual Studio NET in the same way Please note there is no support for MapForce projects in the Visual Studio NET version Changed functionality in the Visual Studio NET editions Menu E
460. tions 173 8 4 CSV file options Right click the Altova_csv component and select Component Settings to open the dialog box CSV Text import export options When defining field formats in this dialog box type checking of the respective fields is automatically performed If the inout data and the field format defined here to do not agree then the data is highlighted in red E g changing field2 from string to integer would make all surnames of that column appear in red Please note The field types that one can select for a specific column are based on the default XML schema datatypes E g The Date type is in the form YYYY MM DD k Component Settings d x Input Output File fram Files ValtovaM apForce2 005M apForceE samples T utorahAlora_ cev cew Input file Output file Cancel Input file encoding Ge itthe endian byte order lu Code UTF 8 a Ae Big endian byte order CoV Settings Field delimiter Text enclosed in e coy C Tab Semicolon Ge Comma Space C Custom C Not f Gef de Fired LC Estro contains feld names Field3 Field4 Fields el string string string Sh Wucallabyienanonull com Office Manager 47 Turtbertkorernorull Com Accounts Receivabl J63 Limatizeminanonullcom Accounting Manage B21 firstbreacdinanonull com Marketing Manager E SUZ Po s sannacnanonull cam Art Director Cl i Ch 4 Append Field Insert Field B Input file Sele
461. tive Clicking the icon switches between an active and inactive state Please see the section on Connector properties for further information Target Driven Standard Changes the connector type to Standard mapping please see Source driven mixed content vs standard mapping for more information Copy all Creates connectors for all matching child items where each of the child connectors are displayed as a subtree of the parent connector please see Copy all connections for more information Source Driven mixed content Changes the connector type to source driven mixed content and enables the selection of additional elements to be mapped The additional elements have to be child items of the mapped item in the XML source file to be able to be mapped Please see Default settings mapping mixed content for more information Connection settings Opens the Connection Settings dialog box in which you can define the specific mixed content settings of the current connector Note that unavailable options are greyed out Please note that these settings also apply to complexType items which do not have any text nodes Altova MapForce User Manual 2006 Altova GmbH MapForce Reference Connection 293 Connection Settings GC AM a E Annotation settings Individual connectors can be labeled for clarity 1 Double click a connector and enter the name of the connector in the Description field This enab
462. tiveX controls and interfaces required to integrate the MapForce user interface into your application To allow you to automate or control the functionality of the integrated components the following properties give you access to the MapForce automation interface MapForce API MapForceControl Application MapForceControlDocument Document MapForceControlPlaceHolder Project Some restrictions apply to the usage of the MapForce automation interface when integrating MapForceControl at document level See Integration at document level for details 2006 Altova GmbH Altova MapForce User Manual 454 MapForceControl Object Reference 24 5 Object Reference Objects MapForceCommand MapForceCommands MapForceControl MapForceControlDocument MapForceControlPlaceHolder To give access to standard MapForce functionality objects of the MapForce automation interface can be accessed as well See MapForceControl Application MapForceControlDocument Document and MapForceControlPlaceHolder Project for more information Altova MapForce User Manual 2006 Altova GmbH MapForceControl Object Reference 455 24 5 1 MapForceCommand Properties 10 Label L eoeparacor SubCommands Description Each MapForceCommand object can be one of three possible types e Command tp is set to a value greater 0 and Label is set to the command name IsSeparator IS false and the SubCommands collection is empty e Separator tsSeparator IS true
463. to Development Cur Usb Total Nah Date Gost Destination lar Rental Sir Travel Wisc Travel Date 2003 07 07 Bd to Accounting Curr zb Total NaN Cost Destination _ar Kental Date 2003 02 02 Bd to Marketing add DomesticD ailpR ate add Cash4dyance Tel Emai 23 4560 78 Elands nanonull com Foreign daly rate add Fr Foreign cash advance add Ci Travel Accommo daton Entertammen 54 86 add Destination add Lar Rental add Air Travel add Accommodation add Misc Travel 1014 22 add Destination add Lar Rental add Air ravel add Accommodation add Misc Travel 2000 add Destination add Car A ental Cost Client add dh ecctropoecl aber The expense report can now be completed with extra information relating to Accommodation Entertainment and Misc costs if necessary Please note The Total field automatically sums up all Cost fields of each record Once a number exists in all these fields the Total field becomes live and the NaN Not a Number entry disappears Subsequent changing of any of the Cost fields automatically adjusts the Total field Altova MapForce User Manual 2006 Altova GmbH MapForce tutorial Multiple target schemas documents 483 3 6 Multiple target schemas documents This section deals with creating a second target schema document into which non travel expense records will be placed and follows on from the current tutorial example Tut Exp
464. to change the Software without Altova s written approval 111 causes external to the Software such as natural disasters the failure or fluctuation of electrical power or computer equipment failure iv your failure to maintain the Software at Altova s specified release level or v use of the Software with other software without Altova s prior written approval It will be your sole responsibility to 1 comply with all Altova specified operating and troubleshooting procedures and then notify Altova immediately of Software malfunction and provide Altova with complete information thereof 11 provide for the security of your confidential information 111 establish and maintain backup systems and procedures necessary to reconstruct lost or altered files data or programs SOFTWARE ACTIVATION UPDATES AND LICENSE METERING a License Metering Altova has a built in license metering module that helps you to avoid any unintentional violation of this Software License Agreement Altova may use your internal network for license metering between installed versions of the Software b Software Activation Altova s Software may use your internal network and Internet connection for the purpose of transmitting license related data at the time of installation registration or update to an Altova operated license server and validating the authenticity of the license related data in order to protect Altova against unlicensed or illegal use of the Software and
465. to improve customer service Activation is based on the exchange of license related data between your computer and the Altova license server You agree that Altova may use these measures and you agree to follow any applicable requirements c LiveUpdate Altova provides a new LiveUpdate notification service to you which is free of charge Altova may use your internal network and Internet connection for the purpose of transmitting license related data to an Altova operated LiveUpdate server to validate your license at appropriate intervals and determine if there is any update available for you d Use of Data The terms and conditions of the Privacy Policy are set out in full at http www altova com privacy and are incorporated by reference into this Software License Agreement By your acceptance of the terms of this Software License Agreement or use of the Software you authorize the collection use and disclosure of information collected by Altova for the purposes provided for in this Software License Agreement and or the Privacy Policy as revised from time to time European users understand and consent to the processing of personal information in the United States for the purposes described herein Altova has the right in its sole discretion to amend this provision of the Software License Agreement and or Privacy Policy at any time You are encouraged to review the terms of the Privacy Policy as posted on the Altova Web site from time to time TERM
466. to parent items etc Don t use filters to map to child data if the parent item is mapped Using a filter to map data from a source parent to a target parent automatically applies the same filter to every child item of the particular parent Filter components do not have to be used to supply filtered data to child items if the parent item can be mapped You can therefore map child data directly Use priority context to prioritize execution when mapping unrelated items Mappings are always executed top down if you loop search through two tables then each loop is processed consecutively When mapping unrelated elements without setting the priority context MapForce does not know which loop needs to be executed first it therefore Altova MapForce User Manual 2006 Altova GmbH MapForce How To Filter components Tips 97 automatically selects the first table or data source Solution Decide which table or source data is to be looped searched first and then set the priority context on the connector to that table Please see Priority Context for a more concrete example To define a priority context e Right click an input icon and select Priority Context from the pop up menu lf the option is not available mapping the remaining input icons of that component will make it accessible 2006 Altova GmbH Altova MapForce User Manual 98 MapForce How To Node testing 6 11 Node testing The node testing funct
467. tova item to display the Altova table fields Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Mapping XML datato databases 109 E Altova_Hierarchical Flt Altova Y PrimaryKey I Jt Lt Ka DW Ke Ka e i Office Y PrimarpKey 4 ForeignKey K i Ka Ke Bes ess Jess Besse I LA LA LI L LI Li Ka Ka Please note l A Address gt DS Altova ne Des i ke i e Ke Bell es Jess 1 LA LI L Ke Ben Jess Jess Jess I Vi La LA V ka k T P _ ae Va Vo K i LA V V Wil WR Department Office G Person L SCH K L EE Creating mappings between database components is not possible if you select XSLT XSLT2 or XQuery as the target language XSLT does not support database queries Once you have defined the database settings using the method described above they cannot be changed by editing the component settings of the database component right click and select Component settings please see the Reference Component Settings for more information 2006 Altova GmbH Altova MapForce User Manual 110 MapForce and Databases Mapping XML data to databases 7 3 2 Components and table relationships Table relationships are easily recognized in the database component The database component displays each table of a database as a root table with all other related tables beneath i
468. trix MF commit transaction API call ME rollback transaction API call MF rollback to save point Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 141 7 5 2 Database info MS SQL Server WE MS SQLServer supported SEET e own authentication Pe Trusted authentication Connection OLE DB ee oe Select Method Cursor issues ee EE SEIN sa SSS A SEELEN SEET estate IDENTITV SEET SECHER SS Speer special issues when using Flat transactions supported Start flat transaction via y execution of SQL command Nested transactions supported set transaction isolation MF begin transaction BEGIN TRANSACTION MF commit transaction COMMIT TRANSACTION MF rollback transaction ROLLBACK TRANSACTION must be applied with limits DATETIME datatype not supported when using ODBC a MUST when using nested transactions Mixing API transaction handling and SQL transaction commands is not possible via SAVEPOINTS 2006 Altova GmbH Altova MapForce User Manual 142 MapForce and Databases Database feature matrix MF set save point SAVEPOINT ME used init Statements Altova MapForce User Manual 2006 Altova GmbH MapForce and Databases Database feature matrix 143 7 5 3 Database info Oracle supported Notes S DB engine as service own authentication Trusted authentication Connection not supported by M
469. trol is accessible via the General section of the Toolbox helper window in the IDE To add it you need to select the component in the Toolbox window and drag a rectangle wherever you want to have it in the destination window If you have an application which does not open a window on startup you can use a simple invisible Form with the control on it which is created manually in the code The example project adds this instance to the main MdiContainer MDIMain If you open MDIMain in the Design View from the Solution Explorer you will see a light blue rectangle at the top left side in the client area of the Frame window Selecting this rectangle will show you the properties of the MapForceControl It is important to set the IntegrationLevel property to ICActiveXIntegrationOnDocumentLevel in order to turn on the Document and Placeholder support of the MapForce library Properties of the MapForceControl component placed in the MDIFrame Window of the example application are shown below Altova MapForce User Manual 2006 Altova GmbH MapForceControl Integration at Document Level 427 DataBindings DynamicProperties Marnie 4ccessibleDescription 4AccessibleName 4ccessibleRole AllowOrop Anchor Causes alidation Dock ImeMode IntegrationLewel Location Locked Modifiers ReadOnly Size TabIndex TabStop Taq Visible axMapForceControl Default False Top Left True Mone HoContral ICActi vexIntegrationOnDocumentLevel 60 3 Fa
470. ttribute Can contain line feeds IsBuiltInT ype boolean true if the type is a built in schema type e g string unsignedint dateTime IsSimpleType boolean true if the type of this member is a simple Type Element or Attribute IsQualified boolean true if the form of the Element Attribute is set to qualified TypeObject The reason this has to be used is the following you might use a complextype and the complextype itself contains a simpletype e Get the class variable and step through its members using foreach at some point you arrive at the simpletype e You now need the simpletype properties type name or whatever e Check the HasTypeObject if its value is true the member has been filled with valid contents and can be parsed Altova MapForce User Manual 2006 Altova GmbH Code Generator The way to SPL Spy Programming Language 349 Sample e For every type declared in the schema xsd a class is generated e All elements are generated as members inside the containing class e To find out which type the generated member has which class we have to use to store the value use the TypeObject property Example lt xs complexT ype name TypeA gt lt xs sequence gt lt xs element name B type TypeB gt lt xS sequence gt lt xs complex I ype gt lt xs complexT ype name TypeB gt CodeGen would create two classes class TypeA IypeB B class TypeB Explana
471. tware included in the Suite If you have licensed SchemaAgent then the terms and conditions of this Software License Agreement apply to your use of the SchemaAgent server software SchemaA gent Server included therein as applicable and you are licensed to use SchemaA gent Server solely in connection with your use of Altova Software and solely for the purposes described in the accompanying documentation In addition if you have licensed XMLSpy Enterprise Edition or MapForce Enterprise Edition or UModel your license to install and use a copy of the Software as provided herein permits you to generate source code based on i Altova Library modules that are included in the Software such generated code hereinafter referred to as the Restricted Source Code and 11 schemas or mappings that you create or provide such code as may be generated from your schema or mapping source materials hereinafter referred to as the Unrestricted Source Code In addition to the rights granted herein Altova grants you a non exclusive non transferable limited license to compile into executable form the complete generated code comprised of the combination of the Restricted Source Code and the Unrestricted Source Code and to use copy distribute or license that executable You may not distribute or redistribute sublicense sell or transfer to a third party the Restricted Source Code unless said third party already has a license to the Restricted Source Code throug
472. tween showing e connectors that are directly connected to the currently selected component or e connectors linked to the currently selected component originating from source and terminating at the target components Connector context menu Connect Matching Children A Delete Target Driven Standard Copy all Copy child items Source Driven Mixed content Connection Settings Connect matching children Opens the Connect Matching Children dialog box allowing you to change the connection settings and connect the items when confirming with OK Delete Deletes the selected connector Target Driven Standard Changes the connector type to Standard mapping please see Source driven mixed content vs standard mapping for more information Copy all Changes the connector type to Copy all and connects all child items of the same name ina graphically optimized fashion please see Copy all connections for more information Source Driven mixed content Changes the connector type to source driven mixed content please see Source driven and 2006 Altova GmbH Altova MapForce User Manual 20 MapForce overview Mapping between components mixed content mapping for more information Connection settings Opens the Connections Settings dialog in which you can define the specific mixed content settings as well as the connector annotation settings please see the Connection section in the Referenc
473. twice to make the mapping more intuitive The Tut headerDetail xsd schema file has a hierarchical structure Order is the root element with Header as its child element and Detail being a child element of Header The first Orders csv file supplies the Header records and all mapped fields to the Header item in the schema target file The filter component is used to filter out the H records The Rows item supplies these filtered records to the Header item in the schema file The second Orders csv file supplies the Detail records and all mapped fields by filtering out the Detail records that match the OrderNo key of the Header record This is achieved by e Comparing the OrderNo field of the Header record with the same field of the Detail records using the equal function the priority context is set on the a parameter for enhanced performance e Using the Logical and function to only supply those Detail records containing the same OrderNo field as the Header record The Rows item supplies these filtered records to the Header and Detail items in the schema file through the on true parameter of the filter function Clicking the Output tab produces the XML file displayed below Each Header record contains its data and all associated Detail records that have the same Order No lt xml version 1 0 encading LITF 8 gt Order mme xsi http Shaw ss org 2001 AML Schema instance xsi schemaLocation lt Header lt Record ypesH
474. uery 1 0 Engines Documentation about implementation specific behavior for each engine is in the section Engine Information in Appendix 1 of the product documentation should that engine be used in the product These three engines are also available in the AltovaXML package which can be downloaded from the Altova website free of charge Documentation for using the engines is available with the AltovaXML package 2006 Altova GmbH Altova MapForce User Manual 490 Appendices Technical Data 25 2 4 Unicode Support Unicode is the new 16 bit character set standard defined by the Unicode Consortium that provides a unique number for every character e no matter what the platform e no matter what the program e no matter what the language Fundamentally computers just deal with numbers They store letters and other characters by assigning a number for each one Before Unicode was invented there were hundreds of different encoding systems for assigning these numbers No single encoding could contain enough characters for example the European Union alone requires several different encodings to cover all its languages Even for a single language like English no single encoding was adequate for all the letters punctuation and technical symbols in common use These encoding systems used to conflict with one another That is two encodings used the same number for two different characters or different numbers for the same charact
475. uilder project e Mono makefile Options eee xi Libraries General Generation C Settings f Microsoft Visual Studio 2005 Microsoft Visual Studio NET 2003 he Microsoft Visual C 6 0 f MGcML 4 amp ML Library C weres amp ML Library e Static Library LIB CH Settings Microsoft Visual Studio 2005 Ce Microsoft Visual Studio NET 2003 Microsoft Visual Studio NET 2002 Borland CHBuilder Project Mono Makefile Dynamic Link Library DLL Compatibility Mode kW MEC Support Enable code compatibility to 2005R 3 Cancel Compatibility Mode Schema code xsd files generated in versions after version V2005R3 is generated in a slightly different fashion to previous versions This could lead to the situation that older code from prior releases and code generated by later releases are not code compatible For this reason a compatibility mode has been introduced which generates code compatible to V2005R3 e Compatibility Mode Default is OFF e Please make it a point to use the new code generation features i e keep compatibility mode check box unchecked e The availability of the Compatibility Mode is only temporary it will be removed ma future version Code generated code for XML schemas up till V2005R3 used a static DOM document instance as parent for all nodes Altova MapForce User Manual 2006 Altova GmbH Code Generator Code generator options 3
476. ument in MapForceControl 463 MapForceControlPlaceHolder in MapForceControl 468 MapForceView 370 377 application 370 Mapping boolean values 84 child elements 19 connnector 18 creating source driven 67 CSV files 165 data to databases 106 database data Java 60 DB loading errors 95 flat file format 164 inserting XML file 371 inserting XML Schema file 371 no of connections 18 properties 19 schema items 30 source driven mixed content 64 standard mapping 73 target driven 73 text files 175 to Rows item 168 tutorial 26 type driven 76 validate result 22 validation 22 MappingApplication 310 312 MappingConsole 310 312 Memory out of exceptions 321 Memory requirements 487 Menu connection 292 edit 284 file 281 function 294 help 300 insert 285 output 297 tools 299 view 298 Method Reserve name 321 MFC support fo C 388 mff file configuring 220 Mixed content mapping 64 create mixed content 67 source driven mapping 64 standard mapping 73 text nodes 67 Mode compatible to v2005R3 332 Mono makefile 316 MS Access database info 139 support 2000 and 2003 102 MS Access 2000 support 57 MS SQL Server database info 141 support 57 MS Visual Studio NET MapForce plug in 254 MSSQL 2000 drivers 103 Multiple source schemas 288 sources and code generation 322 target schemas 43 targets and code generation 322 targets and Java 43 viewing multiple t
477. umn with the table action Insert Rest NOOO 2006 Altova GmbH Altova MapForce User Manual MapForce and Databases Mapping XML data to databases Database Table Actions Person All input data are compared to the DB table data using the operators defined here IF all comparisons are true then the specific action is executed Insert Rest A Cancel Append Action Inzert Acton Delete if K equal Acton on input data fm Primarykey fm Foreignkep E Mail m First m Last m PhoneE xt A Title H ae Delete Action Use Transactions A The source and target primary keys are compared using the equal operator If the two keys are identical then the mapped fields of the Person tables are deleted Once this has been achieved the next table action is started in this case Insert Rest Insert Rest inserts all those records from the source XML file which do not have a counterpart key field in the database Click the Output tab at the bottom of the mapping window to see the pseudo SQL code that this mapping produces Click the Run SQL Script icon in the function bar to run the script and update the database records If the script was successful a confirmation message appears Click OK to confirm 10 Open the Altova database and double click the Person table to see the effect E Person Table _ PrimaryKey ForeignKey EMail First Last_ E
478. urce data and only let the travel expense records through Generate an XSLT transformation file Transform the personal expense report to the company expense report using the generated XSLT file e Assign an StyleVision Power Stylesheet to the resulting XML file enabling you to view and edit the resulting file in the Authentic View The tutorial makes use of the following components e source and multiple target schemas e an MS Access database as the data source e several functions including concat filter equal and constants Files used in the tutorial All the files used in this tutorial are available in the MapForceExamples Tutorial folder The XSLT and transformed XML files are also supplied Tutorial files Personal expense report Tut ExpReport mfd The expense report mapping single target Tut ExpReport multi mf The multi schema target expense report mapping PersonDB mfd The employee mapping using an MS Access DB as the data source mf ExpReport xml Personal expense report XML instance document mf ExpReport xsd Associated schema file mf ExpReport sps styleVision Power Stylesheet used to view the personal expense report in Authentic View of XMLSpy or Authentic Desktop Company expense report ExpReport Target xml Company expense report XML instance document ExpReport Target xsd Associated schema file ExpReport Target sps StyleVision Power Stylesheet used to view the Company expense report in Authentic View of XMLSpy or Aut
479. user defined function XML node as output 10 4 Complex user defined function XML node as output This example is provided as the lookup udf out mfd file available in the MapForceExamples folder What this section will show is how to define an inline user defined function that allows a complex output component Note that the user defined function FindArticle consists of two halves A left half which contains the input parameter e asimple input parameter POArtNr A right half which contains e acomplex output component Article CompletePO with its XML child nodes mapped to CompletePO E ShortPo DajaQShortPO CustomerNr G P Lineltems de Lineltem 4 ArticleNr del Find Article Amount E EE a WE 4 Article Com 4 Number SinglePrice P Amount Price gt Y LastName 8 Address Lo d Street de 4 Lineltems 7 Lineltem E 7 Article Y Number E it ot ot it ot ot it ot it ot it 4 SinglePrice Amount Price ot ot T The screenshot below shows the constituent components of the user defined function the input component at left and the complex output component at right HE POA de tauk POA E Sage ih filter P resin El zuer ere onur A E Y Articles gt ebook on falze t E Article 3 Number g SR So Article e Number 7 Name SinglePrice Amount Price Altova MapForce User Manual 2006 Altova
480. ut a log file MapForce exe Filename XSLT outputdir LOG logFileName Il generate a Java application and output a log file MapForce exe Filename Java outputdir LOG logFileName Ill generate a C application and output a log file MapForce exe Filename CS outputdir LOG logFileName IV generate a C application using the configuration of the mapping settings and output a log file MapForce exe Filename CPP outputdir LOG logFileName V generate a C application using the CPP switch restricting your C compiler options MapForce exe Filename CPP MSXML XERCES LIB DLL MFC NoMFC Builtin outputdir LOG logFileName MapForce exe Filename CPP MSXML LIB MFC Generates the C application using all of the first choices in this example compile for C use MSXML4 0 generate code for static libraries have generated code support MFC MapForce exe Filename CPP XERCES DLL NoMFC outputdir LOG logFileName Generates the C application using all of the second choices in this example compile for C use XERCES generate code for dynamic libraries generated code not to support MFC create a log file in the outputdir with the name LogFileName VI generate all output files target XML document and databases using the built in transformation engine MapForce exe Filename outputdir BUILTIN Altova MapForce User Manual 2006 Altova GmbH MapForce How To Input values overrides and command line parameters 91
481. w TraceTargetConsole MappingMainl MappingMainlObject New MappingMainl MappingMainlObject registerTraceTarget ttc MappingMainlObject run C Projects Files XMLSpyExeFolder MapForceExamples ExpReport xml MarketingExpenses xml System out printin Finished catch Exception e System out print ERROR System out printin e getMessage e printStackTrace System exit 1 C MappingConsole cs public static void Main string args try Console Out WriteLine Mapping Application TraceTargetConsole ttc new TraceTargetConsole MappingMainl MappingMainlObject new MappingMainl MappingMainlObject RegisterTraceTarget ttc MappingMainlObject Run C Projects Files XMLSpyExeFolder MapForceExamples ExpReport xml MarketingExpenses xml Console Out WriteLine Finished catch Exception e Console Out Write ERROR rs Console Out WriteLine e Message Console Out WriteLine e StackTrace System Environment Exit 1 C Mapping cpp int _tmain int argc TCHAR argv TCHAR envp tecout lt lt _T Mapping Application lt lt endl try Colnitialsze NULL MappingMainl MappingMainlObject MappingMainlObject Run 2006 Altova GmbH Altova MapForce User Manual 324 Code Generator Code generation mapping example _T C Projects Files XMLSpyExeFolder MapForceExamples ExpReport xml _T MarketingExpe
482. which you can select the type of file you want to work with CSV or Fixed length files The CSV radio button is active by default bd Text import export a x Input Output File fram Files ValtovaM apForce2 005M apForceE samples T utorahAlora_ cev cew Input file Output file Cancel Input file encoding Little endian byte order fu Code UTF 8 T Se Big endian byte order CSW Settings Field delimiter Text enclosed in e coy C Tab Semicolon Ze Comma Space Custom le Hot f fe r Fixed IT First row contains field names Field3 Field4 Fields el string string string Sh Wucallabyienanonull com Office Manager Further 47 T Turtbertkorerorull com Accounts Receivabl Matize S63 Limatizeminanonullcom Accounting Manage Firsthread B21 firstbreacdinanonull com Marketing Manager E SUZ Sanna Po sannacenanonull com Art Director Cl i 4 Append Field Insert Field Remove Field S EK 2 Click the Input file button and select the CSV file e g Altova_csv csv The file contents are now visible in the Preview window Please note that the Preview window only displays the first 20 rows of the text file 3 Click into the Field1 header and change the text e g First name Do the same for all the other fields e g Last name Tel extension Email and Position Ze 2006 Altova GmbH Altova MapForce User Manual 166 MapForce CSV and Text files Mapping CSV fi
483. with the rest of the generated mapping code C compile errors If you get a compiler error at the line shown below add the path to the msado15 DLL import Home agence 0 1 vename EOF ENnNdOfFile You have to add the path where the msado15 dll is stored into the directories section of your Visual Studio environment 1 In VS select from the menu Tools Options 2 Select the Directories tab 3 Select Include files in the pull down Show directories for 4 Add anew line with the path to the file 2006 Altova GmbH Altova MapForce User Manual 228 Adding custom libraries Writing your libraries for English systems usually C Program Files Common Files System ADO 5 Rebuild then everything should be fine Altova MapForce User Manual 2006 Altova GmbH Chapter 12 Adding custom XSLT 1 0 functions 230 Adding custom XSLT 1 0 functions 12 Adding custom XSLT 1 0 functions MapForce allows you to extend the installed XSLT function libraries with your own custom functions This option is made available when you select XSLT as the output by clicking the XSLT icon or selecting Output XSLT 1 0 XSLT files appear as libraries and display all named templates as functions below the library name e Functions must be declared as Named Templates conforming to the XSLT 1 0 specification in the XSLT file e Ifthe imported XSLT file imports or includes other XSLT files then these XSLT fil
484. within the MapForceExamples ActiveX HTML folder of your MapForce installation Instantiate the MapForceControl The HTML oBJEcT tag is used to create an instance of the MapForceControl The Classid is that of MapForceControl Width and height are set to 0 since we use this control as manager control without use for its user interface The integration level is specified as a parameter within the OBJECT tag lt OBJECT id ob jMapForcexX Classid clsidtA386378H9 5759 4456 Al6 FOLI60CC22C1 width 0 height 0 VIEWASTEXT gt lt PARAM NAME IntegrationLevel VALUE 1 gt lt OBJECT gt Create Editor window The HTML OBJECT tag is used to embed a document editing window The additional custom parameter specifies that the control is to be initialized with a new empty mapping lt OBJECT id objDocl Classid clsid DFBB0871 DAFE 4502 BB66 08CEB7DF5255 width 600 height 500 VIEWASTEXT gt lt PARAM NAME NewDocument gt lt OBJECT gt Create Project Window The HTML oBJEcT tag is used to create a MapForceControlPlaceHolder window The first additional custom parameter defines the placeholder to show the MapForce project window The second parameter loads one of the example projects delivered coming with your MapForce installation lt OBJECT id objProjectWindow Classid elsid FDEC3B04 05F2 427d 988C FUSASS5SDE5S3C2 width 200 height 200 VIEWASTEXT gt Altova MapForce User Manual 2006 Altova GmbH Ma
485. word to be supplied Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Options Property Options aS Options read only Description 2006 Altova GmbH Altova MapForce User Manual 368 The MapForce API Object Reference This property gives access to options that configure the generation of code Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Parent Property Parent aS Application read only Description The parent object according to the object model Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Project Property Project aS Project read only Description Returns the MapForce project currently open If no project is open retuns null Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Quit Method Quit Description Disconnects from MapForce to allow the application to shutdown Calling this method is optional since MapForce keeps track of all external COM connections and automatically recognizes a disconnection For more information on automatic shutdown see the Visible property Errors 1000 The application object is no longer valid 1001 Invalid address for the return parameter was specified Visible Property Visible aS B
486. x Create Schema Microsoft Jet Connection Access altora Ss Ei Database Tables T able C Views O System Ge Altova Bs Department L me Uffice As Person Select All Deselect All Database Owners Select ell DeselectAll Selected T ables Owner Table Ps Person Insert Mow Cancel Click the Insert Now button to create the database component Click the expand icon to see the table contents Drag the concat function from the libraries window into the Design tab Select the menu option Insert Constant click the Number radio button and enter 100 as the new telephone extension prefix Create the mapping as shown in the graphic below oo 2006 Altova GmbH Altova MapForce User Manual 180 MapForce CSV and Text files Mapping Fixed Length Text files to a database Person 1 concat g value z result Balle Database Table Actions Person All input data are compared to the DE table data using the operators defined here IF all comparisons are true then the specitic action i executed Acton on input data Update if Append Actor fa Foreignkep E Cancel fa Primarykeyp Insert Action fa EH ail m First equal m Last m PhoneExt A Title ENEN K C EEE ei Delete Action Use Transactions 10 Click the Action on input data combo box and select the Update if entry 11 Click the combo box of the First row sele
487. xamples of integration of MapForce 426 integration of MapForce 421 422 423 424 425 Documents 366 380 retrieving 380 total number in collection 380 DOM type enumerations for C 408 for C 387 Driver JDBC 288 JDBC drivers 103 MSSQL 2000 103 Oracle 91 103 DTD source and target 99 Duplicate input item 52 E Eclipse apply MapForce nature 275 build mapping code automatically 272 build mapping code manually 271 code generation 270 create new mapping project 269 importing MapForce examples 268 install MapForce plugin 262 266 MapForce plug in 260 start MapForce plugin 264 EDI validating 22 Edit 284 Empty text file create new 182 encoding default for output files 388 file 173 182 in XQuery document 479 End User License Agreement 493 497 2006 Altova GmbH Index 511 Engine AltovaX Query command line 188 Mapforce 250 Enumerations 406 408 409 410 412 for MapForce View 413 in MapForceControl 470 Environment code generation 105 Erase delete user defined func 192 Error defining exceptions 246 validation 22 Error handling general description 361 ErrorMarkers 382 384 Evaluation period of Altova s software products 493 494 496 Events of Document 373 Events for Project 392 Exception out of memory 321 throw 246 Exists node test 98 Explicit datatype 236 Export user defined function 192 Exten
488. your license will expire unless otherwise extended Access to any files created with the Evaluation Software is entirely at your risk You acknowledge that Altova has not promised or guaranteed to you that Pre release Software will be announced or made available to anyone in the future that Altova has no express or implied obligation to you to announce or introduce the Pre release Software and that Altova may not introduce a product similar to or compatible with the Pre release Software Accordingly you acknowledge that any research or development that you perform regarding the Pre release Software or any product associated with the Pre release Software is done entirely at your own risk During the term of this Software License Agreement if requested by Altova you will provide feedback to Altova regarding testing and use of the Pre release Software including error or bug reports If you have been provided the Pre release Software pursuant to a separate written agreement your use of the Software is governed by such agreement You may not sublicense lease loan rent distribute or otherwise transfer the Pre release Software Upon receipt of a later unreleased version of the Pre release Software or release by Altova of a publicly released commercial version of the Software whether as a stand alone product or as part of a larger product you agree to return or destroy all earlier Pre release Software received from Altova and to abide by the terms of the l
489. ype is arbitrary precision i e it can represent any number of digits e The xs decimal datatype has a limit of 20 digits after the decimal point e The xs float and xs double datatypes have limited precision of 15 digits XQuery Instructions Support The Pragma instruction is not supported If encountered it is ignored and the fallback expression is evaluated XQuery Functions Support For information about implementation specific behavior of XQuery 1 0 functions see the section XPath 2 0 and XQuery 1 0 Functions 2006 Altova GmbH Altova MapForce User Manual 482 Appendices Engine information 25 1 4 XPath 2 0 and XQuery 1 0 Functions XPath 2 0 and XQuery 1 0 functions are evaluated by e the Altova XPath 2 0 Engine which i is a component of the Altova XSLT 2 0 Engine and il is used in the XPath Evaluator of Altova s XMLSpy product to evaluate XPath expressions with respect to the XML document that is active in the XMLSpy interface e the Altova XQuery 1 0 Engine This section describes how XPath 2 0 and XQuery 1 0 functions are handled by the Altova XPath 2 0 Engine and Altova XQuery 1 0 Engine Only those functions are listed for which the behavior is implementation specific or where the behavior of an individual function is different in any of the three environments in which these functions are used that is in XSLT 2 0 in XQuery 1 0 and in the XPath Evaluator of XMLSpy Note that this section does not descr
Download Pdf Manuals
Related Search
Related Contents
StarTech.com CR2032 Lithium Thick Coin Cell Battery 5 Pack Moduli di sicurezza CompactBlock Guard I/O DeviceNet Freecom DataBar USB 2.0 256 MB BGD 502 划格器使用说明书 STONE SHIELD User`s manual - VTech Communications T3D User`s Manual - Electronic Devices, Inc. Guía del usuario Stazione Meteorologica PCE Philex rc027 User's Manual Copyright © All rights reserved.
Failed to retrieve file