IdsAdiProject/IdsAdiProteusProject: XMpLantP&IDProfileSchema_3.3.3.xsd

File XMpLantP&IDProfileSchema_3.3.3.xsd, 74.8 kB (added by andrewprosser, 12 years ago)
Line 
1<?xml version="1.0" encoding="UTF-8" ?>
2<xsd:schema xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
3        <xsd:annotation>
4                <xsd:documentation>version 1.0</xsd:documentation>
5        </xsd:annotation>
6        <!-- ItemAttribute definitions - these relate to engineering attributes of Plant Items -->
7        <!-- Basic Attributes -->
8        <xsd:attribute name="Format">
9                <xsd:simpleType>
10                        <xsd:restriction base="xsd:NMTOKEN">
11                                <xsd:enumeration value="string" />
12                                <xsd:enumeration value="byte" />
13                                <xsd:enumeration value="short" />
14                                <xsd:enumeration value="integer" />
15                                <xsd:enumeration value="long" />
16                                <xsd:enumeration value="ulong" />
17                                <xsd:enumeration value="float" />
18                                <xsd:enumeration value="double" />
19                        </xsd:restriction>
20                </xsd:simpleType>
21        </xsd:attribute>
22        <xsd:attribute name="Units">
23                <xsd:annotation>
24                        <xsd:documentation>This reference the EPISTLE Reference Data Library (ERDL) Units of measure </xsd:documentation>
25                </xsd:annotation>
26        </xsd:attribute>
27        <xsd:simpleType name="AreaUnitsType">
28                <xsd:annotation>
29                        <xsd:documentation>These Area units are from the ISO 15926 Reference Data Library (RDL) Units of measure </xsd:documentation>
30                </xsd:annotation>
31                <xsd:restriction base="xsd:string">
32                        <xsd:enumeration value="sq mm" />
33                        <xsd:enumeration value="sq cm" />
34                        <xsd:enumeration value="sq m" />
35                        <xsd:enumeration value="sq km" />
36                        <xsd:enumeration value="SquareMillimetre" />
37                        <xsd:enumeration value="SquareCentimetre" />
38                        <xsd:enumeration value="SquareMetre" />
39                        <xsd:enumeration value="SquareKilometre" />
40                        <xsd:enumeration value="SquareInch" />
41                        <xsd:enumeration value="SquareFoot" />
42                        <xsd:enumeration value="SquareYard" />
43                        <xsd:enumeration value="SquareMile" />
44                </xsd:restriction>
45        </xsd:simpleType>
46        <xsd:simpleType name="AngleUnitsType">
47                <xsd:annotation>
48                        <xsd:documentation>These angle units are from the ISO 15926 Reference Data Library (RDL) Units of measure </xsd:documentation>
49                </xsd:annotation>
50                <xsd:restriction base="xsd:NMTOKEN">
51                        <xsd:enumeration value="deg" />
52                        <xsd:enumeration value="rad" />
53                        <xsd:enumeration value="Degree" />
54                        <xsd:enumeration value="Radian" />
55                </xsd:restriction>
56        </xsd:simpleType>
57        <xsd:simpleType name="DistanceUnitsType">
58                <xsd:annotation>
59                        <xsd:documentation>These distance units are from the ISO 15926 Reference Data Library (RDL) Units of measure</xsd:documentation>
60                </xsd:annotation>
61                <xsd:restriction base="xsd:NMTOKEN">
62                        <xsd:enumeration value="Micron" />
63                        <xsd:enumeration value="Millimetre" />
64                        <xsd:enumeration value="Centimetre" />
65                        <xsd:enumeration value="Decimetre" />
66                        <xsd:enumeration value="Metre" />
67                        <xsd:enumeration value="Kilometre" />
68                        <xsd:enumeration value="Inch" />
69                        <xsd:enumeration value="Foot" />
70                        <xsd:enumeration value="Yard" />
71                        <xsd:enumeration value="Mile" />
72                        <xsd:enumeration value="mm" />
73                        <xsd:enumeration value="cm" />
74                        <xsd:enumeration value="m" />
75                        <xsd:enumeration value="km" />
76                        <xsd:enumeration value="in" />
77                        <xsd:enumeration value="ft" />
78                        <xsd:enumeration value="yd" />
79                </xsd:restriction>
80        </xsd:simpleType>
81        <xsd:simpleType name="PressureUnitsType">
82                <xsd:annotation>
83                        <xsd:documentation>These pressure units are from the ISO 15926 Reference Data Library (RDL) Units of measure</xsd:documentation>
84                </xsd:annotation>
85                <xsd:restriction base="xsd:NMTOKEN">
86                        <xsd:enumeration value="Picopascal" />
87                        <xsd:enumeration value="Micropascal" />
88                        <xsd:enumeration value="Millipascal" />
89                        <xsd:enumeration value="Pascal" />
90                        <xsd:enumeration value="Kilopascal" />
91                        <xsd:enumeration value="Megapascal" />
92                        <xsd:enumeration value="Gigapascal" />
93                        <xsd:enumeration value="MillinewtonMetreSquared" />
94                        <xsd:enumeration value="NewtonMetreSquared" />
95                        <xsd:enumeration value="KilonewtonMetreSquared" />
96                        <xsd:enumeration value="Bara" />
97                        <xsd:enumeration value="Barg" />
98                        <xsd:enumeration value="Bar" />
99                </xsd:restriction>
100        </xsd:simpleType>
101        <xsd:simpleType name="TemperatureUnitsType">
102                <xsd:annotation>
103                        <xsd:documentation>These temperature units are from the ISO 15926 Reference Data Library (RDL) Units of measure</xsd:documentation>
104                </xsd:annotation>
105                <xsd:restriction base="xsd:NMTOKEN">
106                        <xsd:enumeration value="degC" />
107                        <xsd:enumeration value="degF" />
108                        <xsd:enumeration value="degK" />
109                        <xsd:enumeration value="DegreeKelvin" />
110                        <xsd:enumeration value="DegreeCelsius" />
111                        <xsd:enumeration value="DegreeRankine" />
112                        <xsd:enumeration value="DegreeFahrenheit" />
113                </xsd:restriction>
114        </xsd:simpleType>
115        <xsd:simpleType name="VolumeUnitsType">
116                <xsd:annotation>
117                        <xsd:documentation>These Volume units are from the ISO 15926 Reference Data Library (RDL) Units of measure </xsd:documentation>
118                </xsd:annotation>
119                <xsd:restriction base="xsd:string">
120                        <xsd:enumeration value="cc" />
121                        <xsd:enumeration value="CubicMillimetre" />
122                        <xsd:enumeration value="CubicCentimetre" />
123                        <xsd:enumeration value="CubicMetre" />
124                        <xsd:enumeration value="CubicInch" />
125                        <xsd:enumeration value="CubicFeet" />
126                        <xsd:enumeration value="CubicYard" />
127                        <xsd:enumeration value="litres" />
128                        <xsd:enumeration value="gallons" />
129                        <xsd:enumeration value="USGallons" />
130                        <xsd:enumeration value="barrels" />
131                </xsd:restriction>
132        </xsd:simpleType>
133        <xsd:simpleType name="WeightUnitsType">
134                <xsd:annotation>
135                        <xsd:documentation>These weight units are from the ISO 15926 Reference Data Library (RDL) Units of measure</xsd:documentation>
136                </xsd:annotation>
137                <xsd:restriction base="xsd:NMTOKEN">
138                        <xsd:enumeration value="mg" />
139                        <xsd:enumeration value="Kg" />
140                        <xsd:enumeration value="lb" />
141                        <xsd:enumeration value="oz" />
142                        <xsd:enumeration value="Microgram" />
143                        <xsd:enumeration value="Milligram" />
144                        <xsd:enumeration value="Gram" />
145                        <xsd:enumeration value="Kilogram" />
146                        <xsd:enumeration value="Megagram" />
147                        <xsd:enumeration value="PoundMass" />
148                        <xsd:enumeration value="OunceMass" />
149                </xsd:restriction>
150        </xsd:simpleType>
151        <!-- Unit constrained Basic type -->
152        <xsd:complexType name="AreaDouble">
153                <xsd:attribute name="Value" type="xsd:double" use="required" />
154                <xsd:attribute name="Units" type="AreaUnitsType" use="optional" />
155        </xsd:complexType>
156        <xsd:complexType name="AngleDouble">
157                <xsd:attribute name="Value" type="xsd:double" use="required" />
158                <xsd:attribute name="Units" type="AngleUnitsType" use="optional" />
159        </xsd:complexType>
160        <xsd:complexType name="DistanceDouble">
161                <xsd:attribute name="Value" type="xsd:double" use="required" />
162                <xsd:attribute name="Units" type="DistanceUnitsType" use="optional" />
163        </xsd:complexType>
164        <xsd:complexType name="PressureDouble">
165                <xsd:attribute name="Value" type="xsd:double" use="required" />
166                <xsd:attribute name="Units" type="PressureUnitsType" use="optional" />
167        </xsd:complexType>
168        <xsd:complexType name="TemperatureDouble">
169                <xsd:attribute name="Value" type="xsd:double" use="required" />
170                <xsd:attribute name="Units" type="TemperatureUnitsType" use="optional" />
171        </xsd:complexType>
172        <xsd:complexType name="VolumeDouble">
173                <xsd:attribute name="Value" type="xsd:double" use="required" />
174                <xsd:attribute name="Units" type="VolumeUnitsType" use="optional" />
175        </xsd:complexType>
176        <xsd:complexType name="WeightDouble">
177                <xsd:attribute name="Value" type="xsd:double" use="required" />
178                <xsd:attribute name="Units" type="WeightUnitsType" use="optional" />
179        </xsd:complexType>
180        <xsd:complexType name="DistanceString">
181                <xsd:attribute name="Value" type="xsd:string" use="required" />
182                <xsd:attribute name="Units" type="DistanceUnitsType" use="optional" />
183        </xsd:complexType>
184        <!-- Basic types -->
185        <xsd:complexType name="Integer">
186                <xsd:attribute name="Value" type="xsd:integer" use="optional" />
187                <xsd:attribute ref="Units" use="optional" />
188        </xsd:complexType>
189        <xsd:complexType name="Double">
190                <xsd:attribute name="Value" type="xsd:double" use="optional" />
191                <xsd:attribute ref="Units" use="optional" />
192        </xsd:complexType>
193        <xsd:complexType name="String">
194                <xsd:attribute name="Value" type="xsd:string" use="optional" />
195                <xsd:attribute ref="Units" use="optional" />
196        </xsd:complexType>
197        <xsd:simpleType name="Colour">
198                <xsd:restriction base="xsd:double">
199                        <xsd:minInclusive value="0.0" />
200                        <xsd:maxInclusive value="1.0" />
201                </xsd:restriction>
202        </xsd:simpleType>
203        <!--"Curve" Type  -->
204        <xsd:complexType name="Curve" abstract="true"/>
205        <!-- UV coordinate for Bsplines -->
206        <xsd:complexType name="PCoordinate">
207                <xsd:attribute name="U" type="xsd:double" use="required" />
208                <xsd:attribute name="V" type="xsd:double" use="required" />
209        </xsd:complexType>
210        <!-- UV Parametric curve for Bsplines -->
211        <xsd:complexType name="Pcurve">
212                <xsd:annotation>
213                        <xsd:documentation>A Pcurve is a 2D parametric curve defined in the UV space of the Surface to Which it belongs.</xsd:documentation>
214                </xsd:annotation>
215                <xsd:choice>
216                        <xsd:element name="PCoordinate" type="PCoordinate" minOccurs="3" maxOccurs="unbounded" />
217                </xsd:choice>
218                <xsd:attribute name="NumPoints" type="xsd:integer" use="required" />
219        </xsd:complexType>
220        <!-- List of Control Points -->
221        <xsd:complexType name="ControlPoints">
222                <xsd:sequence>
223                        <xsd:element ref="Coordinate" maxOccurs="unbounded" />
224                </xsd:sequence>
225        </xsd:complexType>
226        <!-- List of list of control points -->
227        <xsd:complexType name="ControlPointArray">
228                <xsd:sequence>
229                        <xsd:element name="ControlPoints" type="ControlPoints" maxOccurs="unbounded" />
230                </xsd:sequence>
231        </xsd:complexType>
232        <!-- List of Knot Multiplicities -->
233        <xsd:complexType name="KnotMultiplicities">
234                <xsd:sequence>
235                        <xsd:element name="Multiplicity" maxOccurs="unbounded" />
236                </xsd:sequence>
237        </xsd:complexType>
238        <!-- List of Knot location in parametric space -->
239        <xsd:complexType name="Knots">
240                <xsd:sequence>
241                        <xsd:element name="Knot" maxOccurs="unbounded" />
242                </xsd:sequence>
243        </xsd:complexType>
244        <!-- List of Weights - one per control point for Rational curves and surfaces -->
245        <xsd:complexType name="WeightsData">
246                <xsd:sequence>
247                        <xsd:element name="ControlPointWeight" maxOccurs="unbounded" />
248                </xsd:sequence>
249        </xsd:complexType>
250        <!-- List of WeightsData - a 2d array ( WeightsData is a an array) -->
251        <xsd:complexType name="Weights">
252                <xsd:sequence>
253                        <xsd:element name="WeightsData" type="WeightsData" maxOccurs="unbounded" />
254                </xsd:sequence>
255        </xsd:complexType>
256        <xsd:simpleType name="TransactionType">
257                <xsd:restriction base="xsd:token">
258                        <xsd:enumeration value="to approve" />
259                        <xsd:enumeration value="to check" />
260                        <xsd:enumeration value="to copy" />
261                        <xsd:enumeration value="to create" />
262                        <xsd:enumeration value="to modify" />
263                        <xsd:enumeration value="to request" />
264                        <xsd:enumeration value="to release" />
265                </xsd:restriction>
266        </xsd:simpleType>
267        <!-- Basic Elements -->
268        <xsd:element name="UnitsOfMeasure">
269                <xsd:annotation>
270                        <xsd:documentation>These are from the ISO 15926 Reference Data Library (RDL) Units of measure. This Element dfefines the allowable sets of values for the various measurement units. This construct is not intended to allow parser validation of the values, it is intended for validation using XMpLant and also documentation. </xsd:documentation>
271                </xsd:annotation>
272                <xsd:complexType>
273                        <xsd:attribute name="Area" type="AreaUnitsType" default="SquareMetre" use="optional" />
274                        <xsd:attribute name="Angle" type="AngleUnitsType" default="Degree" use="optional" />
275                        <xsd:attribute name="Distance" type="DistanceUnitsType" default="Millimetre" use="optional" />
276                        <xsd:attribute name="Temperature" type="TemperatureUnitsType" default="DegreeCelsius" use="optional" />
277                        <xsd:attribute name="Pressure" type="PressureUnitsType" default="Bar" use="optional" />
278                        <xsd:attribute name="Volume" type="VolumeUnitsType" default="CubicMetre" use="optional" />
279                        <xsd:attribute name="Weight" type="WeightUnitsType" default="Kilogram" use="optional" />
280                </xsd:complexType>
281        </xsd:element>
282        <xsd:element name="Associations">
283                <xsd:complexType>
284                        <xsd:choice>
285                                <xsd:element ref="Association" maxOccurs="unbounded" />
286                        </xsd:choice>
287                </xsd:complexType>
288        </xsd:element>
289        <xsd:complexType name="Association">
290                <xsd:annotation>
291                        <xsd:documentation>
292                        An Association references other objects either by ID, Name or Tag attribute.
293                        If ID elements are persistent (see PlantModel element) then ID references may be to items not in this file.
294                        </xsd:documentation>
295                </xsd:annotation>
296                <xsd:attribute name="Type" use="required">
297                        <xsd:simpleType>
298                                <xsd:restriction base="xsd:token">
299                                        <xsd:enumeration value="is about" />
300                                        <xsd:enumeration value="is a subject of" />
301                                        <xsd:enumeration value="is associated with" />
302                                        <xsd:enumeration value="refers to" />
303                                        <xsd:enumeration value="is referenced in" />
304                                        <xsd:enumeration value="describes" />
305                                        <xsd:enumeration value="is described in" />
306                                        <xsd:enumeration value="indirectly describes" />
307                                        <xsd:enumeration value="is indirectly described in" />
308                                        <xsd:enumeration value="defines" />
309                                        <xsd:enumeration value="is defined in" />
310                                        <xsd:enumeration value="indirectly defines" />
311                                        <xsd:enumeration value="is indirectly defined in" />
312                                        <xsd:enumeration value="is connected to" />
313                                        <xsd:enumeration value="is logically connected to" />
314                                        <xsd:enumeration value="is involved with role in" />
315                                        <xsd:enumeration value="is an activity with role involving" />
316                                        <xsd:enumeration value="is fulfilled by" />
317                                        <xsd:enumeration value="fulfills" />
318                                        <xsd:enumeration value="is a part of" />
319                                        <xsd:enumeration value="is an assembly including" />
320                                        <xsd:enumeration value="is a component of" />
321                                        <xsd:enumeration value="is an composition including" />
322                                        <xsd:enumeration value="is an element of" />
323                                        <xsd:enumeration value="is a collection including" />
324                                        <xsd:enumeration value="is identified by" />
325                                        <xsd:enumeration value="is an identifier for" />
326                                        <xsd:enumeration value="is a template including" />
327                                        <xsd:enumeration value="is a component of template" />
328                                        <xsd:enumeration value="is a template that refers to" />
329                                        <xsd:enumeration value="is a reference in template" />
330                                        <xsd:enumeration value="is classified as" />
331                                        <xsd:enumeration value="is incidentally classified as" />
332                                        <xsd:enumeration value="has dataset" />
333                                        <xsd:enumeration value="is a dataset of" />
334                                        <xsd:enumeration value="is a comment referring to" />
335                                        <xsd:enumeration value="is referenced in comment" />
336                                        <xsd:enumeration value="has document" />
337                                        <xsd:enumeration value="is a document for" />
338                                        <xsd:enumeration value="has dataset" />
339                                        <xsd:enumeration value="is the location of" />
340                                        <xsd:enumeration value="is located in" />
341                                        <xsd:enumeration value="is upstream of" />
342                                        <xsd:enumeration value="is downstream of" />
343                                        <xsd:enumeration value="is the responsibility of" />
344                                </xsd:restriction>
345                        </xsd:simpleType>
346                </xsd:attribute>
347                <xsd:attribute name="ItemID" type="xsd:IDREF" use="optional" />
348                <xsd:attribute name="TagName" type="xsd:string" use="optional" />
349                <xsd:attribute name="Name" type="xsd:string" use="optional" />
350                <xsd:attribute name="URI" type="xsd:anyURI" use="optional" />
351                <xsd:attribute name="Context" type="xsd:string" use="optional" />
352        </xsd:complexType>
353        <xsd:element name="Association" type="Association" />
354        <xsd:element name="PersistentID" type="PersistentID"/>
355        <xsd:complexType name="PersistentID">
356                <xsd:annotation>
357                        <xsd:documentation>This Element holds the persistent Identifier for a PlantItem. There can be more than one PersistentID and if so the Context must be used so that they can be separately identified</xsd:documentation>
358                </xsd:annotation>
359                <xsd:attribute name="Identifier" type="xsd:string" use="required"/>
360                <xsd:attribute name="Context" type="xsd:string" use="optional"/>
361        </xsd:complexType>
362        <xsd:element name="IdentifierElement">
363                <xsd:annotation>
364                        <xsd:documentation>If this IdentifierElement is an Attribute of a PlantItem then instead of a value a reference to theAttribute is by the ID of the  PlantItem and the name of the Attribute b. Value is not required                                   </xsd:documentation>
365                </xsd:annotation>
366                <xsd:complexType>
367                        <xsd:attribute name="Name" type="xsd:string" use="required" />
368                        <xsd:attribute name="Value" type="xsd:string" use="optional" />
369                        <xsd:attribute name="ItemID" type="xsd:IDREF" use="optional" />
370                        <xsd:attribute name="DependantAttribute" type="xsd:string" use="optional" />
371                </xsd:complexType>
372        </xsd:element>
373        <xsd:element name="Identifier">
374                <xsd:annotation>
375                        <xsd:documentation>An Identifier is an object that can be used to capture the structure of an identifier such as a Tag. It references the indeividual attributes the make up the Identifier including any fixed strings such as sparators (eg '-') </xsd:documentation>
376                </xsd:annotation>
377                <xsd:complexType>
378                        <xsd:choice>
379                                <xsd:element ref="IdentifierElement" maxOccurs="unbounded" />
380                        </xsd:choice>
381                        <xsd:attribute name="Purpose" type="xsd:string" use="optional" />
382                </xsd:complexType>
383        </xsd:element>
384        <xsd:element name="CrossPageConnection">
385                <xsd:complexType>
386                        <xsd:choice>
387                                <xsd:element name="LinkedPersistentID" type="PersistentID" minOccurs="0" maxOccurs="1"/>
388                        </xsd:choice>
389                        <xsd:attribute name="DrawingName" type="xsd:string" use="optional"/>
390                        <xsd:attribute name="LinkLabel" type="xsd:string" use="optional"/>
391                </xsd:complexType>
392        </xsd:element>
393        <xsd:element name="StartAngle" type="AngleDouble" />
394        <xsd:element name="EndAngle" type="AngleDouble" />
395        <xsd:element name="BendAngle" type="AngleDouble" />
396        <xsd:element name="SweepAngle" type="AngleDouble" />
397        <xsd:element name="Height" type="DistanceDouble" />
398        <xsd:element name="Length" type="DistanceDouble" />
399        <xsd:element name="NominalDiameter" type="DistanceDouble" />
400        <xsd:element name="InsideDiameter" type="DistanceDouble" />
401        <xsd:element name="OutsideDiameter" type="DistanceDouble" />
402        <xsd:element name="StartDiameter" type="DistanceDouble" />
403        <xsd:element name="EndDiameter" type="DistanceDouble" />
404        <xsd:element name="LargeDiameter" type="DistanceDouble" />
405        <xsd:element name="SmallDiameter" type="DistanceDouble" />
406        <xsd:element name="BranchDiameter" type="DistanceDouble" />
407        <xsd:element name="StubDiameter" type="DistanceDouble" />
408        <xsd:element name="Radius" type="DistanceDouble" />
409        <xsd:element name="Thickness" type="DistanceDouble" />
410        <xsd:element name="ScheduleThickness" type="DistanceString" />
411        <xsd:element name="EndPreparation" type="String" />
412        <xsd:element name="FluidType" type="String" />
413        <xsd:element name="Type" type="String" />
414        <xsd:element name="NozzleType">
415                <xsd:complexType>
416                        <xsd:attribute name="Value" default="Flanged" use="optional" >
417                                <xsd:simpleType>
418                                        <xsd:restriction base="xsd:token">
419                                                <xsd:enumeration value="Welded" />
420                                                <xsd:enumeration value="Flanged" />
421                                                <xsd:enumeration value="Elbow" />
422                                        </xsd:restriction>
423                                </xsd:simpleType>
424                        </xsd:attribute>
425                </xsd:complexType>
426        </xsd:element>
427        <xsd:element name="OperatorType" type="String" />
428        <xsd:element name="Rating" type="String" />
429        <xsd:element name="GasketGap" type="DistanceDouble" />
430        <xsd:element name="FabricationCategory" type="String" />
431        <xsd:element name="Insulation" type="String" />
432        <xsd:element name="Tracing" type="String" />
433        <xsd:element name="Lining" type="String" />
434        <xsd:element name="ConnectionType" type="String">
435                <xsd:annotation>
436                        <xsd:documentation>Physical connection type for a component</xsd:documentation>
437                </xsd:annotation>
438        </xsd:element>
439        <xsd:element name="WeldType" type="String">
440                <xsd:annotation>
441                        <xsd:documentation>Physical connection type for a component</xsd:documentation>
442                </xsd:annotation>
443        </xsd:element>
444        <xsd:element name="Discipline">
445                <xsd:simpleType>
446                        <xsd:restriction base="xsd:NMTOKEN">
447                                <xsd:enumeration value="Electrical" />
448                                <xsd:enumeration value="Mechanical" />
449                                <xsd:enumeration value="Process" />
450                                <xsd:enumeration value="HVAC" />
451                                <xsd:enumeration value="Telecomms" />
452                        </xsd:restriction>
453                </xsd:simpleType>
454        </xsd:element>
455        <xsd:element name="Description" type="xsd:string" />
456        <xsd:element name="Grade" type="String" />
457        <xsd:element name="Family" type="String" />
458        <xsd:element name="Material" type="xsd:string" />
459        <xsd:element name="MaterialDescription" type="xsd:string" />
460        <xsd:element name="Standard" type="String" />
461        <xsd:element name="SurfaceTreatment" type="String" />
462        <xsd:element name="NormalDesignPressure" type="PressureDouble" />
463        <xsd:element name="MinimumDesignPressure" type="PressureDouble" />
464        <xsd:element name="MaximumDesignPressure" type="PressureDouble" />
465        <xsd:element name="NormalDesignTemperature" type="TemperatureDouble" />
466        <xsd:element name="MinimumDesignTemperature" type="TemperatureDouble" />
467        <xsd:element name="MaximumDesignTemperature" type="TemperatureDouble" />
468        <xsd:element name="MinimumAmbientTemperature" type="TemperatureDouble" />
469        <xsd:element name="MaximumAmbientTemperature" type="TemperatureDouble" />
470        <xsd:element name="MinimumRelativeHumidity" type="Double" />
471        <xsd:element name="MaximumRelativeHumidity" type="Double" />
472        <xsd:element name="AverageBarometricPressure" type="PressureDouble" />
473        <xsd:element name="NormalOperatingPressure" type="PressureDouble" />
474        <xsd:element name="MinimumOperatingPressure" type="PressureDouble" />
475        <xsd:element name="MaximumOperatingPressure" type="PressureDouble" />
476        <xsd:element name="TestPressure" type="PressureDouble" />
477        <xsd:element name="NormalOperatingTemperature" type="TemperatureDouble" />
478        <xsd:element name="MinimumOperatingTemperature" type="TemperatureDouble" />
479        <xsd:element name="MaximumOperatingTemperature" type="TemperatureDouble" />
480        <xsd:element name="WallThickness" type="DistanceString" />
481        <xsd:element name="Weight" type="WeightDouble" />
482        <xsd:element name="Parameters">
483                <xsd:complexType>
484                        <xsd:attribute name="OverallLength" use="optional" />
485                        <xsd:attribute name="FaceDiameter" use="optional" />
486                        <xsd:attribute name="FaceThickness" use="optional" />
487                        <xsd:attribute name="FlangeThickness" use="optional" />
488                        <xsd:attribute name="FlangeDiameter" use="optional" />
489                        <xsd:attribute name="OutsideDiameter" use="optional" />
490                        <xsd:attribute name="HubDiameter" use="optional" />
491                </xsd:complexType>
492        </xsd:element>
493        <!--ControlPointWeight is  the weigtht factor for a control point in a rational curve or surface - values are 0-1. WeightType should be an enumeration -->
494        <xsd:element name="ControlPointWeight">
495                <xsd:complexType>
496                        <xsd:attribute name="Value" type="xsd:double" use="optional" />
497                        <xsd:attribute ref="Units" use="optional" />
498                        <xsd:attribute name="WeightType" type="xsd:string" use="optional" />
499                </xsd:complexType>
500        </xsd:element>
501        <!-- Fixed Elements -->
502        <!-- Annotation element  -->
503        <xsd:complexType name="AnnotationItem">
504                <xsd:annotation>
505                        <xsd:documentation>Defines aspects common to all Annotation items</xsd:documentation>
506                </xsd:annotation>
507                <xsd:choice minOccurs="0" maxOccurs="unbounded">
508                        <xsd:element ref="Presentation" />
509                        <xsd:element ref="Extent"/>
510                        <xsd:element ref="PersistentID"/>
511                        <xsd:element ref="Position"/>
512                        <xsd:element ref="Scale"/>
513                        <xsd:element ref="Curve" />
514                        <xsd:element ref="Text"/>
515                        <xsd:element ref="Description"/>
516                        <xsd:element ref="GenericAttributes" />
517                        <xsd:element ref="History" />
518                        <xsd:element ref="Association" />
519                        <xsd:element ref="ConnectionPoints" />
520                </xsd:choice>
521                <xsd:attribute name="ID" type="xsd:ID" use="required"/>
522                <xsd:attribute name="ComponentClass" type="xsd:string"/>
523                <xsd:attribute name="ComponentName" type="xsd:string"/>
524                <xsd:attribute name="ComponentType" use="optional" >
525                        <xsd:simpleType>
526                                <xsd:restriction base="xsd:NMTOKEN">
527                                        <xsd:enumeration value="Normal" />
528                                        <xsd:enumeration value="Explicit" />
529                                        <xsd:enumeration value="Parametric" />
530                                </xsd:restriction>
531                        </xsd:simpleType>
532                </xsd:attribute>
533                <xsd:attribute name="Revision" type="xsd:string"/>
534                <xsd:attribute name="Status">
535                        <xsd:simpleType>
536                                <xsd:restriction base="xsd:NMTOKEN">
537                                        <xsd:enumeration value="Current"/>
538                                        <xsd:enumeration value="Deleted"/>
539                                        <xsd:enumeration value="Modified"/>
540                                        <xsd:enumeration value="New"/>
541                                </xsd:restriction>
542                        </xsd:simpleType>
543                </xsd:attribute>
544        </xsd:complexType>
545        <!--"Axis" element  -->
546        <xsd:element name="Axis">
547                <xsd:annotation>
548                        <xsd:documentation>Axis is a normalised vector defining the direction in Global space of the local Z axis of the object it is contained in</xsd:documentation>
549                </xsd:annotation>
550                <xsd:complexType>
551                        <xsd:attribute name="X" type="xsd:double" use="required" />
552                        <xsd:attribute name="Y" type="xsd:double" use="required" />
553                        <xsd:attribute name="Z" type="xsd:double" use="required" />
554                </xsd:complexType>
555        </xsd:element>
556        <!-- A general Nurb curve -->
557        <xsd:element name="BsplineCurve" type="BsplineCurve" substitutionGroup="Curve" />
558        <xsd:complexType name="BsplineCurve">
559                <xsd:annotation>
560                        <xsd:documentation>A BsplineCurve is general form of Rational or polynomial curve represented by control points, basis fuinctions and possibly weights.</xsd:documentation>
561                </xsd:annotation>
562                <xsd:complexContent>
563                        <xsd:extension base="Curve">
564                                <xsd:choice maxOccurs="unbounded">
565                                        <xsd:element ref="Presentation" minOccurs="0" />
566                                        <xsd:element ref="Extent" />
567                                        <xsd:element name="ControlPoints" type="ControlPoints" />
568                                        <xsd:element name="KnotMultiplicities" type="KnotMultiplicities" minOccurs="0" />
569                                        <xsd:element name="Knots" type="Knots" minOccurs="0" />
570                                        <xsd:element name="WeightsData" type="WeightsData" minOccurs="0" />
571                                        <xsd:element ref="GenericAttributes" minOccurs="0" />
572                                </xsd:choice>
573                                <xsd:attribute name="Degree" type="xsd:integer" use="required" />
574                                <xsd:attribute name="CurveType" use="required">
575                                        <xsd:simpleType>
576                                                <xsd:restriction base="xsd:NMTOKEN">
577                                                        <xsd:enumeration value="BsplineCurve" />
578                                                        <xsd:enumeration value="BsplineCurveWithKnots" />
579                                                        <xsd:enumeration value="RationalBsplineCurve" />
580                                                </xsd:restriction>
581                                        </xsd:simpleType>
582                                </xsd:attribute>
583                                <xsd:attribute name="CurveForm" use="optional">
584                                        <xsd:simpleType>
585                                                <xsd:restriction base="xsd:NMTOKEN">
586                                                        <xsd:enumeration value="PolyLine" />
587                                                        <xsd:enumeration value="CircularArc" />
588                                                        <xsd:enumeration value="EllipticArc" />
589                                                        <xsd:enumeration value="ParabolicArc" />
590                                                        <xsd:enumeration value="HyperbolicArc" />
591                                                </xsd:restriction>
592                                        </xsd:simpleType>
593                                </xsd:attribute>
594                                <xsd:attribute name="NumControlPoints" type="xsd:integer" use="required" />
595                                <xsd:attribute name="NumKnots" type="xsd:integer" use="optional" />
596                                <xsd:attribute name="Closed" type="xsd:boolean" use="optional" />
597                                <xsd:attribute name="SelfIntersect" type="xsd:boolean" use="optional" />
598                        </xsd:extension>
599                </xsd:complexContent>
600        </xsd:complexType>
601        <!-- A general Nurb surface -->
602        <xsd:element name="BsplineSurface" type="BsplineSurface" substitutionGroup="Surface" />
603        <xsd:complexType name="BsplineSurface">
604                <xsd:annotation>
605                        <xsd:documentation>A BsplineSurface is general form of Rational or polynomial surface represented by control points, basis fuinctions and possibly weights.</xsd:documentation>
606                </xsd:annotation>
607                <xsd:choice maxOccurs="unbounded">
608                        <xsd:element ref="Presentation" minOccurs="0" />
609                        <xsd:element ref="Extent" />
610                        <xsd:element name="ControlPointArray" type="ControlPointArray" />
611                        <xsd:element name="KnotMultiplicitiesU" type="KnotMultiplicities" minOccurs="0" />
612                        <xsd:element name="KnotMultiplicitiesV" type="KnotMultiplicities" minOccurs="0" />
613                        <xsd:element name="KnotsU" type="Knots" minOccurs="0" />
614                        <xsd:element name="KnotsV" type="Knots" minOccurs="0" />
615                        <xsd:element name="Weights" type="Weights" minOccurs="0" />
616                        <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
617                </xsd:choice>
618                <xsd:attribute name="DegreeU" type="xsd:integer" use="required" />
619                <xsd:attribute name="DegreeV" type="xsd:integer" use="required" />
620                <xsd:attribute name="SurfaceType" use="required">
621                        <xsd:simpleType>
622                                <xsd:restriction base="xsd:NMTOKEN">
623                                        <xsd:enumeration value="BsplineSurface" />
624                                        <xsd:enumeration value="BsplineSurfaceWithKnots" />
625                                        <xsd:enumeration value="RationalBsplineSurface" />
626                                </xsd:restriction>
627                        </xsd:simpleType>
628                </xsd:attribute>
629                <xsd:attribute name="SurfaceForm" use="optional">
630                        <xsd:simpleType>
631                                <xsd:restriction base="xsd:NMTOKEN">
632                                        <xsd:enumeration value="Plane" />
633                                        <xsd:enumeration value="Cylindrical" />
634                                        <xsd:enumeration value="Conical" />
635                                        <xsd:enumeration value="Spherical" />
636                                        <xsd:enumeration value="Toroidal" />
637                                        <xsd:enumeration value="SurfaceOfRevolution" />
638                                        <xsd:enumeration value="RuledSurface" />
639                                        <xsd:enumeration value="GeneralisedCone" />
640                                        <xsd:enumeration value="Quadratic" />
641                                        <xsd:enumeration value="SurfaceOfLinearExtrusion" />
642                                </xsd:restriction>
643                        </xsd:simpleType>
644                </xsd:attribute>
645                <xsd:attribute name="NumControlPointsU" type="xsd:integer" use="required" />
646                <xsd:attribute name="NumControlPointsV" type="xsd:integer" use="required" />
647                <xsd:attribute name="NumKnotsU" type="xsd:integer" use="optional" />
648                <xsd:attribute name="NumKnotsV" type="xsd:integer" use="optional" />
649                <xsd:attribute name="ClosedU" type="xsd:boolean" use="optional" />
650                <xsd:attribute name="ClosedV" type="xsd:boolean" use="optional" />
651                <xsd:attribute name="SelfIntersect" type="xsd:boolean" use="optional" />
652        </xsd:complexType>
653        <!--"CenterLine" element  -->
654        <xsd:element name="CenterLine" type="CenterLine">
655                <xsd:annotation>
656                        <xsd:documentation>
657                                This is the locus of the CenterLine for a PipingSegment. For 2D (PID Pipelines and Instrument Signal lines) There will be one CenterLine for each graphical segment.
658                        </xsd:documentation>
659                </xsd:annotation>
660        </xsd:element>
661        <xsd:complexType name="CenterLine">
662                <xsd:sequence>
663                        <xsd:element ref="Presentation" minOccurs="0"/>
664                        <xsd:element ref="Extent"/>
665                        <xsd:element ref="Coordinate" maxOccurs="unbounded"/>
666                        <xsd:element ref="PersistentID" minOccurs="0" maxOccurs="unbounded"/>
667                        <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded"/>
668                </xsd:sequence>
669                <xsd:attribute name="ID" type="xsd:ID" use="optional"/>
670                <xsd:attribute name="NumPoints" type="xsd:integer" use="required"/>
671        </xsd:complexType>
672        <!--"Circle" element  -->
673        <xsd:element name="Circle" substitutionGroup="Curve">
674                <xsd:complexType>
675                        <xsd:complexContent>
676                                <xsd:extension base="Curve">
677                                        <xsd:sequence>
678                                                <xsd:element ref="Presentation" />
679                                                <xsd:element ref="Extent" />
680                                                <xsd:element ref="Position" />
681                                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
682                                        </xsd:sequence>
683                                        <xsd:attribute name="Radius" type="xsd:double" use="required" />
684                                        <xsd:attribute name="Filled" use="optional" >
685                                                <xsd:simpleType>
686                                                        <xsd:restriction base="xsd:NMTOKEN">
687                                                                <xsd:enumeration value="Solid" />
688                                                                <xsd:enumeration value="Hatch" />
689                                                        </xsd:restriction>
690                                                </xsd:simpleType>
691                                        </xsd:attribute>
692                                </xsd:extension>
693                        </xsd:complexContent>
694                </xsd:complexType>
695        </xsd:element>
696        <!--"CompositeCurve" element  -->
697        <xsd:element name="CompositeCurve" substitutionGroup="Curve">
698                <xsd:complexType>
699                        <xsd:complexContent>
700                                <xsd:extension base="Curve">
701                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
702                                                <xsd:element ref="Presentation" />
703                                                <xsd:element ref="Extent" />
704                                                <xsd:element ref="Curve" minOccurs="0" maxOccurs="unbounded" />
705                                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
706                                        </xsd:choice>
707                                </xsd:extension>
708                        </xsd:complexContent>
709                </xsd:complexType>
710        </xsd:element>
711        <!--"Connnection" element  -->
712        <xsd:element name="Connection">
713                <xsd:annotation>
714                        <xsd:documentation>
715                                ToID and FromID may contain either the ID attribute of the target or the Tag of
716                                the target.
717                               
718                                If referencing a Nozzle by its Tag attribute the Tag must include the Tag of the
719                                Equiment using the format &gt;EquipmentTag&lt;-&gt;NozzleTag&lt;.  This form can
720                                only be used if the Nozzle tag attribute doesn't contain a '-' character.
721                        </xsd:documentation>
722                </xsd:annotation>
723                <xsd:complexType>
724                        <xsd:attribute name="ToID" type="xsd:string" use="optional" />
725                        <xsd:attribute name="ToNode" use="optional" >
726                                <xsd:simpleType>
727                                        <xsd:restriction base="xsd:integer">
728                                                <xsd:minInclusive value="1" />
729                                        </xsd:restriction>
730                                </xsd:simpleType>
731                        </xsd:attribute>
732                        <xsd:attribute name="FromID" type="xsd:string" use="optional" />
733                        <xsd:attribute name="FromNode" use="optional" >
734                                <xsd:simpleType>
735                                        <xsd:restriction base="xsd:integer">
736                                                <xsd:minInclusive value="1" />
737                                        </xsd:restriction>
738                                </xsd:simpleType>
739                        </xsd:attribute>
740                </xsd:complexType>
741        </xsd:element>
742        <!--"ConnectionPoints" element  -->
743        <xsd:element name="ConnectionPoints">
744                <xsd:annotation>
745                        <xsd:documentation>
746                                An ordered set of Nodes for the object containing this ConnectionPoints object.
747                                The first Node (0) is coincident with the origin of the containing object.
748                                The next two (1and 2) are the main flow and all others are secondary flows.
749                                Flowin and Flowout reference the Nodes indexed from 0 ie main flow is 1 and 2.
750                               
751                                This profile defaults the flowIn and flowOut attributes to 1 and 2 respectively.
752                        </xsd:documentation>
753                </xsd:annotation>
754                <xsd:complexType>
755                        <xsd:sequence>
756                                <xsd:element ref="Presentation" minOccurs="0" />
757                                <xsd:element ref="Extent" minOccurs="0" />
758                                <xsd:element ref="Node" maxOccurs="unbounded" />
759                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
760                        </xsd:sequence>
761                        <xsd:attribute name="NumPoints" type="xsd:integer" use="required" />
762                        <xsd:attribute name="FlowIn" use="optional" default="1">
763                                <xsd:simpleType>
764                                        <xsd:restriction base="xsd:integer">
765                                                <xsd:minInclusive value="1" />
766                                        </xsd:restriction>
767                                </xsd:simpleType>
768                        </xsd:attribute>
769                        <xsd:attribute name="FlowOut" use="optional" default="2">
770                                <xsd:simpleType>
771                                        <xsd:restriction base="xsd:integer">
772                                                <xsd:minInclusive value="1" />
773                                        </xsd:restriction>
774                                </xsd:simpleType>
775                        </xsd:attribute>
776                </xsd:complexType>
777        </xsd:element>
778        <!-- Control point list for Bsplines -->
779        <xsd:element name="ControlPoints">
780                <xsd:complexType>
781                        <xsd:sequence>
782                                <xsd:element ref="Coordinate" maxOccurs="unbounded" />
783                        </xsd:sequence>
784                </xsd:complexType>
785        </xsd:element>
786        <!-- list of Control point lists for Bsplines -->
787        <xsd:element name="ControlPointArray">
788                <xsd:complexType>
789                        <xsd:sequence>
790                                <xsd:element ref="ControlPoints" maxOccurs="unbounded" />
791                        </xsd:sequence>
792                </xsd:complexType>
793        </xsd:element>
794        <!--"Coordinate" element  -->
795        <xsd:element name="Coordinate">
796                <xsd:complexType>
797                        <xsd:attribute name="X" type="xsd:double" use="required" />
798                        <xsd:attribute name="Y" type="xsd:double" use="required" />
799                        <xsd:attribute name="Z" type="xsd:double" use="optional" />
800                </xsd:complexType>
801        </xsd:element>
802        <!-- Curve Element -->
803        <xsd:element name="Curve" type="Curve" />
804        <!-- Curve bounded Surface is one that is trimmed with freeform curve boundaries -->
805        <xsd:element name="CurveBoundedSurface" substitutionGroup="Surface">
806                <xsd:annotation>
807                        <xsd:documentation>A CurveBoundedSurface is a parametric surface with curved boundaries defined by one or more boundary curves. One may be the outer boundary with several inner boundaries..</xsd:documentation>
808                </xsd:annotation>
809                <xsd:complexType>
810                        <xsd:sequence>
811                                <xsd:element name="BasisSurface" type="BsplineSurface" />
812                                <xsd:element ref="OuterBoundary" minOccurs="0" />
813                                <xsd:element ref="InnerBoundary" minOccurs="0" maxOccurs="unbounded" />
814                        </xsd:sequence>
815                </xsd:complexType>
816        </xsd:element>
817        <!--An Engineering Drawing -->
818        <xsd:element name="Drawing">
819                <xsd:complexType>
820                        <xsd:sequence>
821                                <xsd:element ref="Presentation" />
822                                <xsd:element ref="Extent" />
823                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
824                                        <xsd:element ref="Component" />
825                                        <xsd:element ref="Curve" />
826                                        <xsd:element ref="Text" />
827                                        <xsd:element ref="DrawingBorder" />
828                                        <xsd:element ref="Label"/>
829                                        <xsd:element ref="InsulationSymbol"/>
830                                        <xsd:element ref="ScopeBubble"/>
831                                        <xsd:element ref="GenericAttributes" />
832                                </xsd:choice>
833                        </xsd:sequence>
834                        <xsd:attribute name="Name" type="xsd:string" use="required" />
835                        <xsd:attribute name="Type" type="xsd:string" use="required" fixed="PID" />
836                        <xsd:attribute name="Revision" type="xsd:string" use="optional" />
837                        <xsd:attribute name="Title" type="xsd:string" use="optional" />
838                        <xsd:attribute name="Size" type="xsd:string" use="optional" />
839                </xsd:complexType>
840        </xsd:element>
841        <!-- Drawing Border element -->
842        <xsd:element name="DrawingBorder">
843                <xsd:complexType>
844                        <xsd:sequence>
845                                <xsd:element ref="Presentation" />
846                                <xsd:element ref="Extent" />
847                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
848                                        <xsd:element ref="Curve" />
849                                        <xsd:element ref="Text" />
850                                        <xsd:element ref="GenericAttributes" />
851                                </xsd:choice>
852                        </xsd:sequence>
853                        <xsd:attribute name="Name" type="xsd:string" use="optional" />
854                        <xsd:attribute name="Size" type="xsd:string" use="optional" />
855                </xsd:complexType>
856        </xsd:element>
857        <!--"Ellipse" element  -->
858        <xsd:element name="Ellipse" substitutionGroup="Curve">
859                <xsd:complexType>
860                        <xsd:complexContent>
861                                <xsd:extension base="Curve">
862                                        <xsd:sequence>
863                                                <xsd:element ref="Presentation" />
864                                                <xsd:element ref="Extent" />
865                                                <xsd:element ref="Position" />
866                                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
867                                        </xsd:sequence>
868                                        <xsd:attribute name="PrimaryAxis" type="xsd:double" use="required" />
869                                        <xsd:attribute name="SecondaryAxis" type="xsd:double" use="required" />
870                                        <xsd:attribute name="Filled" use="optional" >
871                                                <xsd:simpleType>
872                                                        <xsd:restriction base="xsd:NMTOKEN">
873                                                                <xsd:enumeration value="Solid" />
874                                                                <xsd:enumeration value="Hatch" />
875                                                        </xsd:restriction>
876                                                </xsd:simpleType>
877                                        </xsd:attribute>
878                                </xsd:extension>
879                        </xsd:complexContent>
880                </xsd:complexType>
881        </xsd:element>
882        <!--"Extent" element  -->
883        <xsd:element name="Extent">
884                <xsd:complexType>
885                        <xsd:sequence>
886                                <xsd:element ref="Min" />
887                                <xsd:element ref="Max" />
888                        </xsd:sequence>
889                </xsd:complexType>
890        </xsd:element>
891        <!--"GenericAttributes" element  -->
892        <xsd:element name="GenericAttributes">
893                <xsd:annotation>
894                        <xsd:documentation>Handles user defined Attributes of any name</xsd:documentation>
895                </xsd:annotation>
896                <xsd:complexType mixed="true">
897                        <xsd:choice>
898                                <xsd:element ref="GenericAttribute" maxOccurs="unbounded"/>
899                        </xsd:choice>
900                        <xsd:attribute name="Number" type="xsd:integer" use="required" />
901                        <xsd:attribute name="Set" type="xsd:string" use="optional" />
902                </xsd:complexType>
903        </xsd:element>
904        <xsd:element name="GenericAttribute">
905                <xsd:annotation>
906                        <xsd:documentation>A GenericAttribute can be any Name but this should also match the RDL</xsd:documentation>
907                </xsd:annotation>
908                <xsd:complexType>
909                        <xsd:attribute name="Name" type="xsd:string" use="required"/>
910                        <xsd:attribute name="Value" type="xsd:string" use="optional"/>
911                        <xsd:attribute ref="Units" use="optional"/>
912                        <xsd:attribute name="Format" type="xsd:string" use="optional"/>
913                        <xsd:attribute name="URI" type="xsd:anyURI" use="optional"/>
914                </xsd:complexType>
915        </xsd:element>
916        <!--History Elemet holds information on the use of a model and the transactions that occur-->
917        <xsd:element name="History">
918                <xsd:complexType>
919                        <xsd:choice maxOccurs="unbounded">
920                                <xsd:element ref="Transaction" />
921                        </xsd:choice>
922                        <xsd:attribute name="NumTransactions" type="xsd:integer" use="optional" />
923                </xsd:complexType>
924        </xsd:element>
925        <!-- An Inner Boundary (hole) for a Curve Bounded Surface -->
926        <xsd:element name="InnerBoundary">
927                <xsd:complexType>
928                        <xsd:choice>
929                                <xsd:element name="Pcurve" type="Pcurve" />
930                        </xsd:choice>
931                </xsd:complexType>
932        </xsd:element>
933        <!--"Line" element  -->
934        <xsd:element name="Line" type="Line" substitutionGroup="Curve" />
935        <xsd:complexType name="Line">
936                <xsd:complexContent>
937                        <xsd:extension base="Curve">
938                                <xsd:sequence>
939                                        <xsd:element ref="Presentation" />
940                                        <xsd:element ref="Extent" />
941                                        <xsd:element ref="Coordinate" minOccurs="2" maxOccurs="2" />
942                                        <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
943                                </xsd:sequence>
944                        </xsd:extension>
945                </xsd:complexContent>
946        </xsd:complexType>
947        <!--"Location" element  -->
948        <xsd:element name="Location">
949                <xsd:complexType>
950                        <xsd:attribute name="X" type="xsd:double" use="required" />
951                        <xsd:attribute name="Y" type="xsd:double" use="required" />
952                        <xsd:attribute name="Z" type="xsd:double" use="optional" />
953                </xsd:complexType>
954        </xsd:element>
955        <!-- "Max" element-->
956        <xsd:element name="Max">
957                <xsd:annotation>
958                        <xsd:documentation>Maximum extents of Plant item</xsd:documentation>
959                </xsd:annotation>
960                <xsd:complexType>
961                        <xsd:attribute name="X" type="xsd:double" use="required" />
962                        <xsd:attribute name="Y" type="xsd:double" use="required" />
963                        <xsd:attribute name="Z" type="xsd:double" use="optional" default="0.0" />
964                </xsd:complexType>
965        </xsd:element>
966        <!--"Min" element  -->
967        <xsd:element name="Min">
968                <xsd:annotation>
969                        <xsd:documentation>Minimum extents of Plant item</xsd:documentation>
970                </xsd:annotation>
971                <xsd:complexType>
972                        <xsd:attribute name="X" type="xsd:double" use="required" />
973                        <xsd:attribute name="Y" type="xsd:double" use="required" />
974                        <xsd:attribute name="Z" type="xsd:double" use="optional" default="0.0" />
975                </xsd:complexType>
976        </xsd:element>
977        <!--"Node" element  -->
978        <xsd:element name="Node">
979                <xsd:annotation>
980                        <xsd:documentation>A Node is an connection point for a component and is an Element within a ConnectioPoints Element.</xsd:documentation>
981                </xsd:annotation>
982                <xsd:complexType>
983                        <xsd:choice maxOccurs="unbounded">
984                                <xsd:element ref="Position" />
985                                <xsd:element ref="NominalDiameter" minOccurs="0" />
986                                <xsd:element ref="EndPreparation" minOccurs="0" />
987                                <xsd:element ref="GasketGap" minOccurs="0" />
988                                <xsd:element ref="Rating" minOccurs="0" />
989                                <xsd:element ref="ScheduleThickness" minOccurs="0" />
990                                <xsd:element ref="WeldType" minOccurs="0" />
991                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
992                        </xsd:choice>
993                        <xsd:attribute name="Name" type="xsd:string" use="optional" />
994                        <xsd:attribute name="Type" use="optional">
995                                <xsd:simpleType>
996                                        <xsd:restriction base="xsd:NMTOKEN">
997                                                <xsd:enumeration value="unspecified" />
998                                                <xsd:enumeration value="process" />
999                                                <xsd:enumeration value="signal" />
1000                                        </xsd:restriction>
1001                                </xsd:simpleType>
1002                        </xsd:attribute>
1003                        <xsd:attribute name="Function" use="optional">
1004                                <xsd:simpleType>
1005                                        <xsd:restriction base="xsd:NMTOKEN">
1006                                                <xsd:enumeration value="unspecified" />
1007                                                <xsd:enumeration value="primary" />
1008                                                <xsd:enumeration value="secondary" />
1009                                                <xsd:enumeration value="tap"/>
1010                                        </xsd:restriction>
1011                                </xsd:simpleType>
1012                        </xsd:attribute>
1013                        <xsd:attribute name="Flow" use="optional">
1014                                <xsd:simpleType>
1015                                        <xsd:restriction base="xsd:NMTOKEN">
1016                                                <xsd:enumeration value="unspecified" />
1017                                                <xsd:enumeration value="in" />
1018                                                <xsd:enumeration value="out" />
1019                                                <xsd:enumeration value="both" />
1020                                        </xsd:restriction>
1021                                </xsd:simpleType>
1022                        </xsd:attribute>
1023                </xsd:complexType>
1024        </xsd:element>
1025        <!-- The outer boundary of a Curve Bounded Surface -->
1026        <xsd:element name="OuterBoundary">
1027                <xsd:complexType>
1028                        <xsd:choice>
1029                                <xsd:element name="Pcurve" type="Pcurve" />
1030                        </xsd:choice>
1031                </xsd:complexType>
1032        </xsd:element>
1033        <!--"PlantInformation" element  -->
1034        <xsd:element name="PlantInformation">
1035                <xsd:complexType>
1036                        <xsd:sequence>
1037                                <xsd:element ref="UnitsOfMeasure" />
1038                        </xsd:sequence>
1039                        <xsd:attribute name="SchemaVersion" type="xsd:string" use="required" fixed="3.3.3" />
1040                        <xsd:attribute name="OriginatingSystem" type="xsd:string" use="required" />
1041                        <xsd:attribute name="ModelName" type="xsd:string" use="optional" />
1042                        <xsd:attribute name="Date" type="xsd:date" use="required" />
1043                        <xsd:attribute name="ProjectName" type="xsd:string" use="optional" />
1044                        <xsd:attribute name="ProjectCode" type="xsd:string" use="optional" />
1045                        <xsd:attribute name="ProjectDescription" type="xsd:string" use="optional" />
1046                        <xsd:attribute name="CompanyName" type="xsd:string" use="optional" />
1047                        <xsd:attribute name="Time" type="xsd:time" use="required" />
1048                        <xsd:attribute name="Is3D" type="xsd:NMTOKEN" use="required" fixed="no" />
1049                        <xsd:attribute name="Units" type="DistanceUnitsType" use="required" />
1050                        <xsd:attribute name="Discipline" type="xsd:string" use="required" fixed="PID" />
1051                </xsd:complexType>
1052        </xsd:element>
1053        <!--"PlantItem" element  -->
1054        <xsd:element name="PlantItem" type="PlantItem" abstract="true" />
1055        <xsd:complexType name="PlantItem">
1056                <xsd:choice minOccurs="0" maxOccurs="unbounded">
1057                        <xsd:element ref="Presentation" minOccurs="0" />
1058                        <xsd:element ref="Extent" />
1059                        <xsd:element ref="PersistentID" />
1060                        <xsd:element ref="Position" />
1061                        <xsd:element ref="Scale" />
1062                        <xsd:element ref="Surface" />
1063                        <xsd:element ref="Curve" maxOccurs="unbounded" />
1064                        <xsd:element ref="ConnectionPoints" />
1065                        <xsd:element ref="PConnectionPoints" />
1066                        <xsd:element ref="Text" />
1067                        <xsd:element ref="Identifier" />
1068                        <xsd:element ref="Description" />
1069                        <xsd:element ref="Weight" />
1070                        <xsd:element ref="Material" />
1071                        <xsd:element ref="MaterialDescription" />
1072                        <xsd:element name="ModelNumber" type="xsd:string" />
1073                        <xsd:element name="Supplier" type="xsd:string" />
1074                        <xsd:element name="Manufacturer" type="xsd:string" />
1075                        <xsd:element ref="GenericAttributes" maxOccurs="unbounded" />
1076                        <xsd:element ref="Association" maxOccurs="unbounded" />
1077                        <xsd:element ref="History" />
1078                </xsd:choice>
1079                <xsd:attribute name="ID" use="required" type="xsd:ID" />
1080                <xsd:attribute name="TagName" type="xsd:string" use="optional" />
1081                <xsd:attribute name="Specification" type="xsd:string" use="optional" />
1082                <xsd:attribute name="StockNumber" type="xsd:string" use="optional" />
1083                <xsd:attribute name="ComponentClass" type="xsd:string" use="optional" />
1084                <xsd:attribute name="ComponentName" type="xsd:string" use="optional" />
1085                <xsd:attribute name="ComponentType" use="optional" >
1086                        <xsd:simpleType>
1087                                <xsd:restriction base="xsd:NMTOKEN">
1088                                        <xsd:enumeration value="Normal" />
1089                                        <xsd:enumeration value="Explicit" />
1090                                        <xsd:enumeration value="Parametric" />
1091                                </xsd:restriction>
1092                        </xsd:simpleType>
1093                </xsd:attribute>
1094                <xsd:attribute name="Revision" type="xsd:string" use="optional" />
1095                <xsd:attribute name="Status" use="optional" >
1096                        <xsd:simpleType>
1097                                <xsd:restriction base="xsd:NMTOKEN">
1098                                        <xsd:enumeration value="Current" />
1099                                        <xsd:enumeration value="Deleted" />
1100                                        <xsd:enumeration value="Modified" />
1101                                        <xsd:enumeration value="New" />
1102                                </xsd:restriction>
1103                        </xsd:simpleType>
1104                </xsd:attribute>
1105        </xsd:complexType>
1106        <!--"PlantModel" element  -->
1107        <xsd:element name="PlantModel">
1108                <xsd:complexType>
1109                        <xsd:sequence>
1110                                <xsd:element ref="PlantInformation" />
1111                                <xsd:element ref="Extent" />
1112                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
1113                                        <xsd:element ref="Presentation" />
1114                                        <xsd:element ref="ShapeCatalogue" />
1115                                        <xsd:element ref="Drawing" />
1116                                        <xsd:element ref="PlantArea" />
1117                                        <xsd:element ref="Equipment" />
1118                                        <xsd:element ref="InstrumentComponent" />
1119                                        <xsd:element ref="InstrumentLoop" />
1120                                        <xsd:element ref="SignalLine" />
1121                                        <xsd:element ref="SignalConnectorSymbol" />
1122                                        <xsd:element ref="PipingNetworkSystem" />
1123                                        <xsd:element ref="ProcessInstrument" />
1124                                        <xsd:element ref="Curve" />
1125                                        <xsd:element ref="Text" />
1126                                </xsd:choice>
1127                        </xsd:sequence>
1128                </xsd:complexType>
1129        </xsd:element>
1130        <!--"Polyline" element  -->
1131        <xsd:element name="PolyLine" substitutionGroup="Curve">
1132                <xsd:complexType>
1133                        <xsd:complexContent>
1134                                <xsd:extension base="Curve">
1135                                        <xsd:sequence>
1136                                                <xsd:element ref="Presentation" />
1137                                                <xsd:element ref="Extent" />
1138                                                <xsd:element ref="Coordinate" minOccurs="2" maxOccurs="unbounded" />
1139                                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1140                                        </xsd:sequence>
1141                                        <xsd:attribute name="NumPoints" type="xsd:integer" use="optional" />
1142                                </xsd:extension>
1143                        </xsd:complexContent>
1144                </xsd:complexType>
1145        </xsd:element>
1146        <!--"Position" element  -->
1147        <xsd:element name="Position">
1148                <xsd:complexType>
1149                        <xsd:sequence>
1150                                <xsd:element ref="Location" />
1151                                <xsd:element ref="Axis" />
1152                                <xsd:element ref="Reference" />
1153                        </xsd:sequence>
1154                </xsd:complexType>
1155        </xsd:element>
1156        <!--"Presentation" element  -->
1157        <xsd:element name="Presentation">
1158                <xsd:complexType>
1159                        <xsd:attribute name="Layer" type="xsd:string" use="optional" />
1160                        <xsd:attribute name="Color" type="xsd:string" use="optional" />
1161                        <xsd:attribute name="LineType" type="xsd:string" use="optional" />
1162                        <xsd:attribute name="LineWeight" type="xsd:string" use="optional" />
1163                        <xsd:attribute name="R" type="Colour" use="optional" />
1164                        <xsd:attribute name="G" type="Colour" use="optional" />
1165                        <xsd:attribute name="B" type="Colour" use="optional" />
1166                </xsd:complexType>
1167        </xsd:element>
1168        <!--"Reference" element  -->
1169        <xsd:element name="Reference">
1170                <xsd:complexType>
1171                        <xsd:attribute name="X" type="xsd:double" use="required" />
1172                        <xsd:attribute name="Y" type="xsd:double" use="required" />
1173                        <xsd:attribute name="Z" type="xsd:double" use="required" />
1174                </xsd:complexType>
1175        </xsd:element>
1176        <!-- Scale -->
1177        <xsd:element name="Scale">
1178                <xsd:complexType>
1179                        <xsd:attribute name="X" type="xsd:double" use="required" />
1180                        <xsd:attribute name="Y" type="xsd:double" use="required" />
1181                        <xsd:attribute name="Z" type="xsd:double" use="optional" />
1182                </xsd:complexType>
1183        </xsd:element>
1184        <!--"Shape" element  -->
1185        <xsd:element name="Shape" substitutionGroup="Curve">
1186                <xsd:complexType>
1187                        <xsd:complexContent>
1188                                <xsd:extension base="Curve">
1189                                        <xsd:sequence>
1190                                                <xsd:element ref="Presentation" />
1191                                                <xsd:element ref="Extent" />
1192                                                <xsd:element ref="Coordinate" maxOccurs="unbounded" />
1193                                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1194                                        </xsd:sequence>
1195                                        <xsd:attribute name="NumPoints" use="required" />
1196                                        <xsd:attribute name="Filled" use="optional" >
1197                                                <xsd:simpleType>
1198                                                        <xsd:restriction base="xsd:NMTOKEN">
1199                                                                <xsd:enumeration value="Solid" />
1200                                                                <xsd:enumeration value="Hatch" />
1201                                                        </xsd:restriction>
1202                                                </xsd:simpleType>
1203                                        </xsd:attribute>
1204                                </xsd:extension>
1205                        </xsd:complexContent>
1206                </xsd:complexType>
1207        </xsd:element>
1208        <!--"SURFACE" element  -->
1209        <xsd:element name="Surface" abstract="true" />
1210        <!--"Text" element  -->
1211        <xsd:element name="Text">
1212                <xsd:annotation>
1213                        <xsd:documentation>
1214                        If this Text item is the presentation of the value of an Attribute of a PlantItem then,
1215                        a reference to the Attribute may be made by the ID of the PlantItem and the name of the Attribute.
1216               
1217                        If the text string is only one line then the string is in the Attribute String and the NumLines
1218                        attribute is not required. If the string is Multi-line then each Line should be a separate String Element.
1219                       
1220                        Profile differences :
1221                        - Either the String attribute or elements are required (no use is made of references).
1222                        - The NumLines attribute is not required for multi-line text.
1223                        - Line breaks may be placed in the String attribute.
1224                        - The String attribute is of type xsd:string
1225                        </xsd:documentation>
1226                </xsd:annotation>
1227                <xsd:complexType>
1228                        <xsd:choice maxOccurs="unbounded">
1229                                <xsd:element ref="Presentation" />
1230                                <xsd:element ref="Extent" />
1231                                <xsd:element ref="Position" />
1232                                <xsd:element name="String" type="String" minOccurs="0" />
1233                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1234                        </xsd:choice>
1235                        <xsd:attribute name="NumLines" type="xsd:integer" use="optional" />
1236                        <xsd:attribute name="String" type="xsd:string" use="optional" />
1237                        <xsd:attribute name="Font" type="xsd:string" use="required" />
1238                        <xsd:attribute name="Justification" use="optional" default="LeftBottom">
1239                                <xsd:simpleType>
1240                                        <xsd:restriction base="xsd:NMTOKEN">
1241                                                <xsd:enumeration value="LeftTop" />
1242                                                <xsd:enumeration value="LeftCenter" />
1243                                                <xsd:enumeration value="LeftBottom" />
1244                                                <xsd:enumeration value="CenterTop" />
1245                                                <xsd:enumeration value="CenterCenter" />
1246                                                <xsd:enumeration value="CenterBottom" />
1247                                                <xsd:enumeration value="RightTop" />
1248                                                <xsd:enumeration value="RightCenter" />
1249                                                <xsd:enumeration value="RightBottom" />
1250                                        </xsd:restriction>
1251                                </xsd:simpleType>
1252                        </xsd:attribute>
1253                        <xsd:attribute name="Width" type="xsd:double" use="required" />
1254                        <xsd:attribute name="Height" type="xsd:double" use="required" />
1255                        <xsd:attribute name="TextAngle" type="xsd:double" use="optional" />
1256                        <xsd:attribute name="SlantAngle" type="xsd:double" use="optional" />
1257                        <xsd:attribute name="ItemID" type="xsd:IDREF" use="optional" />
1258                        <xsd:attribute name="Set" type="xsd:string" use="optional" />
1259                        <xsd:attribute name="DependantAttribute" type="xsd:string" use="optional" />
1260                </xsd:complexType>
1261        </xsd:element>
1262        <!--Transaction Element details an operation on model-->
1263        <xsd:element name="Transaction">
1264                <xsd:complexType>
1265                        <xsd:sequence>
1266                                <xsd:element name="Remark" minOccurs="0" maxOccurs="unbounded" />
1267                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1268                        </xsd:sequence>
1269                        <xsd:attribute name="Type" type="TransactionType" use="optional" />
1270                        <xsd:attribute name="Date" type="xsd:date" use="optional" />
1271                        <xsd:attribute name="Time" type="xsd:time" use="optional" />
1272                        <xsd:attribute name="CompanyName" type="xsd:string" use="optional" />
1273                        <xsd:attribute name="Person" type="xsd:string" use="optional" />
1274                </xsd:complexType>
1275        </xsd:element>
1276        <!--"TrimmedCurve" element  -->
1277        <xsd:element name="TrimmedCurve" substitutionGroup="Curve">
1278                <xsd:complexType>
1279                        <xsd:complexContent>
1280                                <xsd:extension base="Curve">
1281                                        <xsd:sequence>
1282                                                <xsd:choice>
1283                                                        <xsd:element ref="Circle" />
1284                                                        <xsd:element ref="Ellipse" />
1285                                                </xsd:choice>
1286                                                <xsd:element ref="GenericAttributes" minOccurs="0" />
1287                                        </xsd:sequence>
1288                                        <xsd:attribute name="StartAngle" type="xsd:double" use="required" />
1289                                        <xsd:attribute name="EndAngle" type="xsd:double" use="required" />
1290                                </xsd:extension>
1291                        </xsd:complexContent>
1292                </xsd:complexType>
1293        </xsd:element>
1294        <xsd:element name="Vertices">
1295                <xsd:complexType>
1296                        <xsd:sequence>
1297                                <xsd:element ref="Coordinate" maxOccurs="unbounded" />
1298                        </xsd:sequence>
1299                        <xsd:attribute name="NumVertices" type="xsd:integer" use="required" />
1300                </xsd:complexType>
1301        </xsd:element>
1302        <!-- List of weights for a Rational Nurb curve or surface - one per control point -->
1303        <xsd:element name="Weights">
1304                <xsd:complexType>
1305                        <xsd:sequence>
1306                                <xsd:element name="ControlPointWeight" maxOccurs="unbounded" />
1307                        </xsd:sequence>
1308                </xsd:complexType>
1309        </xsd:element>
1310        <!-- Parametric objects  - basic objects then the primitives  -Note that Extents are not relevant  ***************-->
1311        <!--"Parametric Axis" element  - values can be expressions -->
1312        <xsd:element name="PAxis">
1313                <xsd:annotation>
1314                        <xsd:documentation>Axis is a normalised vector defining the direction in Global space of the local Z axis of the object it is contained in</xsd:documentation>
1315                </xsd:annotation>
1316                <xsd:complexType>
1317                        <xsd:attribute name="X" type="xsd:string" use="required" />
1318                        <xsd:attribute name="Y" type="xsd:string" use="required" />
1319                        <xsd:attribute name="Z" type="xsd:string" use="required" />
1320                </xsd:complexType>
1321        </xsd:element>
1322        <!--"Parametric Location" element - values can be expressions -->
1323        <xsd:element name="PLocation">
1324                <xsd:complexType>
1325                        <xsd:attribute name="X" type="xsd:string" use="required" />
1326                        <xsd:attribute name="Y" type="xsd:string" use="required" />
1327                        <xsd:attribute name="Z" type="xsd:string" use="optional" />
1328                </xsd:complexType>
1329        </xsd:element>
1330        <!--"Parameteric Reference" element - values can be expressions  -->
1331        <xsd:element name="PReference">
1332                <xsd:complexType>
1333                        <xsd:attribute name="X" type="xsd:string" use="required" />
1334                        <xsd:attribute name="Y" type="xsd:string" use="required" />
1335                        <xsd:attribute name="Z" type="xsd:string" use="required" />
1336                </xsd:complexType>
1337        </xsd:element>
1338        <!--"Parametric Position" element   - values can be expressions  -->
1339        <xsd:element name="PPosition">
1340                <xsd:complexType>
1341                        <xsd:sequence>
1342                                <xsd:element ref="PLocation" />
1343                                <xsd:element ref="PAxis" />
1344                                <xsd:element ref="PReference" />
1345                        </xsd:sequence>
1346                </xsd:complexType>
1347        </xsd:element>
1348        <!--"Node" element  -->
1349        <xsd:element name="PNode">
1350                <xsd:annotation>
1351                        <xsd:documentation>A PNode is an connection point for a component and is an Element within a PConnectionPoints Element.</xsd:documentation>
1352                </xsd:annotation>
1353                <xsd:complexType>
1354                        <xsd:choice maxOccurs="unbounded">
1355                                <xsd:element ref="PPosition" />
1356                                <xsd:element ref="NominalDiameter" minOccurs="0" />
1357                                <xsd:element ref="EndPreparation" minOccurs="0" />
1358                                <xsd:element ref="GasketGap" minOccurs="0" />
1359                                <xsd:element ref="Rating" minOccurs="0" />
1360                                <xsd:element ref="ScheduleThickness" minOccurs="0" />
1361                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1362                        </xsd:choice>
1363                        <xsd:attribute name="Name" type="xsd:string" use="optional" />
1364                        <xsd:attribute name="Type" use="optional">
1365                                <xsd:simpleType>
1366                                        <xsd:restriction base="xsd:NMTOKEN">
1367                                                <xsd:enumeration value="unspecified" />
1368                                                <xsd:enumeration value="process" />
1369                                                <xsd:enumeration value="signal" />
1370                                        </xsd:restriction>
1371                                </xsd:simpleType>
1372                        </xsd:attribute>
1373                        <xsd:attribute name="Function" use="optional">
1374                                <xsd:simpleType>
1375                                        <xsd:restriction base="xsd:NMTOKEN">
1376                                                <xsd:enumeration value="unspecified" />
1377                                                <xsd:enumeration value="primary" />
1378                                                <xsd:enumeration value="secondary" />
1379                                                <xsd:enumeration value="tap" />
1380                                        </xsd:restriction>
1381                                </xsd:simpleType>
1382                        </xsd:attribute>
1383                        <xsd:attribute name="Flow" use="optional">
1384                                <xsd:simpleType>
1385                                        <xsd:restriction base="xsd:NMTOKEN">
1386                                                <xsd:enumeration value="unspecified" />
1387                                                <xsd:enumeration value="in" />
1388                                                <xsd:enumeration value="out" />
1389                                                <xsd:enumeration value="both" />
1390                                        </xsd:restriction>
1391                                </xsd:simpleType>
1392                        </xsd:attribute>
1393                </xsd:complexType>
1394        </xsd:element>
1395        <!--"Parametric ConnectionPoints" element - values can be expressions  -->
1396        <xsd:element name="PConnectionPoints">
1397                <xsd:annotation>
1398                        <xsd:documentation>An ordered set of Nodes for the object containing this ConnectionPoints object. The first Node (0) is coincident with the origing of the containing object. The next two (1and 2) are the main flow and all others are secondary flows. Flowin and Flowout reference the Nodes indexed from 0 ie main flow is 1 and 2</xsd:documentation>
1399                </xsd:annotation>
1400                <xsd:complexType>
1401                        <xsd:sequence>
1402                                <xsd:element ref="Presentation" minOccurs="0" />
1403                                <xsd:element ref="Extent" minOccurs="0" />
1404                                <xsd:element ref="PNode" maxOccurs="unbounded" />
1405                                <xsd:element ref="GenericAttributes" minOccurs="0" maxOccurs="unbounded" />
1406                        </xsd:sequence>
1407                        <xsd:attribute name="NumPoints" type="xsd:integer" use="required" />
1408                        <xsd:attribute name="FlowIn" use="optional">
1409                                <xsd:simpleType>
1410                                        <xsd:restriction base="xsd:integer">
1411                                                <xsd:minInclusive value="1" />
1412                                        </xsd:restriction>
1413                                </xsd:simpleType>
1414                        </xsd:attribute>
1415                        <xsd:attribute name="FlowOut" use="optional">
1416                                <xsd:simpleType>
1417                                        <xsd:restriction base="xsd:integer">
1418                                                <xsd:minInclusive value="1" />
1419                                        </xsd:restriction>
1420                                </xsd:simpleType>
1421                        </xsd:attribute>
1422                </xsd:complexType>
1423        </xsd:element>
1424        <!-- Plant item classes start here  ************************************************   -->
1425        <!--component" element  - used as a generic collection of objects for which the purpose is unknown - it is used to retain the structure-->
1426        <xsd:element name="Component">
1427                <xsd:complexType>
1428                        <xsd:complexContent>
1429                                <xsd:extension base="PlantItem">
1430                                        <xsd:choice>
1431                                                <xsd:element ref="Component" minOccurs="0" maxOccurs="unbounded" />
1432                                        </xsd:choice>
1433                                </xsd:extension>
1434                        </xsd:complexContent>
1435                </xsd:complexType>
1436        </xsd:element>
1437        <!--"equipment" element  -->
1438        <xsd:element name="Equipment">
1439                <xsd:complexType>
1440                        <xsd:complexContent>
1441                                <xsd:extension base="PlantItem">
1442                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1443                                                <xsd:element ref="Discipline" minOccurs="0" />
1444                                                <xsd:element ref="MinimumDesignPressure" />
1445                                                <xsd:element ref="MaximumDesignPressure" />
1446                                                <xsd:element ref="MinimumDesignTemperature" />
1447                                                <xsd:element ref="MaximumDesignTemperature" />
1448                                                <xsd:element ref="Equipment" />
1449                                                <xsd:element ref="Nozzle" />
1450                                                <xsd:element ref="Component"/>
1451                                        </xsd:choice>
1452                                        <xsd:attribute name="ProcessArea" type="xsd:string" use="optional" />
1453                                        <xsd:attribute name="Purpose" type="xsd:string" use="optional" />
1454                                </xsd:extension>
1455                        </xsd:complexContent>
1456                </xsd:complexType>
1457        </xsd:element>
1458        <!--An InstrumentComponent is one that is not part of or connected to the process-->
1459        <xsd:element name="InstrumentComponent">
1460                <xsd:complexType>
1461                        <xsd:complexContent>
1462                                <xsd:extension base="PlantItem">
1463                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1464                                                <xsd:element ref="InstrumentComponent" minOccurs="0" maxOccurs="unbounded"/>
1465                                                <xsd:element ref="Component" minOccurs="0" maxOccurs="unbounded"/>
1466                                                <xsd:element ref="NominalDiameter" minOccurs="0"/>
1467                                                <xsd:element ref="InsideDiameter" minOccurs="0"/>
1468                                                <xsd:element ref="OutsideDiameter" minOccurs="0"/>
1469                                                <xsd:element ref="OperatorType" minOccurs="0"/>
1470                                                <xsd:element ref="WallThickness" minOccurs="0"/>
1471                                        </xsd:choice>
1472                                </xsd:extension>
1473                        </xsd:complexContent>
1474                </xsd:complexType>
1475        </xsd:element>
1476        <!--An InstrumentConnection is a special symbol that locates the connection point for an junction for a small bore segment to connect to an instrument.-->
1477        <xsd:element name="InstrumentConnection">
1478                <xsd:complexType>
1479                        <xsd:complexContent>
1480                                <xsd:extension base="PlantItem"/>
1481                        </xsd:complexContent>
1482                </xsd:complexType>
1483        </xsd:element>
1484        <!--"instrument_loop" element  -->
1485        <xsd:element name="InstrumentLoop">
1486                <xsd:complexType>
1487                        <xsd:complexContent>
1488                                <xsd:extension base="PlantItem">
1489                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1490                                                <xsd:element ref="SignalConnectorSymbol"/>
1491                                                <xsd:element ref="SignalLine"/>
1492                                        </xsd:choice>
1493                                </xsd:extension>
1494                        </xsd:complexContent>
1495                </xsd:complexType>
1496        </xsd:element>
1497        <!-- Instrument Panel element  -->
1498        <xsd:element name="InstrumentPanel" type="JunctionBox"/>
1499        <!--Junction Box element - general can be for Cables or Signal wires-->
1500        <xsd:element name="JunctionBox" type="JunctionBox"/>
1501        <xsd:complexType name="JunctionBox">
1502                <xsd:complexContent>
1503                        <xsd:extension base="PlantItem">
1504                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
1505                                        <xsd:element ref="TerminalStrip"/>
1506                                </xsd:choice>
1507                        </xsd:extension>
1508                </xsd:complexContent>
1509        </xsd:complexType>
1510        <!--"nozzle" element  -->
1511        <xsd:element name="Nozzle">
1512                <xsd:complexType>
1513                        <xsd:complexContent>
1514                                <xsd:extension base="PlantItem">
1515                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1516                                                <xsd:element ref="NozzleType" />
1517                                                <xsd:element ref="NominalDiameter" minOccurs="0" />
1518                                                <xsd:element ref="Height" minOccurs="0" />
1519                                                <xsd:element ref="Rating" minOccurs="0" />
1520                                        </xsd:choice>
1521                                </xsd:extension>
1522                        </xsd:complexContent>
1523                </xsd:complexType>
1524        </xsd:element>
1525        <!--"pipe_component" element  -->
1526        <xsd:element name="PipingComponent" type="PipingComponent" />
1527        <xsd:complexType name="PipingComponent">
1528                <xsd:annotation>
1529                        <xsd:documentation>PipingComponent covers all bought components. For Complex components they may have subcomponents that are either mechanical or piping. Component is used for mechanical items such as Valve Topworks.
1530                </xsd:documentation>
1531                </xsd:annotation>
1532                <xsd:complexContent>
1533                        <xsd:extension base="PlantItem">
1534                                <xsd:choice minOccurs="0" maxOccurs="unbounded">
1535                                        <xsd:element ref="PipingComponent" />
1536                                        <xsd:element ref="Component"/>
1537                                        <xsd:element ref="ConnectionType" minOccurs="0" />
1538                                        <xsd:element ref="NominalDiameter" minOccurs="0" />
1539                                        <xsd:element ref="InsideDiameter" minOccurs="0" />
1540                                        <xsd:element ref="OutsideDiameter" minOccurs="0" />
1541                                        <xsd:element ref="OperatorType" minOccurs="0" />
1542                                        <xsd:element ref="WallThickness" minOccurs="0" />
1543                                        <xsd:element ref="FabricationCategory" minOccurs="0" />
1544                                </xsd:choice>
1545                                <xsd:attribute name="ConnectionType" type="xsd:string" use="optional" />
1546                                <xsd:attribute name="Rating" type="xsd:string" use="optional" />
1547                                <xsd:attribute name="Standard" type="xsd:string" use="optional" />
1548                                <xsd:attribute name="ISOSymbol" type="xsd:string" use="optional" />
1549                        </xsd:extension>
1550                </xsd:complexContent>
1551        </xsd:complexType>
1552        <!--"Piping Network System" which consists of one or more succeeding piping segments. typically identified by a process Units and a Line id"
1553 -->
1554        <xsd:element name="PipingNetworkSystem">
1555                <xsd:complexType>
1556                        <xsd:complexContent>
1557                                <xsd:extension base="PlantItem">
1558                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1559                                                <xsd:element ref="NominalDiameter" />
1560                                                <xsd:element ref="InsideDiameter" />
1561                                                <xsd:element ref="OutsideDiameter" />
1562                                                <xsd:element ref="StartDiameter" />
1563                                                <xsd:element ref="EndDiameter" />
1564                                                <xsd:element ref="NormalDesignPressure" />
1565                                                <xsd:element ref="MinimumDesignPressure" />
1566                                                <xsd:element ref="MaximumDesignPressure" />
1567                                                <xsd:element ref="NormalDesignTemperature" />
1568                                                <xsd:element ref="MinimumDesignTemperature" />
1569                                                <xsd:element ref="MaximumDesignTemperature" />
1570                                                <xsd:element ref="NormalOperatingPressure" />
1571                                                <xsd:element ref="MinimumOperatingPressure" />
1572                                                <xsd:element ref="MaximumOperatingPressure" />
1573                                                <xsd:element ref="TestPressure" />
1574                                                <xsd:element ref="NormalOperatingTemperature" />
1575                                                <xsd:element ref="MinimumOperatingTemperature" />
1576                                                <xsd:element ref="MaximumOperatingTemperature" />
1577                                                <xsd:element ref="WallThickness" />
1578                                                <xsd:element ref="PipingNetworkSegment" minOccurs="0" />
1579                                                <xsd:element ref="PropertyBreak" minOccurs="0" />
1580                                        </xsd:choice>
1581                                </xsd:extension>
1582                        </xsd:complexContent>
1583                </xsd:complexType>
1584        </xsd:element>
1585        <!--"PipingNetworkSegment is an assembly of piping components which scope is defined by certain constant attributes along the segment as shown as part of the Line Label. -->
1586        <xsd:element name="PipingNetworkSegment">
1587                <xsd:complexType>
1588                        <xsd:complexContent>
1589                                <xsd:extension base="PlantItem">
1590                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1591                                                <xsd:element ref="NominalDiameter" />
1592                                                <xsd:element ref="InsideDiameter" />
1593                                                <xsd:element ref="OutsideDiameter" />
1594                                                <xsd:element ref="StartDiameter" />
1595                                                <xsd:element ref="EndDiameter" />
1596                                                <xsd:element ref="NormalDesignPressure" />
1597                                                <xsd:element ref="MinimumDesignPressure" />
1598                                                <xsd:element ref="MaximumDesignPressure" />
1599                                                <xsd:element ref="NormalDesignTemperature" />
1600                                                <xsd:element ref="MinimumDesignTemperature" />
1601                                                <xsd:element ref="MaximumDesignTemperature" />
1602                                                <xsd:element ref="NormalOperatingPressure" />
1603                                                <xsd:element ref="MinimumOperatingPressure" />
1604                                                <xsd:element ref="MaximumOperatingPressure" />
1605                                                <xsd:element ref="TestPressure" />
1606                                                <xsd:element ref="NormalOperatingTemperature" />
1607                                                <xsd:element ref="MinimumOperatingTemperature" />
1608                                                <xsd:element ref="MaximumOperatingTemperature" />
1609                                                <xsd:element ref="WallThickness" />
1610                                                <xsd:element ref="Connection" minOccurs="0" />
1611                                                <xsd:element ref="CenterLine" />
1612                                                <xsd:element ref="Equipment" />
1613                                                <xsd:element ref="PipingComponent" />
1614                                                <xsd:element ref="ProcessInstrument" />
1615                                                <xsd:element ref="Component"/>
1616                                                <xsd:element ref="PipeConnectorSymbol" />
1617                                                <xsd:element ref="PipeFlowArrow" />
1618                                                <xsd:element ref="Label"/>
1619                                                <xsd:element ref="InsulationSymbol" />
1620                                                <xsd:element ref="InstrumentConnection" />
1621                                        </xsd:choice>
1622                                        <xsd:attribute name="DualFlow" type="xsd:boolean" use="optional"/>
1623                                </xsd:extension>
1624                        </xsd:complexContent>
1625                </xsd:complexType>
1626        </xsd:element>
1627        <!--"PlantArea" element  -->
1628        <xsd:element name="PlantArea">
1629                <xsd:annotation>
1630                        <xsd:documentation>Removed contained hierarchy for profile</xsd:documentation>
1631                </xsd:annotation>
1632                <xsd:complexType>
1633                        <xsd:complexContent>
1634                                <xsd:extension base="PlantItem">
1635                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1636                                                <xsd:element ref="Component" maxOccurs="unbounded"/>
1637                                        </xsd:choice>
1638                                        <xsd:attribute name="Name" type="xsd:string" use="optional" />
1639                                </xsd:extension>
1640                        </xsd:complexContent>
1641                </xsd:complexType>
1642        </xsd:element>
1643        <!--"process_instrument" element  -->
1644        <xsd:element name="ProcessInstrument">
1645                <xsd:complexType>
1646                        <xsd:complexContent>
1647                                <xsd:extension base="PlantItem">
1648                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1649                                                <xsd:element ref="ProcessInstrument" minOccurs="0" maxOccurs="unbounded" />
1650                                                <xsd:element ref="Component" minOccurs="0" maxOccurs="unbounded"/>
1651                                                <xsd:element ref="NominalDiameter" minOccurs="0" />
1652                                                <xsd:element ref="InsideDiameter" minOccurs="0" />
1653                                                <xsd:element ref="OutsideDiameter" minOccurs="0" />
1654                                                <xsd:element ref="OperatorType" minOccurs="0" />
1655                                                <xsd:element ref="WallThickness" minOccurs="0" />
1656                                        </xsd:choice>
1657                                </xsd:extension>
1658                        </xsd:complexContent>
1659                </xsd:complexType>
1660        </xsd:element>
1661        <!-- ShapeCatalogue - a container for Components or Piping Component definitions-->
1662        <xsd:element name="ShapeCatalogue">
1663                <xsd:annotation>
1664                        <xsd:documentation>XMpLant Catalogue for 2D symbols or 3D models</xsd:documentation>
1665                </xsd:annotation>
1666                <xsd:complexType>
1667                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1668                                <xsd:element ref="Equipment" minOccurs="0" maxOccurs="unbounded" />
1669                                <xsd:element ref="Nozzle" minOccurs="0" maxOccurs="unbounded" />
1670                                <xsd:element ref="PipingComponent" minOccurs="0" maxOccurs="unbounded" />
1671                                <xsd:element ref="ProcessInstrument" minOccurs="0" maxOccurs="unbounded" />
1672                                <xsd:element ref="InstrumentComponent" minOccurs="0" maxOccurs="unbounded"/>
1673                                <xsd:element ref="Component" minOccurs="0" maxOccurs="unbounded" />
1674                                <xsd:element ref="PipeConnectorSymbol" minOccurs="0" maxOccurs="unbounded" />
1675                                <xsd:element ref="SignalConnectorSymbol" minOccurs="0" maxOccurs="unbounded" />
1676                                <xsd:element ref="InsulationSymbol" minOccurs="0" maxOccurs="unbounded"/>
1677                                <xsd:element ref="PropertyBreak" minOccurs="0" maxOccurs="unbounded"/>
1678                                <xsd:element ref="Label" minOccurs="0" maxOccurs="unbounded"/>
1679                                <xsd:element ref="PipeFlowArrow" minOccurs="0" maxOccurs="unbounded"/>
1680                        </xsd:choice>
1681                        <xsd:attribute name="Name" type="xsd:string" use="required" />
1682                        <xsd:attribute name="Version" type="xsd:string" use="optional" />
1683                        <xsd:attribute name="Units" type="xsd:string" use="optional" />
1684                        <xsd:attribute name="Date" type="xsd:date" use="optional" />
1685                </xsd:complexType>
1686        </xsd:element>
1687        <!--"signalLine" element  -->
1688        <xsd:element name="SignalLine">
1689                <xsd:complexType>
1690                        <xsd:complexContent>
1691                                <xsd:extension base="PlantItem">
1692                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1693                                                <xsd:element ref="Connection" minOccurs="0"/>
1694                                                <xsd:element ref="CenterLine"/>
1695                                                <xsd:element ref="Component"/>
1696                                        </xsd:choice>
1697                                </xsd:extension>
1698                        </xsd:complexContent>
1699                </xsd:complexType>
1700        </xsd:element>
1701        <!--Terminal element  - renamed from InstrumentTerminal in RDL alignment-->
1702        <xsd:element name="Terminal">
1703                <xsd:complexType>
1704                        <xsd:complexContent>
1705                                <xsd:extension base="PlantItem"/>
1706                        </xsd:complexContent>
1707                </xsd:complexType>
1708        </xsd:element>
1709        <!-- Terminal strip element  - renamed from InstrumentTerminalStrip in RDL alignment-->
1710        <xsd:element name="TerminalStrip">
1711                <xsd:complexType>
1712                        <xsd:complexContent>
1713                                <xsd:extension base="PlantItem">
1714                                        <xsd:choice minOccurs="0" maxOccurs="unbounded">
1715                                                <xsd:element ref="Terminal" maxOccurs="unbounded"/>
1716                                        </xsd:choice>
1717                                </xsd:extension>
1718                        </xsd:complexContent>
1719                </xsd:complexType>
1720        </xsd:element>
1721        <!--****************************     AnnotationItems start here-->
1722        <!--"Insulation_Symbol" element  -->
1723        <xsd:element name="InsulationSymbol">
1724                <xsd:complexType>
1725                        <xsd:complexContent>
1726                                <xsd:extension base="AnnotationItem"/>
1727                        </xsd:complexContent>
1728                </xsd:complexType>
1729        </xsd:element>
1730        <!--"Label" element -->
1731        <xsd:element name="Label">
1732                <xsd:complexType>
1733                        <xsd:complexContent>
1734                                <xsd:extension base="AnnotationItem"/>
1735                        </xsd:complexContent>
1736                </xsd:complexType>
1737        </xsd:element>
1738        <!--"pipe_connector" element - On / Off page connector for P&ID-->
1739        <xsd:element name="PipeConnectorSymbol">
1740                <xsd:complexType>
1741                        <xsd:complexContent>
1742                                <xsd:extension base="AnnotationItem">
1743                                        <xsd:sequence>
1744                                                <xsd:element ref="CrossPageConnection" minOccurs="0"/>
1745                                        </xsd:sequence>
1746                                </xsd:extension>
1747                        </xsd:complexContent>
1748                </xsd:complexType>
1749        </xsd:element>
1750        <!--"pipe_flow_arrow" element  -->
1751        <xsd:element name="PipeFlowArrow">
1752                <xsd:complexType>
1753                        <xsd:complexContent>
1754                                <xsd:extension base="AnnotationItem"/>
1755                        </xsd:complexContent>
1756                </xsd:complexType>
1757        </xsd:element>
1758        <!--"spec_break" element  - change to PropertyBreak-->
1759        <xsd:element name="PropertyBreak">
1760                <xsd:complexType>
1761                        <xsd:complexContent>
1762                                <xsd:extension base="AnnotationItem"/>
1763                        </xsd:complexContent>
1764                </xsd:complexType>
1765        </xsd:element>
1766        <!--"scope_bubble" element -->
1767        <xsd:element name="ScopeBubble">
1768                <xsd:complexType>
1769                        <xsd:complexContent>
1770                                <xsd:extension base="AnnotationItem"/>
1771                        </xsd:complexContent>
1772                </xsd:complexType>
1773        </xsd:element>
1774        <!--Signal connector Symbol element -->
1775        <xsd:element name="SignalConnectorSymbol">
1776                <xsd:complexType>
1777                        <xsd:complexContent>
1778                                <xsd:extension base="AnnotationItem">
1779                                        <xsd:sequence>
1780                                                <xsd:element ref="CrossPageConnection" minOccurs="0"/>
1781                                        </xsd:sequence>
1782                                </xsd:extension>
1783                        </xsd:complexContent>
1784                </xsd:complexType>
1785        </xsd:element>
1786</xsd:schema>
Home
About PCA
Reference Data Services
Projects
Workgroups