metadata alchemy with mda - object management …...1 metadata alchemy with mda turning metadata...

Post on 09-Jul-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

23© Copyright 2002 Chubb and Son, Inc.

Forward EngineerUML to Java

GenerationTool

GenerationTool

ArchitectureTemplates

ArchitectureTemplates

UMLUML

DevoTool

DevoTool

JavaJava

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

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)

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)

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

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

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

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

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

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

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

Page: 4

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

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

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

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

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

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

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

</xsd:schema>

Page: 4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</model>

Page: 10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related