Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata...

135
1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct. 21-24, 2002 San Francisco, CA

Transcript of Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata...

Page 1: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

1

Metadata Alchemy withMDA

Turning Metadata intoIntegration Gold using MDA

Ken Sayers - Chubb and Son, Inc.OMG UML WorkshopOct. 21-24, 2002 San Francisco, CA

Page 2: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

2© Copyright 2002 Chubb and Son, Inc.

Introduction

❚ We are doing a lot of system integration❚ We want to make integration easier❚ We want to use standard technologies❚ We want to generate code where it makes

sense❚ We want to have UML for our information

models❚ We want to be ready for the Future

Page 3: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

3© Copyright 2002 Chubb and Son, Inc.

Introduction

❚ MDA is something we’ve been using for awhile in our application development

❚ How can we apply MDA to Integration?

Page 4: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

4© Copyright 2002 Chubb and Son, Inc.

Integration

❚ Integration projects do a lot of Adapting❙ Adapt Technology A to Technology B❙ Adapt Information Model A to Model B❙ In order to adapt Model A to Model B we first

adapt Technology A and Technology B toTechnology X

❙ Then we map Model A and Model B to ModelX and Back

Page 5: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

5© Copyright 2002 Chubb and Son, Inc.

System ASystem A

Integration Architecture

TechnologyA

TechnologyA

InformationModel

A

InformationModel

A

System BSystem B

TechnologyB

TechnologyB

InformationModel

B

InformationModel

B

AdaptA

to/fromX

AdaptA

to/fromX

AdaptB

to/fromX

AdaptB

to/fromX

TechnologyX

TechnologyX

InformationModel

X

InformationModel

X

Page 6: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

6© Copyright 2002 Chubb and Son, Inc.

The Problem

❚ Information Models are often in LegacyTechnologies❙ Data Models❙ COBOL Copybooks

❚ Sometimes they are in new technologies❙ XML Schema

❚ We want to use MDA and still leveragethese Information Models

Page 7: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

7© Copyright 2002 Chubb and Son, Inc.

The Idea

❚ Create food for MDA then let the feastbegin❙ Convert Metadata into Platform Independent

Model (PIM) a.k.a. UML❙ Utilize standard technologies such as XML

XSLT and XMI where possible❙ Write Java where standards are not useful❙ Use MDA to convert UML into a Platform

Specific Model (PSM) a.k.a. Adapter Javacode

Page 8: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

8© Copyright 2002 Chubb and Son, Inc.

The Flow

Metadata PSMs

DataRepository

DataRepository

COBOLCopybooksCOBOL

Copybooks

XMLSchemaXML

Schema

Data ModelData Model

PIM(UML)PIM

(UML)

PSM (Java)PSM (Java)

DomainModel

DomainModel

XMLConduits

XMLConduits

RecordConduitsRecord

ConduitsValidationServices

ValidationServices

Page 9: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

9© Copyright 2002 Chubb and Son, Inc.

Metadata to UML to Java

❚ Turn metadata into UML❙ Data Models, COBOL Copybooks and XML

Schema

❚ Turn UML into Java❙ Define Architecture❙ Generate Code to Architecture

Page 10: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

10© Copyright 2002 Chubb and Son, Inc.

Metadata to UML to Java

DataRepository

DataRepository

COBOLCopybooksCOBOL

Copybooks

XMLSchemaXML

Schema

Data ModelData Model

XMIXMI UMLUML JavaJava

ArchitectureArchitecture

Page 11: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

11© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to XMI

❚ Turn Data Models and Copybooks into“RecordSet” XML

❚ Turn RecordSet XML into ChubbML XML, asimple intermediate format

❚ Turn XML Schema directly into ChubbMLXML

❚ Turn ChubbML XML into XMI

Page 12: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

12© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to XMI

DataRepository

DataRepository

COBOLCopybooksCOBOL

Copybooks

XMLSchemaXML

Schema

Data ModelData Model

RecordSet

RecordSet

ChubbML

ChubbML

XMIXMI

Page 13: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

13© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to ChubbML

❚ Java Parser reads report from datamodeling tool or COBOL Copybooks

❚ Java Parser reads data repository to getBusiness Names

❚ Java Parser creates RecordSet XML file❚ RecordSet XML converted to ChubbML

XML using XSLT

Page 14: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

14© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to ChubbML

DataRepository

DataRepository

COBOLCopybooksCOBOL

Copybooks

Data ModelData Model

ParserJava

ParserJava

RecordSet

RecordSet

ChubbML

ChubbML

TransformXSLT

TransformXSLT

Page 15: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

15© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to ChubbML

❚ XML Schema is generated from XML withTool

❚ Tool XML Schema is normalized to Chubbconventions using XSLT

❚ XML Schema is converted to ChubbMLXML using XSLT

Page 16: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

16© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerXML to Chubb XSD

ChubbSchema (4)

ChubbSchema (4)

ToolSchema (2)

ToolSchema (2) Transform

XSLT (3)TransformXSLT (3)

XML (1)XML (1) VendorTool

VendorTool

Page 17: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

17© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerMetadata to ChubbML

DataRepository

DataRepository

COBOLCopybooksCOBOL

Copybooks

XMLSchema (4)

XMLSchema (4)

Data ModelData Model

ParserJava

ParserJava

RecordSet

RecordSet

ChubbML (6)ChubbML (6)

TransformXSLT (5)

TransformXSLT (5)

TransformXSLT

TransformXSLT

Page 18: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

18© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerChubbML to XMI

❚ An architecture specification definesissues that need values in the model toguide the generation

❚ The specification is combined with theChubbML

❚ The resulting ChubbML XML file isconverted to XMI using XSLT

❚ Any valid ChubbML can be converted

Page 19: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

19© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerChubbML to XMI

TransformXSLT (7)

TransformXSLT (7)

ArchitectureSpecificationArchitectureSpecification

ChubbMLcombinedwith ArchSpec (8)

ChubbMLcombinedwith ArchSpec (8)

ChubbML (6)ChubbML (6)

TransformXSLT (9)

TransformXSLT (9)

XMI(10)

XMI(10)

Page 20: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

20© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerXMI to UML

❚ XMI is imported into a UML tool❚ The UML is updated with a Modeling Tool❚ XMI can be exported from the UML tool❚ The exported XMI can be combined with

the generated XMI to preserve diagramsand other non-generated UML objects

❚ The combined XMI can then be importedinto the UML tool

Page 21: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

21© Copyright 2002 Chubb and Son, Inc.

Reverse EngineerXMI to UML

TransformXSLT (12)

TransformXSLT (12)

ExportedXMI (11)

ExportedXMI (11)

XMICombined

WithExported

XMICombined

WithExported

XMI(10)

XMI(10)

ImportTool

ImportTool UMLUML

ExportTool

ExportTool

ModelingTool

ModelingTool

Page 22: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

22© Copyright 2002 Chubb and Son, Inc.

Forward EngineerUML to Java

❚ The UML is read by the generation tooland combined with architecture templatesto produce Architected Java

❚ The Java development tool is used toupdate the Java

❚ The Java can be used as input into futuregenerations to preserve value added code

Page 23: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

23© Copyright 2002 Chubb and Son, Inc.

Forward EngineerUML to Java

GenerationTool

GenerationTool

ArchitectureTemplates

ArchitectureTemplates

UMLUML

DevoTool

DevoTool

JavaJava

Page 24: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

24© Copyright 2002 Chubb and Son, Inc.

Conclusion

❚ Integration is difficult, we can use all thehelp we can get

❚ Generating repetetive/detailed aspects isgreat

❚ MDA is a good way to generate code, butit wants UML as input

❚ We use standard technologies to keep theInformation Models in sync with the UML

Page 25: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

25© Copyright 2002 Chubb and Son, Inc.

Appendices

1. Sample XML (sample.xml)2. Sample XML Schema from Tool (sample tool.xsd)3. XSLT to Convert Schema from Tool to Chubb Format

(tool xsd to chubb xsd.xsl)4. Sample XML Schema in Chubb Format

(sample chubb.xsd)5. XSLT to Convert XML Schema to Chubb ML

(chubb xsd to cml.xsl)6. Sample ChubbML (sample cml.xml)

Page 26: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

26© Copyright 2002 Chubb and Son, Inc.

Appendices

7. XSLT to Combine ChubbML with Architecture Spec(combine cml with arch.xsl)

8. Sample ChubbML combined with Architecture Spec (sample cml plus arch.xml)

9. XSLT to Transform ChubbML into XMI (cml to xmi.xsl)10. Sample XMI (sample xmi.xml)11. Sample Exported XMI (sample exported xmi.xml)12. XSLT to Combine Exported with Generated XMI

(combine exported xmi with generated xmi.xsl)13. Model Configuration used by some xslt

(sample model configuration.xml)

Page 27: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample.xml

<?xml version="1.0"?><!--

sample.xml(c) Copyright 2002 Chubb and Son, Inc.

--><Policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file://f:\mda\demo\policy.xsd">

<Number>12345678</Number><Transactions>

<Transaction><IssueDate>2002-01-01</IssueDate><Locations>

<Location><Buildings>

<Building><Address>

<Street>1 Main St</Street><City>Warren</City><State>NJ</State>

</Address><Coverages>

<Coverage><Name>Property</Name><Limit>1000000</Limit><Deductible>10000</Deductible>

</Coverage><Coverage>

<Name>Fire</Name><Limit>10000000</Limit><Deductible>10000</Deductible>

</Coverage></Coverages>

</Building><Building/>

</Buildings></Location><Location>

<Buildings><Building>

<Address><Street>2 Main St</Street>

Page: 1

Page 28: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample.xml

<City>Warren</City><State>NJ</State>

</Address><Coverages/>

</Building></Buildings>

</Location></Locations>

</Transaction><Transaction/>

</Transactions></Policy>

Page: 2

Page 29: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample tool.xsd

<!--sample tool.xsd(c) Copyright 2002 Chubb and Son, Inc.

--><xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

<xsd:element name='Number' type='xsd:string'></xsd:element>

<xsd:element name='IssueDate' type='xsd:string'></xsd:element>

<xsd:element name='Name' type='xsd:string'></xsd:element>

<xsd:element name='Limit' type='xsd:string'></xsd:element>

<xsd:element name='Deductible' type='xsd:string'></xsd:element>

<xsd:element name='Coverage'><xsd:complexType><xsd:sequence><xsd:element ref='Name'/><xsd:element ref='Limit'/><xsd:element ref='Deductible'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Street' type='xsd:string'></xsd:element>

<xsd:element name='City' type='xsd:string'></xsd:element>

<xsd:element name='State' type='xsd:string'></xsd:element>

<xsd:element name='Address'>

Page: 1

Page 30: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample tool.xsd

<xsd:complexType><xsd:sequence><xsd:element ref='Street'/><xsd:element ref='City'/><xsd:element ref='State'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Coverages'><xsd:complexType><xsd:sequence minOccurs='0' maxOccurs='unbounded'><xsd:element ref='Coverage'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Building'><xsd:complexType><xsd:sequence><xsd:sequence minOccurs='0' maxOccurs='1'><xsd:element ref='Address'/>

</xsd:sequence><xsd:sequence minOccurs='0' maxOccurs='1'><xsd:element ref='Coverages'/>

</xsd:sequence></xsd:sequence>

</xsd:complexType></xsd:element>

<xsd:element name='Buildings'><xsd:complexType><xsd:sequence maxOccurs='unbounded'><xsd:element ref='Building'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Location'><xsd:complexType><xsd:sequence>

Page: 2

Page 31: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample tool.xsd

<xsd:element ref='Buildings'/></xsd:sequence>

</xsd:complexType></xsd:element>

<xsd:element name='Locations'><xsd:complexType><xsd:sequence maxOccurs='unbounded'><xsd:element ref='Location'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Transaction'><xsd:complexType><xsd:sequence><xsd:sequence minOccurs='0' maxOccurs='1'><xsd:element ref='IssueDate'/>

</xsd:sequence><xsd:sequence minOccurs='0' maxOccurs='1'><xsd:element ref='Locations'/>

</xsd:sequence></xsd:sequence>

</xsd:complexType></xsd:element>

<xsd:element name='Transactions'><xsd:complexType><xsd:sequence maxOccurs='unbounded'><xsd:element ref='Transaction'/>

</xsd:sequence></xsd:complexType>

</xsd:element>

<xsd:element name='Policy'><xsd:complexType><xsd:sequence><xsd:element ref='Number'/><xsd:element ref='Transactions'/>

</xsd:sequence></xsd:complexType>

Page: 3

Page 32: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample tool.xsd

</xsd:element></xsd:schema>

Page: 4

Page 33: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\tool xsd to chubb xsd.xsl

<?xml version='1.0'?><!--

tool xsd to chubb xsd.xsl(c) Copyright 2002 Chubb and Son, Inc.

--><xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsl:output encoding="UTF-8" indent="yes" method="xml"/>

<xsl:template match="/"><xsd:schema>

<xsl:attribute name="xmlns:xsd">http://www.w3.org/2001/XMLSchema</xsl:attribute><xsl:comment>=====================================Root Element=====================================</xsl:comment><xsl:for-each select="xsd:schema/xsd:element[xsd:complexType]">

<xsl:sort select="@name"/><xsl:variable name="elementName" select="@name"/><!-- create root element - complex type element that is not pointed to by any other elements --><xsl:if test="not(/xsd:schema/xsd:element/xsd:complexType//xsd:element[@ref = $elementName])">

<xsd:element><xsl:attribute name="name"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name

" select="@name"/></xsl:call-template></xsl:attribute><xsl:attribute name="type"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name

" select="@name"/></xsl:call-template></xsl:attribute></xsd:element>

</xsl:if></xsl:for-each><xsl:comment>=====================================Reusable simple elements=====================================</xsl:comment><xsl:for-each select="xsd:schema/xsd:element">

<xsl:sort select="@name"/><xsl:if test="not(xsd:complexType//xsd:element)">

<xsd:element><xsl:attribute name="name"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="

name" select="@name"/></xsl:call-template></xsl:attribute><xsd:simpleType>

<xsd:restriction><xsl:choose>

<xsl:when test="@base">

Page: 1

Page 34: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\tool xsd to chubb xsd.xsl

<xsl:attribute name="base"><xsl:value-of select="xsd:simpleType/@base"/></xsl:attribute>

</xsl:when><xsl:otherwise>

<xsl:attribute name="base">xsd:string</xsl:attribute></xsl:otherwise>

</xsl:choose></xsd:restriction>

</xsd:simpleType></xsd:element>

</xsl:if></xsl:for-each><xsl:comment>=====================================Classes, Inheritance and Associations=====================================</xsl:comment><xsl:for-each select="xsd:schema/xsd:element">

<xsl:sort select="@name"/><!-- for each complexType that has elements, but not those that represent a many to one relationships --><xsl:if test="xsd:complexType//xsd:element and not(xsd:complexType/xsd:sequence[@maxOccurs = 'unbounded'])">

<xsd:complexType><xsl:attribute name="name"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name

" select="@name"/></xsl:call-template></xsl:attribute><xsd:sequence>

<xsl:for-each select="xsd:complexType//xsd:element"><xsl:variable name="elementName" select="@ref"/><xsd:element>

<xsl:choose><!-- when it is collection --><xsl:when test="/xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:se

quence/xsd:element and /xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:sequence[@maxOccurs = 'unbounded'] or /xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:sequence/xsd:element and /xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:choice[@maxOccurs = 'unbounded']">

<xsl:attribute name="name"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name" select="@ref"/></xsl:call-template></xsl:attribute>

<xsd:complexType><xsd:sequence>

<xsd:element><xsl:attribute name="name"><xsl:call-template name="stripNamespacePr

efix"><xsl:with-param name="name" select="/xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:sequence/xsd:element/@ref"/></xsl:call-template></xsl:attribute>

<xsl:attribute name="type"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name" select="/xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:sequence/xsd:element/@ref"/></xsl:call-template></xsl:attribute>

<xsl:attribute name="minOccurs">0</xsl:attribute><xsl:attribute name="maxOccurs">unbounded</xsl:attribute>

Page: 2

Page 35: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\tool xsd to chubb xsd.xsl

</xsd:element></xsd:sequence>

</xsd:complexType></xsl:when><!-- when it is a class, not a collection --><xsl:when test="/xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:se

quence/xsd:element and not(/xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:sequence[@maxOccurs = 'unbounded'] or /xsd:schema/xsd:element[@name = $elementName]/xsd:complexType/xsd:choice[@maxOccurs = 'unbounded'])">

<xsl:attribute name="name"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name" select="@ref"/></xsl:call-template></xsl:attribute>

<xsl:attribute name="type"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name" select="@ref"/></xsl:call-template></xsl:attribute>

<xsl:attribute name="minOccurs">0</xsl:attribute><xsl:attribute name="maxOccurs">1</xsl:attribute>

</xsl:when><xsl:otherwise>

<xsl:attribute name="ref"><xsl:call-template name="stripNamespacePrefix"><xsl:with-param name="name" select="@ref"/></xsl:call-template></xsl:attribute>

<xsl:attribute name="minOccurs">0</xsl:attribute><xsl:attribute name="maxOccurs">1</xsl:attribute>

</xsl:otherwise></xsl:choose>

</xsd:element></xsl:for-each>

</xsd:sequence></xsd:complexType>

</xsl:if></xsl:for-each>

</xsd:schema>

</xsl:template>

<xsl:template name="stripNamespacePrefix"><xsl:param name="name"/><xsl:variable name="prefix" select="substring-before($name, ':')"/><xsl:choose>

<xsl:when test="not(substring-before($name, ':') = '')"><xsl:value-of select="substring-after($name, ':')"/></xsl:when>

<xsl:otherwise><xsl:value-of select="$name"/></xsl:otherwise></xsl:choose>

</xsl:template>

</xsl:stylesheet>

Page: 3

Page 36: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample chubb.xsd

<?xml version='1.0' encoding='UTF-8' ?><!--

sample chubb.xsd(c) Copyright 2002 Chubb and Son, Inc.

--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!--=====================================Root Element=====================================-->

<xsd:element name="Policy" type="Policy"/><!--

=====================================Reusable simple elements=====================================-->

<xsd:element name="City"><xsd:simpleType>

<xsd:restriction base="xsd:string"/></xsd:simpleType>

</xsd:element><xsd:element name="Deductible">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><xsd:element name="IssueDate">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><xsd:element name="Limit">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><xsd:element name="Name">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType>

Page: 1

Page 37: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample chubb.xsd

</xsd:element><xsd:element name="Number">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><xsd:element name="State">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><xsd:element name="Street">

<xsd:simpleType><xsd:restriction base="xsd:string"/>

</xsd:simpleType></xsd:element><!--

=====================================Classes, Inheritance and Associations=====================================-->

<xsd:complexType name="Address"><xsd:sequence>

<xsd:element maxOccurs="1" minOccurs="0" ref="Street"/><xsd:element maxOccurs="1" minOccurs="0" ref="City"/><xsd:element maxOccurs="1" minOccurs="0" ref="State"/>

</xsd:sequence></xsd:complexType><xsd:complexType name="Building">

<xsd:sequence><xsd:element name="Address" maxOccurs="1" minOccurs="0" type="Address"/><xsd:element name="Coverages">

<xsd:complexType><xsd:sequence>

<xsd:element name="Coverage" maxOccurs="unbounded" minOccurs="0" type="Coverage"/></xsd:sequence>

</xsd:complexType></xsd:element>

</xsd:sequence></xsd:complexType><xsd:complexType name="Coverage">

Page: 2

Page 38: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample chubb.xsd

<xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" ref="Name"/><xsd:element maxOccurs="1" minOccurs="0" ref="Limit"/><xsd:element maxOccurs="1" minOccurs="0" ref="Deductible"/>

</xsd:sequence></xsd:complexType><xsd:complexType name="Location">

<xsd:sequence><xsd:element name="Buildings">

<xsd:complexType><xsd:sequence>

<xsd:element name="Building" maxOccurs="unbounded" minOccurs="0" type="Building"/></xsd:sequence>

</xsd:complexType></xsd:element>

</xsd:sequence></xsd:complexType><xsd:complexType name="Policy">

<xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" ref="Number"/><xsd:element name="Transactions">

<xsd:complexType><xsd:sequence>

<xsd:element name="Transaction" maxOccurs="unbounded" minOccurs="0" type="Transaction"/></xsd:sequence>

</xsd:complexType></xsd:element>

</xsd:sequence></xsd:complexType><xsd:complexType name="Transaction">

<xsd:sequence><xsd:element maxOccurs="1" minOccurs="0" ref="IssueDate"/><xsd:element name="Locations">

<xsd:complexType><xsd:sequence>

<xsd:element name="Location" maxOccurs="unbounded" minOccurs="0" type="Location"/></xsd:sequence>

</xsd:complexType></xsd:element>

</xsd:sequence></xsd:complexType>

Page: 3

Page 39: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample chubb.xsd

</xsd:schema>

Page: 4

Page 40: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<?xml version="1.0" encoding="UTF-8"?><!--

chubb xsd to cml.xsl(c) Copyright 2002 Chubb and Son, Inc.

--><xsl:stylesheet version="1.0"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:tt="http://typeTable.data">

<xsl:output encoding="UTF-8" method="xml" indent="yes"/>

<xsl:param name="modelConfigurationName"/><xsl:variable name="homePrefix"><xsl:value-of select="document($modelConfigurationName)/recordSet/homePrefix"/></xsl

:variable>

<xsl:variable name="types" select="document('')/*/tt:types"/>

<xsl:template name="getCmlTypeForXsdType"><xsl:param name="xsdType"/><xsl:choose>

<xsl:when test="$xsdType = 'xsd:string'">java.lang.String</xsl:when><xsl:when test="$xsdType = 'xsd:date'">java.util.Date</xsl:when><xsl:when test="$xsdType = 'xsd:dateTime'">java.util.Date</xsl:when><xsl:when test="$xsdType = 'xsd:decimal'">double</xsl:when><xsl:when test="$xsdType = 'xsd:integer'">int</xsl:when><xsl:when test="$xsdType = 'xsd:boolean'">boolean</xsl:when><xsl:otherwise>

<xsl:message>No type found for <xsl:value-of select="$xsdType"/></xsl:message></xsl:otherwise>

</xsl:choose></xsl:template>

<xsl:template match="/xsd:schema"><model>

<xsl:call-template name="createPackageHierarchy"/></model>

</xsl:template>

<xsl:template name="createPackageHierarchy"><packages>

<package><name>com</name><packages>

<package><name>chubb</name><packages>

Page: 1

Page 41: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<package><name>

<xsl:value-of select="document($modelConfigurationName)/recordSet/javaPackageName"/></name><packages>

<package><name>domain</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithXMLSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.TagNameSpecifiesType</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value><xsl:value-of select="$homePrefix"/></value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.MaxSampleHierarchyDepth</name><value>2</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.SampleCollectionCount</name><value>1</value>

</architectureIssue><xsl:if test="xsd:annotation/xsd:appinfo/generateIndexes">

<architectureIssue><name>Domain.RoseBudHome.GenerateIdentifiers</name><value><xsl:value-of select="xsd:annotation/xsd:appinfo/generateInde

xes"/></value></architectureIssue><architectureIssue>

Page: 2

Page 42: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<name>Domain.RoseBudHome.IdentifierAttributeName</name><value><xsl:value-of select="xsd:annotation/xsd:appinfo/indexElement

"/></value></architectureIssue>

</xsl:if></architectureIssues><xsl:call-template name="createInheritanceRelationships"/><xsl:call-template name="createClasses"/><xsl:call-template name="createAssociations"/>

</package></packages>

</package></packages>

</package></packages>

</package></packages>

</xsl:template>

<xsl:template name="createInheritanceRelationships"><!-- for each extension in the schema, create an inheritance relationship --><inheritanceRelationships>

<xsl:for-each select="/xsd:schema/xsd:complexType/xsd:complexContent/xsd:extension"><inheritanceRelationship>

<superclass><xsl:value-of select="@base"/>

</superclass><subclass>

<xsl:value-of select="../../@name"/></subclass>

</inheritanceRelationship></xsl:for-each>

</inheritanceRelationships></xsl:template>

<xsl:template name="createClasses"><!-- for each complex type one level down from from schema, create a class --><classes>

<xsl:for-each select="xsd:complexType"><xsl:sort select="@name"/>

<class><name>

<xsl:value-of select="@name"/></name><xsl:call-template name="createClassArchitectureIssues"/><xsl:call-template name="createAttributes"/>

</class>

Page: 3

Page 43: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

</xsl:for-each></classes>

</xsl:template>

<xsl:template name="createClassArchitectureIssues"><!-- set up architecture issues for class --><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><xsl:variable name="className" select="@name"/><xsl:if test="/xsd:schema/xsd:element[@type = $className]">

<architectureIssue><name>XMLMapping.XMLConduit.IsRoot</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.UseXMLName</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.XMLName</name><value><xsl:value-of select="$className"/></value>

</architectureIssue></xsl:if><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value><xsl:value-of select="$homePrefix"/></value>

</architectureIssue><xsl:if test="xsd:annotation/xsd:appinfo/indexPrefix">

<architectureIssue><name>Domain.RoseBudHome.GenerateIdentifiers</name><value><xsl:value-of select="/xsd:schema/xsd:annotation/xsd:appinfo/generateIndexes"/></value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.IdentifierPrefix</name><value><xsl:value-of select="xsd:annotation/xsd:appinfo/indexPrefix"/></value>

</architectureIssue></xsl:if>

</architectureIssues></xsl:template>

Page: 4

Page 44: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<xsl:template name="createAttributes"><!-- for each element in the sequence that is a reference, create an attribute --><attributes>

<!-- for complex types with extension --><xsl:for-each select="xsd:complexContent/xsd:extension/xsd:sequence/xsd:element">

<xsl:call-template name="createAttribute"/></xsl:for-each><!-- for complex types without extension --><xsl:for-each select="xsd:sequence/xsd:element">

<xsl:call-template name="createAttribute"/></xsl:for-each>

</attributes></xsl:template>

<xsl:template name="createAttribute"><xsl:if test="normalize-space(@ref)">

<xsl:variable name="refString" select="@ref"/><xsl:variable name="schemaType" select="/xsd:schema/xsd:element[@name = $refString]/xsd:simpleType/xsd:restr

iction/@base"/><xsl:if test="not(normalize-space($schemaType))">

<xsl:message>Invalid attribute <xsl:value-of select="$refString"/></xsl:message></xsl:if><attribute>

<name><xsl:value-of select="@ref"/>

</name><type>

<xsl:call-template name="getCmlTypeForXsdType"><xsl:with-param name="xsdType" select="$schemaType"/></xsl:call-template>

</type><xsl:call-template name="createAttributeArchitecureIssues">

<xsl:with-param name="attributeName" select="$refString"/></xsl:call-template>

</attribute></xsl:if>

</xsl:template>

<xsl:template name="createAttributeArchitecureIssues"><!-- create architeture issues for an attribute --><xsl:param name="attributeName"/><xsl:for-each select="/xsd:schema/xsd:element[@name = $attributeName]">

<architectureIssues><architectureIssue>

<name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><xsl:choose>

Page: 5

Page 45: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<xsl:when test="normalize-space(xsd:simpleType/xsd:restriction/xsd:length/@value)"><architectureIssue>

<name>Domain.WholeValueAttribute.checkMinimumLength</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.WholeValueAttribute.minimumLength</name><value><xsl:value-of select="xsd:simpleType/xsd:restriction/xsd:length/@value"/></value>

</architectureIssue><architectureIssue>

<name>Domain.WholeValueAttribute.checkMaximumLength</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.WholeValueAttribute.maximumLength</name><value><xsl:value-of select="xsd:simpleType/xsd:restriction/xsd:length/@value"/></value>

</architectureIssue></xsl:when><xsl:when test="normalize-space(xsd:simpleType/xsd:restriction/xsd:minLength/@value)">

<architectureIssue><name>Domain.WholeValueAttribute.checkMinimumLength</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.WholeValueAttribute.minimumLength</name><value><xsl:value-of select="xsd:simpleType/xsd:restriction/xsd:minLength/@value"/></value>

</architectureIssue></xsl:when><xsl:when test="normalize-space(xsd:simpleType/xsd:restriction/xsd:maxLength/@value)">

<architectureIssue><name>Domain.WholeValueAttribute.checkMaximumLength</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.WholeValueAttribute.maximumLength</name><value><xsl:value-of select="xsd:simpleType/xsd:restriction/xsd:maxLength/@value"/></value>

</architectureIssue></xsl:when>

</xsl:choose></architectureIssues>

</xsl:for-each></xsl:template>

<xsl:template name="createAssociations"><!-- for each complexType that has elements with name, create an association --><associations>

<!-- for complexType with extension -->

Page: 6

Page 46: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<xsl:for-each select="/xsd:schema/xsd:complexType/xsd:complexContent/xsd:extension/xsd:sequence/xsd:element[normalize-space(@name)]">

<xsl:call-template name="createAssociation"/></xsl:for-each><!-- for complexType without extension --><xsl:for-each select="/xsd:schema/xsd:complexType/xsd:sequence/xsd:element[normalize-space(@name)]">

<xsl:call-template name="createAssociation"/></xsl:for-each>

</associations></xsl:template>

<xsl:template name="createAssociation"><association>

<name><xsl:value-of select="@name"/>

</name><xsl:choose>

<!-- if element is complexType, then relationship is one to many --><xsl:when test="child::xsd:complexType">

<targetRole><xsl:for-each select="xsd:complexType/xsd:sequence/xsd:element">

<name><xsl:value-of select="@name"/>

</name><className>

<xsl:value-of select="@type"/></className><minimumCardinality>

<xsl:call-template name="convertOccurs"><xsl:with-param name="inputOccurs" select="@minOccurs"/>

</xsl:call-template></minimumCardinality><maximumCardinality>

<xsl:call-template name="convertOccurs"><xsl:with-param name="inputOccurs" select="@maxOccurs"/>

</xsl:call-template></maximumCardinality>

</xsl:for-each><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/>

Page: 7

Page 47: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

<!-- get source complex type name --><!-- if this is a class with extension --><xsl:if test="../../@base">

<className><xsl:value-of select="../../../../@name"/></className></xsl:if><!-- if this is a class without extension --><xsl:if test="not(../../@base)">

<className><xsl:value-of select="../../@name"/></className></xsl:if><architectureIssues/>

</sourceRole></xsl:when><xsl:otherwise>

<!-- if element is not complexType, then relationship is one to one --><targetRole>

<name><xsl:value-of select="@name"/></name><className><xsl:value-of select="@type"/></className><minimumCardinality>

<xsl:call-template name="convertOccurs"><xsl:with-param name="inputOccurs" select="@minOccurs"/>

</xsl:call-template></minimumCardinality><maximumCardinality>

<xsl:call-template name="convertOccurs"><xsl:with-param name="inputOccurs" select="@maxOccurs"/>

</xsl:call-template></maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><!-- get source complex type name --><!-- if this is a class with extension --><xsl:if test="../../@base">

<className><xsl:value-of select="../../../../@name"/></className></xsl:if><!-- if this is a class without extension --><xsl:if test="not(../../@base)">

<className><xsl:value-of select="../../@name"/></className></xsl:if><architectureIssues/>

</sourceRole>

Page: 8

Page 48: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\chubb xsd to cml.xsl

</xsl:otherwise></xsl:choose>

</association></xsl:template>

<xsl:template name="convertOccurs"><!-- convert occurs from schema to cardinality for cml" --><xsl:param name="inputOccurs"/><xsl:choose>

<xsl:when test="$inputOccurs = 'unbounded'">-1</xsl:when><xsl:otherwise><xsl:value-of select="$inputOccurs"/></xsl:otherwise>

</xsl:choose></xsl:template>

</xsl:stylesheet>

Page: 9

Page 49: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<?xml version="1.0" encoding="UTF-8"?><!--

sample cml.xml(c) Copyright 2002 Chubb and Son, Inc.

--><model xmlns:tt="http://typeTable.data" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<packages><package>

<name>com</name><packages>

<package><name>chubb</name><packages>

<package><name>demoPolicy</name><packages>

<package><name>domain</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithXMLSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.TagNameSpecifiesType</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name>

Page: 1

Page 50: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<value>DemoPolicy</value></architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.MaxSampleHierarchyDepth</name><value>2</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.SampleCollectionCount</name><value>1</value>

</architectureIssue></architectureIssues><inheritanceRelationships/><classes>

<class><name>Address</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Street</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

Page: 2

Page 51: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<name>City</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>State</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class><class>

<name>Building</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes/>

</class><class>

<name>Coverage</name>

Page: 3

Page 52: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<architectureIssues><architectureIssue>

<name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Name</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>Limit</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>Deductible</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name>

Page: 4

Page 53: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<value>True</value></architectureIssue>

</architectureIssues></attribute>

</attributes></class><class>

<name>Location</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes/>

</class><class>

<name>Policy</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.IsRoot</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.UseXMLName</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.XMLName</name>

Page: 5

Page 54: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<value>Policy</value></architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Number</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class><class>

<name>Transaction</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

Page: 6

Page 55: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<attribute><name>IssueDate</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class></classes><associations>

<association><name>Address</name><targetRole>

<name>Address</name><className>Address</className><minimumCardinality>0</minimumCardinality><maximumCardinality>1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Building</className><architectureIssues/>

</sourceRole></association><association>

<name>Coverages</name><targetRole>

<name>Coverage</name><className>Coverage</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality>

Page: 7

Page 56: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<architectureIssues><architectureIssue>

<name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Building</className><architectureIssues/>

</sourceRole></association><association>

<name>Buildings</name><targetRole>

<name>Building</name><className>Building</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Location</className><architectureIssues/>

</sourceRole></association><association>

<name>Transactions</name><targetRole>

<name>Transaction</name><className>Transaction</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

Page: 8

Page 57: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Policy</className><architectureIssues/>

</sourceRole></association><association>

<name>Locations</name><targetRole>

<name>Location</name><className>Location</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Transaction</className><architectureIssues/>

</sourceRole></association>

</associations></package>

</packages></package>

</packages></package>

</packages></package>

</packages>

Page: 9

Page 58: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml.xml

</model>

Page: 10

Page 59: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\combine cml with arch.xsl

<?xml version="1.0" encoding="utf-8"?><!--

combine cml with arch.xsl(c) Copyright 2002 Chubb and Son, Inc.

--><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output encoding="UTF-8" method="xml" indent="yes"/>

<xsl:variable name="ArchitectureSpecificationFileName">some architecture spec file name</xsl:variable>

<xsl:template match="/model"><xsl:copy>

<xsl:copy-of select="*"/><xsl:copy-of select="document($ArchitectureSpecificationFileName)/ArchitecturalDefinition"/>

</xsl:copy></xsl:template>

</xsl:stylesheet>

Page: 1

Page 60: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<?xml version="1.0" encoding="UTF-8"?><!--

sample cml plus arch.xml(c) Copyright 2002 Chubb and Son, Inc.

--><model xmlns:tt="http://typeTable.data" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<packages><package>

<name>com</name><packages>

<package><name>chubb</name><packages>

<package><name>demoPolicy</name><packages>

<package><name>domain</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithXMLSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.TagNameSpecifiesType</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.ValidateWithSchema</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name>

Page: 1

Page 61: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<value>DemoPolicy</value></architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.MaxSampleHierarchyDepth</name><value>2</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.SampleCollectionCount</name><value>1</value>

</architectureIssue></architectureIssues><inheritanceRelationships/><classes>

<class><name>Address</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Street</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

Page: 2

Page 62: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<name>City</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>State</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class><class>

<name>Building</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes/>

</class><class>

<name>Coverage</name>

Page: 3

Page 63: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<architectureIssues><architectureIssue>

<name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Name</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>Limit</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute><attribute>

<name>Deductible</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name>

Page: 4

Page 64: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<value>True</value></architectureIssue>

</architectureIssues></attribute>

</attributes></class><class>

<name>Location</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes/>

</class><class>

<name>Policy</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.IsRoot</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.UseXMLName</name><value>True</value>

</architectureIssue><architectureIssue>

<name>XMLMapping.XMLConduit.XMLName</name>

Page: 5

Page 65: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<value>Policy</value></architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

<attribute><name>Number</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class><class>

<name>Transaction</name><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomeManaged</name><value>True</value>

</architectureIssue><architectureIssue>

<name>Domain.RoseBudHome.HomePrefix</name><value>DemoPolicy</value>

</architectureIssue></architectureIssues><attributes>

Page: 6

Page 66: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<attribute><name>IssueDate</name><type>java.lang.String</type><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</attribute></attributes>

</class></classes><associations>

<association><name>Address</name><targetRole>

<name>Address</name><className>Address</className><minimumCardinality>0</minimumCardinality><maximumCardinality>1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Building</className><architectureIssues/>

</sourceRole></association><association>

<name>Coverages</name><targetRole>

<name>Coverage</name><className>Coverage</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality>

Page: 7

Page 67: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<architectureIssues><architectureIssue>

<name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Building</className><architectureIssues/>

</sourceRole></association><association>

<name>Buildings</name><targetRole>

<name>Building</name><className>Building</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Location</className><architectureIssues/>

</sourceRole></association><association>

<name>Transactions</name><targetRole>

<name>Transaction</name><className>Transaction</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

Page: 8

Page 68: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Policy</className><architectureIssues/>

</sourceRole></association><association>

<name>Locations</name><targetRole>

<name>Location</name><className>Location</className><minimumCardinality>0</minimumCardinality><maximumCardinality>-1</maximumCardinality><architectureIssues>

<architectureIssue><name>XMLMapping.XMLConduit.XMLEnabled</name><value>True</value>

</architectureIssue></architectureIssues>

</targetRole><sourceRole>

<name/><className>Transaction</className><architectureIssues/>

</sourceRole></association>

</associations></package>

</packages></package>

</packages></package>

</packages></package>

</packages>

Page: 9

Page 69: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

<ArchitecturalDefinition VERSION=""><ArchitecturalLayers>

<ArchitecturalLayer ID="Le2909320-7fe6-11d6-80a6-444553544200" NAME="XMLMapping" VERSION="1.0"><Caption>XMLMapping</Caption><Description>This layer enables objects for mapping to and from

XML.</Description><ArchitecturalIssues>

<ArchitecturalIssue IDREF="I1206DB60773311D6809D0010A4896034"/></ArchitecturalIssues>

</ArchitecturalLayer><!-- lines removed -->

</ArchitecturalLayers><ArchitecturalIssues>

<!-- lines removed --><ArchitecturalIssue ID="I1206DB60773311D6809D0010A4896034" NAME="XMLConduit" VERSION="1.0">

<Caption>XMLConduit</Caption><Description></Description><TaggedValues>

<!-- lines removed --><TaggedValue ID="T1206DBAD773311D6809D0010A4896034" ISENUMERATION="False" ISMANDATORY="False" ISREADO

NLY="False" ISVISIBLE="True" NAME="XMLEnabled" SEQUENCEORDER="1" TYPE="String" VERSION="1.0"><Caption>XMLEnabled</Caption><Description>Enables Item for Parsing and

Creation of XML.</Description><UMLElementTypes>

<UMLElementType NAME="Attribute"><DefaultValue></DefaultValue>

</UMLElementType><UMLElementType NAME="Role">

<DefaultValue></DefaultValue>

</UMLElementType><UMLElementType NAME="Class">

<DefaultValue></DefaultValue>

</UMLElementType><UMLElementType NAME="Interface">

<DefaultValue></DefaultValue>

Page: 10

Page 70: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample cml plus arch.xml

</UMLElementType><UMLElementType NAME="Package">

<DefaultValue></DefaultValue>

</UMLElementType><UMLElementType NAME="Association">

<DefaultValue></DefaultValue>

</UMLElementType></UMLElementTypes>

</TaggedValue><!-- lines removed-->

</TaggedValues></ArchitecturalIssue>

</ArchitecturalIssues></ArchitecturalDefinition></model>

Page: 11

Page 71: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<?xml version="1.0" encoding="utf-8"?><!--

cml to xmi.xsl(c) Copyright 2002 Chubb and Son, Inc.

--><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML="//org.omg/UML/1.3">

<xsl:output encoding="UTF-8" method="xml" indent="yes"/>

<xsl:template match="/model"><XMI xmi.version="1.1" xmlns:UML="//org.omg/UML/1.3" timestamp="Mon Apr 08 16:33:21 2002">

<XMI.header><XMI.documentation>

<XMI.exporter>RoseBud</XMI.exporter><XMI.exporterVersion>1.0</XMI.exporterVersion>

</XMI.documentation><XMI.metamodel xmi.name="UML" xmi.version="1.3"/>

</XMI.header><XMI.content>

<UML:Model><xsl:attribute name="xmi.id">G.root</xsl:attribute><xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute><xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isRoot">false</xsl:attribute><xsl:attribute name="isLeaf">false</xsl:attribute><xsl:attribute name="isAbstract">false</xsl:attribute><UML:Namespace.ownedElement>

<!-- <UML:Package><xsl:attribute name="xmi.id">package.<xsl:call-template name="getPathForCurrentPackage"/></x

sl:attribute><xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute><xsl:attribute name="visiblity">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isRoot">false</xsl:attribute><xsl:attribute name="isLeaf">false</xsl:attribute><xsl:attribute name="isAbstract">false</xsl:attribute>

--> <xsl:apply-templates select="packages/package" mode="classes"/> <!--</UML:Package> --><UML:DataType xmi.id="datatype.java.lang.String" name="String" visibility="public" isSpecificati

on="false" isroot="false" isLeaf="false" isAbstract="false"/><UML:DataType xmi.id="datatype.java.math.BigDecimal" name="BigDecimal" visibility="public" isSpe

cification="false" isroot="false" isLeaf="false" isAbstract="false"/><UML:DataType xmi.id="datatype.short" name="short" visibility="public" isSpecification="false" i

sroot="false" isLeaf="false" isAbstract="false"/><UML:DataType xmi.id="datatype.int" name="int" visibility="public" isSpecification="false" isroo

t="false" isLeaf="false" isAbstract="false"/>

Page: 1

Page 72: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<UML:DataType xmi.id="datatype.long" name="long" visibility="public" isSpecification="false" isroot="false" isLeaf="false" isAbstract="false"/>

<UML:DataType xmi.id="datatype.double" name="double" visibility="public" isSpecification="false"isroot="false" isLeaf="false" isAbstract="false"/>

<UML:DataType xmi.id="datatype.java.util.Date" name="Date" visibility="public" isSpecification="false" isroot="false" isLeaf="false" isAbstract="false"/>

<!-- do stereotypes - get to leaf package and collect classes there --><xsl:for-each select="//package[count(packages) = 0]">

<xsl:variable name="leafPackageName"><xsl:call-template name="getPathForCurrentPackage"/></xsl:variable>

<UML:Stereotype xmi.id="stereotype.DomainStandard" name="DomainStandard" visibility="public"isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false" icon="" baseClass="Class">

<UML:Stereotype.extendedElement><xsl:for-each select="classes/class">

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">class.<xsl:value-of select="$leafPackageName

"/>.<xsl:value-of select="name"/></xsl:attribute></Foundation.Core.ModelElement>

</xsl:for-each></UML:Stereotype.extendedElement>

</UML:Stereotype></xsl:for-each>

</UML:Namespace.ownedElement></UML:Model><xsl:apply-templates select="packages/package" mode="taggedValues"/>

</XMI.content></XMI>

</xsl:template>

<xsl:template match="packages/package" mode="classes">

<xsl:variable name="packageName"><xsl:call-template name="getPathForCurrentPackage"/></xsl:variable><UML:Package>

<xsl:attribute name="xmi.id">package.<xsl:call-template name="getPathForCurrentPackage"/></xsl:attribute>

<xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute><xsl:attribute name="visiblity">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isRoot">false</xsl:attribute><xsl:attribute name="isLeaf">false</xsl:attribute><xsl:attribute name="isAbstract">false</xsl:attribute><UML:ModelElement.namespace>

<Foundation.Core.Namespace><xsl:attribute name="xmi.idref">package.<xsl:call-template name="getParentPathForCurrentPackage"

/></xsl:attribute></Foundation.Core.Namespace>

</UML:ModelElement.namespace>

Page: 2

Page 73: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<UML:Namespace.ownedElement><xsl:apply-templates select="packages/package" mode="classes"/>

</UML:Namespace.ownedElement><xsl:if test="normalize-space(classes)"> <!-- create package variable, we have classes -->

<UML:Namespace.ownedElement><xsl:for-each select="classes/class">

<xsl:variable name="className" select="name"/><UML:Class>

<xsl:attribute name="xmi.id">class.<xsl:value-of select="$packageName"/>.<xsl:value-of select="$className"/></xsl:attribute>

<xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute><xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isRoot">true</xsl:attribute><xsl:attribute name="isLeaf">true</xsl:attribute><xsl:attribute name="isAbstract">false</xsl:attribute><xsl:attribute name="isActive">false</xsl:attribute><UML:ModelElement.namespace>

<Foundation.Core.Namespace><xsl:attribute name="xmi.idref">package.<xsl:value-of select="$packageNa

me"/></xsl:attribute></Foundation.Core.Namespace>

</UML:ModelElement.namespace><UML:GeneralizableElement.generalization>

<xsl:for-each select="../../inheritanceRelationships/inheritanceRelationship[subclass = $className]">

<Foundation.Core.Generalization><xsl:attribute name="xmi.idref">inheritance.<xsl:value-of select="$p

ackageName"/>.<xsl:value-of select="superclass"/>.<xsl:value-of select="subclass"/></xsl:attribute></Foundation.Core.Generalization>

</xsl:for-each></UML:GeneralizableElement.generalization><UML:GeneralizableElement.specialization>

<xsl:for-each select="../../inheritanceRelationships/inheritanceRelationship[superclass = $className]">

<Foundation.Core.Generalization><xsl:attribute name="xmi.idref">inheritance.<xsl:value-of select="$p

ackageName"/>.<xsl:value-of select="superclass"/>.<xsl:value-of select="subclass"/></xsl:attribute></Foundation.Core.Generalization>

</xsl:for-each></UML:GeneralizableElement.specialization><UML:Namespace.ownedElement>

<xsl:for-each select="../../inheritanceRelationships/inheritanceRelationship[subclass = $className]">

<UML:Generalization visibility="public" isSpecification="false" discriminator="">

Page: 3

Page 74: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<xsl:attribute name="xmi.id">inheritance.<xsl:value-of select="$packageName"/>.<xsl:value-of select="superclass"/>.<xsl:value-of select="subclass"/></xsl:attribute>

<UML:Generalization.child><Foundation.Core.GeneralizableElement>

<xsl:attribute name="xmi.idref">class.<xsl:value-of select="$packageName"/>.<xsl:value-of select="$className"/></xsl:attribute>

</Foundation.Core.GeneralizableElement></UML:Generalization.child><UML:Generalization.parent>

<Foundation.Core.GeneralizableElement><xsl:attribute name="xmi.idref">class.<xsl:value-of select="

$packageName"/>.<xsl:value-of select="superclass"/></xsl:attribute></Foundation.Core.GeneralizableElement>

</UML:Generalization.parent></UML:Generalization>

</xsl:for-each></UML:Namespace.ownedElement><UML:Classifier.feature>

<xsl:for-each select="attributes/attribute"><UML:Attribute>

<xsl:attribute name="xmi.id">attribute.<xsl:value-of select="$packageName"/>.<xsl:value-of select="$className"/>.<xsl:value-of select="name"/></xsl:attribute>

<xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute>

<xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="ownerScope">instance</xsl:attribute><xsl:attribute name="changeability">changeable</xsl:attribute><xsl:attribute name="targetScope">instance</xsl:attribute><UML:StructuralFeature.multiplicity>

<UML:Multiplicity><UML:Multiplicity.range>

<UML:MultiplicityRange lower="1" upper="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression language="" body=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier><xsl:attribute name="xmi.idref">datatype.<xsl:value-of selec

t="type"/></xsl:attribute></Foundation.Core.Classifier>

</UML:StructuralFeature.type></UML:Attribute>

</xsl:for-each>

Page: 4

Page 75: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

</UML:Classifier.feature></UML:Class>

</xsl:for-each><xsl:for-each select="associations/association">

<xsl:variable name="associationName"><xsl:value-of select="$packageName"/>.<xsl:value-of select="name"/>.<xsl:value-of select="sourceRole/className"/>.<xsl:value-of select="targetRole/name"/></xsl:variable>

<UML:Association><xsl:attribute name="xmi.id">association.<xsl:value-of select="$associationName"

/></xsl:attribute><xsl:attribute name="name"><xsl:value-of select="name"/></xsl:attribute><xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isRoot">false</xsl:attribute><xsl:attribute name="isLeaf">false</xsl:attribute><xsl:attribute name="isAbstract">false</xsl:attribute><UML:Association.connection>

<UML:AssociationEnd><xsl:attribute name="xmi.id">role.<xsl:value-of select="$associationName

"/>.<xsl:value-of select="targetRole/name"/></xsl:attribute><xsl:attribute name="name"><xsl:value-of select="targetRole/name"/></xsl

:attribute><xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isNavigable">true</xsl:attribute><xsl:attribute name="ordering">unordered</xsl:attribute><xsl:attribute name="aggregation">none</xsl:attribute><xsl:attribute name="targetScope">instance</xsl:attribute><xsl:attribute name="changeability">changeable</xsl:attribute><UML:AssociationEnd.multiplicity>

<UML:Multiplicity><UML:Multiplicity.range>

<UML:MultiplicityRange><xsl:attribute name="lower"><xsl:value-of select="target

Role/minimumCardinality"/></xsl:attribute><xsl:attribute name="upper"><xsl:value-of select="target

Role/maximumCardinality"/></xsl:attribute></UML:MultiplicityRange>

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier><xsl:attribute name="xmi.idref">class.<xsl:value-of select="$pac

kageName"/>.<xsl:value-of select="targetRole/className"/></xsl:attribute></Foundation.Core.Classifier>

</UML:AssociationEnd.type>

Page: 5

Page 76: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

</UML:AssociationEnd><UML:AssociationEnd>

<xsl:attribute name="xmi.id">role.<xsl:value-of select="$associationName"/>.<xsl:value-of select="sourceRole/className"/>.type</xsl:attribute>

<xsl:attribute name="name"><xsl:value-of select="sourceRole/name"/>

</xsl:attribute><xsl:attribute name="visibility">public</xsl:attribute><xsl:attribute name="isSpecification">false</xsl:attribute><xsl:attribute name="isNavigable">false</xsl:attribute><xsl:attribute name="ordering">unordered</xsl:attribute><xsl:attribute name="aggregation">aggregate</xsl:attribute><xsl:attribute name="targetScope">instance</xsl:attribute><xsl:attribute name="changeability">changeable</xsl:attribute><UML:AssociationEnd.multiplicity>

<UML:Multiplicity><UML:Multiplicity.range>

<UML:MultiplicityRange lower="1" upper="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier><xsl:attribute name="xmi.idref">class.<xsl:value-of select="$pac

kageName"/>.<xsl:value-of select="sourceRole/className"/></xsl:attribute></Foundation.Core.Classifier>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association>

</xsl:for-each></UML:Namespace.ownedElement>

</xsl:if></UML:Package>

</xsl:template>

<xsl:template match="packages/package" mode="taggedValues"><xsl:if test="normalize-space(classes)"> <!-- create package variable, we have classes -->

<xsl:variable name="packageName"><xsl:call-template name="getPathForCurrentPackage"/></xsl:variable><UML:TaggedValue xmi.id="XX.2" tag="RationalRose:Tool#1" value="Gen-it Architect 2.5">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="G.root"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><xsl:for-each select="architectureIssues/architectureIssue">

<UML:TaggedValue><xsl:attribute name="xmi.id">taggedValue.package.<xsl:value-of select="$packageName"/></xsl:attribut

Page: 6

Page 77: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

e><xsl:attribute name="tag"><xsl:call-template name="getCodagenTaggedValueName"/></xsl:attribute><xsl:attribute name="value"><xsl:value-of select="value"/></xsl:attribute><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">package.<xsl:value-of select="$packageName"/></xsl:attribute

></Foundation.Core.ModelElement>

</UML:TaggedValue.modelElement></UML:TaggedValue>

</xsl:for-each><xsl:for-each select="classes/class">

<xsl:variable name="className" select="name"/><xsl:for-each select="architectureIssues/architectureIssue">

<UML:TaggedValue><xsl:attribute name="xmi.id">taggedValue.class.<xsl:value-of select="$packageName"/>.<xsl:value-

of select="$className"/></xsl:attribute><xsl:attribute name="tag"><xsl:call-template name="getCodagenTaggedValueName"/></xsl:attribute><xsl:attribute name="value"><xsl:value-of select="value"/></xsl:attribute><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">class.<xsl:value-of select="$packageName"/>.<xsl:value-o

f select="$className"/></xsl:attribute></Foundation.Core.ModelElement>

</UML:TaggedValue.modelElement></UML:TaggedValue>

</xsl:for-each><xsl:for-each select="attributes/attribute">

<xsl:variable name="attributeName" select="name"/><xsl:for-each select="architectureIssues/architectureIssue">

<UML:TaggedValue><xsl:attribute name="xmi.id">taggedValue.attribute.<xsl:value-of select="$packageName"/>.<xs

l:value-of select="$className"/>.<xsl:value-of select="$attributeName"/></xsl:attribute><xsl:attribute name="tag"><xsl:call-template name="getCodagenTaggedValueName"/></xsl:attribu

te><xsl:attribute name="value"><xsl:value-of select="value"/></xsl:attribute><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">attribute.<xsl:value-of select="$packageName"/>.<xsl

:value-of select="$className"/>.<xsl:value-of select="$attributeName"/></xsl:attribute></Foundation.Core.ModelElement>

</UML:TaggedValue.modelElement></UML:TaggedValue>

</xsl:for-each></xsl:for-each>

</xsl:for-each><xsl:for-each select="associations/association">

Page: 7

Page 78: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<xsl:variable name="associationName"><xsl:value-of select="$packageName"/>.<xsl:value-of select="name"/>.<xsl:value-of select="sourceRole

/className"/>.<xsl:value-of select="targetRole/name"/></xsl:variable><xsl:variable name="targetRoleName" select="targetRole/name"/><xsl:for-each select="targetRole/architectureIssues/architectureIssue">

<UML:TaggedValue><xsl:attribute name="xmi.id">taggedValue.role.<xsl:value-of select="$associationName"/>.<xsl:val

ue-of select="$targetRoleName"/></xsl:attribute><xsl:attribute name="tag"><xsl:call-template name="getCodagenTaggedValueName"/></xsl:attribute><xsl:attribute name="value"><xsl:value-of select="value"/></xsl:attribute><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">role.<xsl:value-of select="$associationName"/>.<xsl:valu

e-of select="$targetRoleName"/></xsl:attribute></Foundation.Core.ModelElement>

</UML:TaggedValue.modelElement></UML:TaggedValue>

</xsl:for-each></xsl:for-each><UML:Diagram>

<xsl:attribute name="xmi.id">classDiagram.<xsl:value-of select="$packageName"/>.Main</xsl:attribute><xsl:attribute name="name">Main</xsl:attribute><xsl:attribute name="toolName">Rational Rose 98</xsl:attribute><xsl:attribute name="diagramType">ClassDiagram</xsl:attribute><xsl:attribute name="style"></xsl:attribute><UML:Diagram.owner>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">package.<xsl:value-of select="$packageName"/></xsl:attribute>

</Foundation.Core.ModelElement></UML:Diagram.owner><UML:DiagramElement>

<xsl:attribute name="xmi.id">classDiagram.package.<xsl:value-of select="$packageName"/></xsl:attribute>

<xsl:attribute name="geometry">100, 100, 300, 180,</xsl:attribute><xsl:attribute name="style">Category</xsl:attribute><UML:PresentationElement.subject>

<Foundation.Core.ModelElement><xsl:attribute name="xmi.idref">package.<xsl:value-of select="$packageName"/></xsl:attribute

></Foundation.Core.ModelElement>

</UML:PresentationElement.subject></UML:DiagramElement>

</UML:Diagram></xsl:if><xsl:apply-templates select="packages/package" mode="taggedValues"/>

</xsl:template>

Page: 8

Page 79: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<!--Return a concatenated full path for the package.Something like "com.chubb.x.y.z" when z is the current package.

--><xsl:template name="getPathForCurrentPackage">

<xsl:call-template name="getParentPathForCurrentPackage"/><xsl:value-of select="name"/></xsl:template>

<!--Return a concatenated full path for the package parents only.Something like "com.chubb.x.y.z" when z is the current package.

--><xsl:template name="getParentPathForCurrentPackage">

<xsl:for-each select="ancestor::package"><xsl:value-of select="name"/>.</xsl:for-each>

</xsl:template>

<!--Return the tagged value name for Codagen.

Parse the LayerName.IssueName.PropertyName and return ids instead.Only append the propertyID for those that have a property ID, same goes for issue id.

--><xsl:template name="getCodagenTaggedValueName">

<xsl:variable name="layerString"><xsl:value-of select="substring-before(name, '.')"/></xsl:variable><xsl:variable name="issueString"><xsl:value-of select="substring-before(substring-after(name, '.'), '.')"/></xsl

:variable><xsl:variable name="propertyString"><xsl:value-of select="substring-after(substring-after(name, '.'), '.')"/></x

sl:variable><xsl:variable name="layerID">

<xsl:call-template name="getLayerIdFor"><xsl:with-param name="layerName" select="$layerString"/>

</xsl:call-template></xsl:variable><xsl:variable name="issueID">

<xsl:call-template name="getIssueIdFor"><xsl:with-param name="issueName" select="$issueString"/>

</xsl:call-template></xsl:variable><xsl:variable name="propertyID">

<xsl:call-template name="getPropertyIdFor"><xsl:with-param name="issueName" select="$issueString"/><xsl:with-param name="propertyName" select="$propertyString"/>

</xsl:call-template></xsl:variable><xsl:variable name="concatenatedIDs">

Page: 9

Page 80: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\cml to xmi.xsl

<xsl:value-of select="concat('RationalRose$Gen-it Architect 2.5:Codagen.', normalize-space($layerID))"/><xsl:if test="normalize-space($issueID)">

<xsl:value-of select="concat('.', normalize-space($issueID))"/><xsl:if test="normalize-space($propertyID)">

<xsl:value-of select="concat('.', normalize-space($propertyID))"/></xsl:if>

</xsl:if></xsl:variable><xsl:value-of select="normalize-space($concatenatedIDs)"/>

</xsl:template>

<xsl:template name="getCodagenTaggedValueValue"></xsl:template>

<xsl:template name="getLayerIdFor"><xsl:param name="layerName"/><xsl:value-of select="/model/ArchitecturalDefinition/ArchitecturalLayers/ArchitecturalLayer[@NAME = $layerName]/

@ID"/></xsl:template>

<xsl:template name="getIssueIdFor"><xsl:param name="issueName"/><xsl:value-of select="/model/ArchitecturalDefinition/ArchitecturalIssues/ArchitecturalIssue[@NAME = $issueName]/

@ID"/></xsl:template>

<xsl:template name="getPropertyIdFor"><xsl:param name="issueName"/><xsl:param name="propertyName"/><xsl:value-of select="/model/ArchitecturalDefinition/ArchitecturalIssues/ArchitecturalIssue[@NAME = $issueName]/

TaggedValues/TaggedValue[@NAME = $propertyName]/@ID"/></xsl:template>

</xsl:stylesheet>

Page: 10

Page 81: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<?xml version="1.0" encoding="UTF-8"?><!--

sample xmi.xml(c) Copyright 2002 Chubb and Son, Inc.

--><XMI timestamp="Mon Apr 08 16:33:21 2002" xmi.version="1.1" xmlns:UML="//org.omg/UML/1.3">

<XMI.header><XMI.documentation>

<XMI.exporter>RoseBud</XMI.exporter><XMI.exporterVersion>1.0</XMI.exporterVersion>

</XMI.documentation><XMI.metamodel xmi.version="1.3" xmi.name="UML"/>

</XMI.header><XMI.content>

<UML:Model xmi.id="G.root" name="" visibility="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:Namespace.ownedElement><UML:Package xmi.id="package.com" name="com" visiblity="public" isSpecification="false" isRoo

t="false" isLeaf="false" isAbstract="false"><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref="package."/></UML:ModelElement.namespace><UML:Namespace.ownedElement>

<UML:Package xmi.id="package.com.chubb" name="chubb" visiblity="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com."/>

</UML:ModelElement.namespace><UML:Namespace.ownedElement>

<UML:Package xmi.id="package.com.chubb.demoPolicy" name="demoPolicy" visiblity="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chubb."/>

</UML:ModelElement.namespace><UML:Namespace.ownedElement>

<UML:Package xmi.id="package.com.chubb.demoPolicy.domain" name="domain" visiblity="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chubb.demoP

olicy."/></UML:ModelElement.namespace>

Page: 1

Page 82: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:Namespace.ownedElement/><UML:Namespace.ownedElement>

<UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Address"name="Address" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false" is

Active="false"><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:ModelElement.namespace><UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/><UML:Classifier.feature>

<UML:Attribute xmi.id="attribute.com.chubb.demoPolicy.domain.Address.Street" name="Street" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute><UML:Attribute xmi.id="attribute.com.chubb.demoPolicy

.domain.Address.City" name="City" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

Page: 2

Page 83: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute><UML:Attribute xmi.id="attribute.com.chubb.demoPolicy

.domain.Address.State" name="State" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Building

" name="Building" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false"isActive="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chu

bb.demoPolicy.domain"/></UML:ModelElement.namespace><UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/>

Page: 3

Page 84: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:Classifier.feature/></UML:Class><UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Coverage

" name="Coverage" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false"isActive="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chu

bb.demoPolicy.domain"/></UML:ModelElement.namespace><UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/><UML:Classifier.feature>

<UML:Attribute xmi.id="attribute.com.chubb.demoPolicy.domain.Coverage.Name" name="Name" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute><UML:Attribute xmi.id="attribute.com.chubb.demoPolicy

.domain.Coverage.Limit" name="Limit" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

Page: 4

Page 85: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute><UML:Attribute xmi.id="attribute.com.chubb.demoPolicy

.domain.Coverage.Deductible" name="Deductible" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Location

" name="Location" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false"isActive="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chu

bb.demoPolicy.domain"/></UML:ModelElement.namespace><UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/>

Page: 5

Page 86: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:Classifier.feature/></UML:Class><UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Policy"

name="Policy" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false" isActive="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chu

bb.demoPolicy.domain"/></UML:ModelElement.namespace><UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/><UML:Classifier.feature>

<UML:Attribute xmi.id="attribute.com.chubb.demoPolicy.domain.Policy.Number" name="Number" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><UML:Class xmi.id="class.com.chubb.demoPolicy.domain.Transact

ion" name="Transaction" visibility="public" isSpecification="false" isRoot="true" isLeaf="true" isAbstract="false" isActive="false">

<UML:ModelElement.namespace><Foundation.Core.Namespace xmi.idref="package.com.chu

bb.demoPolicy.domain"/></UML:ModelElement.namespace>

Page: 6

Page 87: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:GeneralizableElement.generalization/><UML:GeneralizableElement.specialization/><UML:Namespace.ownedElement/><UML:Classifier.feature>

<UML:Attribute xmi.id="attribute.com.chubb.demoPolicy.domain.Transaction.IssueDate" name="IssueDate" visibility="public" isSpecification="false" ownerScope="instance" changeability="changeable" targetScope="instance">

<UML:StructuralFeature.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expression body="" language=""/></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref="datatype.java.lang.String"/>

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><UML:Association xmi.id="association.com.chubb.demoPolicy.dom

ain.Address.Building.Address" name="Address" visibility="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:Association.connection><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Address.Building.Address.Address" name="Address" visibility="public" isSpecification="false" isNavigable="true" ordering="unordered" aggregation="none" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange lower="0" uppe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

Page: 7

Page 88: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Address"/>

</UML:AssociationEnd.type></UML:AssociationEnd><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Address.Building.Address.Building.type" name="" visibility="public" isSpecification="false" isNavigable="false" ordering="unordered" aggregation="aggregate" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><UML:Association xmi.id="association.com.chubb.demoPolicy.dom

ain.Coverages.Building.Coverage" name="Coverages" visibility="public" isSpecification="false" isRoot="false"isLeaf="false" isAbstract="false">

<UML:Association.connection><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Coverages.Building.Coverage.Coverage" name="Coverage" visibility="public" isSpecification="false" isNavigable="true" ordering="unordered" aggregation="none" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange lower="0" uppe

r="-1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Coverage"/>

</UML:AssociationEnd.type>

Page: 8

Page 89: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

</UML:AssociationEnd><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Coverages.Building.Coverage.Building.type" name="" visibility="public" isSpecification="false" isNavigable="false" ordering="unordered" aggregation="aggregate" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><UML:Association xmi.id="association.com.chubb.demoPolicy.dom

ain.Buildings.Location.Building" name="Buildings" visibility="public" isSpecification="false" isRoot="false"isLeaf="false" isAbstract="false">

<UML:Association.connection><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Buildings.Location.Building.Building" name="Building" visibility="public" isSpecification="false" isNavigable="true" ordering="unordered" aggregation="none" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange lower="0" uppe

r="-1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:AssociationEnd.type></UML:AssociationEnd><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Buildings.Location.Building.Location.type" name="" visibility="public" isSpecification="false" isNavi

Page: 9

Page 90: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

gable="false" ordering="unordered" aggregation="aggregate" targetScope="instance" changeability="changeable"><UML:AssociationEnd.multiplicity>

<UML:Multiplicity><UML:Multiplicity.range>

<UML:MultiplicityRange upper="1" lower="1"/>

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><UML:Association xmi.id="association.com.chubb.demoPolicy.dom

ain.Transactions.Policy.Transaction" name="Transactions" visibility="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:Association.connection><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Transactions.Policy.Transaction.Transaction" name="Transaction" visibility="public" isSpecification="false" isNavigable="true" ordering="unordered" aggregation="none" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange lower="0" uppe

r="-1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Transaction"/>

</UML:AssociationEnd.type></UML:AssociationEnd><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Transactions.Policy.Transaction.Policy.type" name="" visibility="public" isSpecification="false" isNavigable="false" ordering="unordered" aggregation="aggregate" targetScope="instance" changeability="changeable">

Page: 10

Page 91: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><UML:Association xmi.id="association.com.chubb.demoPolicy.dom

ain.Locations.Transaction.Location" name="Locations" visibility="public" isSpecification="false" isRoot="false" isLeaf="false" isAbstract="false">

<UML:Association.connection><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Locations.Transaction.Location.Location" name="Location" visibility="public" isSpecification="false"isNavigable="true" ordering="unordered" aggregation="none" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

<UML:Multiplicity.range><UML:MultiplicityRange lower="0" uppe

r="-1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

</UML:AssociationEnd.type></UML:AssociationEnd><UML:AssociationEnd xmi.id="role.com.chubb.demoPolicy

.domain.Locations.Transaction.Location.Transaction.type" name="" visibility="public" isSpecification="false"isNavigable="false" ordering="unordered" aggregation="aggregate" targetScope="instance" changeability="changeable">

<UML:AssociationEnd.multiplicity><UML:Multiplicity>

Page: 11

Page 92: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:Multiplicity.range><UML:MultiplicityRange upper="1" lowe

r="1"/></UML:Multiplicity.range>

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref="class.com.chubb.demoPolicy.domain.Transaction"/>

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="String" xmi.id="datatype.java.lang.String"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="BigDecimal" xmi.id="datatype.java.math.BigDecimal"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="short" xmi.id="datatype.short"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="int" xmi.id="datatype.int"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="long" xmi.id="datatype.long"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="double" xmi.id="datatype.double"/><UML:DataType isAbstract="false" isLeaf="false" isroot="false" isSpecification="false" visibi

lity="public" name="Date" xmi.id="datatype.java.util.Date"/><UML:Stereotype baseClass="Class" icon="" isAbstract="false" isLeaf="false" isRoot="false" is

Specification="false" visibility="public" name="DomainStandard" xmi.id="stereotype.DomainStandard"><UML:Stereotype.extendedElement>

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Address"/><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Building"/

>

Page: 12

Page 93: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Coverage"/>

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Transactio

n"/></UML:Stereotype.extendedElement>

</UML:Stereotype></UML:Namespace.ownedElement>

</UML:Model><UML:TaggedValue value="Gen-it Architect 2.5" tag="RationalRose:Tool#1" xmi.id="XX.2">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="G.root"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAB773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T02a240f1-8844-11d6-80ad-0010a4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034" value="True"><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

Page: 13

Page 94: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.Td5e466c0-a87a-11d6-80e0-0010a4896034" value="2">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.package.com.chubb.demoPolicy.domain" tag="RationalRose$Gen-it Ar

chitect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.Tfa6db1c0-a961-11d6-80e2-444553544200" value="1">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Address" tag="RationalRose$Gen

-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Address"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Address" tag="RationalRose$Gen

-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement>

Page: 14

Page 95: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Address"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Address" tag="RationalRose$Gen

-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Address"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Address.Street" tag="Ratio

nalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Address.Street

"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Address.City" tag="Rationa

lRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Address.City"/

></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Address.State" tag="Ration

alRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Address.State"

/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Building" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:TaggedValue.modelElement></UML:TaggedValue>

Page: 15

Page 96: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

<UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Building" tag="RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Building" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Building"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Coverage" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Coverage"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Coverage" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Coverage"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Coverage" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Coverage"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Coverage.Name" tag="Ration

alRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Coverage.Name"

/>

Page: 16

Page 97: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Coverage.Limit" tag="Ratio

nalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Coverage.Limit

"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Coverage.Deductible" tag="

RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Coverage.Deduc

tible"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Location" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Location" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Location" tag="RationalRose$Ge

n-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Location"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773

Page: 17

Page 98: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

311D6809D0010A4896034" value="True"><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T5da6db90-887c-11d6-80ae-0010a4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAA773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAE773311D6809D0010A4896034" value="Policy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Policy" tag="RationalRose$Gen-

it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Policy"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Policy.Number" tag="Ration

Page: 18

Page 99: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

alRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Policy.Number"

/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Transaction" tag="RationalRose

$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Transaction"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Transaction" tag="RationalRose

$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Transaction"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.class.com.chubb.demoPolicy.domain.Transaction" tag="RationalRose

$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034" value="DemoPolicy">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="class.com.chubb.demoPolicy.domain.Transaction"/>

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.attribute.com.chubb.demoPolicy.domain.Transaction.IssueDate" tag

="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="attribute.com.chubb.demoPolicy.domain.Transaction.Is

sueDate"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.role.com.chubb.demoPolicy.domain.Address.Building.Address.Addres

s" tag="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="role.com.chubb.demoPolicy.domain.Address.Building.Ad

Page: 19

Page 100: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

dress.Address"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.role.com.chubb.demoPolicy.domain.Coverages.Building.Coverage.Cov

erage" tag="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="role.com.chubb.demoPolicy.domain.Coverages.Building.

Coverage.Coverage"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.role.com.chubb.demoPolicy.domain.Buildings.Location.Building.Bui

lding" tag="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="role.com.chubb.demoPolicy.domain.Buildings.Location.

Building.Building"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.role.com.chubb.demoPolicy.domain.Transactions.Policy.Transaction

.Transaction" tag="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="role.com.chubb.demoPolicy.domain.Transactions.Policy

.Transaction.Transaction"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id="taggedValue.role.com.chubb.demoPolicy.domain.Locations.Transaction.Location.

Location" tag="RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034" value="True">

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref="role.com.chubb.demoPolicy.domain.Locations.Transacti

on.Location.Location"/></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:Diagram xmi.id="classDiagram.com.chubb.demoPolicy.domain.Main" name="Main" toolName="Rational Ro

se 98" diagramType="ClassDiagram" style=""><UML:Diagram.owner>

<Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/></UML:Diagram.owner><UML:DiagramElement xmi.id="classDiagram.package.com.chubb.demoPolicy.domain" geometry="100, 100,

Page: 20

Page 101: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample xmi.xml

300, 180," style="Category"><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref="package.com.chubb.demoPolicy.domain"/></UML:PresentationElement.subject>

</UML:DiagramElement></UML:Diagram>

</XMI.content></XMI>

Page: 21

Page 102: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<?xml version = '1.0' encoding = 'ISO-8859-1' ?><!--

sample exported xmi.xml(c) Copyright 2002 Chubb and Son, Inc.

--><!-- <!DOCTYPE XMI SYSTEM 'UMLX13.dtd' > --><XMI xmi.version = '1.1' xmlns:UML='//org.omg/UML/1.3' timestamp = 'Mon Sep 09 16:31:09 2002' ><XMI.header><XMI.documentation><XMI.exporter>Unisys.JCR.2</XMI.exporter><XMI.exporterVersion>1.3.2</XMI.exporterVersion>

</XMI.documentation><XMI.metamodel xmi.name = 'UML' xmi.version = '1.3'/>

</XMI.header><XMI.content><!-- ==================== policy [Model] ==================== --><UML:Model xmi.id = 'G.0'

name = 'policy' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:Namespace.ownedElement>

<!-- ==================== policy::com [Package] ==================== --><UML:Package xmi.id = 'S.1'

name = 'com' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'G.0'/> <!-- policy --></UML:ModelElement.namespace><UML:Namespace.ownedElement>

<!-- ==================== policy::com::chubb [Package] ==================== --><UML:Package xmi.id = 'S.2'

name = 'chubb' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.1'/> <!-- policy::com --></UML:ModelElement.namespace><UML:Namespace.ownedElement>

<!-- ==================== policy::com::chubb::demoPolicy [Package] ==================== --><UML:Package xmi.id = 'S.3'

name = 'demoPolicy' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:ModelElement.namespace>

Page: 1

Page 103: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<Foundation.Core.Namespace xmi.idref = 'S.2'/> <!-- policy::com::chubb --></UML:ModelElement.namespace><UML:Namespace.ownedElement>

<!-- ==================== policy::com::chubb::demoPolicy::domain [Package] ==================== -->

<UML:Package xmi.id = 'S.4'name = 'domain' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.3'/> <!-- policy::com::chubb::demoPolicy --></UML:ModelElement.namespace><UML:Namespace.ownedElement>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Building [Class] ==================== -->

<UML:Class xmi.id = 'S.5'name = 'Building' visibility = 'public' isSpecification = 'false'isRoot = 'true' isLeaf = 'true' isAbstract = 'false'isActive = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:ModelElement.namespace><UML:Classifier.feature>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Building.Address[Attribute] ==================== -->

<UML:Attribute xmi.id = 'S.6'name = 'Address' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expressionlanguage = '' body = '' />

</UML:Attribute.initialValue>

Page: 2

Page 104: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:StructuralFeature.type><Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String -->

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><!-- ==================== policy::com::chubb::demoPolicy::domain::Coverage [Class] ===

================= --><UML:Class xmi.id = 'S.7'

name = 'Coverage' visibility = 'public' isSpecification = 'false'isRoot = 'true' isLeaf = 'true' isAbstract = 'false'isActive = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:ModelElement.namespace><UML:Classifier.feature>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Coverage.Name [Attribute] ==================== -->

<UML:Attribute xmi.id = 'S.8'name = 'Name' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expressionlanguage = '' body = '' />

</UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String --></UML:StructuralFeature.type>

</UML:Attribute><!-- ==================== policy::com::chubb::demoPolicy::domain::Coverage.Limit [

Attribute] ==================== -->

Page: 3

Page 105: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:Attribute xmi.id = 'S.9'name = 'Limit' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expressionlanguage = '' body = '' />

</UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String --></UML:StructuralFeature.type>

</UML:Attribute></UML:Classifier.feature>

</UML:Class><!-- ==================== policy::com::chubb::demoPolicy::domain::Location [Class] ===

================= --><UML:Class xmi.id = 'S.10'

name = 'Location' visibility = 'public' isSpecification = 'false'isRoot = 'true' isLeaf = 'true' isAbstract = 'false'isActive = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:ModelElement.namespace><UML:Classifier.feature>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Location.State [Attribute] ==================== -->

<UML:Attribute xmi.id = 'S.11'name = 'State' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity >

Page: 4

Page 106: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:Multiplicity.range><UML:MultiplicityRange

lower = '1' upper = '1' /></UML:Multiplicity.range>

</UML:Multiplicity></UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expressionlanguage = '' body = '' />

</UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String --></UML:StructuralFeature.type>

</UML:Attribute></UML:Classifier.feature>

</UML:Class><!-- ==================== policy::com::chubb::demoPolicy::domain::Policy [Class] =====

=============== --><UML:Class xmi.id = 'S.12'

name = 'Policy' visibility = 'public' isSpecification = 'false'isRoot = 'true' isLeaf = 'true' isAbstract = 'false'isActive = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:ModelElement.namespace><UML:Classifier.feature>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Policy.Number [Attribute] ==================== -->

<UML:Attribute xmi.id = 'S.13'name = 'Number' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:StructuralFeature.multiplicity>

Page: 5

Page 107: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:Attribute.initialValue><UML:Expression

language = '' body = '' /></UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String --></UML:StructuralFeature.type>

</UML:Attribute></UML:Classifier.feature>

</UML:Class><!-- ==================== policy::com::chubb::demoPolicy::domain::Transaction [Class]

==================== --><UML:Class xmi.id = 'S.14'

name = 'Transaction' visibility = 'public' isSpecification = 'false'isRoot = 'true' isLeaf = 'true' isAbstract = 'false'isActive = 'false' ><UML:ModelElement.namespace>

<Foundation.Core.Namespace xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:ModelElement.namespace><UML:Classifier.feature>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Transaction.IssueDate [Attribute] ==================== -->

<UML:Attribute xmi.id = 'S.15'name = 'IssueDate' visibility = 'public' isSpecification = 'false'ownerScope = 'instance'changeability = 'changeable' targetScope = 'instance' ><UML:StructuralFeature.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:StructuralFeature.multiplicity><UML:Attribute.initialValue>

<UML:Expressionlanguage = '' body = '' />

</UML:Attribute.initialValue><UML:StructuralFeature.type>

<Foundation.Core.Classifier xmi.idref = 'G.13'/> <!-- String -->

Page: 6

Page 108: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:StructuralFeature.type></UML:Attribute>

</UML:Classifier.feature></UML:Class><!-- ==================== policy::com::chubb::demoPolicy::domain::Coverages{3D7D00EF0170}

[Association] ==================== --><UML:Association xmi.id = 'G.1'

name = 'Coverages{3D7D00EF0170}' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:Association.connection>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Coverages{3D7D00EF0170} [AssociationEnd] ==================== -->

<UML:AssociationEnd xmi.id = 'G.2'name = 'Coverage' visibility = 'public' isSpecification = 'false'isNavigable = 'true' ordering = 'unordered' aggregation = 'none' targetScope = 'ins

tance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '0' upper = '-1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage -->

</UML:AssociationEnd.type></UML:AssociationEnd><!-- ==================== policy::com::chubb::demoPolicy::domain::Coverages{3D7D00EF0

170} [AssociationEnd] ==================== --><UML:AssociationEnd xmi.id = 'G.3'

name = '' visibility = 'public' isSpecification = 'false'isNavigable = 'false' ordering = 'unordered' aggregation = 'aggregate' targetScope

= 'instance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range>

Page: 7

Page 109: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:Multiplicity></UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building -->

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><!-- ==================== policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF017A}

[Association] ==================== --><UML:Association xmi.id = 'G.4'

name = 'Buildings{3D7D00EF017A}' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:Association.connection>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF017A} [AssociationEnd] ==================== -->

<UML:AssociationEnd xmi.id = 'G.5'name = 'Building' visibility = 'public' isSpecification = 'false'isNavigable = 'true' ordering = 'unordered' aggregation = 'none' targetScope = 'ins

tance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '0' upper = '-1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building -->

</UML:AssociationEnd.type></UML:AssociationEnd><!-- ==================== policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF0

17A} [AssociationEnd] ==================== --><UML:AssociationEnd xmi.id = 'G.6'

name = '' visibility = 'public' isSpecification = 'false'isNavigable = 'false' ordering = 'unordered' aggregation = 'aggregate' targetScope

= 'instance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

Page: 8

Page 110: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location -->

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><!-- ==================== policy::com::chubb::demoPolicy::domain::Locations{3D7D00EF01A2}

[Association] ==================== --><UML:Association xmi.id = 'G.10'

name = 'Locations{3D7D00EF01A2}' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:Association.connection>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Locations{3D7D00EF01A2} [AssociationEnd] ==================== -->

<UML:AssociationEnd xmi.id = 'G.11'name = 'Location' visibility = 'public' isSpecification = 'false'isNavigable = 'true' ordering = 'unordered' aggregation = 'none' targetScope = 'ins

tance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '0' upper = '-1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location -->

</UML:AssociationEnd.type></UML:AssociationEnd><!-- ==================== policy::com::chubb::demoPolicy::domain::Locations{3D7D00EF0

1A2} [AssociationEnd] ==================== -->

Page: 9

Page 111: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:AssociationEnd xmi.id = 'G.12'name = '' visibility = 'public' isSpecification = 'false'isNavigable = 'false' ordering = 'unordered' aggregation = 'aggregate' targetScope

= 'instance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Transaction -->

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association><!-- ==================== policy::com::chubb::demoPolicy::domain::Transactions{3D7D00EF01

8E} [Association] ==================== --><UML:Association xmi.id = 'G.7'

name = 'Transactions{3D7D00EF018E}' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' ><UML:Association.connection>

<!-- ==================== policy::com::chubb::demoPolicy::domain::Transactions{3D7D00EF018E} [AssociationEnd] ==================== -->

<UML:AssociationEnd xmi.id = 'G.8'name = 'Transaction' visibility = 'public' isSpecification = 'false'isNavigable = 'true' ordering = 'unordered' aggregation = 'none' targetScope = 'ins

tance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '0' upper = '-1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPo

Page: 10

Page 112: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

licy::domain::Transaction --></UML:AssociationEnd.type>

</UML:AssociationEnd><!-- ==================== policy::com::chubb::demoPolicy::domain::Transactions{3D7D00

EF018E} [AssociationEnd] ==================== --><UML:AssociationEnd xmi.id = 'G.9'

name = '' visibility = 'public' isSpecification = 'false'isNavigable = 'false' ordering = 'unordered' aggregation = 'aggregate' targetScope

= 'instance' changeability = 'changeable' ><UML:AssociationEnd.multiplicity>

<UML:Multiplicity ><UML:Multiplicity.range>

<UML:MultiplicityRangelower = '1' upper = '1' />

</UML:Multiplicity.range></UML:Multiplicity>

</UML:AssociationEnd.multiplicity><UML:AssociationEnd.type>

<Foundation.Core.Classifier xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -->

</UML:AssociationEnd.type></UML:AssociationEnd>

</UML:Association.connection></UML:Association>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package>

</UML:Namespace.ownedElement></UML:Package><!-- ==================== String [DataType] ==================== --><UML:DataType xmi.id = 'G.13'

name = 'String' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false' />

<!-- ==================== policy.DomainStandard [Stereotype] ==================== --><UML:Stereotype xmi.id = 'XX.1'

name = 'DomainStandard' visibility = 'public' isSpecification = 'false'isRoot = 'false' isLeaf = 'false' isAbstract = 'false'icon = '' baseClass = 'Class' >

Page: 11

Page 113: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:Stereotype.extendedElement><Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Build

ing --><Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Cover

age --><Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Loca

tion --><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Poli

cy --><Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Tran

saction --></UML:Stereotype.extendedElement>

</UML:Stereotype></UML:Namespace.ownedElement>

</UML:Model><UML:TaggedValue xmi.id = 'XX.3'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.4'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.5'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.6'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAB773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue>

Page: 12

Page 114: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:TaggedValue xmi.id = 'XX.7'tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.8'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T02a240f1-8844-11d6-80ad-0010a4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.9'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.10'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.11'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.12'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.13'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' >

Page: 13

Page 115: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.14'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.15'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.16'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.Td5e466c0-a87a-11d6-80e0-0010a4896034' value = '2' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.17'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.18'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.Tfa6db1c0-a961-11d6-80e2-444553544200' value = '1' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.19'

tag = 'persistence' value = 'transient' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building

Page: 14

Page 116: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.20'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.21'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.22'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.23'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.24'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.25'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement>

Page: 15

Page 117: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Building-->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.26'

tag = 'RationalRose:Tool#1' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.27'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.6'/> <!-- policy::com::chubb::demoPolicy::domain::Building.

Address --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.28'

tag = 'persistence' value = 'transient' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage-->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.29'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.30'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.31'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' >

Page: 16

Page 118: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.32'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.33'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.34'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.35'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.36'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.8'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage.

Name --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.37'

Page: 17

Page 119: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.38'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.9'/> <!-- policy::com::chubb::demoPolicy::domain::Coverage.

Limit --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.39'

tag = 'persistence' value = 'transient' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.40'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.41'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.42'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.43'

Page: 18

Page 120: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.44'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.45'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Location

--></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.46'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.47'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.11'/> <!-- policy::com::chubb::demoPolicy::domain::Location

.State --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.48'

tag = 'persistence' value = 'transient' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -->

</UML:TaggedValue.modelElement>

Page: 19

Page 121: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.49'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.50'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

-></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.51'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.52'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T5da6db90-887c-11d6-80ae-0010a4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

-></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.53'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.54'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAA773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

->

Page: 20

Page 122: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.55'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.56'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAE773311D6809D0010A4896034' value = 'Policy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

-></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.57'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.58'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

-></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.59'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.60'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Policy -

Page: 21

Page 123: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

-></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.61'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.62'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.13'/> <!-- policy::com::chubb::demoPolicy::domain::Policy.N

umber --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.63'

tag = 'persistence' value = 'transient' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Transaction -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.64'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.65'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Transact

ion --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.66'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

Page: 22

Page 124: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.67'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB73773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Transact

ion --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.68'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.69'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.L64cc8d50-7ffe-11d6-80a6-444553544200.I1206DB54773311D6809D0010A4896034.T1206DB74773311D6809D0010A4896034' value = 'DemoPolicy' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Transact

ion --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.70'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.71'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'S.15'/> <!-- policy::com::chubb::demoPolicy::domain::Transact

ion.IssueDate --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.72'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' >

Page: 23

Page 125: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy -->

</UML:TaggedValue.modelElement></UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.73'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.2'/> <!-- policy::com::chubb::demoPolicy::domain::Coverages

{3D7D00EF0170} --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.74'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.75'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.5'/> <!-- policy::com::chubb::demoPolicy::domain::Buildings

{3D7D00EF017A} --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.76'

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.77'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.11'/> <!-- policy::com::chubb::demoPolicy::domain::Location

s{3D7D00EF01A2} --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.78'

Page: 24

Page 126: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

tag = 'RationalRose:Tool#2' value = 'Gen-it Architect 2.5' ><UML:TaggedValue.modelElement>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:TaggedValue xmi.id = 'XX.79'

tag = 'RationalRose$Gen-it Architect 2.5:Codagen.Le2909320-7fe6-11d6-80a6-444553544200.I1206DB60773311D6809D0010A4896034.T1206DBAD773311D6809D0010A4896034' value = 'True' >

<UML:TaggedValue.modelElement><Foundation.Core.ModelElement xmi.idref = 'G.8'/> <!-- policy::com::chubb::demoPolicy::domain::Transacti

ons{3D7D00EF018E} --></UML:TaggedValue.modelElement>

</UML:TaggedValue><UML:Diagram xmi.id = 'S.18'

name = 'Main' toolName = 'Rational Rose 98' diagramType = 'ClassDiagram' style = '' ><UML:Diagram.owner>

<Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain --></UML:Diagram.owner><UML:Diagram.element>

<UML:DiagramElement xmi.id = 'XX.80'geometry = ' 784, 144, 334, 190,' style = 'Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,F

ont.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,FillColor.Blue= 204,FillColor.Green= 255,FillColor.Red= 255,FillColor.Transparent=1,AutomaticResize=1,ShowAllAttributes=1,ShowAllOperations=1,ShowOperationSignature=0,SuppressAttributes=0,SuppressOperations=1,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'S.12'/> <!-- policy::com::chubb::demoPolicy::domain::Poli

cy --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.81'

geometry = ' 800, 944, 334, 190,' style = 'Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,FillColor.Blue= 204,FillColor.Green= 255,FillColor.Red= 255,FillColor.Transparent=1,AutomaticResize=1,ShowAllAttributes=1,ShowAllOperations=1,ShowOperationSignature=0,SuppressAttributes=0,SuppressOperations=1,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'S.14'/> <!-- policy::com::chubb::demoPolicy::domain::Tran

saction --></UML:PresentationElement.subject>

</UML:DiagramElement>

Page: 25

Page 127: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

<UML:DiagramElement xmi.id = 'XX.82'geometry = ' 791, 629, 63, 504,' style = 'Association:Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceN

ame=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'G.7'/> <!-- policy::com::chubb::demoPolicy::domain::Trans

actions{3D7D00EF018E} --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.83'

geometry = ' 789, 516, 58, 279,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.9'/> <!-- policy::com::chubb::demoPolicy::domain::Transactions{3D7D00EF018E} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.84'

geometry = ' 793, 741, 59, 279,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.8'/> <!-- policy::com::chubb::demoPolicy::domain::Transactions{3D7D00EF018E} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.85'

geometry = ' 800, 1872, 334, 190,' style = 'Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,FillColor.Blue= 204,FillColor.Green= 255,FillColor.Red= 255,FillColor.Transparent=1,AutomaticResize=1,ShowAllAttributes=1,ShowAllOperations=1,ShowOperationSignature=0,SuppressAttributes=0,SuppressOperations=1,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'S.10'/> <!-- policy::com::chubb::demoPolicy::domain::Loca

tion --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.86'

geometry = ' 800, 1492, 54, 631,' style = 'Association:Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'G.10'/> <!-- policy::com::chubb::demoPolicy::domain::Loca

tions{3D7D00EF01A2} -->

Page: 26

Page 128: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.87'

geometry = ' 800, 1348, 54, 342,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.12'/> <!-- policy::com::chubb::demoPolicy::domain::Locations{3D7D00EF01A2} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.88'

geometry = ' 800, 1636, 54, 343,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.11'/> <!-- policy::com::chubb::demoPolicy::domain::Locations{3D7D00EF01A2} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.89'

geometry = ' 736, 3456, 334, 190,' style = 'Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,FillColor.Blue= 204,FillColor.Green= 255,FillColor.Red= 255,FillColor.Transparent=1,AutomaticResize=1,ShowAllAttributes=1,ShowAllOperations=1,ShowOperationSignature=0,SuppressAttributes=0,SuppressOperations=1,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'S.7'/> <!-- policy::com::chubb::demoPolicy::domain::Cover

age --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.90'

geometry = ' 752, 2688, 334, 190,' style = 'Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,FillColor.Blue= 204,FillColor.Green= 255,FillColor.Red= 255,FillColor.Transparent=1,AutomaticResize=1,ShowAllAttributes=1,ShowAllOperations=1,ShowOperationSignature=0,SuppressAttributes=0,SuppressOperations=1,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'S.5'/> <!-- policy::com::chubb::demoPolicy::domain::Build

ing --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.91'

geometry = ' 766, 2365, 79, 520,' style = 'Association:Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,L

Page: 27

Page 129: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

ineColor.Green= 0,LineColor.Red= 153,' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.4'/> <!-- policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF017A} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.92'

geometry = ' 772, 2248, 67, 287,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.6'/> <!-- policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF017A} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.93'

geometry = ' 760, 2481, 66, 287,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.5'/> <!-- policy::com::chubb::demoPolicy::domain::Buildings{3D7D00EF017A} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.94'

geometry = ' 739, 3156, 63, 471,' style = 'Association:Font.Blue= 0,Font.Green= 0,Font.Red= 0,Font.FaceName=Arial,Font.Size= 10,Font.Bold=0,Font.Italic=0,Font.Strikethrough=0,Font.Underline=0,LineColor.Blue= 51,LineColor.Green= 0,LineColor.Red= 153,' >

<UML:PresentationElement.subject><Foundation.Core.ModelElement xmi.idref = 'G.1'/> <!-- policy::com::chubb::demoPolicy::domain::Cover

ages{3D7D00EF0170} --></UML:PresentationElement.subject>

</UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.95'

geometry = ' 741, 3052, 59, 262,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.3'/> <!-- policy::com::chubb::demoPolicy::domain::Coverages{3D7D00EF0170} -->

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.96'

geometry = ' 737, 3260, 58, 263,' style = 'Role' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'G.2'/> <!-- policy::com::chubb::demoPolicy::domain::Coverages{3D7D00EF0170} -->

Page: 28

Page 130: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample exported xmi.xml

</UML:PresentationElement.subject></UML:DiagramElement><UML:DiagramElement xmi.id = 'XX.97'

geometry = ' 1392, 432, 342, 180,' style = 'Category' ><UML:PresentationElement.subject>

<Foundation.Core.ModelElement xmi.idref = 'S.4'/> <!-- policy::com::chubb::demoPolicy::domain --></UML:PresentationElement.subject>

</UML:DiagramElement></UML:Diagram.element>

</UML:Diagram><UML:Diagram xmi.id = 'S.19'

name = 'Main' toolName = 'Rational Rose 98' diagramType = 'ClassDiagram' style = '' ><UML:Diagram.owner>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:Diagram.owner>

</UML:Diagram><UML:Diagram xmi.id = 'S.20'

name = 'Main' toolName = 'Rational Rose 98' diagramType = 'ModuleDiagram' style = '' ><UML:Diagram.owner>

<Foundation.Core.ModelElement xmi.idref = 'G.0'/> <!-- policy --></UML:Diagram.owner>

</UML:Diagram></XMI.content></XMI>

Page: 29

Page 131: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\combine exported xmi with generated xmi.xsl

<?xml version="1.0" encoding="utf-8"?><!--

combine exported xmi with generated xmi.xsl(c) Copyright 2002 Chubb and Son, Inc.

--><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML="//org.omg/UML/1.3">

<xsl:output encoding="UTF-8" method="xml" indent="yes"/>

<xsl:param name="inputXMIDocument"/><xsl:param name="modelConfiguration"/><xsl:variable name="packageQualifier"><xsl:value-of select="document($modelConfiguration)/recordSet/javaPackageName"

/></xsl:variable>

<xsl:variable name="packageName">com.chubb.<xsl:value-of select="$packageQualifier"/>.domain</xsl:variable>

<xsl:template match="/"><xsl:apply-templates/>

</xsl:template>

<xsl:template match="UML:Diagram"><xsl:apply-templates select="document($inputXMIDocument)//UML:Diagram" mode="copy"/>

</xsl:template>

<xsl:template match="*"><xsl:copy>

<xsl:apply-templates select="@*"/><xsl:apply-templates select="node()"/>

</xsl:copy></xsl:template>

<xsl:template match="@*"><xsl:copy>

<xsl:value-of select="."/></xsl:copy>

</xsl:template>

<xsl:template match="*" mode="copy"><xsl:copy>

<xsl:apply-templates select="@*" mode="copy"/><xsl:apply-templates select="node()" mode="copy"/>

</xsl:copy></xsl:template>

<xsl:template match="@*" mode="copy"><xsl:copy>

<xsl:value-of select="."/>

Page: 1

Page 132: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\combine exported xmi with generated xmi.xsl

</xsl:copy></xsl:template>

<xsl:template match="UML:Diagram" mode="copy"><xsl:copy>

<xsl:apply-templates select="@*" mode="copy"/><xsl:apply-templates select="node()" mode="copy"/>

</xsl:copy></xsl:template>

<xsl:template match="UML:Diagram.owner/Foundation.Core.ModelElement" mode="copy"><xsl:variable name="idref" select="@xmi.idref"/><xsl:copy>

<xsl:attribute name="xmi.idref"><xsl:call-template name="getGeneratedIdFor"><xsl:with-param name="exportedId" select="@xmi.idref"/></xsl:call-template></xsl:attribute>

</xsl:copy></xsl:template>

<xsl:template match="UML:PresentationElement.subject/Foundation.Core.ModelElement" mode="copy"><xsl:variable name="idref" select="@xmi.idref"/><xsl:copy>

<xsl:attribute name="xmi.idref"><xsl:call-template name="getGeneratedIdFor"><xsl:with-param name="exportedId" select="@xmi.idref"/></xsl:call-template></xsl:attribute>

</xsl:copy></xsl:template>

<xsl:template name="getGeneratedIdFor"><xsl:param name="exportedId"/><xsl:variable name="exportedElement" select="//*[@xmi.id = $exportedId]"/><xsl:choose>

<xsl:when test="name($exportedElement) = 'UML:Class'"><xsl:call-template name="getGeneratedIdForClass">

<xsl:with-param name="exportedElement" select="$exportedElement"/></xsl:call-template>

</xsl:when><xsl:when test="name($exportedElement) = 'UML:Package'">

<xsl:call-template name="getGeneratedIdForPackage"><xsl:with-param name="exportedElement" select="$exportedElement"/>

</xsl:call-template></xsl:when><xsl:when test="name($exportedElement) = 'UML:Association'">

<xsl:call-template name="getGeneratedIdForAssociation"><xsl:with-param name="exportedElement" select="$exportedElement"/>

</xsl:call-template></xsl:when><xsl:when test="name($exportedElement) = 'UML:AssociationEnd'">

<xsl:call-template name="getGeneratedIdForAssociationEnd">

Page: 2

Page 133: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\combine exported xmi with generated xmi.xsl

<xsl:with-param name="exportedElement" select="$exportedElement"/></xsl:call-template>

</xsl:when><xsl:when test="name($exportedElement) = 'UML:Generalization'">

<xsl:call-template name="getGeneratedIdForGeneralization"><xsl:with-param name="exportedElement" select="$exportedElement"/>

</xsl:call-template></xsl:when><xsl:when test="name($exportedElement) = 'UML:Model'">G.root</xsl:when><xsl:otherwise>

***Not Found*** <xsl:value-of select="@xmi.idref"/>=<xsl:value-of select="//*[@xmi.id = $exportedId]/@name"/>

</xsl:otherwise></xsl:choose>

</xsl:template>

<xsl:template name="getGeneratedIdForClass"><xsl:param name="exportedElement"/><xsl:value-of select="concat('class.', $packageName, '.', $exportedElement/@name)"/>

</xsl:template>

<xsl:template name="getGeneratedIdForPackage"><xsl:param name="exportedElement"/><xsl:value-of select="concat('package.', $packageName)"/>

</xsl:template>

<xsl:template name="getGeneratedIdForAssociation"><xsl:param name="exportedElement"/><xsl:variable name="fullAssociationName">

<xsl:call-template name="getFullAssociationNameFor"><xsl:with-param name="associationElement" select="$exportedElement"/>

</xsl:call-template></xsl:variable><xsl:value-of select="concat('association.', $packageName, '.', $fullAssociationName)"/>

</xsl:template>

<xsl:template name="getGeneratedIdForAssociationEnd"><xsl:param name="exportedElement"/><xsl:variable name="fullAssociationName">

<xsl:call-template name="getFullAssociationNameFor"><xsl:with-param name="associationElement" select="$exportedElement/../.."/>

</xsl:call-template></xsl:variable><xsl:value-of select="concat('role.', $packageName, '.', $fullAssociationName, '.', $exportedElement/@name)"/>

</xsl:template>

<xsl:template name="getFullAssociationNameFor">

Page: 3

Page 134: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\combine exported xmi with generated xmi.xsl

<xsl:param name="associationElement"/><xsl:variable name="associationName" select="substring-before($associationElement/@name, '{')"/><xsl:variable name="sourceReference" select="$associationElement/UML:Association.connection/UML:AssociationEnd[2

]/UML:AssociationEnd.type/Foundation.Core.Classifier/@xmi.idref"/><xsl:variable name="targetName" select="$associationElement/UML:Association.connection/UML:AssociationEnd[1]/@na

me"/><xsl:variable name="sourceType" select="//UML:Class[@xmi.id = $sourceReference]/@name"/><xsl:value-of select="concat($associationName, '.', $sourceType, '.', $targetName)"/>

</xsl:template>

<xsl:template name="getGeneratedIdForGeneralization"><xsl:param name="exportedElement"/><xsl:variable name="superclassRef" select="$exportedElement/UML:Generalization.parent/Foundation.Core.Generaliza

bleElement/@xmi.idref"/><xsl:variable name="subclassRef" select="$exportedElement/UML:Generalization.child/Foundation.Core.Generalizable

Element/@xmi.idref"/><xsl:variable name="superclassName" select="//UML:Class[@xmi.id = $superclassRef]/@name"/><xsl:variable name="subclassName" select="//UML:Class[@xmi.id = $subclassRef]/@name"/><xsl:value-of select="concat('inheritance.', $packageName, '.', $superclassName, '.', $subclassName)"/>

</xsl:template>

</xsl:stylesheet>

Page: 4

Page 135: Metadata Alchemy with MDA - Object Management …...1 Metadata Alchemy with MDA Turning Metadata into Integration Gold using MDA Ken Sayers - Chubb and Son, Inc. OMG UML Workshop Oct.

file://f:\mda\uml workshop\sample model configuration.xml

<?xml version="1.0" encoding="UTF-16"?><recordSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:UML="//org.omg/UML/1.3">

<homePrefix>DemoPolicy</homePrefix><javaPackageName>demoPolicy</javaPackageName>

</recordSet>

Page: 1