View
5
Download
0
Category
Preview:
Citation preview
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
Recommended