Schema Name: hcm-core.xsd
Documentation:
This schema document defines data types, which are specific for the purposes of the HCMA process. Consequently, the character of the data types defined in this schema document is
			process specific.
Collapse XSD Schema Code:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" blockDefault="#all" version="2.0">
	<xs:include schemaLocation="hcm-sdt.xsd"/>
	<xs:include schemaLocation="hcm-pdt.xsd"/>
	<xs:annotation>
		<xs:documentation>This schema document defines data types, which are specific for the purposes of the HCMA process. Consequently, the character of the data types defined in this schema document is
			process specific.</xs:documentation>
	</xs:annotation>
	<xs:complexType name="HullConditionObject" abstract="true" block="">
		<xs:annotation>
			<xs:documentation>
				<p>An object of the steel structure (hull) that is subject to condition assessment.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="id" type="globalId" use="required"/>
		<xs:attribute name="name" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="Gaugings">
		<xs:sequence>
			<xs:element name="Gauging" type="MeasurementPoint" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MeasurementPoint">
		<xs:annotation>
			<xs:documentation>Contains the information about the individual measurement points. It contains an optional element
				<code>Coordinates</code>of type
				<code>CartesianPoint</code>that contains the corresponding three coordinates of the point with respect to the global ship coordinate system. The Element
				<code>Coordinate</code>is optional because the geometry data of the vessel may or may not be available.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Coordinates" type="CartesianPoint" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="globalId" use="required"/>
		<xs:attribute name="name" type="xs:string"/>
		<xs:attribute name="description" type="xs:string">
			<xs:annotation>
				<xs:documentation>A textual description of the measurement point which makes it possible to add additional information concerning the measurement point (e.g. average value).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="comment" type="xs:string"/>
		<xs:attribute name="refId" type="globalId" use="required">
			<xs:annotation>
				<xs:documentation>A pointer to either a plate or profile at which the measurement has been taken.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="part" type="stiffenerDetail">
			<xs:annotation>
				<xs:documentation>For a measurement point on a stiffener this attribute defines the position of the point on the stiffener (“
					<code>web</code>” or “
					<code>flange</code>”). It is defined as an enumeration of type
					<code>xs:string</code>having following values:
					<code>web</code>,
					<code>flange</code>.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="value" type="positiveValue">
			<xs:annotation>
				<xs:documentation>The value of the measured thickness expressed in meters.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="position" type="positionType">
			<xs:annotation>
				<xs:documentation>The position of the reading, in case there is no geometry information.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="frameNumber" type="xs:string">
			<xs:annotation>
				<xs:documentation>The longitudinal position of the measurement point by means of a frame number. It only applies if no geometry information is available (i.e. the child-element
					<code>Coordinates</code>)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="sessionId" type="globalId">
			<xs:annotation>
				<xs:documentation>Unique reference to the measurement session where the measurement was taken. Useful for auditing purposes. Each measurement point with value shall be linked to exactly one session. Shall be empty if value is not set. If there is exactly one session, the measurement point is associated implicitly to that session. Otherwise the session id must be specified explicitly.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="Plate">
		<xs:annotation>
			<xs:documentation>
				<p>An individual plate object is unambiguously defined by following characteristics:
					<ul>
						<li>Name of structural element: e.g. SHELL</li>
						<li>Name of plate strake: e.g. "A"</li>
						<li>Name or number of plate for corresponding strake: e.g. 1</li>
						<li>Side identifier: e.g. P or S Sample plate name: "SHELL.B.10.P"</li>
					</ul>
				</p>
				<p>A FlatPlate is a plate belonging to flat shipbuilding panel surface, e.g. a deck, a longitudinal or transverse bulkheads, etc. All vertices of the Polyline representing the outer or inner
					contours lay on the same plane. The global coordinates can be obtained by determining the global normal direction of the structural member (e.g. positive X dir. for Transv. Bhds, positive Y dir.
					for longitudinal bulkheads, and positive Z direction for Decks and Stringers).</p>
				<p>Curved Plates are represented in Expansion Coordinates (e.g. in the Shell Expansion). The x coordinate is the global x coordinate of the ship. The y coordinate is the expanded frame contour at
					the corresponding x-position.</p>
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="PlateGeometry">
				<xs:attribute name="memberId" type="globalId" use="required"/>
				<xs:attribute name="strake" type="xs:string"/>
				<xs:attribute name="number" type="xs:string">
					<xs:annotation>
						<xs:documentation>A number denotes the individual plate item identification within a strake. According to the usual numbering system, any alpha-numeric character is permitted.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="side" type="locationType" use="required"/>
				<xs:attributeGroup ref="thicknessParameters"/>
				<xs:attribute name="materialId" type="globalId">
					<xs:annotation>
						<xs:documentation>reference to mechanical properties</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="installationDate" type="xs:date">
					<xs:annotation>
						<xs:documentation xml:lang="en">Date when the repair is being completed including welding and coating (if applicable), not the manufacturing date of the plate. Defaults to date of
							build of the vessel if not set.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="MeasurementItem">
		<xs:attribute name="gaugingId" type="globalId" use="required">
			<xs:annotation>
				<xs:documentation>Unique identifier within the XML document.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="MeasurementTask" abstract="true" final="">
		<xs:annotation>
			<xs:documentation xml:lang="en">Measurement tasks are used to break down the overall scope of measurements into manageable pieces. They are typically agreed between thickness measurement company, ship owner and class society during the planning meeting of a measurement campaign. Each measurement task defines areas on the hull structure that are to be measured or that were measured. These areas are specified by lists of structural parts, structural members or compartments. Additionally, a frame ranges may be given. Each measurement task contains an associated set of measurement points that shall be measured or that were measured.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Attachments" type="DocumentReferences" minOccurs="0">
				<xs:annotation>
					<xs:documentation xml:lang="en">Documents, drawings, sketches, photos related to this measurement task. The main purpose of those documents is to document the position of individual measurements unambiguously. Typical formats
						are .jpg, .tiff, .bmp, .png, .pdf.
						<UL>
							<li>photos documenting failures per compartment, often recorded with position, typical format is .jpg</li>
							<li>personal or company certificates, typical format (.jpg,.tiff,.bmp,.png,.pdf)</li>
						</UL>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Item" type="MeasurementItem" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="id" type="globalId" use="required"/>
		<xs:attribute name="name" type="xs:string"/>
		<xs:attribute name="title" type="xs:string">
			<xs:annotation>
				<xs:documentation xml:lang="en">May contain additional information, e.g. for grouping in the context of ESP.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="status" type="statusType" use="required">
			<xs:annotation>
				<xs:documentation xml:lang="en">For information only. It allows asking for open tasks. When a campaign is complete, the status of all tasks shall be "complete".</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="comment" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="CrossSectionTask">
		<xs:complexContent>
			<xs:extension base="MeasurementTask">
				<xs:attribute name="frameNumber" type="xs:string" use="required"/>
				<xs:attribute name="minOffset" type="xs:double"/>
				<xs:attribute name="maxOffset" type="xs:double"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="MemberTask">
		<xs:complexContent>
			<xs:extension base="MeasurementTask">
				<xs:sequence>
					<xs:element name="BoundingBox" type="BoundingBox" minOccurs="0">
						<xs:annotation>
							<xs:documentation xml:lang="en">
								<UL>
									<LI>Optional bounding box defining the scope of this measurement task. However, measurement points are not required to fit to the scope.</LI>
								</UL>
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="MemberId" type="globalId" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation xml:lang="en">
								<UL>
									<LI>Optional set of references to members defining the scope of this measurement task. However, measurement points are not required to fit to the scope.</LI>
								</UL>
							</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="CompartmentTask">
		<xs:complexContent>
			<xs:extension base="MeasurementTask">
				<xs:attribute name="compartmentId" type="globalId" use="required">
					<xs:annotation>
						<xs:documentation xml:lang="en">
							<UL>
								<LI>Reference to the compartment defining the scope of this measurement task. However, measurement points are not required to fit to the scope.</LI>
							</UL>
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="GeneralTask">
		<xs:complexContent>
			<xs:extension base="MeasurementTask"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Member">
		<xs:complexContent>
			<xs:extension base="HullConditionObject">
				<xs:attribute name="type" type="FunctionalProperty" use="required"/>
				<xs:attribute name="description" type="xs:string"/>
				<xs:attribute name="side" type="locationType"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Stiffener">
		<xs:annotation>
			<xs:documentation source="GL Rules I-Part 1, section 3 H, chapter 3, page 3-12, edition 2008" xml:lang="en">A Stiffener is a structural part that is made from profile shaped stock
				material manufactured at a mill.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="StiffenerGeometry">
				<xs:sequence>
					<xs:element name="Flange" type="Flange" minOccurs="0" maxOccurs="2">
						<xs:annotation>
							<xs:documentation>The number of flanges must be consistent with profile type.
								<UL>
									<LI>No flange for profiles of type FB, HP, or O.</LI>
									<LI>One flange for profiles of type L, T, or RHS.</LI>
									<LI>Two flanges for profiles of type I or C.</LI>
								</UL>
								Furthermore, in case of two flanges, their position shall be different.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attributeGroup ref="profileParameters"/>
				<xs:attribute name="memberId" type="globalId" use="required"/>
				<xs:attribute name="orientation" type="stiffenerOrientation"/>
				<xs:attribute name="offset" type="xs:double">
					<xs:annotation>
						<xs:documentation>Denotes the distance between the insertion point of the stiffener and the trace line (in meters).</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="side" type="locationType"/>
				<xs:attribute name="materialId" type="globalId">
					<xs:annotation>
						<xs:documentation>reference to material properties</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="installationDate" type="xs:date">
					<xs:annotation>
						<xs:documentation xml:lang="en">Date when the repair is being completed including welding and coating (if applicable), not the manufacturing date of the stiffener. Defaults to date
							of build of the vessel if not set.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Compartment">
		<xs:complexContent>
			<xs:extension base="HullConditionObject">
				<xs:sequence>
					<xs:element name="PlateReferences" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="PlateReference" type="PlateReference" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="StiffenerReferences" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="StiffenerReference" type="StiffenerReference" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="BoundingBox" type="BoundingBox" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="purpose" type="compartmentPurpose"/>
				<xs:attribute name="side" type="locationType"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ShipStructure">
		<xs:sequence>
			<xs:element name="Plates" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Plate" type="Plate" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Stiffeners" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Stiffener" type="Stiffener" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="StructureMembers" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Member" type="Member" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Compartments" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Compartment" type="Compartment" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Materials" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Material" type="Material" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PlateReference">
		<xs:complexContent>
			<xs:extension base="PlateGeometry">
				<xs:attribute name="refId" type="globalId" use="required">
					<xs:annotation>
						<xs:documentation>Global unique dentifier of the underlying plate.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StiffenerReference">
		<xs:complexContent>
			<xs:extension base="StiffenerGeometry">
				<xs:attribute name="refId" type="globalId" use="required">
					<xs:annotation>
						<xs:documentation>Global unique dentifier of the underlying stiffener.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PlateGeometry">
		<xs:complexContent>
			<xs:extension base="HullConditionObject">
				<xs:sequence>
					<xs:element name="OuterContour" type="Polyline" minOccurs="0"/>
					<xs:element name="InnerContour" type="Polyline" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="ExpandedOuterContour" type="Polyline2D" minOccurs="0"/>
					<xs:element name="ExpandedInnerContour" type="Polyline2D" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="Mesh" type="Mesh" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StiffenerGeometry">
		<xs:complexContent>
			<xs:extension base="HullConditionObject">
				<xs:sequence>
					<xs:element name="TraceLine" type="Polyline" minOccurs="0"/>
					<xs:element name="ExpandedTraceLine" type="Polyline2D" minOccurs="0"/>
					<xs:element name="Orientations" type="Orientations" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="Flange">
		<xs:attribute name="breadth" type="positiveValue"/>
		<xs:attribute name="position" type="flangePosition" default="upper"/>
		<xs:attributeGroup ref="thicknessParameters"/>
	</xs:complexType>
	<xs:simpleType name="flangePosition">
		<xs:annotation>
			<xs:documentation>Location of flange relative to the reference point.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="upper"/>
			<xs:enumeration value="lower"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Material">
		<xs:attribute name="id" type="globalId" use="required"/>
		<xs:attribute name="name" type="xs:string"/>
		<xs:attribute name="poissonRatio" type="xs:double"/>
		<xs:attribute name="density" type="xs:double"/>
		<xs:attribute name="tensileStrength" type="xs:double"/>
		<xs:attribute name="yieldStrength" type="xs:double"/>
		<xs:attribute name="elasticModulus" type="xs:double"/>
		<xs:attribute name="soundSpeed" type="xs:double"/>
	</xs:complexType>
	<xs:complexType name="MeasurementSession">
		<xs:annotation>
			<xs:documentation xml:lang="en">A measurement session is a part of a measurement campaign that contains thickness measurements executed in a single location (port stay, on voyage or dry dock) by specified personnel of a thickness measurement company, supervised by a surveyor within a contiguous period in time. This period can be for example as small as a working day. A measurement campaign may consist several measurement sessions due to limitations in time and accessibility of structures and compartments, the vessels schedule or limited dry dock capacities. Measurement sessions will differ by time frame, location and/or executing company. 
Each measurement point with value must be associated to exactly one measurement session. If there is only one session, this association can be implicit.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Duration" type="TimeSpan" minOccurs="0"/>
			<xs:element name="ExecutingCompany" type="CertifiedCompany" minOccurs="0"/>
			<xs:element name="Operator" type="Person" maxOccurs="unbounded"/>
			<xs:element name="Attachments" type="DocumentReferences" minOccurs="0">
				<xs:annotation>
					<xs:documentation xml:lang="en">
						<UL>
							<LI>Documents, drawings, photos and gauging files related the state of the vessel during this measurement session. This includes actual readings recorded by a gauging device (data logger) in
								proprietary format. Typical formats are .jpg, .tiff, .bmp, .png, .pdf, .utm.</LI>
							<LI>Photos documenting individual failures per structural member or compartment, optionally recorded with position, typical format is .jpg.</LI>
						</UL>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="location" type="xs:string" use="required"/>
		<xs:attribute name="equipment" type="xs:string" use="required"/>
		<xs:attribute name="surveyorName" type="xs:string" use="required"/>
		<xs:attribute name="id" type="globalId" use="required"/>
		<xs:attribute name="status" type="statusType" use="required"/>
		<xs:attribute name="comment" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="MeasurementGroupType">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="MemberTask" type="MemberTask"/>
			<xs:element name="CrossSectionTask" type="CrossSectionTask"/>
			<xs:element name="CompartmentTask" type="CompartmentTask"/>
			<xs:element name="GeneralTask" type="GeneralTask"/>
		</xs:choice>
	</xs:complexType>
	<xs:attributeGroup name="thicknessParameters">
		<xs:attribute name="thickness" type="positiveValue">
			<xs:annotation>
				<xs:documentation>Material thickness as approved by the classification society according to steel drawings. In case of CSR-vessels this value is called
					<em>Gross Thickness Offered</em>.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="replacementThickness" type="positiveValue">
			<xs:annotation>
				<xs:documentation xml:lang="en">Material thickness to be used for replacement. If not set,
					<code>builtThickness</code>can be used instead.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="builtThickness" type="positiveValue">
			<xs:annotation>
				<xs:documentation xml:lang="en">Actual material thickness to be built according to the steel drawing submitted to the classification society for approval. If not set,
					<code>thickness</code>can be used instead. For CSR-vessels this value can be used to calculate the
					<em>voluntary thickness addition</em>as difference between builtThickness and thickness. Any change to this value will affect maxDiminution in case of standard class rules.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxDiminution" type="positiveValue">
			<xs:annotation>
				<xs:documentation xml:lang="en">Maximum allowed material diminution as defined by regulations of the class society. Only used for standard class rules (non-CSR vessels). If not set, the difference between
					thickness and steelRenewal can be used instead.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="steelRenewal" type="xs:double">
			<xs:annotation>
				<xs:documentation source="IACS UR S31" xml:lang="en">Material thickness at which plate or stiffener must be replaced. Used for CSR-vessels and side shell frames in bulk carriers built in accordance to IACS UR S31. In case of CSR-vessels this value
					is called
					<em>Renewal Thickness</em>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="coatingRenewal" type="xs:double">
			<xs:annotation>
				<xs:documentation source="IACS UR S31" xml:lang="en">Material thickness at which coating must be renewed. Applicable to side shell frames in bulk carriers built in accordance to IACS
					UR S31.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="profileParameters">
		<xs:attribute name="height" type="positiveValue"/>
		<xs:attribute name="type" type="stiffenerType" use="required"/>
		<xs:attributeGroup ref="thicknessParameters"/>
		<xs:attribute name="radius" type="positiveValue">
			<xs:annotation>
				<xs:documentation xml:lang="en">Outer radius of the profile. Only to be used for profiles of type O.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
</xs:schema>
Collapse AttributeGroups:
Collapse ComplexTypes:
Collapse SimpleTypes: