Changes for page Exercises
Last modified by Carlijn Kokkeler on 2022/10/19 13:32
From version 19.1
edited by eMagiz
on 2022/10/19 12:51
on 2022/10/19 12:51
Change comment:
There is no comment for this version
To version 12.1
edited by Carlijn Kokkeler
on 2022/10/19 11:41
on 2022/10/19 11:41
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. eMagiz1 +XWiki.CarlijnKokkeler - Content
-
... ... @@ -9,242 +9,32 @@ 9 9 10 10 == 2. Key concepts == 11 11 12 -This microlearning centers around understanding the concept data modeling in design. Please note the following items for completing this exercise 13 -* Ensure to make a small Capture phase that draws the system CAPE and a message type "TransportOrder" 14 -* The system CAPE provides messages as JSON 12 +This microlearning centers around understanding the concept data modeling in design. 15 15 16 16 == 3. CDM, CDM & system message, message mapping == 17 17 By following the steps below, you should gain a better understanding of the differences between CDM, CDM messages, and system messages. 18 18 19 19 * Creating a CDM 20 - **Please import the file Order.xsd in your CDM.The code for this file can be found in section 4. Code for xsd files.18 + Please import the file Order.xsd in your CDM. 21 21 * Creating a CDM message 22 - ** Now, go to your CDM message and select Order as root entity. 23 - ** Add all other entities and attributes from Order.xsd, which were imported into the CDM, to your CDM message definition. 20 + Now, go to your CDM message and select Order as root entity. Add all other entities and attributes from Order.xsd, which were imported into the CDM, to your CDM message definition. 24 24 * Creating a system message 25 - ** In one of your System messages, import the file TransportOrder.xsd. The code for this file can be found at the bottom of this page. 26 -* Creating a CDM message 27 - ** Select CreateOrder as root entity and add all other entities and attributes to your system definition. 28 -* Complete message mapping 29 - ** Now that you have completed these steps, go to Message mapping and complete the mapping. Please add the following to the Design mapping 30 - *** Ensure to properly map the address type 31 - *** Ensure to properly document mappings where required 32 -* Update the CDM and CDM message and remove the housenumber attribute 33 - ** Update the mapping accordingly 34 -* Update the System and CDM message to set the country attributes as enumerations 35 - ** System message uses an ISO-2 standard for country code 36 - ** CDM message uses an ISO-3 standard for country code 37 - 22 + In one of your System messages, import the file TransportOrder.xsd. Select CreateOrder as root entity and add all other entities and attributes to your system definition. 38 38 39 - Thesolutions to theseexercisescan be found [[here>>doc:Main.eMagiz Academy.UseCases.Datamodelingin Design.Exercises.Solutions.WebHome||target="blank"]].24 +== 3.4 Complete message mapping == 40 40 41 -== 4. Code for xsd files == 42 -=== 4.1 Code for Order.xsd === 43 -{{code language="xml"}} 44 -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 45 - xmlns="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/" 46 - attributeFormDefault="unqualified" 47 - elementFormDefault="qualified" 48 - targetNamespace="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/"> 49 - <xs:complexType name="Order"> 50 - <xs:sequence> 51 - <xs:element name="Date" type="xs:dateTime"/> 52 - <xs:element name="OrderId" type="nonEmptyString"/> 53 - <xs:element name="Customer" type="Customer"/> 54 - <xs:element name="PickupAddress" type="PickupAddress"/> 55 - <xs:element name="DeliveryAddress" type="DeliveryAddress"/> 56 - <xs:element maxOccurs="unbounded" name="OrderLine" type="OrderLine"/> 57 - </xs:sequence> 58 - </xs:complexType> 59 - <xs:complexType name="Customer"> 60 - <xs:sequence> 61 - <xs:element name="Name" type="nonEmptyString"/> 62 - <xs:element name="Email" type="nonEmptyString"/> 63 - </xs:sequence> 64 - </xs:complexType> 65 - <xs:complexType name="PickupAddress"> 66 - <xs:sequence> 67 - <xs:element name="Name" type="nonEmptyString"/> 68 - <xs:element name="Street" type="nonEmptyString"/> 69 - <xs:element name="StreetNumber" type="nonEmptyString"/> 70 - <xs:element name="PostalCode" type="nonEmptyString"/> 71 - <xs:element name="City" type="nonEmptyString"/> 72 - <xs:element name="Country" type="nonEmptyString"/> 73 - </xs:sequence> 74 - </xs:complexType> 75 - <xs:complexType name="DeliveryAddress"> 76 - <xs:sequence> 77 - <xs:element name="Name" type="nonEmptyString"/> 78 - <xs:element name="Street" type="nonEmptyString"/> 79 - <xs:element name="StreetNumber" type="nonEmptyString"/> 80 - <xs:element name="PostalCode" type="nonEmptyString"/> 81 - <xs:element name="City" type="nonEmptyString"/> 82 - <xs:element name="Country" type="nonEmptyString"/> 83 - </xs:sequence> 84 - </xs:complexType> 85 - <xs:complexType name="OrderLine"> 86 - <xs:sequence> 87 - <xs:element name="PackageUnit" type="nonEmptyString"/> 88 - <xs:element name="Quantity" type="xs:long"/> 89 - <xs:element name="Description" type="nonEmptyString"/> 90 - <xs:element name="Weight" type="xs:decimal"/> 91 - </xs:sequence> 92 - </xs:complexType> 93 - <xs:simpleType name="nonEmptyString"> 94 - <xs:restriction base="xs:string"> 95 - <xs:minLength value="1"/> 96 - </xs:restriction> 97 - </xs:simpleType> 98 - <xs:element name="Order" type="Order"/> 99 -</xs:schema> 100 -{{/code}} 26 +Now that you have completed these steps, go to Message mapping and complete the mapping. 101 101 102 -=== 4.2 Code for TransportOrder.xsd === 103 -{{code language="xml"}} 104 -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 105 - xmlns="https://transportinc.nl/ns/tms/1.0/" 106 - attributeFormDefault="unqualified" 107 - elementFormDefault="unqualified" 108 - targetNamespace="https://transportinc.nl/ns/tms/1.0/"> 109 - <xs:complexType name="CreateOrder"> 110 - <xs:sequence> 111 - <xs:element name="Order" type="Order"/> 112 - </xs:sequence> 113 - </xs:complexType> 114 - <xs:complexType name="Order"> 115 - <xs:sequence> 116 - <xs:element name="OrderID"> 117 - <xs:simpleType> 118 - <xs:restriction base="xs:string"> 119 - <xs:maxLength value="200"/> 120 - </xs:restriction> 121 - </xs:simpleType> 122 - </xs:element> 123 - <xs:element name="OrderDate" type="xs:dateTime"/> 124 - <xs:element minOccurs="0" name="Order_Customer" type="Order_Customer"/> 125 - <xs:element name="Address" type="Address"/> 126 - <xs:element name="PartnerInfo_Order" type="PartnerInfo_Order"/> 127 - <xs:element name="OrderLine_Order" type="OrderLine_Order"/> 128 - </xs:sequence> 129 - </xs:complexType> 130 - <xs:complexType name="Order_Customer"> 131 - <xs:sequence> 132 - <xs:element minOccurs="0" name="Customer" type="Customer"/> 133 - </xs:sequence> 134 - </xs:complexType> 135 - <xs:complexType name="Customer"> 136 - <xs:sequence> 137 - <xs:element name="Name"> 138 - <xs:simpleType> 139 - <xs:restriction base="xs:string"> 140 - <xs:maxLength value="200"/> 141 - </xs:restriction> 142 - </xs:simpleType> 143 - </xs:element> 144 - <xs:element minOccurs="0" name="Contact_Customer" type="Contact_Customer"/> 145 - </xs:sequence> 146 - </xs:complexType> 147 - <xs:complexType name="Contact_Customer"> 148 - <xs:sequence> 149 - <xs:element maxOccurs="unbounded" 150 - minOccurs="0" 151 - name="Contact" 152 - type="Contact"/> 153 - </xs:sequence> 154 - </xs:complexType> 155 - <xs:complexType name="Contact"> 156 - <xs:sequence> 157 - <xs:element name="eMail"> 158 - <xs:simpleType> 159 - <xs:restriction base="xs:string"> 160 - <xs:maxLength value="200"/> 161 - </xs:restriction> 162 - </xs:simpleType> 163 - </xs:element> 164 - <xs:element minOccurs="0" name="Name"> 165 - <xs:simpleType> 166 - <xs:restriction base="xs:string"> 167 - <xs:maxLength value="200"/> 168 - </xs:restriction> 169 - </xs:simpleType> 170 - </xs:element> 171 - </xs:sequence> 172 - </xs:complexType> 173 - <xs:complexType name="Address"> 174 - <xs:sequence> 175 - <xs:element name="Type" type="nonEmptyString"/> 176 - <xs:element name="Name" type="nonEmptyString"/> 177 - <xs:element name="Street" type="nonEmptyString"/> 178 - <xs:element name="PostalCode" type="nonEmptyString"/> 179 - <xs:element name="City" type="nonEmptyString"/> 180 - <xs:element name="Country" type="nonEmptyString"/> 181 - </xs:sequence> 182 - </xs:complexType> 183 - <xs:complexType name="PartnerInfo_Order"> 184 - <xs:sequence> 185 - <xs:element maxOccurs="unbounded" 186 - minOccurs="0" 187 - name="PartnerInfo" 188 - type="PartnerInfo"/> 189 - </xs:sequence> 190 - </xs:complexType> 191 - <xs:complexType name="PartnerInfo"> 192 - <xs:sequence> 193 - <xs:element name="UUID"> 194 - <xs:simpleType> 195 - <xs:restriction base="xs:string"> 196 - <xs:maxLength value="64"/> 197 - </xs:restriction> 198 - </xs:simpleType> 199 - </xs:element> 200 - </xs:sequence> 201 - </xs:complexType> 202 - <xs:complexType name="OrderLine_Order"> 203 - <xs:sequence> 204 - <xs:element maxOccurs="unbounded" 205 - minOccurs="0" 206 - name="OrderLine" 207 - type="OrderLine"/> 208 - </xs:sequence> 209 - </xs:complexType> 210 - <xs:complexType name="OrderLine"> 211 - <xs:sequence> 212 - <xs:element name="Description"> 213 - <xs:simpleType> 214 - <xs:restriction base="xs:string"> 215 - <xs:maxLength value="200"/> 216 - </xs:restriction> 217 - </xs:simpleType> 218 - </xs:element> 219 - <xs:element name="Quantity" type="xs:long"/> 220 - <xs:element name="Unit" type="Enum"/> 221 - <xs:element minOccurs="0" name="Weight" type="xs:double"/> 222 - </xs:sequence> 223 - </xs:complexType> 224 - <xs:simpleType name="nonEmptyString"> 225 - <xs:restriction base="xs:string"> 226 - <xs:minLength value="1"/> 227 - </xs:restriction> 228 - </xs:simpleType> 229 - <xs:simpleType name="Enum"> 230 - <xs:restriction base="xs:string"> 231 - <xs:enumeration value="COLLI"/> 232 - <xs:enumeration value="EURO"/> 233 - <xs:enumeration value="BOX"/> 234 - <xs:enumeration value="SACK"/> 235 - </xs:restriction> 236 - </xs:simpleType> 237 - <xs:element name="CreateOrder" type="CreateOrder"/> 238 -</xs:schema> 239 -{{/code}} 240 -== 5. Key takeaways == 28 +The solutions to these exercises can be found [[here>>doc:Main.eMagiz Academy.Use Cases.Data modeling in Design.Exercises.Solutions.WebHome||target="blank"]]. 241 241 30 +== 4. Key takeaways == 31 + 242 242 * The CDM holds all entities and attributes that are relevant within the context of your complete integration landscape. 243 243 * The CDM message is tailor-made for a specific piece of data and only holds the entities and attributes relevant for that piece of data. 244 244 * A system message is specific to a system. 245 245 246 246 247 -== 6. Suggested Additional Readings ==37 +== 5. Suggested Additional Readings == 248 248 249 249 If you are interested in this topic and want more information on it please read the help text provided by eMagiz. 250 250