Changes for page Exercises

Last modified by Carlijn Kokkeler on 2022/10/19 13:32

From version 10.1
edited by Carlijn Kokkeler
on 2022/10/19 11:39
Change comment: There is no comment for this version
To version 16.1
edited by Carlijn Kokkeler
on 2022/10/19 12:30
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -14,31 +14,227 @@
14 14  == 3. CDM, CDM & system message, message mapping ==
15 15  By following the steps below, you should gain a better understanding of the differences between CDM, CDM messages, and system messages.
16 16  
17 -== 3.1 Creating a CDM ==
18 -
19 19  * Creating a CDM
20 - Please import the file Order.xsd in your CDM.
18 + Please import the file Order.xsd in your CDM. The code for this file can be found in section 4. Code for xsd files.
19 +* Creating a CDM message
20 + Now, go to your CDM message and select Order as root entity.
21 + Add all other entities and attributes from Order.xsd, which were imported into the CDM, to your CDM message definition.
22 +* Creating a system message
23 + 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.
24 +* Creating a CDM message
25 + Select CreateOrder as root entity and add all other entities and attributes to your system definition.
26 +* Complete message mapping
27 + Now that you have completed these steps, go to Message mapping and complete the mapping.
21 21  
22 -== 3.2 Creating a CDM message ==
23 -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 -
25 -== 3.3 Creating a system message ==
26 -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.
27 -
28 -== 3.4 Complete message mapping ==
29 -
30 -Now that you have completed these steps, go to Message mapping and complete the mapping.
31 -
32 32  The solutions to these exercises can be found [[here>>doc:Main.eMagiz Academy.Use Cases.Data modeling in Design.Exercises.Solutions.WebHome||target="blank"]].
33 33  
34 -== 4. Key takeaways ==
31 +== 4. Code for xsd files ==
32 +Code for Order.xsd:
33 +{{code language="xml"}}
34 +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
35 + xmlns="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/"
36 + attributeFormDefault="unqualified"
37 + elementFormDefault="qualified"
38 + targetNamespace="http://www.carlijnsplatform.com/ns/capetms/cdm/1.0/">
39 + <xs:complexType name="Order">
40 + <xs:sequence>
41 + <xs:element name="Date" type="xs:dateTime"/>
42 + <xs:element name="OrderId" type="nonEmptyString"/>
43 + <xs:element name="Customer" type="Customer"/>
44 + <xs:element name="PickupAddress" type="PickupAddress"/>
45 + <xs:element name="DeliveryAddress" type="DeliveryAddress"/>
46 + <xs:element maxOccurs="unbounded" name="OrderLine" type="OrderLine"/>
47 + </xs:sequence>
48 + </xs:complexType>
49 + <xs:complexType name="Customer">
50 + <xs:sequence>
51 + <xs:element name="Name" type="nonEmptyString"/>
52 + <xs:element name="Email" type="nonEmptyString"/>
53 + </xs:sequence>
54 + </xs:complexType>
55 + <xs:complexType name="PickupAddress">
56 + <xs:sequence>
57 + <xs:element name="Name" type="nonEmptyString"/>
58 + <xs:element name="Street" type="nonEmptyString"/>
59 + <xs:element name="StreetNumber" type="nonEmptyString"/>
60 + <xs:element name="PostalCode" type="nonEmptyString"/>
61 + <xs:element name="City" type="nonEmptyString"/>
62 + <xs:element name="Country" type="nonEmptyString"/>
63 + </xs:sequence>
64 + </xs:complexType>
65 + <xs:complexType name="DeliveryAddress">
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="OrderLine">
76 + <xs:sequence>
77 + <xs:element name="PackageUnit" type="nonEmptyString"/>
78 + <xs:element name="Quantity" type="xs:long"/>
79 + <xs:element name="Description" type="nonEmptyString"/>
80 + <xs:element name="Weight" type="xs:decimal"/>
81 + </xs:sequence>
82 + </xs:complexType>
83 + <xs:simpleType name="nonEmptyString">
84 + <xs:restriction base="xs:string">
85 + <xs:minLength value="1"/>
86 + </xs:restriction>
87 + </xs:simpleType>
88 + <xs:element name="Order" type="Order"/>
89 +</xs:schema>
90 +{{/code}}
35 35  
92 +Code for TransportOrder.xsd:
93 +{{code language="xml"}}
94 +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
95 + xmlns="https://transportinc.nl/ns/tms/1.0/"
96 + attributeFormDefault="unqualified"
97 + elementFormDefault="unqualified"
98 + targetNamespace="https://transportinc.nl/ns/tms/1.0/">
99 + <xs:complexType name="CreateOrder">
100 + <xs:sequence>
101 + <xs:element name="Order" type="Order"/>
102 + </xs:sequence>
103 + </xs:complexType>
104 + <xs:complexType name="Order">
105 + <xs:sequence>
106 + <xs:element name="OrderID">
107 + <xs:simpleType>
108 + <xs:restriction base="xs:string">
109 + <xs:maxLength value="200"/>
110 + </xs:restriction>
111 + </xs:simpleType>
112 + </xs:element>
113 + <xs:element name="OrderDate" type="xs:dateTime"/>
114 + <xs:element minOccurs="0" name="Order_Customer" type="Order_Customer"/>
115 + <xs:element name="Address" type="Address"/>
116 + <xs:element name="PartnerInfo_Order" type="PartnerInfo_Order"/>
117 + <xs:element name="OrderLine_Order" type="OrderLine_Order"/>
118 + </xs:sequence>
119 + </xs:complexType>
120 + <xs:complexType name="Order_Customer">
121 + <xs:sequence>
122 + <xs:element minOccurs="0" name="Customer" type="Customer"/>
123 + </xs:sequence>
124 + </xs:complexType>
125 + <xs:complexType name="Customer">
126 + <xs:sequence>
127 + <xs:element name="Name">
128 + <xs:simpleType>
129 + <xs:restriction base="xs:string">
130 + <xs:maxLength value="200"/>
131 + </xs:restriction>
132 + </xs:simpleType>
133 + </xs:element>
134 + <xs:element minOccurs="0" name="Contact_Customer" type="Contact_Customer"/>
135 + </xs:sequence>
136 + </xs:complexType>
137 + <xs:complexType name="Contact_Customer">
138 + <xs:sequence>
139 + <xs:element maxOccurs="unbounded"
140 + minOccurs="0"
141 + name="Contact"
142 + type="Contact"/>
143 + </xs:sequence>
144 + </xs:complexType>
145 + <xs:complexType name="Contact">
146 + <xs:sequence>
147 + <xs:element name="eMail">
148 + <xs:simpleType>
149 + <xs:restriction base="xs:string">
150 + <xs:maxLength value="200"/>
151 + </xs:restriction>
152 + </xs:simpleType>
153 + </xs:element>
154 + <xs:element minOccurs="0" name="Name">
155 + <xs:simpleType>
156 + <xs:restriction base="xs:string">
157 + <xs:maxLength value="200"/>
158 + </xs:restriction>
159 + </xs:simpleType>
160 + </xs:element>
161 + </xs:sequence>
162 + </xs:complexType>
163 + <xs:complexType name="Address">
164 + <xs:sequence>
165 + <xs:element name="Type" type="nonEmptyString"/>
166 + <xs:element name="Name" type="nonEmptyString"/>
167 + <xs:element name="Street" type="nonEmptyString"/>
168 + <xs:element name="PostalCode" type="nonEmptyString"/>
169 + <xs:element name="City" type="nonEmptyString"/>
170 + <xs:element name="Country" type="nonEmptyString"/>
171 + </xs:sequence>
172 + </xs:complexType>
173 + <xs:complexType name="PartnerInfo_Order">
174 + <xs:sequence>
175 + <xs:element maxOccurs="unbounded"
176 + minOccurs="0"
177 + name="PartnerInfo"
178 + type="PartnerInfo"/>
179 + </xs:sequence>
180 + </xs:complexType>
181 + <xs:complexType name="PartnerInfo">
182 + <xs:sequence>
183 + <xs:element name="UUID">
184 + <xs:simpleType>
185 + <xs:restriction base="xs:string">
186 + <xs:maxLength value="64"/>
187 + </xs:restriction>
188 + </xs:simpleType>
189 + </xs:element>
190 + </xs:sequence>
191 + </xs:complexType>
192 + <xs:complexType name="OrderLine_Order">
193 + <xs:sequence>
194 + <xs:element maxOccurs="unbounded"
195 + minOccurs="0"
196 + name="OrderLine"
197 + type="OrderLine"/>
198 + </xs:sequence>
199 + </xs:complexType>
200 + <xs:complexType name="OrderLine">
201 + <xs:sequence>
202 + <xs:element name="Description">
203 + <xs:simpleType>
204 + <xs:restriction base="xs:string">
205 + <xs:maxLength value="200"/>
206 + </xs:restriction>
207 + </xs:simpleType>
208 + </xs:element>
209 + <xs:element name="Quantity" type="xs:long"/>
210 + <xs:element name="Unit" type="Enum"/>
211 + <xs:element minOccurs="0" name="Weight" type="xs:double"/>
212 + </xs:sequence>
213 + </xs:complexType>
214 + <xs:simpleType name="nonEmptyString">
215 + <xs:restriction base="xs:string">
216 + <xs:minLength value="1"/>
217 + </xs:restriction>
218 + </xs:simpleType>
219 + <xs:simpleType name="Enum">
220 + <xs:restriction base="xs:string">
221 + <xs:enumeration value="COLLI"/>
222 + <xs:enumeration value="EURO"/>
223 + <xs:enumeration value="BOX"/>
224 + <xs:enumeration value="SACK"/>
225 + </xs:restriction>
226 + </xs:simpleType>
227 + <xs:element name="CreateOrder" type="CreateOrder"/>
228 +</xs:schema>
229 +{{/code}}
230 +== 5. Key takeaways ==
231 +
36 36  * The CDM holds all entities and attributes that are relevant within the context of your complete integration landscape.
37 37  * 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.
38 38  * A system message is specific to a system.
39 39  
40 40  
41 -== 5. Suggested Additional Readings ==
237 +== 6. Suggested Additional Readings ==
42 42  
43 43  If you are interested in this topic and want more information on it please read the help text provided by eMagiz.
44 44