<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2026 (x64) (https://www.altova.com) by Ole Christian Astrup (DNV AS) -->
<!-- Copyright 2026 Open Class 3D Exchange (OCX) Consortium (https://3docx.org)	Licensed under the Apache License, Version 2.0 (the "License") You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0	.	Unless required by applicable law or agreed to in writing, the 3Docx standard and software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.	The OCX Consortium is not liable to any use whatsoever of the distributed standard or software based on the standard. See the License for the specific language governing permissions and limitations under the License.  -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:ocx="https://3docx.org/fileadmin//ocx_schema//V320//OCX_Schema.xsd" xmlns:unitsml="urn:oasis:names:tc:unitsml:schema:xsd:UnitsMLSchema_lite-0.9.18" targetNamespace="https://3docx.org/fileadmin//ocx_schema//V320//OCX_Schema.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.0">
	<!-- Import the NIST unitsML lite schema -->
	<xs:import namespace="urn:oasis:names:tc:unitsml:schema:xsd:UnitsMLSchema_lite-0.9.18" schemaLocation="https://3docx.org/fileadmin/ocx_schema/unitsml/unitsmlSchema_lite-0.9.18.xsd"/>
	<xs:element name="Header" type="ocx:Header_T">
		<xs:annotation>
			<xs:documentation>The header information of an XML export.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:annotation>
		<xs:documentation>Copyright 2025 Open Class 3D Exchange (OCX) Consortium (https://3docx.org). Licensed under the Apache License, Version 2.0 (the "License") you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, the 3Docx standard and software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.	The OCX Consortium is not liable to any use whatsoever of the distributed standard or software based on the standard. See the License for the specific language governing permissions and limitations under the License.</xs:documentation>
	</xs:annotation>
	<xs:complexType name="Header_T">
		<xs:annotation>
			<xs:documentation>Type definition for the Header information for an XML instance.</xs:documentation>
		</xs:annotation>
		<xs:attributeGroup ref="ocx:header"/>
	</xs:complexType>
	<xs:attributeGroup name="header">
		<xs:annotation>
			<xs:documentation>Attribute group defining the header of an XML export (time stamp, name, author .) and the public license.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="time_stamp" type="xs:dateTime" use="required">
			<xs:annotation>
				<xs:documentation>Time stamp of the instance.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="name" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Name of the XML instance.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="author" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Name of author.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="originating_system" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Name of originating system or application.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="organization" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Name of originating organization.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="application_version" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Version of originating application.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="documentation" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Documentation of the content of the XML file.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:element name="DocumentBase" type="ocx:DocumentBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for the XML document defined in this schema.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="DocumentBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of the abstract base class for the XML document defined in this schema.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Header"/>
		</xs:sequence>
		<xs:attribute name="schemaVersion" type="xs:string" use="required" fixed="3.2.0">
			<xs:annotation>
				<xs:documentation>Current XML schema version (Format - x.y.z) x : Incremented for backward incompatible changes ( Ex - Adding a required attribute, etc.) y : Major backward compatible changes [ Ex - Adding a new node ,fixing major CRs,etc.] z : Minor backward compatible changes (Ex - adding an optional attribute, etc.).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="language" type="xs:language" use="optional" default="en">
			<xs:annotation>
				<xs:documentation>Language used by the application.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!-- Root Element -->
	<xs:element name="ocxXML" type="ocx:ocxXML_T" substitutionGroup="ocx:DocumentBase">
		<xs:annotation>
			<xs:documentation>Root element of the schema.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ocxXML_T">
		<xs:annotation>
			<xs:documentation>Root type of the schema.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DocumentBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Form"/>
					<xs:element ref="ocx:ClassCatalogue">
						<xs:annotation>
							<xs:documentation>The Class catalogues provided as part of the OCX. The catalogue can hold the society's definitions of cross-sections, materials, hole shapes etc.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:ProcessLayer" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Process layer referencing OCX process or business objects.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="unitsml:UnitsML"/>
					<xs:element ref="ocx:Equipments" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!--Common OCX base types -->
	<!-- ========================================================================================  -->
	<!-- Base element declaration (for SCHEMA definitions) -->
	<xs:element name="IdBase" type="ocx:IdBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base element for all elements which need to carry an ID.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="IdBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base type for all types which need to carry an ID.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:CustomProperties" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="required">
			<xs:annotation>
				<xs:documentation>An identifier for an element unique within the scope of the XML file. Each id must be unique within a document. The attribute uses the standard XML 1.0 ID type as defined in the XML Schema specification. This attribute is required in many OCX XML elements and an application should generate them automatically.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="DescriptionBase" type="ocx:DescriptionBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base element for all elements that need to carry a description.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="DescriptionBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base element for all elements that needs to carry a description.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:IdBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Description" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="name" type="xs:string">
					<xs:annotation>
						<xs:documentation>An optional descriptive or display name.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="NamedEntity_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base element for all elements that needs to carry a mandatory name.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:IdBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Description" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="name" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>An mandatory descriptive or display name.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Description" type="xs:string">
		<xs:annotation>
			<xs:documentation>Contains a description of the component its parent represents. The description is stored as a string. You can use this element for whatever purposes you require. This element can be used inside many OCX XML elements but is optional.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Description_T"/>
	<xs:element name="EntityBase" type="ocx:EntityBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base element for all structural parts (Panel, Plate, Seam ...).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="EntityBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base for all structural parts (Panel, Plate, Seam ...)information are derived.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:attribute ref="ocx:GUIDRef" use="required">
					<xs:annotation>
						<xs:documentation>A globally Unique ID referring an entity in the sending application.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Attributes -->
	<xs:attribute name="GUIDRef" type="ocx:guid">
		<xs:annotation>
			<xs:documentation>A globally unique ID referring to an entity in the authoring application. The sending application creates and holds the GUID. Used to establish a unique reference to an entity persistent  between applications.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:simpleType name="guid">
		<xs:annotation>
			<xs:documentation>The GUID of the entity referenced, in the form of a string containing 32 hex digits, typically formatted as 8-4-4-4-12 hex digits (e.g., 123e4567-e89b-12d3-a456-426614174000).</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ========================================================================================  -->
	<!--OCX References-->
	<!-- ========================================================================================  -->
	<xs:element name="ApplicationRef">
		<xs:annotation>
			<xs:documentation>The ApplicationRef element is meant to relate the parent element (Product, Representation, etc.) back to the owning entity in the sending application.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:ApplicationRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ApplicationRef_T">
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:externalRef" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ExternalGeometryRef" type="ocx:ExternalGeometryRef_T">
		<xs:annotation>
			<xs:documentation>The ExternalGeometryRef element is used to point to an external geometry representation of the parent entity (e.g. Plate, Stiffener, Bracket, Member).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ExternalGeometryRef_T">
		<xs:attributeGroup ref="ocx:externalRefAttributes"/>
	</xs:complexType>
	<!-- Reference base-->
	<xs:element name="ReferenceBase" type="ocx:ReferenceBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract type which all reference pointers must inherit from.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ReferenceBase_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:attribute name="localRef" type="xs:IDREF" use="required">
			<xs:annotation>
				<xs:documentation>References to an XML objects in the scope of the current file (internal references)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!-- References to Catalogue items-->
	<xs:element name="CatalogueRef" type="ocx:CatalogueRef_T" abstract="true" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>A reference to a catalogue item</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CatalogueRef_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MaterialRef" type="ocx:MaterialRef_T" substitutionGroup="ocx:CatalogueRef">
		<xs:annotation>
			<xs:documentation>A reference to a material in the catalogue</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="MaterialRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:CatalogueRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Material"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SectionRef" substitutionGroup="ocx:CatalogueRef">
		<xs:annotation>
			<xs:documentation>A reference to the parents cross-section.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:SectionRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="SectionRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:CatalogueRef_T">
				<xs:sequence>
					<xs:element ref="ocx:OffsetU"/>
					<xs:element ref="ocx:OffsetV"/>
					<xs:element ref="ocx:FlangeRenewalThickness" minOccurs="0"/>
					<xs:element ref="ocx:WebRenewalThickness" minOccurs="0"/>
					<xs:element ref="ocx:VoluntaryFlangeThicknessAddition" minOccurs="0"/>
					<xs:element ref="ocx:VoluntaryWebThicknessAddition" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:BarSection"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="HoleContourRef" type="ocx:HoleContourRef_T" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a catalogue 2D hole contour</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HoleContourRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Hole2DContour"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="HoleRef" type="ocx:HoleRef_T" substitutionGroup="ocx:CatalogueRef">
		<xs:annotation>
			<xs:documentation>A reference to a catalogue 2D hole.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HoleRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:CatalogueRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Hole2D"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PlateMaterial" substitutionGroup="ocx:CatalogueRef">
		<xs:annotation>
			<xs:documentation>Definition of the Plate material and plate thickness.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:PlateMaterialRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PlateMaterialRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:CatalogueRef_T">
				<xs:sequence>
					<xs:element ref="ocx:Thickness"/>
					<xs:element ref="ocx:RenewalThickness" minOccurs="0"/>
					<xs:element ref="ocx:VoluntaryThicknessAddition" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Material"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Bounded References are collections of pointers to objects that has geometry-->
	<xs:element name="BoundedRef" type="ocx:BoundedRef_T" abstract="true" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>A collection of references  to object with geometry that can be used to limit an object. ContourBounds can be added to aid resolving the closed contour</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="BoundedRef_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type description</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:sequence>
					<xs:element ref="ocx:ContourBounds"/>
					<xs:element ref="ocx:Offset"/>
					<xs:element ref="ocx:OffsetDirection"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="GridRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>An element that makes a reference to a grid definition. An offset along the grid reference normal vector can be given.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:GridRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="GridRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:sequence>
					<xs:element ref="ocx:Offset" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:ReferencePlane"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UnboundedGridRef" type="ocx:UnboundedGridRef_T" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>An element that makes a reference to a grid definition. An offset along the grid reference normal vector can be given.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UnboundedGridRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:GUIDRef"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:ReferencePlane"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="EdgeCurveRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>A reference to a Panel, Plate or bracket boundary curve. Used as landing curve for a faceplate or edge reinforcement stiffener.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:EdgeCurveRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="EdgeCurveRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:GUIDRef"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:FreeEdgeCurve3D"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SurfaceRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>The reference to a Surface geometry which is shared between more than one part.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:SurfaceRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="SurfaceRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:GUIDRef"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Surface"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UnboundedSurfaceRef" type="ocx:UnboundedSurfaceRef_T" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>The reference to a Surface geometry which is used in a LimitedBy.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UnboundedSurfaceRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:GUIDRef"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Surface"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SeamRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>The reference to a connected Plate.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:SeamRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="SeamRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Seam"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PanelRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>The reference to a connected Plate.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:PanelRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PanelRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Panel"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="StiffenerRef" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>A  reference to a Stiffener.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:StiffenerRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="StiffenerRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Stiffener"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="EdgeReinforcementRef" type="ocx:EdgeReinforcementRef_T" substitutionGroup="ocx:BoundedRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure EdgeReinforecement instance.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="EdgeReinforcementRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:EdgeReinforcement"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Collection of references to physical structure parts which are not used to bound other objects-->
	<xs:element name="StructureRef" type="ocx:StructureRef_T" abstract="true" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>Collection of references to physical structure part instances. Typically used as Occurrence in a DesignView.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="StructureRef_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="StrStiffenerRef" type="ocx:StrStiffenerRef_T" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure Stiffener instance.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="StrStiffenerRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Stiffener"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="StrSeamRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure Stiffener instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:StrSeamRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="StrSeamRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Seam"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PlateRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure Plate instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:PlateRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PlateRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Plate"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="BracketRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure Bracket instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:BracketRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="BracketRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Bracket"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="LugPlateRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure LugPlate instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:LugPlaterRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="LugPlaterRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:sequence>
					<xs:element ref="ocx:ConnectionLength">
						<xs:annotation>
							<xs:documentation>Length of lug plate connection welded to stiffener web.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:DistanceAbove"/>
				</xs:sequence>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Plate"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PillarRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure Pillar instance.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:PillarRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PillarRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Pillar"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="StrEdgeReinforcementRef" type="ocx:StrEdgeReinforcementRef_T" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>A reference to a structure EdgeReinforecement instance.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="StrEdgeReinforcementRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:EdgeReinforcement"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- References to structure concept instances without geometry-->
	<xs:element name="EndCutRef" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>A reference to the Stiffener end cut detail.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:EndCutRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="EndCutRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:EndCut"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="VesselRef" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>A reference to the the Vessel</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:VesselRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="VesselRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:GUIDRef" use="required"/>
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Vessel"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ConnectionConfigurationRef" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>A reference to the the a stiffener connection configuration</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:ConnectionConfigurationRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ConnectionConfigurationRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:ConnectionConfiguration"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CellRef">
		<xs:annotation>
			<xs:documentation>A reference to a Compartment cell.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:CellRef_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="CellRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferenceBase_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Cell"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:attribute name="refType">
		<xs:annotation>
			<xs:documentation>The OCX entity type which is referenced. Must be a qualified OCX name.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:annotation>
				<xs:documentation>Allowable OCX types which can be referenced using the ocxItemPtr.</xs:documentation>
			</xs:annotation>
			<xs:restriction base="xs:QName">
				<xs:enumeration value="ocx:Panel">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated  structure composition of type Panel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Plate">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated structure part of type Plate.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Seam">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated structure composition of type Seam.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Bracket">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated structure part of type Bracket.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Stiffener">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated structure part of type Stiffener.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Pillar">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated structure part of type Pillar.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:ConnectionConfiguration">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated stiffener configuration.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Hole2D">
					<xs:annotation>
						<xs:documentation>A reference to a catalogue 2D hole shape.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Material">
					<xs:annotation>
						<xs:documentation>A reference to a catalogue material.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:BarSection">
					<xs:annotation>
						<xs:documentation>A reference to a catalogue bar section.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Cell">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated compartment cell.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Vessel">
					<xs:annotation>
						<xs:documentation>A reference to the vessel instance.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:FreeEdgeCurve3D">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated free edge geometry.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Surface">
					<xs:annotation>
						<xs:documentation>A reference to an instantiated surface.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:EndCut">
					<xs:annotation>
						<xs:documentation>A reference to a stiffener end cut.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:OccurrenceGroup">
					<xs:annotation>
						<xs:documentation>A reference to an occurrence group in a design view.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:EdgeReinforcement">
					<xs:annotation>
						<xs:documentation>A reference to an an edge reinforcement.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:Hole2DContour">
					<xs:annotation>
						<xs:documentation>A reference to a hole/cut-out contour.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ocx:ReferencePlane"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="externalRef" type="xs:string">
		<xs:annotation>
			<xs:documentation>URI specifying the file location of the referenced entity.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attributeGroup name="externalRefAttributes">
		<xs:annotation>
			<xs:documentation>Item pointer attributes to entities in an external file.</xs:documentation>
		</xs:annotation>
		<xs:attribute ref="ocx:externalRef" use="required"/>
		<xs:attribute ref="ocx:geometryFormat" use="required" fixed=".stp"/>
	</xs:attributeGroup>
	<xs:attribute name="geometryFormat">
		<xs:annotation>
			<xs:documentation>Supported  external geometry files. (As per now, only .stp files are supported).</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value=".igs">
					<xs:annotation>
						<xs:documentation>IGES file representing one the detailed geometry of a structural part (Bracket, Stiffener, Pillar, Plate).</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value=".jt">
					<xs:annotation>
						<xs:documentation>OpenJT file representing one the detailed geometry of a structural part (Bracket, Stiffener, Pillar, Plate).</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value=".stp">
					<xs:annotation>
						<xs:documentation>STEP file representing one the detailed geometry of a structural part (Bracket, Stiffener, Pillar, Plate). This is the default format.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!-- ========================================================================================  -->
	<!-- Product views-->
	<!-- ========================================================================================  -->
	<xs:element name="OccurrenceGroup">
		<xs:annotation>
			<xs:documentation>A grouping of occurrences. Can also contain other OccurrenceGroup to form a nested level of groups.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:OccurrenceGroup_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="OccurrenceGroup_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:IdBase_T">
				<xs:choice>
					<xs:annotation>
						<xs:documentation>Any numbers of Occurrence or OccurrenceGroup can be present. At least one instance must exist.</xs:documentation>
					</xs:annotation>
					<xs:element ref="ocx:Occurrence" maxOccurs="unbounded"/>
					<xs:element ref="ocx:OccurrenceGroup" maxOccurs="unbounded"/>
				</xs:choice>
				<xs:attribute name="name" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>The name of the node.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="type" type="xs:string">
					<xs:annotation>
						<xs:documentation>The occurrence group design/product view type</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DesignView">
		<xs:annotation>
			<xs:documentation>A manifestation of some or all the components in the exporting application that contains configuration information for the parts it includes.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:DesignView_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="DesignView_T">
		<xs:annotation>
			<xs:documentation>Type definition.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:VesselRef"/>
					<xs:choice>
						<xs:annotation>
							<xs:documentation>Any numbers of Occurrence or OccurrenceGroup can be present. At least one instance must exist.</xs:documentation>
						</xs:annotation>
						<xs:element ref="ocx:OccurrenceGroup" maxOccurs="unbounded"/>
						<xs:element ref="ocx:Occurrence" maxOccurs="unbounded"/>
					</xs:choice>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Occurrence">
		<xs:annotation>
			<xs:documentation>An occurrence in a DesignView is a reference to a physical part in the model.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Occurrence_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Occurrence_T">
		<xs:annotation>
			<xs:documentation>Type Definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:IdBase_T">
				<xs:choice maxOccurs="unbounded">
					<xs:element ref="ocx:StructureRef" maxOccurs="unbounded"/>
				</xs:choice>
				<xs:attribute name="name" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>The name of the node</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="type" type="xs:string">
					<xs:annotation>
						<xs:documentation>The design/product  view type</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- OCX Process Layer -->
	<!-- ========================================================================================  -->
	<xs:element name="ProcessLayer" type="ocx:ProcessLayer_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract element which can hold any process related business information. (To be designed).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ProcessLayer_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition for the ProcessLayer.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T"/>
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- Form -->
	<!-- ========================================================================================  -->
	<xs:element name="Form" type="ocx:Form_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for object describing geometry and topology.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Form_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base type  definition of the Form element.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:DistanceTolerance"/>
					<xs:element ref="ocx:AngleTolerance"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- EQUIPMENT: Future extension -->
	<!-- ========================================================================================  -->
	<xs:element name="Equipments" type="ocx:Equipments_T">
		<xs:annotation>
			<xs:documentation>Container for equipments.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Equipments_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Equipment" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Equipment" type="ocx:Equipment_T">
		<xs:annotation>
			<xs:documentation>Place holder for future equipment support (To be designed).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Equipment_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Equipment element.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:ExternalGeometryRef" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
			<!--			<xs:sequence>					<xs:any namespace="##targetNamespace" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>				</xs:sequence> -->
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- Shipbuilding structures concepts-->
	<!-- ========================================================================================  -->
	<xs:element name="Vessel" substitutionGroup="ocx:Form">
		<xs:annotation>
			<xs:documentation>Vessel asset subject to Classification.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Vessel_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Vessel_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Vessel asset subject to Classification.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Form_T">
				<xs:sequence>
					<xs:element ref="ocx:CoordinateSystem" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>The vessel coordinate system definition. If not present, it is assumed that the Vessel is modelled in the global coordinate frame.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:ClassificationData"/>
					<xs:element ref="ocx:BuilderInformation" minOccurs="0"/>
					<xs:element ref="ocx:TonnageData" minOccurs="0"/>
					<xs:element ref="ocx:StatutoryData" minOccurs="0"/>
					<xs:element ref="ocx:ShipDesignation" minOccurs="0"/>
					<xs:element ref="ocx:DesignView" minOccurs="0" maxOccurs="unbounded"/>
					<xs:sequence>
						<xs:element ref="ocx:Arrangement" minOccurs="0"/>
						<xs:element ref="ocx:ReferenceSurfaces" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Collection of frequently used surfaces which are referenced by more than one object. Will typically contain the outer shell definition.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:Panel" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="ocx:Plate" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="ocx:Stiffener" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="ocx:Bracket" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element ref="ocx:Member" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Seam" type="ocx:Seam_T">
		<xs:annotation>
			<xs:documentation>Element describing the structure concept of a plate seam.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Seam_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Seam element describing plate seams.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:TraceLine" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Member" type="ocx:Member_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract element describing structure concept parts like columns, pillars, beams ...</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Member_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract type definition for the Member element.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructurePart_T"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Stiffener" type="ocx:Stiffener_T">
		<xs:annotation>
			<xs:documentation>Element describing the structure concept of type stiffeners which are attached to plating and constitutes the scantlings.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Stiffener_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Stiffener structure concept.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructurePart_T">
				<xs:sequence>
					<xs:element ref="ocx:TraceLine"/>
					<xs:element ref="ocx:MaterialRef"/>
					<xs:element ref="ocx:SectionRef"/>
					<xs:element ref="ocx:Inclination" maxOccurs="unbounded"/>
					<xs:element ref="ocx:EndCutEnd1" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The stiffener end cut detailing at end 1.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:EndCutEnd2" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The stiffener end cut detailing at end 2.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Offset" minOccurs="0"/>
					<xs:element ref="ocx:ConnectionConfiguration" minOccurs="0" maxOccurs="2">
						<xs:annotation>
							<xs:documentation>The stiffener end configuration at end 1 and/or end 2 of the parent stiffener.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Penetration" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>A structural concept of stiffener penetration configurations typically used in shipbuilding.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:CutBy" minOccurs="0"/>
					<xs:element ref="ocx:LimitedBy" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The references to limiting objects forming a closed contour of the parent element.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType"/>
				<xs:attribute ref="ocx:orientationRule">
					<xs:annotation>
						<xs:documentation>The orientation rule for the stiffener. The rule will help to orientate the stiffener. The stiffener Inclination determines the orientation of the flange and the web side.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Inclination" type="ocx:Inclination_T">
		<xs:annotation>
			<xs:documentation>The inclination of the cross-section of a stiffener or a pillar along its trace line. A vector pair giving the local orientation of the web and flange directions at the point given by the Position element. The FlangeDirection is optional and not necessary for a symmetrical cross-section. Only one inclination is necessary for a non-twisted (straight) stiffener or pillar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Inclination_T">
		<xs:annotation>
			<xs:documentation>Type definition of inclination of stiffener or member along its trace line (web and flange directions).</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:WebDirection"/>
			<xs:element ref="ocx:FlangeDirection">
				<xs:annotation>
					<xs:documentation>Direction of the stiffener flange. always required to determine the material side of symmetric profiles.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Position"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TraceLine">
		<xs:annotation>
			<xs:documentation>The landing curve on the moulded panel surface represented by any Curve3D type.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:TraceLine_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="TraceLine_T">
		<xs:annotation>
			<xs:documentation>The type definition of the stiffener TraceLine.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:CompositeCurve3D"/>
			<xs:element ref="ocx:BoundedRef" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="EdgeReinforcement" type="ocx:EdgeReinforcement_T">
		<xs:annotation>
			<xs:documentation>An EdgeReinforcement is used as a faceplate or edge reinforcement for a Panel, Plate or Bracket. The EdgeReinforcement is composed of a BarSection (usually a flat bar profile) and is attached to a FreeEdgeCurve which is part of the Panel or Plate LimitedBy. The EdgeReinforcement can reference one or more limits for the Panel/Plate/Bracket. At the same time the EdgeReinforcement provides its own TraceLine to determine the actual extent of the reinforcement.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="EdgeReinforcement_T">
		<xs:complexContent>
			<xs:extension base="ocx:StructurePart_T">
				<xs:sequence>
					<xs:element ref="ocx:SectionRef"/>
					<xs:element ref="ocx:MaterialRef"/>
					<xs:element ref="ocx:Inclination" maxOccurs="unbounded"/>
					<xs:choice maxOccurs="unbounded">
						<xs:element ref="ocx:EdgeCurveRef" maxOccurs="unbounded"/>
						<xs:element ref="ocx:HoleContourRef"/>
						<xs:element ref="ocx:GridRef"/>
						<xs:element ref="ocx:TraceLine"/>
					</xs:choice>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType"/>
				<xs:attribute ref="ocx:orientationRule"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Pillar" type="ocx:Pillar_T" substitutionGroup="ocx:Member">
		<xs:annotation>
			<xs:documentation>Structural concept for pillars used as vertical support in ship building.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Pillar_T">
		<xs:annotation>
			<xs:documentation>Type definition of the structural concept for pillars used as vertical support in ship building.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Member_T">
				<xs:sequence>
					<xs:element ref="ocx:MaterialRef"/>
					<xs:element ref="ocx:SectionRef"/>
					<xs:element ref="ocx:TraceLine">
						<xs:annotation>
							<xs:documentation>The pillar trace-line represented by a Curve3D type.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Inclination" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element ref="ocx:LimitedBy" minOccurs="0"/>
					<xs:element ref="ocx:CutBy" minOccurs="0"/>
					<xs:element ref="ocx:Penetration" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element ref="ocx:ConnectionConfiguration" minOccurs="0" maxOccurs="2">
						<xs:annotation>
							<xs:documentation>The connection configuration at end 1 and/or end 2 of the pillar.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Panel" type="ocx:Panel_T">
		<xs:annotation>
			<xs:documentation>Structural concept of shipbuilding panels. Panels can typically be composed of plates, seams and stiffeners.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Panel_T">
		<xs:annotation>
			<xs:documentation>Type definition of Structural concept of shipbuilding panels. Panels can typically be composed of plates, seams and stiffeners.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:UnboundedGeometry">
						<xs:annotation>
							<xs:documentation>The unbounded surface geometry of the parent element. Can be a patch of connected surfaces.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:LimitedBy"/>
					<xs:element ref="ocx:ComposedOf">
						<xs:annotation>
							<xs:documentation>The element representing the structural concepts which composes the structural Panel. If no ComposedOf definition is given, the Panel is treated as a virtual panel. A virtual panel is used to limit other objects defining the model topology.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:MassProperties" minOccurs="0"/>
					<xs:element ref="ocx:OuterContour" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element ref="ocx:PointOnSurface" minOccurs="0">
						<xs:annotation>
							<xs:documentation>For multiple surface solutions, a point on the resulting surface must be provided.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:StiffenedBy" minOccurs="0"/>
					<xs:element ref="ocx:SplitBy" minOccurs="0"/>
					<xs:element ref="ocx:CutBy" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A structural concept defining a cut-out in a surface defined by a parametric hole or a set of generic trim curves. Cut-out on panels will cut material on all the panel plates touched by the cut-out shape. Apply cutBy either on Panel or on Plate level, but not on both.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType" use="required"/>
				<xs:attribute ref="ocx:tightness" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ComposedOf" type="ocx:ComposedOf_T">
		<xs:annotation>
			<xs:documentation>Element representing the structural concepts which composes a structure Panel.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ComposedOf_T">
		<xs:sequence>
			<xs:element ref="ocx:Plate" maxOccurs="unbounded"/>
			<xs:element ref="ocx:Bracket" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="ocx:Pillar" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Plate" type="ocx:Plate_T">
		<xs:annotation>
			<xs:documentation>Structural concept of plates used in shipbuilding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Plate_T">
		<xs:annotation>
			<xs:documentation>Type definition of Structural concept of  plates used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructurePart_T">
				<xs:sequence>
					<xs:element ref="ocx:NetArea"/>
					<xs:element ref="ocx:OuterContour" maxOccurs="unbounded"/>
					<xs:element ref="ocx:PlateMaterial"/>
					<xs:element ref="ocx:LimitedBy" minOccurs="0"/>
					<xs:element ref="ocx:Offset" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The material offset form the parent surface. A material offset is measured positive along the parent surface normal vector.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:UnboundedGeometry" minOccurs="0"/>
					<xs:element ref="ocx:PlateCutBy" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A structural concept defining a cut-out in a surface defined by a parametric hole or a set of generic trim curves. Cut-outs on plate will only remove material of the parent plate, no other parts. Apply cutBy either on Panel or on Plate level, but not on both.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:PointOnSurface" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Bracket" type="ocx:Bracket_T">
		<xs:annotation>
			<xs:documentation>Structural concept of brackets used in shipbuilding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Bracket_T">
		<xs:annotation>
			<xs:documentation>Type definition  of Structural concept of brackets used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructurePart_T">
				<xs:sequence>
					<xs:element ref="ocx:BracketParameters"/>
					<xs:element ref="ocx:PlateMaterial"/>
					<xs:element ref="ocx:Offset" minOccurs="0"/>
					<xs:element ref="ocx:OuterContour"/>
					<xs:element ref="ocx:UnboundedGeometry" minOccurs="0"/>
					<xs:element ref="ocx:LimitedBy" minOccurs="0"/>
					<xs:element ref="ocx:CutBy" minOccurs="0"/>
					<xs:element ref="ocx:InnerContour" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element ref="ocx:StiffenedBy" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:functionType"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StructurePart_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of  the abstract base class for structure objects representing structure concepts.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:MassProperties"/>
					<xs:element ref="ocx:ExternalGeometryRef" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="LimitedBy">
		<xs:annotation>
			<xs:documentation>The references to limiting objects forming a closed contour of the parent element. It is not required that the set of objects is ordered in the correct sequence.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:LimitedBy_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="LimitedBy_T">
		<xs:annotation>
			<xs:documentation>Type definition of the LimitedBy (reference to limiting objects forming a closed contour of the parent element).</xs:documentation>
		</xs:annotation>
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="ocx:FreeEdgeCurve3D" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Collection of non-closed Curve3D types. Used to represent a free edge to form a closed contour together with the limiting objects.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:BoundedRef" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="ReferencePlane" type="ocx:ReferencePlane_T" abstract="true">
		<xs:annotation>
			<xs:documentation>The concept of a reference plane which is typically used to define an unbounded geometry.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ReferencePlane_T">
		<xs:annotation>
			<xs:documentation>Type definition of the concept of a reference plane which is typically used to define an unbounded geometry.</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:element name="Hole2DContour" type="ocx:Hole2DContour_T">
		<xs:annotation>
			<xs:documentation>An instantiated hole defined by a reference to a hole-shape and a transformation..</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Hole2DContour_T">
		<xs:annotation>
			<xs:documentation>Type definition of Parametric or curve based 2D contours.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:GeometryRepresentation_T">
				<xs:sequence>
					<xs:element ref="ocx:HoleRef"/>
					<xs:element ref="ocx:Transformation"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- Shipbuilding structures concepts-->
	<!-- ========================================================================================  -->
	<xs:element name="ConnectionConfiguration">
		<xs:annotation>
			<xs:documentation>The structural concept defining the end configurations for stiffeners used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:ConnectionConfiguration_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ConnectionConfiguration_T" abstract="false">
		<xs:annotation>
			<xs:documentation>Type definition of the structural concept defining  end configurations for stiffeners used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:choice minOccurs="0">
						<xs:annotation>
							<xs:documentation>Configuration types.</xs:documentation>
						</xs:annotation>
						<xs:element ref="ocx:SingleBracket">
							<xs:annotation>
								<xs:documentation>A single bracket connection type at the position of the end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:DoubleBracket">
							<xs:annotation>
								<xs:documentation>A double bracket connection type at the position of the end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:WebStiffener">
							<xs:annotation>
								<xs:documentation>Web stiffener at the position of the end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:WebStiffenerWithSingleBracket">
							<xs:annotation>
								<xs:documentation>Web stiffener with single bracket connection at the position of the end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:WebStiffenerWithDoubleBracket">
							<xs:annotation>
								<xs:documentation>A web stiffener with double bracket connection at the position of the end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:choice>
					<xs:choice minOccurs="0">
						<xs:annotation>
							<xs:documentation>The stiffener penetrates/connects a  Plate, Pillar or another Stiffener.</xs:documentation>
						</xs:annotation>
						<xs:element ref="ocx:PlateRef">
							<xs:annotation>
								<xs:documentation>The reference to a connected Plate at this end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:PillarRef">
							<xs:annotation>
								<xs:documentation>The reference to a connected Member (Pillar) at this end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:StiffenerRef">
							<xs:annotation>
								<xs:documentation>The reference to the connected Stiffener at this end configuration.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="ocx:BracketRef"/>
					</xs:choice>
					<xs:sequence>
						<xs:element ref="ocx:Point3D">
							<xs:annotation>
								<xs:documentation>The logical geometric position of the end configuration at the stiffeners end.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Penetration">
		<xs:annotation>
			<xs:documentation>Structural concept of stiffener penetration configurations typically used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Penetration_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Penetration_T">
		<xs:annotation>
			<xs:documentation>Type definition of Structural concept of stiffener penetration configurations typically used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ConnectionConfiguration_T">
				<xs:sequence>
					<xs:element ref="ocx:SlotParameters" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:tightness">
					<xs:annotation>
						<xs:documentation>The tightness type of the penetration.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PenetratingObject_T">
		<xs:annotation>
			<xs:documentation>Type definition of a penetrated structural object.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:PlateRef">
				<xs:annotation>
					<xs:documentation>Reference to a penetrated Plate.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:SlotParameters"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="BracketParameters" type="ocx:BracketParameters_T">
		<xs:annotation>
			<xs:documentation>Bracket parameters necessary for the verification by the society.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="BracketParameters_T">
		<xs:annotation>
			<xs:documentation>Type definition of Common parameters defining bracket configurations used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ArmLengthU"/>
			<xs:element ref="ocx:ArmLengthV"/>
			<xs:element ref="ocx:UDirection">
				<xs:annotation>
					<xs:documentation>Local U direction of the Bracket</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:VDirection">
				<xs:annotation>
					<xs:documentation>Local V direction of the Bracket.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Origin">
				<xs:annotation>
					<xs:documentation>The origin or root point of the Bracket</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Unose" minOccurs="0"/>
			<xs:element ref="ocx:Vnose" minOccurs="0"/>
			<xs:element ref="ocx:FreeEdgeRadius" minOccurs="0"/>
			<xs:element ref="ocx:FeatureCope" minOccurs="0"/>
			<xs:element ref="ocx:FlangeEdgeReinforcement" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="ocx:hasEdgeReinforcement" use="required"/>
		<xs:attribute name="numberOfSupports" type="xs:int">
			<xs:annotation>
				<xs:documentation>Number of supported (welded) bracket edges.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute ref="ocx:reinforcementType"/>
	</xs:complexType>
	<xs:attribute name="reinforcementType">
		<xs:annotation>
			<xs:documentation>Enumerator of bracket edge reinforcement types.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="Flanged">
					<xs:annotation>
						<xs:documentation>The bracket edge has a flanged stiffening with a bend radius.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="FacePlate">
					<xs:annotation>
						<xs:documentation>The bracket edge has a faceplate.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="BucklingStiffener">
					<xs:annotation>
						<xs:documentation>The bracket edge has a buckling stiffener.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="hasEdgeReinforcement" type="xs:boolean" default="false">
		<xs:annotation>
			<xs:documentation>Boolean. False if bracket has no reinforcement (Default).</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:element name="FlangeEdgeReinforcement" type="ocx:FlangeEdgeReinforcement_T">
		<xs:annotation>
			<xs:documentation>Bracket flange edge reinforcement parameters.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="FlangeEdgeReinforcement_T">
		<xs:sequence>
			<xs:element ref="ocx:FlangeWidth">
				<xs:annotation>
					<xs:documentation>The width of the bracket flange edge reinforcement.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Radius">
				<xs:annotation>
					<xs:documentation>The bend radius of the transition zone between bracket web and bracket flange.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="FeatureCope" type="ocx:FeatureCope_T">
		<xs:annotation>
			<xs:documentation>Parameters of cope features defining additional bracket or stiffener end cut details.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="FeatureCope_T">
		<xs:annotation>
			<xs:documentation>Cope parameters.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:CopeRadius"/>
			<xs:element ref="ocx:CopeLength" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The length of the cope measured along the stiffener trace-line (X-axis)  from the end of the stiffener to the centre of the cope radius.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:CopeHeight" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The height of the cope measured along the cross section local V-direction from the root point to the centre of the cope radius.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EndCut_T">
		<xs:annotation>
			<xs:documentation>Type definition of stiffener end cut parameters.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:CutbackDistance"/>
					<xs:element ref="ocx:WebCutBackAngle"/>
					<xs:element ref="ocx:WebNoseHeight" minOccurs="0"/>
					<xs:element ref="ocx:FlangeCutBackAngle" minOccurs="0"/>
					<xs:element ref="ocx:FlangeNoseHeight" minOccurs="0"/>
					<xs:element ref="ocx:FeatureCope" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="symmetricFlange" type="xs:boolean" default="false">
					<xs:annotation>
						<xs:documentation>The end cut is symmetrical.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="sniped" type="xs:boolean" use="optional" default="false">
					<xs:annotation>
						<xs:documentation>The stiffener is sniped.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="EndCutEnd1" type="ocx:EndCut_T">
		<xs:annotation>
			<xs:documentation>The stiffener end cut detailing.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="EndCutEnd2" type="ocx:EndCut_T">
		<xs:annotation>
			<xs:documentation>Stiffener end cut detailing at end 2.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ConnectedBracketRef" substitutionGroup="ocx:StructureRef">
		<xs:annotation>
			<xs:documentation>The reference to a connected bracket part of a ConnectionConfiguration.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:BracketRef_T">
					<xs:attribute ref="ocx:position"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="SingleBracket" type="ocx:SingleBracket_T">
		<xs:annotation>
			<xs:documentation>Double bracket connection.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SingleBracket_T">
		<xs:annotation>
			<xs:documentation>Type definition of DoubleBracket connection.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ConnectedBracketRef"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DoubleBracket">
		<xs:annotation>
			<xs:documentation>A double bracket type connection. The reference to a connected bracket part of a ConnectionConfiguration. For a double bracket connection type, two references must be provided.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:DoubleBracket_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="DoubleBracket_T">
		<xs:annotation>
			<xs:documentation>Type definition of DoubleBracket connection.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ConnectedBracketRef" minOccurs="2" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>The reference to a connected bracket part of a ConnectionConfiguration. For a double bracket connection type, two references must be provided.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="WebStiffenerRef" type="ocx:WebStiffenerRef_T" substitutionGroup="ocx:ReferenceBase">
		<xs:annotation>
			<xs:documentation>Web stiffener connection.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="WebStiffenerRef_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:StructureRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Stiffener"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="WebStiffener" type="ocx:WebStiffener_T">
		<xs:annotation>
			<xs:documentation>Connection configuration with one web stiffener with a single bracket connection.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="WebStiffener_T">
		<xs:annotation>
			<xs:documentation>Type definition of Web stiffener with single bracket connection.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:WebStiffenerRef"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="WebStiffenerWithSingleBracket" type="ocx:WebStiffenerWithSingleBracket_T">
		<xs:annotation>
			<xs:documentation>Connection configuration with one web stiffener with a single bracket connection.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="WebStiffenerWithSingleBracket_T">
		<xs:annotation>
			<xs:documentation>Type definition of Web stiffener with single bracket connection.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ConnectedBracketRef"/>
			<xs:element ref="ocx:WebStiffenerRef"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="WebStiffenerWithDoubleBracket">
		<xs:annotation>
			<xs:documentation>Web stiffener with double bracket connection.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:WebStiffenerWithDoubleBracket_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="WebStiffenerWithDoubleBracket_T">
		<xs:annotation>
			<xs:documentation>Type definition of Web stiffener with double bracket connection.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ConnectedBracketRef" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>Reference to the two connected brackets which are part of a ConnectionConfiguration.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebStiffenerRef"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SlotParameters" type="ocx:SlotParameters_T">
		<xs:annotation>
			<xs:documentation>Parameters of a slot (cut-out) typically used in shipbuilding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SlotParameters_T">
		<xs:annotation>
			<xs:documentation>Type definition of the SlotParameters for a slot cut-out typically used in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>The height of the slot.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>The width of the slot.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:UpperRadius">
				<xs:annotation>
					<xs:documentation>Upper radius of slot opening.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:ConnectionLength" minOccurs="0"/>
			<xs:element ref="ocx:LowerRadius" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Lower radius of slot opening.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:LugPlateRef" minOccurs="0" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>Reference to collar or plate lugs welded to the stiffener.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="asymmetric" type="xs:boolean" default="true"/>
		<xs:attribute ref="ocx:slotType"/>
	</xs:complexType>
	<xs:element name="ConnectionLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The connection length of the direct connection between a stiffener and a primary supporting member.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SlotContour" type="ocx:Hole2DContour_T">
		<xs:annotation>
			<xs:documentation>An optional contour for the detailed slot shape given as a reference to a catalogue shape with a transformation.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MassProperties" type="ocx:MassProperties_T">
		<xs:annotation>
			<xs:documentation>The mass properties of structure objects (weight and centre of gravity). These properties are provided by the exporting application and can be used as a quality measure by the receiving application to ensure correctness of the import. Both moulded and volume properties can be provided. The volume properties represent the physical mass property of the structure part, while the moulded properties are idealised.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="MassProperties_T">
		<xs:annotation>
			<xs:documentation>Type definition of mass properties of structure objects (weight and centre of gravity).</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:MouldedDryWeight"/>
			<xs:element ref="ocx:MouldedCenterOfGravity">
				<xs:annotation>
					<xs:documentation>The idealised moulded centre of gravity of the structure part.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:PhysicalDryWeight" minOccurs="0">
				<xs:annotation>
					<xs:documentation> The physical volumetric dry weight  of the structure part</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:PhysicalCenterOfGravity" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CutBy" type="ocx:CutBy_T">
		<xs:annotation>
			<xs:documentation>A structural concept defining a cut-out in a surface defined by a parametric hole or a set of generic trim curves.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PlateCutBy">
		<xs:annotation>
			<xs:documentation>A structural concept defining a cut-out in a surface defined by a parametric hole or a set of generic trim curves.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:PlateCutBy_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PlateCutBy_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="ocx:Hole2DContour"/>
			<xs:element ref="ocx:InnerContour"/>
			<xs:element ref="ocx:SlotContour"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="CutBy_T">
		<xs:annotation>
			<xs:documentation>Type definition of  a structural concept defining a cut-out in a surface defined by a parametric hole or a set of generic trim curves.</xs:documentation>
		</xs:annotation>
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="ocx:Hole2DContour" maxOccurs="unbounded"/>
			<xs:element ref="ocx:InnerContour" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="StiffenedBy" type="ocx:StiffenedBy_T">
		<xs:annotation>
			<xs:documentation>Structural concept defining the stiffeners which belongs to a panel.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="StiffenedBy_T">
		<xs:annotation>
			<xs:documentation>Type definition of the structural concept defining the stiffeners which belongs to a panel as a choice of a Stiffener or EdgeReinforcement.</xs:documentation>
		</xs:annotation>
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="ocx:Stiffener" maxOccurs="unbounded"/>
			<xs:element ref="ocx:EdgeReinforcement" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="SplitBy" type="ocx:SplitBy_T">
		<xs:annotation>
			<xs:documentation>Structural concepts defining the subdivision of a panel into plates split by one or more seams.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SplitBy_T">
		<xs:annotation>
			<xs:documentation>Type definition of Structural concepts defining the subdivision of a panel into plates split by one or more seams.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Seam" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!--Arrangement-->
	<!-- ========================================================================================  -->
	<xs:element name="PhysicalSpace" type="ocx:PhysicalSpace_T">
		<xs:annotation>
			<xs:documentation>The concept of a physical compartment representing a closed volume (space) defined by  enclosing  structure panels.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PhysicalSpace_T">
		<xs:annotation>
			<xs:documentation>Type definition of the  concept of a physical compartment representing a closed volume (space) defined by  enclosing  structure panels.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:CompartmentProperties"/>
					<xs:element ref="ocx:Cell" maxOccurs="unbounded"/>
					<xs:element ref="ocx:CrossFlow" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Specify cross flow between Cells making up a Compartment. This enables the modelling of cells that are not adjacent, but are connected by a piping system and part of the same Compartment.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:ExternalGeometryRef" minOccurs="0"/>
					<xs:choice>
						<xs:element ref="ocx:BulkCargo"/>
						<xs:element ref="ocx:LiquidCargo"/>
						<xs:element ref="ocx:UnitCargo"/>
					</xs:choice>
				</xs:sequence>
				<xs:attribute ref="ocx:compartmentPurpose" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Arrangement" type="ocx:Arrangement_T">
		<xs:annotation>
			<xs:documentation>The vessel arrangement or capacity plan defined by its compartments.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Arrangement_T">
		<xs:annotation>
			<xs:documentation>Type definition of the vessel arrangement (of compartments).</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:choice maxOccurs="unbounded">
					<xs:element ref="ocx:Compartment">
						<xs:annotation>
							<xs:documentation>The  concept of a compartment part of the vessel arrangement  representing a CLOSED volume (space) defined by  enclosing surface geometry.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:PhysicalSpace"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Compartment" type="ocx:Compartment_T">
		<xs:annotation>
			<xs:documentation>The concept of a compartment part of the vessel capacity plan representing a closed volume (space) defined by enclosing surface geometry.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Compartment_T">
		<xs:annotation>
			<xs:documentation>Type definition of the  concept of a compartment part of the vessel capacity plan representing a closed volume (space) defined by  enclosing  structure panels.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:CompartmentProperties"/>
					<xs:element ref="ocx:CompartmentFace" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>The face of a compartment defined by a surface boundary. All faces must make up a CLOSED volume defining the compartment.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:ExternalGeometryRef" minOccurs="0"/>
					<xs:choice>
						<xs:element ref="ocx:BulkCargo"/>
						<xs:element ref="ocx:LiquidCargo"/>
						<xs:element ref="ocx:UnitCargo"/>
					</xs:choice>
				</xs:sequence>
				<xs:attribute ref="ocx:compartmentPurpose" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CompartmentFace">
		<xs:annotation>
			<xs:documentation>The face of a compartment defined by a surface boundary.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:CompartmentFace_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="CompartmentFace_T">
		<xs:annotation>
			<xs:documentation>Type definition of the face of a compartment defined by a surface boundary.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:UnboundedGeometry"/>
					<xs:element ref="ocx:FaceBoundaryCurve">
						<xs:annotation>
							<xs:documentation> A collection of 3D curves making up the closed boundary of the compartment face.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Cell">
		<xs:annotation>
			<xs:documentation>Structural concept of a cell defining a closed volume which is part of a compartment (physical space).</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Cell_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Cell_T">
		<xs:annotation>
			<xs:documentation>Type definition of the structural concept of a cell defining a part of a compartment (physical space).</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:GeometryRepresentation_T">
				<xs:sequence>
					<xs:element ref="ocx:CellBoundary" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CellBoundary" type="ocx:CellBoundary_T">
		<xs:annotation>
			<xs:documentation>The reference to a Panel surface making up one Cell boundary.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CellBoundary_T">
		<xs:complexContent>
			<xs:extension base="ocx:BoundedRef_T">
				<xs:attribute ref="ocx:refType" use="required" fixed="ocx:Panel"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CrossFlow">
		<xs:annotation>
			<xs:documentation>Concept to specify cross flow between Cells making up a Compartment. This enables the modelling of cells that are not adjacent but are connected by a piping system and part of the same Compartment.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:IdBase_T">
					<xs:sequence>
						<xs:element ref="ocx:CellConnection"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="CompartmentProperties" type="ocx:CompartmentProperties_T">
		<xs:annotation>
			<xs:documentation>The physical properties of a compartment volume (COG, air pipe top).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CompartmentProperties_T">
		<xs:annotation>
			<xs:documentation>Type definition of the physical properties of a compartment volume (COG, air pipe top).</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:CenterOfGravity">
				<xs:annotation>
					<xs:documentation>COG of the closed space.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Volume"/>
			<xs:element ref="ocx:AirPipeHeight" minOccurs="0"/>
			<xs:element ref="ocx:FillingHeight" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The filling height specifies the maximum height for filling of the tank compartment.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:ReliefValvePressure" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="BulkCargo" type="ocx:BulkCargo_T">
		<xs:annotation>
			<xs:documentation>A bulk cargo is a type of dry cargo that is solid cargo that is not packed, but is carried loose. Ref. is made to ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="BulkCargo_T">
		<xs:annotation>
			<xs:documentation>Type definition of dry cargo properties, reference is made to ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Density">
				<xs:annotation>
					<xs:documentation>The density of  ballast, bunker or dry cargo content.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:StowageFactor" minOccurs="0"/>
			<xs:element ref="ocx:Permeability" minOccurs="0"/>
			<xs:element ref="ocx:AngleOfRepose" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="ocx:bulkCargoType"/>
	</xs:complexType>
	<xs:element name="UnitCargo" type="ocx:UnitCargo_T">
		<xs:annotation>
			<xs:documentation>The UnitCargo type is intended for spaces carrying a type of dry cargo that that is packed or comprises discrete units that can be loaded and stored individually on the ship. Ref. is made to ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UnitCargo_T">
		<xs:annotation>
			<xs:documentation>Type definition of dry cargo properties, reference is made to ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:attribute ref="ocx:unitCargoType"/>
	</xs:complexType>
	<xs:element name="LiquidCargo" type="ocx:LiquidCargo_T">
		<xs:annotation>
			<xs:documentation>Liquid cargo properties, reference is made to ISO 10303-215:2004. A liquid cargo is a type of Cargo whose natural condition is a non-solid, non-gaseous liquid state.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="LiquidCargo_T">
		<xs:annotation>
			<xs:documentation>Type definition of  Liquid cargo physical properties.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Density">
				<xs:annotation>
					<xs:documentation>The density of  ballast, bunker or liquid cargo content.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:CarriagePressure" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="ocx:liquidCargoType"/>
	</xs:complexType>
	<xs:element name="GaseousCargo" type="ocx:GaseousCargo_T">
		<xs:annotation>
			<xs:documentation>Liquid cargo properties, reference is made to ISO 10303-215:2004. A Gaseous cargo is a type of Cargo that has a natural condition of a non-solid, non-liquid gaseous state.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="GaseousCargo_T">
		<xs:annotation>
			<xs:documentation>Type definition of  Liquid cargo physical properties.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Density">
				<xs:annotation>
					<xs:documentation>The density specifies the  of  cargo density.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:CarriagePressure" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="liquidState" type="xs:boolean" default="false">
			<xs:annotation>
				<xs:documentation>Set to True if the gaseous cargo is carried in a liquid state.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute ref="ocx:liquidCargoType">
			<xs:annotation>
				<xs:documentation>The liquid cargo types after ISO 10303-215:2004.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="CellConnection" type="ocx:CellConnection_T">
		<xs:annotation>
			<xs:documentation>Cross flow connection between two cells.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CellConnection_T">
		<xs:annotation>
			<xs:documentation>Type definition for connecting cells to a compartment.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:CellRef" minOccurs="2" maxOccurs="2">
				<xs:annotation>
					<xs:documentation>A reference to the two connected compartment cells.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CarriagePressure" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The CarriagePressure specifies the required pressure of the compartment in which the cargo is to be carried.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Volume" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The volume of a compartment or space.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="AirPipeHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The AirpipeHeight specifies height from the baseline to the top of the air pipe, if any.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CenterOfGravity" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The centre of gravity (COG) of the parent object. The receiving application can use the value received from the authoring application to check that the object has been transferred correctly.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="StowageHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Z coordinate of dry bulk stowage height. If not specified, top of cargo room will be used.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ReliefValvePressure" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Pressure valve opening pressure when exceeding the general value.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FillingHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The filling_height specifies the maximum height for filling of the tank compartment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="StowageFactor" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The StowageFactor specifies the average specific volume for a dry cargo. The stowage factor is usually expressed as the volume in cubic meters that is occupied by one metric ton of the cargo.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Permeability" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The permeability specifies the amount by which the Cargo takes up water.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="AngleOfRepose" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The natural angle of repose specifies the angle naturally subtended with the horizontal by the upper surface of the conic pile, made by the bulk cargo when loaded into a hold by a chute using gravity alone.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:attribute name="compartmentPurpose">
		<xs:annotation>
			<xs:documentation>The compartment functions or purpose after ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="access_trunk">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as an access trunk.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="aft_peak_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank aft of the aftmost bulkhead of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="auxiliary_engine_room">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as an auxiliary engine room space.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ballast_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a watertight compartment to hold water ballast.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="battery_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for batteries.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="berthing_compartment">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as a berthing space.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="boiler_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for boilers.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="bottom_wing_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the ship side/bottom and a sloping longitudinal bulkhead. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="bow_thruster_room">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as the bow thruster room.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="cabin">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as a cabin space.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="cargo_compartment">
					<xs:annotation>
						<xs:documentation> The compartment is designed to carry liquid, bulk, or containerized goods. NOTE 1: These goods may be consumed during the voyage, as in the case of food or fuel, or they may be temporarily stored for transport between ports. NOTE 2: A tank compartment may also be used for the storage or transportation of liquid cargo. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="centre_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank that occupies a large part of a ship cross section and that is symmetrical to the ship centre line.EXAMPLE: Crude oil tankers often have several centre tanks.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="chainlocker">
					<xs:annotation>
						<xs:documentation> The compartment is where anchor chain is stored.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="cofferdam">
					<xs:annotation>
						<xs:documentation> The compartment is a narrow void space between two bulkheads or floors that prevents leakage between the adjoining compartments.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="compressor_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for compressors.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="control">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used for ship command and control functions. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="crossover_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank used for dynamic stabilisation of the ship. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="deck_tank">
					<xs:annotation>
						<xs:documentation> The compartment is an independent tank located on the main deck.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="deep_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank extending from the bottom or inner bottom up to, or higher than, the lower deck. A deep tank is often fitted with hatches so that they may also be used for dry cargo in lieu of fuel oil, ballast water, or liquid cargo.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="diving_well">
					<xs:annotation>
						<xs:documentation> The compartment is a space for divers to exit to the sea through a hatch in the bottom of the vessel. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="double_bottom_and_side_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the outer and inner bottom and bounded by an outer and inner side of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="double_bottom_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the outer and inner bottom of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="double_side_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank between the outer ship side and the inner ship side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="drill_well">
					<xs:annotation>
						<xs:documentation> The compartment is a space for drilling through an opening in the bottom of the vessel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="duct_keel">
					<xs:annotation>
						<xs:documentation> The compartment is located between the bottom and the inner bottom running along the the centre line of the ship. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="electric_motor_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for electric motors.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="emergency_fire_pump_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for emergency fire pumps.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="equipment_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated to be used as an equipment room. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="escape_trunk">
					<xs:annotation>
						<xs:documentation> The compartment is a vertical trunk fitted with a ladder to permit personnel to escape if trapped. Usually provided from the after end of the shaft tunnel to topside spaces.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="fore_peak_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located forward of the foremost bulkhead of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="forecastle">
					<xs:annotation>
						<xs:documentation> The compartment is a superstructure fitted at the extreme forward end of the upper deck.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="habitable_compartment">
					<xs:annotation>
						<xs:documentation> The compartment is designed as a habitable space, which is primarily designated as suitable for occupancy by humans. Passenger safety and comfort are subject to international, national, class society, or other regulations usually covered by product specifications and applicable class and register notations.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="heeling_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank used for adjusting the heeling of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="hopper_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the ship side/bottom and a sloping longitudinal bulkhead. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="insulated_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a container constructed to hold one or more thermally insulated tanks for liquids </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="lounge">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as a lounge space.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="machinery_compartment">
					<xs:annotation>
						<xs:documentation> The compartment is designed to contain machinery for the operation of the ship or in support of its mission. EXAMPLE: Engine room and bow thruster room are types of machinery compartments.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="main_engine_room">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as the main engine room.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="medical">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as a medical space.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="passageway">
					<xs:annotation>
						<xs:documentation> The compartment is designed to be used as a passageway.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="poop">
					<xs:annotation>
						<xs:documentation> The compartment is a superstructure fitted at the after end of the upper deck.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="pump_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for pumps.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="rudder_trunk">
					<xs:annotation>
						<xs:documentation> The compartment is the trunk housing the rudder shaft.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="separator_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for separators.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="settling_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a fuel oil tank used for separating entrained water from oil</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="shaft_tunnel">
					<xs:annotation>
						<xs:documentation> The compartment is a watertight enclosure for the propeller shafting, large enough to walk in, extending aft from the engine room to provide access and protection to the shafting. Also known as a shaft alley.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="side_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the ship side and a longitudinal bulkhead.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="side_wing_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the ship side/bottom and a longitudinal bulkhead.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="stabiliser_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for stabilisers.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="stability_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank used for dynamic stabilisation of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="steering_gear_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for steering gear.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="stern_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located at the aftmost location in the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="stool_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank in the closed hull structure at either upper or lower end of a transverse bulkhead. </xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="tank">
					<xs:annotation>
						<xs:documentation> The compartment is designed to carry liquids used in the mission of the ship, or for the storage of liquid cargoes transported by the ship. EXAMPLE: Fuels for propulsion of the ship, potable water for the passengers and crew, waste products, petroleum product cargo, and fuel for aircraft supported by the ship are carried in tank compartments.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="thruster_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for thrusters.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="top_wing_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located between the ship side/deck and a sloping longitudinal bulkhead.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="trimming_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located near the ends of a ship. Seawater or fuel oil is carried in such tanks as necessary to change trim.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="trunk">
					<xs:annotation>
						<xs:documentation> The compartment is a vertical or inclined space or passage formed by bulkheads or casings, extending one or more deck heights, around openings in the decks, through which access can be obtained and cargo or stores handled, or ventilation provided without disturbing or interfering with the contents or arrangements of the adjoining spaces.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="user_defined">
					<xs:annotation>
						<xs:documentation> The compartment function is other than one of the pre-defined values and is specified by the user_def_function attribute.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="void">
					<xs:annotation>
						<xs:documentation> The compartment is designed as an inaccessible, closed space that is never used to carry cargo or to be regularly occupied by humans. The main uses of a void compartment are segregating the cargo and fluids that are necessary to operate the ship, or to provide emergency access to other spaces.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="waterjet_room">
					<xs:annotation>
						<xs:documentation> The compartment is designated for water jets.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="wheelhouse">
					<xs:annotation>
						<xs:documentation> The compartment is designated for primary steerage and control of the ship. Also known as the bridge.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="wing_tank">
					<xs:annotation>
						<xs:documentation> The compartment is a tank located well outboard adjacent to the side shell plating, often consisting of a continuation of the double bottom up the sides to a deck or flat.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="bulkCargoType">
		<xs:annotation>
			<xs:documentation>bulk cargo types after ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="cement">
					<xs:annotation>
						<xs:documentation>The bulk cargo is cement.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="coal">
					<xs:annotation>
						<xs:documentation>The bulk cargo is coal.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="fish">
					<xs:annotation>
						<xs:documentation>The bulk cargo is fish.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="general">
					<xs:annotation>
						<xs:documentation>The bulk cargo is of a general,non-specific type.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="grain">
					<xs:annotation>
						<xs:documentation>The bulk cargo is grain.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="mud">
					<xs:annotation>
						<xs:documentation>The bulk cargo is mud.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ore">
					<xs:annotation>
						<xs:documentation>The bulk cargo is ore.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="sugar">
					<xs:annotation>
						<xs:documentation>The bulk cargo is sugar.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="timber">
					<xs:annotation>
						<xs:documentation>The bulk cargo is timber.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="unspecified">
					<xs:annotation>
						<xs:documentation>The bulk cargo is of an unspecified type.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="unitCargoType">
		<xs:annotation>
			<xs:documentation>Unit  cargo types after ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="aircraft">
					<xs:annotation>
						<xs:documentation>The unit cargo is aircraft.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="boat">
					<xs:annotation>
						<xs:documentation>The unit cargo is boat.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="cable">
					<xs:annotation>
						<xs:documentation>The unit cargo is cable.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="container">
					<xs:annotation>
						<xs:documentation>The unit cargo is container.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="drums">
					<xs:annotation>
						<xs:documentation>The unit cargo is drums.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="livestock">
					<xs:annotation>
						<xs:documentation>The unit cargo is livestock.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="pallet">
					<xs:annotation>
						<xs:documentation>The unit cargo is pallet.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="trailer">
					<xs:annotation>
						<xs:documentation>The unit cargo is trailer.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="vehicle">
					<xs:annotation>
						<xs:documentation>The unit cargo is vehicle.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="unspecified">
					<xs:annotation>
						<xs:documentation>The unit cargo is of unspecified type.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="liquidCargoType">
		<xs:annotation>
			<xs:documentation>Liquid cargo types after ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="alcohol">
					<xs:annotation>
						<xs:documentation>The cargo is alcohol.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ammonia">
					<xs:annotation>
						<xs:documentation>The cargo is ammonia.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="asphalt">
					<xs:annotation>
						<xs:documentation>The cargo is asphalt.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="aviation oil">
					<xs:annotation>
						<xs:documentation>The cargo is aviation oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="caustic soda">
					<xs:annotation>
						<xs:documentation>The cargo is caustic soda.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="cement">
					<xs:annotation>
						<xs:documentation>The cargo is liquid cement.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="chemical">
					<xs:annotation>
						<xs:documentation>The cargo is a liquid chemical.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="crude oil">
					<xs:annotation>
						<xs:documentation>The cargo is crude oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="edible oil">
					<xs:annotation>
						<xs:documentation>The cargo is edible oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="fuel oil">
					<xs:annotation>
						<xs:documentation>The cargo is fuel oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="fresh water">
					<xs:annotation>
						<xs:documentation>The cargo is fresh water.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="hydrochloride acid">
					<xs:annotation>
						<xs:documentation>The cargo is hydrochloride acid.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="lubricating oil">
					<xs:annotation>
						<xs:documentation>The cargo is lubrication oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="methanol">
					<xs:annotation>
						<xs:documentation>The cargo is methanol.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="molasses">
					<xs:annotation>
						<xs:documentation>The cargo is molasses.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="product oil">
					<xs:annotation>
						<xs:documentation>The cargo is product oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="salt water">
					<xs:annotation>
						<xs:documentation>The cargo is salt water.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="sullage">
					<xs:annotation>
						<xs:documentation>The cargo is sullage.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="sludge">
					<xs:annotation>
						<xs:documentation>The cargo is sludge.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="sulphur">
					<xs:annotation>
						<xs:documentation>The cargo is sulphur.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="vegetable oil">
					<xs:annotation>
						<xs:documentation>The cargo is vegetable oil.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="water ballast">
					<xs:annotation>
						<xs:documentation>The cargo is water ballast.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="wine">
					<xs:annotation>
						<xs:documentation>The cargo is wine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="unspecified">
					<xs:annotation>
						<xs:documentation>The cargo is of an unspecified type.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="gaseousCargoType">
		<xs:annotation>
			<xs:documentation>Gaseous  cargo types after ISO 10303-215:2004.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="acetaldehyde">
					<xs:annotation>
						<xs:documentation>The cargo is acetaldehyde.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="anhydrous ammonia">
					<xs:annotation>
						<xs:documentation>The cargo is anhydrous ammonia.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="avcat">
					<xs:annotation>
						<xs:documentation>The cargo is avcat.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="butane">
					<xs:annotation>
						<xs:documentation>The cargo is butane.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="butadiene">
					<xs:annotation>
						<xs:documentation>The cargo is butadiene.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="butylene">
					<xs:annotation>
						<xs:documentation>The cargo is butylene.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="chlorine">
					<xs:annotation>
						<xs:documentation>The cargo is chlorine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="diethyl ether">
					<xs:annotation>
						<xs:documentation>The cargo is diethyl ether.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="dimethylamine">
					<xs:annotation>
						<xs:documentation>The cargo is dimethyl amine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ethylene">
					<xs:annotation>
						<xs:documentation>The cargo is ethylene.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ethyl chlorine">
					<xs:annotation>
						<xs:documentation>The cargo is ethyl chlorine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="ethylene oxide">
					<xs:annotation>
						<xs:documentation>The cargo is ethylene oxide.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="inert gas">
					<xs:annotation>
						<xs:documentation>The cargo is inert gas.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="isoprene">
					<xs:annotation>
						<xs:documentation>The cargo is isoprene.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="isopropylamine">
					<xs:annotation>
						<xs:documentation>The cargo is isopropylamine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="liquefied natural gas">
					<xs:annotation>
						<xs:documentation>The cargo is liquefied natural gas.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="liquefied petroleum gas">
					<xs:annotation>
						<xs:documentation>The cargo is liquefied petroleum gas.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="methane">
					<xs:annotation>
						<xs:documentation>The cargo is methane.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="methyl chloride">
					<xs:annotation>
						<xs:documentation>The cargo is methyl chloride.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="monoethylamine">
					<xs:annotation>
						<xs:documentation>The cargo is monoethylamine.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="naptha">
					<xs:annotation>
						<xs:documentation>The cargo is naphtha.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="propane">
					<xs:annotation>
						<xs:documentation>The cargo is propane.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="propane butane mix">
					<xs:annotation>
						<xs:documentation>The cargo is propane butane mix.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="propylene oxide">
					<xs:annotation>
						<xs:documentation>The cargo is propylene oxide.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="propylene">
					<xs:annotation>
						<xs:documentation>The cargo is propylene.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="vinyl ethyl ether">
					<xs:annotation>
						<xs:documentation>The cargo is vinyl ethyl ether.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="vinyl chloride monomer">
					<xs:annotation>
						<xs:documentation>The cargo is vinyl chloride monomer.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="unspecified">
					<xs:annotation>
						<xs:documentation>The cargo is of an unspecified type.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!-- ========================================================================================  -->
	<!-- Geometry representations -->
	<!-- ========================================================================================  -->
	<xs:element name="GeometryRepresentation" type="ocx:GeometryRepresentation_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for all structural geometry definitions.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="GeometryRepresentation_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of the abstract base class for all structural geometry definitions.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ===================================================  -->
	<!-- Surfaces -->
	<!-- ===================================================  -->
	<xs:element name="ReferenceSurfaces" type="ocx:ReferenceSurfaces_T">
		<xs:annotation>
			<xs:documentation>Collection of frequently used surfaces which are referenced by more than one object.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ReferenceSurfaces_T">
		<xs:annotation>
			<xs:documentation>Type definition of a collection of surfaces.</xs:documentation>
		</xs:annotation>
		<xs:choice maxOccurs="unbounded">
			<xs:element ref="ocx:Surface" maxOccurs="unbounded"/>
			<xs:element ref="ocx:SurfaceCollection" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="Surface" type="ocx:Surface_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for surface definitions.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Surface_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of the  Abstract base class for surface definitions.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:GeometryRepresentation_T">
				<xs:sequence>
					<xs:element ref="ocx:FaceBoundaryCurve" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation> A collection of 3D curves making up a closed boundary. To be used whenever the surface need to be bounded.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:PointOnSurface">
						<xs:annotation>
							<xs:documentation>The point on the surface where the surface normal vector is defined.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Normal">
						<xs:annotation>
							<xs:documentation>A unit normal vector to a surface. This surface normal overrides the parent surface normal for NURBS and planar surfaces if specified.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Cylinder3D" type="ocx:Cylinder3D_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Definition of the cylindrical surface defined by root point, axis direction, radius and height.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Cylinder3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of the cylindrical surface defined by root point, axis direction, radius and height.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:Origin">
						<xs:annotation>
							<xs:documentation>Cylinder anchor position.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Axis"/>
					<xs:element ref="ocx:Radius">
						<xs:annotation>
							<xs:documentation>Cylinder radius.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Height">
						<xs:annotation>
							<xs:documentation>Cylinder height relative to origin.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Cone3D" type="ocx:Cone3D_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Definition of the Cone surface defined by origin, radius and position of the cone tip.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Cone3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Cone surface defined by origin, radius and position of the cone tip.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:Origin">
						<xs:annotation>
							<xs:documentation>The origin or centre of the cone at the base.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Tip"/>
					<xs:element ref="ocx:BaseRadius"/>
					<xs:element ref="ocx:TipRadius" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Cone tip radius (default = 0).</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Sphere3D" type="ocx:Sphere3D_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Definition of a Spherical surface defined by origin and radius.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Sphere3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a Spherical surface defined by origin and radius.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:Origin">
						<xs:annotation>
							<xs:documentation>The origin or centre of the sphere.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Radius">
						<xs:annotation>
							<xs:documentation>The radius of the sphere.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ExtrudedSurface" type="ocx:ExtrudedSurface_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Definition of an extruded surface defined by a base curve and 
either a sweep direction and length or a sweep curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ExtrudedSurface_T">
		<xs:annotation>
			<xs:documentation>Type definition of an extruded surface defined by a base curve and a sweep path with extent.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:BaseCurve">
						<xs:annotation>
							<xs:documentation>The base curve which is extruded, defining an extruded surface when it is swept.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:choice>
						<xs:element ref="ocx:Sweep"/>
						<xs:element ref="ocx:SweepCurve"/>
					</xs:choice>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Sweep" type="ocx:Sweep_T">
		<xs:annotation>
			<xs:documentation>Definition of the sweep extent  by a direction and sweep  length.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Sweep_T">
		<xs:annotation>
			<xs:documentation>Type definition of a sweep extent defined by a direction and length.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Vector3D">
				<xs:annotation>
					<xs:documentation>The sweep direction given by a Unit vector of length 1.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:SweepLength">
				<xs:annotation>
					<xs:documentation>The extent of the sweep.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SweepCurve" type="ocx:CompositeCurve3D_T">
		<xs:annotation>
			<xs:documentation>The sweep direction and extent is defined by a general 3D sweep curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BaseCurve">
		<xs:annotation>
			<xs:documentation>The base curve defining an extruded surface when it is swept.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:BaseCurve_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="BaseCurve_T">
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Curve3D" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="NURBSSurface" type="ocx:NURBSSurface_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Non-uniform rational basis surface definition defined by a net (grid) of polynomial basis functions  in U and V direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="NURBSSurface_T">
		<xs:annotation>
			<xs:documentation>Type definition of a Non-uniform rational basis surface definition defined by a grid of 3D control points.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:U_NURBSproperties">
						<xs:annotation>
							<xs:documentation>Properties of the basis function in V direction.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:UknotVector"/>
					<xs:element ref="ocx:V_NURBSproperties">
						<xs:annotation>
							<xs:documentation>Properties of the basis function in V direction.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:VknotVector"/>
					<xs:element ref="ocx:ControlPtList" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Plane3D" type="ocx:Plane3D_T" substitutionGroup="ocx:Surface">
		<xs:annotation>
			<xs:documentation>Definition of a  Planar surface defined by Root Point and Normal.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Plane3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a  Planar surface defined by Root Point and Normal.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Surface_T">
				<xs:sequence>
					<xs:element ref="ocx:UDirection" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Optional local U direction of the plane.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:LimitedBy" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UnboundedGeometry" type="ocx:UnboundedGeometry_T">
		<xs:annotation>
			<xs:documentation>The unbounded surface geometry of the parent element.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UnboundedGeometry_T">
		<xs:annotation>
			<xs:documentation>Type definition of an unbounded surface geometry of the parent element.</xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:annotation>
				<xs:documentation>The unbounded surface of the parent object, defined by either the Surface itself OR indirectly defined by the plane of the GridRef reference also allowing to specify an offset from the plane OR a reference to a Surface object instance.</xs:documentation>
			</xs:annotation>
			<xs:element ref="ocx:Surface" maxOccurs="unbounded"/>
			<xs:element ref="ocx:UnboundedGridRef" maxOccurs="unbounded"/>
			<xs:element ref="ocx:UnboundedSurfaceRef" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:element name="SurfaceCollection" type="ocx:SurfaceCollection_T">
		<xs:annotation>
			<xs:documentation>A collection of any number of surfaces. The surfaces have to be connected (no dis-joint surfaces). Most typically the SurfaceCollection will include the outer shell geometry definition of the vessel.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SurfaceCollection_T">
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Surface" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Tip" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The origin or centre of the cone at the top.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BaseRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The radius of the cone at the base.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="TipRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Cone tip radius, use radius =0 if not given.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- ===================================================  -->
	<!-- 3D curves -->
	<!-- ===================================================  -->
	<xs:element name="Curve3D" type="ocx:Curve3D_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for any 3D curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Curve3D_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of the abstract base class for any 3D curve.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:GeometryRepresentation_T">
				<xs:sequence>
					<xs:element ref="ocx:CurveLength"/>
				</xs:sequence>
				<xs:attribute name="is2D" type="xs:boolean" default="false">
					<xs:annotation>
						<xs:documentation>Set to True if the Curve3D is given in 2D space.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--Closed curve types-->
	<xs:element name="Circle3D" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>A circle in 3D space.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Circle3D_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Circle3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a circle in 3D space.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Diameter">
						<xs:annotation>
							<xs:documentation>The circle diameter.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Center">
						<xs:annotation>
							<xs:documentation>The centre of the circle.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Normal">
						<xs:annotation>
							<xs:documentation>The normal vector of the    the circle plane.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Ellipse3D" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>An ellipse in 3D space.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Ellipse3D_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Ellipse3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of An ellipse in 3D space.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Center">
						<xs:annotation>
							<xs:documentation>The centre of the ellipse.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:MajorDiameter">
						<xs:annotation>
							<xs:documentation>The ellipse major diameter. It is expected that MajorDiameter  MinorDiameter.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:MinorDiameter">
						<xs:annotation>
							<xs:documentation>The diameter of the ellipse on the minor axis.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:MajorAxis"/>
					<xs:element ref="ocx:MinorAxis">
						<xs:annotation>
							<xs:documentation>Definition of the ellipse minor axis direction. The minor axis is the cross product of the normal and the major axis.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Normal" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The normal vector of the ellipse plane.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CircumCircle3D" type="ocx:CircumCircle3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>Definition of a circle in 3D space by a circum-circle of 3 points.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CircumCircle3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a circle in 3D space defined by a circumscribed position of 3 points.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Positions"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--Open curve types-->
	<xs:element name="PolyLine3D" type="ocx:PolyLine3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>A list of 3D points defining a sequence of linear segments. Repeat the first position at the end of the last line segment to form a closed contour.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PolyLine3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a 3D curve defined by a list of 3D points composing a list of linear segments.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Point3D" minOccurs="2" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute name="isClosed" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>If set to true, the PolyLine3D forms a closed contour. The default is false.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Line3D" type="ocx:Line3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>A straight line defined by two points.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Line3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a straight line defined by two points.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:StartPoint"/>
					<xs:element ref="ocx:EndPoint"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CompositeCurve3D" type="ocx:CompositeCurve3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>The concept of a composite curve composed of a collection of Line3D, CircumArc3D and/or NURBS segments. Curves are sorted end to end and have C0 continuity across each segment in the CompositeCurve3D definition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CompositeCurve3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a composite curve composed of a collection of Line3D, CircumArc3D and/or NURBS segments..</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:choice maxOccurs="unbounded">
					<xs:element ref="ocx:PolyLine3D"/>
					<xs:element ref="ocx:Line3D"/>
					<xs:element ref="ocx:NURBS3D"/>
					<xs:element ref="ocx:CircumArc3D"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="NURBS3D" type="ocx:NURBS3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>Non-Uniform Rational Spline Base curve definition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="NURBS3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a Non-uniform rational basis spline (NURBS) curve defined by a set of 3D control points.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:NURBSproperties"/>
					<xs:element ref="ocx:KnotVector"/>
					<xs:element ref="ocx:ControlPtList"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CircumArc3D" type="ocx:CircumArc3D_T" substitutionGroup="ocx:Curve3D">
		<xs:annotation>
			<xs:documentation>3D Line/Arc representation. Represents a semicircle uniquely defined by three points in 3D space given by the start position, intermediate position and the end position..</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CircumArc3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a 3D Line/Arc representation defined by three points in 3D space.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:StartPoint"/>
					<xs:element ref="ocx:IntermediatePoint"/>
					<xs:element ref="ocx:EndPoint"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="OuterContour" type="ocx:Contour3D_T">
		<xs:annotation>
			<xs:documentation>The geometry of the outer closed contour limiting a surface, represented by a set of trim curves or a closed curve primitive.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="InnerContour" type="ocx:Contour3D_T">
		<xs:annotation>
			<xs:documentation>Any closed contour of an inner opening in a plate.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Contour3D_T">
		<xs:annotation>
			<xs:documentation>The geometry of a closed contour limiting a surface, represented by a set of trim curves or a closed curve primitive. The contour curve must form a closed curve.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Curve3D" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="FreeEdgeCurve3D">
		<xs:annotation>
			<xs:documentation>A single Curve3D or a collection of continuous non-closed Curve3D types which are used to represent a free edge of a panel or plate in shipbuilding.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:FreeEdgeCurve3D_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="FreeEdgeCurve3D_T">
		<xs:annotation>
			<xs:documentation>The type definition of a free edge defined by a collection of non-closed Curve3D types.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:Curve3D_T">
				<xs:sequence>
					<xs:element ref="ocx:Curve3D" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute name="isUVSpace" type="xs:boolean" default="false">
					<xs:annotation>
						<xs:documentation>Default is "false". Set this attribute to true if the FreeEdgeCurve is represented by coordinates in the UV space. This should only be used when a FreeEdgeCurve is used to trim NURBS surface patches where the trim curve is only used to trim the underlying surface. When the curve is given in UV space, the X,Y point coordinates are replaced with the U,V coordinates. In this case the Z coordinate should be set to zero. The Z coordinate will not be used by the importing application.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="FaceBoundaryCurve">
		<xs:annotation>
			<xs:documentation> A collection of 3D curves making up a closed boundary.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Contour3D_T">
					<xs:attribute name="isUVspace" type="xs:boolean" default="false">
						<xs:annotation>
							<xs:documentation>If set to True, the FacBoundaryCurve is defined in the parametric UV space. The Pont3D X and Y correspond to U and V, while the Z coordinate is disregarded. The default is False, i.e., the FaceBoundaryCurve is defined in 3D space.</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- ===================================================  -->
	<!-- Geometry property types -->
	<!-- ===================================================  -->
	<xs:element name="NURBSproperties" type="ocx:NURBSProperties_T">
		<xs:annotation>
			<xs:documentation>Properties of the basis functions in surface V direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="NURBSProperties_T">
		<xs:annotation>
			<xs:documentation>Type definition of a class defining the properties of the NURBS curve.</xs:documentation>
		</xs:annotation>
		<xs:attributeGroup ref="ocx:nurbsAttributes"/>
	</xs:complexType>
	<xs:element name="V_NURBSproperties" type="ocx:NURBSProperties_T">
		<xs:annotation>
			<xs:documentation>Properties of the basis functions in surface V direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="U_NURBSproperties" type="ocx:NURBSProperties_T">
		<xs:annotation>
			<xs:documentation>Properties of the basis functions in surface U direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="KnotVector">
		<xs:annotation>
			<xs:documentation>The knot-vector is a list of  size m=+n-1 knots where p is the polynomial basis degree and n is the number of control points. The knot vector consists of a non-decreasing sequence of values. Knot multiplicities can be included. A knot multiplicity means that a knot value can be repeated up to p+1 times.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:KnotVector_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="KnotVector_T">
		<xs:annotation>
			<xs:documentation>Type definition of the NURBS knot vector.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="value" type="ocx:doubleListType" use="required">
			<xs:annotation>
				<xs:documentation>The list of knots separated by  white space. Knots must be provided in increasing order.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="UknotVector" type="ocx:KnotVector_T">
		<xs:annotation>
			<xs:documentation>The knot-vector in U direction is a list of  size m=+n-1 knots where p is the polynomial basis degree and n is the number of control points. The knot vector consist of a non-decreasing sequence of values. Knot multiplicities can be included. A knot multiplicity means that a  knot value can be repeated up to p+1 times.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="VknotVector" type="ocx:KnotVector_T">
		<xs:annotation>
			<xs:documentation>The knot-vector in V direction is a list of  size m=+n-1 knots where p is the polynomial basis degree and n is the number of control points. The knot vector consist of a non-decreasing sequence of values. Knot multiplicities can be included. A knot multiplicity means that a  knot value can be repeated up to p+1 times.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ControlPoint">
		<xs:annotation>
			<xs:documentation>A NURBS control point composed of a weight and spatial position.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:ControlPoint_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ControlPoint_T">
		<xs:complexContent>
			<xs:extension base="ocx:Point3D_T">
				<xs:attribute name="weight" type="xs:double" default="1.0">
					<xs:annotation>
						<xs:documentation>The weight associated with the control point. The weight is 1.0 if not given (default).</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ControlPtList">
		<xs:annotation>
			<xs:documentation>List of control points (X,Y,Z) and their optional weights.  The array length N=degree+1. A minimum of 2 control points is necessary to define a curve.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:ControlPtList_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ControlPtList_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ControlPoint" minOccurs="2" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The number of control points mist be minimum 2. The control point is composed of point in 3D space and an optional weight.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:attributeGroup name="nurbsAttributes">
		<xs:annotation>
			<xs:documentation>NURBS attributes group for curve direction.</xs:documentation>
			<xs:documentation>The default is polynomial B-splines.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="degree" type="xs:int" use="required">
			<xs:annotation>
				<xs:documentation>B-spline degree p is the highest exponent used in the polynomial basis function. The B-spline order is always p+1. Defined as p = m - n - 1 if not given explicitly where m is the number of knots and n is the number of control points.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="numCtrlPts" type="xs:long" use="required">
			<xs:annotation>
				<xs:documentation>Number of control points in the curve direction or the surface grid u or v direction.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="numKnots" type="xs:long" use="required">
			<xs:annotation>
				<xs:documentation>numKnots: m=(p+n-1) numbers, where p is the polynomial basis degree and n is the number of control points.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="form" type="ocx:curveForm_enum" use="optional" default="Open">
			<xs:annotation>
				<xs:documentation>The NURBS curve form (Open, Closed, or Periodic).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="isRational" type="xs:boolean" use="optional" default="false">
			<xs:annotation>
				<xs:documentation>The default is non-rational basis functions (isRational=false). Rational refers to the underlying mathematical representation. This property allows NURBS to represent exact conics (such as parabolic curves, circles, and ellipses) in addition to free-form curves. To define conical curve types set isRational=true.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attribute name="numCtrlPts" type="xs:long">
		<xs:annotation>
			<xs:documentation>Number of control points on the NURBS curve in U or V direction.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attribute name="numKnots" type="xs:long">
		<xs:annotation>
			<xs:documentation>m = Number of knots.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:simpleType name="curveForm_enum">
		<xs:annotation>
			<xs:documentation>Enumerator of NURBS curve forms.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="Unknown">
				<xs:annotation>
					<xs:documentation>An unknown curve form.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Open">
				<xs:annotation>
					<xs:documentation>An open curve form.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Closed">
				<xs:annotation>
					<xs:documentation>A closed curve form with C0 continuity.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Periodic">
				<xs:annotation>
					<xs:documentation>A closed curve form wit C1 continuity.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="CurveLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The curve length computed by the sending application. Used to verify geometry reconstruction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SweepLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The sweep length used to extrude a surface from a base curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- ========================================================================================  -->
	<!--Coordinate System and transformations-->
	<!-- ========================================================================================  -->
	<xs:element name="CoordinateSystem" type="ocx:CoordinateSystem_T">
		<xs:annotation>
			<xs:documentation>A right-handed orthogonal Cartesian coordinate system. Used to define the vessel coordinate system definition., either in world coordinates (mandatory) or as additional local systems if necessary.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CoordinateSystem_T">
		<xs:annotation>
			<xs:documentation>Type definition of the vessel coordinate system A right-handed orthogonal Cartesian coordinate system.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:XRefPlanes"/>
					<xs:element ref="ocx:YRefPlanes" minOccurs="0"/>
					<xs:element ref="ocx:ZRefPlanes" minOccurs="0"/>
					<xs:element ref="ocx:LocalCartesian" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="isGlobal" type="xs:boolean" use="optional" default="true">
					<xs:annotation>
						<xs:documentation>If set to true, the coordinate system is the global world coordinate frame with right-handed convention. This is the default.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="LocalCartesian" type="ocx:Transformation_T">
		<xs:annotation>
			<xs:documentation>To specify a Local (Orthogonal) Axis System Origin and two of the local X,Y,Z axis need to be specified. When used to specify a Plane the XY (UV) plane is considered. Optional if the coordinate system is referring to the global coordinate frame (world coordinates)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RefPlanes_T">
		<xs:annotation>
			<xs:documentation>Frame table position definition.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ReferencePlane_T">
				<xs:sequence>
					<xs:element ref="ocx:RefPlane" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute name="isMainSystem" type="xs:boolean" default="true">
					<xs:annotation>
						<xs:documentation>True if this is the main reference system definition.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="XRefPlanes" substitutionGroup="ocx:ReferencePlane">
		<xs:annotation>
			<xs:documentation>A collection of Y-Z planes used as object limits. Can also be used to create a frame table definition for display purposes. The exporting application will then have to provide all grid positions.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:RefPlanes_T">
					<xs:sequence>
						<xs:element ref="ocx:DistanceToAP" minOccurs="0"/>
					</xs:sequence>
					<xs:attribute name="isReversed" type="xs:boolean" default="false">
						<xs:annotation>
							<xs:documentation>For most vessels the X reference positions are given aft to forward which is the default. Set isReversed=true if  the frame positions are given from fore to aft  (normally this is the case for naval vessels).</xs:documentation>
						</xs:annotation>
					</xs:attribute>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="YRefPlanes" type="ocx:RefPlanes_T" substitutionGroup="ocx:ReferencePlane">
		<xs:annotation>
			<xs:documentation>A collection of X-Z planes used as object limits. Can also be used to create a frame table definition for display purposes. The exporting application will then have to provide all grid positions.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ZRefPlanes" type="ocx:RefPlanes_T" substitutionGroup="ocx:ReferencePlane">
		<xs:annotation>
			<xs:documentation>A collection of X-Y planes used as object limits. Can also be used to create a frame table definition for display purposes. The exporting application will then have to provide all grid positions.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CylindricalAxes" type="ocx:CylindricalAxes_T">
		<xs:annotation>
			<xs:documentation>Cylindrical reference system.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CylindricalAxes_T">
		<xs:annotation>
			<xs:documentation>Cylindrical reference system.</xs:documentation>
		</xs:annotation>
		<xs:sequence maxOccurs="unbounded">
			<xs:element ref="ocx:RadialCylinder" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="RadialCylinder" type="ocx:RadialCylinder_T">
		<xs:annotation>
			<xs:documentation>Cylindrical reference system.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RadialCylinder_T">
		<xs:annotation>
			<xs:documentation>Cylindrical reference system.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Radius"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Transformation" type="ocx:Transformation_T">
		<xs:annotation>
			<xs:documentation>A concept specifying a local (orthogonal) axis system. The Origin and two of the local X,Y,Z axis have to be specified. When used to specify a Plane the XY (UV) plane is considered. The third axis is found by the cross product of the primary and secondary axis.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Transformation_T">
		<xs:annotation>
			<xs:documentation>Type definition for a Local (Orthogonal) Axis System.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Origin"/>
			<xs:element ref="ocx:PrimaryAxis"/>
			<xs:element ref="ocx:SecondaryAxis"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="RefPlane">
		<xs:annotation>
			<xs:documentation>A reference plane used to define unbounded planar geometry.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:RefPlane_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="RefPlane_T">
		<xs:annotation>
			<xs:documentation>Type definition of a reference plane used to define unbounded planar geometry.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:EntityBase_T">
				<xs:sequence>
					<xs:element ref="ocx:ReferenceLocation">
						<xs:annotation>
							<xs:documentation>The location of the plane on the reference axis.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="displayGrid" type="xs:boolean" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DistanceToAP" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The offset  of  frame zero (#0) from the After Perpendicular (AP). The default is zero offset (#0 is located at AP)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- ===================================================  -->
	<!-- Basic types -->
	<!-- ===================================================  -->
	<xs:element name="MajorAxis" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Direction of ellipse major axis.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MinorAxis" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Definition of the ellipse minor axis direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Vector3D" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Unit vector of length 1.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Vector3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a unit vector.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="direction" type="ocx:doubleListType" use="required">
			<xs:annotation>
				<xs:documentation>The unit vector components.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="SecondaryAxis" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>The unit vector of the local Y-axis (V-Axis) given in global Coordinate System.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PrimaryAxis" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>The unit vector of the local X-axis (U-Axis) given in global Coordinate System.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Origin" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The origin of a local or global coordinate system.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Center" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The centre position of a shape.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Normal" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>A unit normal vector to a surface.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Point3D" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>Compact definition of  a point in 3D space composed of  a sequence of three double values representing X, Y and Z coordinate values all of the same unit given by the unit ID.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Point3D_T">
		<xs:annotation>
			<xs:documentation>Type definition of a compact definition of  a point in 3D space composed of  a list of 3 X, Y and Z coordinate values all of same unit given by the unit ID.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="coordinates" type="ocx:doubleListType" use="required"/>
		<xs:attribute name="unit" type="xs:IDREF" use="required"/>
	</xs:complexType>
	<xs:element name="X" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The X component of a vector or a position. The value is a Quantity carrying a unit definition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Y" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Y component of a vector or a position. The value is a Quantity carrying a unit definition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Z" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Z component of a vector or a position. The value is a Quantity carrying a unit definition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ContourBounds" type="ocx:ContourBounds_T">
		<xs:annotation>
			<xs:documentation>The definition of a contour bound.The contour bound defines the contour curve start and end points.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ContourBounds_T">
		<xs:annotation>
			<xs:documentation>The type definition of the ContourBounds</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:ContourStart"/>
			<xs:element ref="ocx:ContourEnd"/>
			<xs:element ref="ocx:ContourMidPoint" minOccurs="0">
				<xs:annotation>
					<xs:documentation>If the contour bound is a closed curve, a mid point must be provided to identify the correct segment.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ContourStart" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The start point  of the LimitedBy  contour curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ContourEnd" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The end point  of the LimitedBy  contour curve.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- ========================================================================================  -->
	<!-- Structure Function Types -->
	<!-- ========================================================================================  -->
	<xs:attribute name="functionType">
		<xs:annotation>
			<xs:documentation>The structure function type giving the structure property function. Follows STEP AP218 coding and IACS Rec 82 Glossary.  Enumerator of structure functions which shall be assigned to the parent structure concept.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="BRACKET">
					<xs:annotation>
						<xs:documentation>A supporting plate.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="BRACKET: End bracket">
					<xs:annotation>
						<xs:documentation>A bracket attached to the end of stiffener.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="BRACKET: Tripping">
					<xs:annotation>
						<xs:documentation>A bracket used to support a load bearing element in between primary supporting members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="CASING">
					<xs:annotation>
						<xs:documentation>Casing is the covering or bulkhead around or about any space for protection.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="CASING: Engine room">
					<xs:annotation>
						<xs:documentation>Casing is the covering or bulkhead protection.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Accommodation deck">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Cargo deck">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Cross deck">
					<xs:annotation>
						<xs:documentation>Cross Deck is the area between cargo hatches.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Cross ties">
					<xs:annotation>
						<xs:documentation>Cross Ties are used to support the longitudinal bulkheads of oil tankers against hydrostatic and hydrodynamic loads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Floor">
					<xs:annotation>
						<xs:documentation>Floor is a bottom transverse member.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Weather deck">
					<xs:annotation>
						<xs:documentation>Weather deck is normally the uppermost complete deck exposed to weather and sea, which has permanent means of closing all exposed openings.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Forecastle deck">
					<xs:annotation>
						<xs:documentation>Forecastle deck is a deck attached to the short superstructure situated at the bow.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Freeboard deck">
					<xs:annotation>
						<xs:documentation>Free board deck is the first deck above the waterline.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Girder">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with primary girder members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Inner bottom deck">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Platform deck">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Poop deck">
					<xs:annotation>
						<xs:documentation>Poop Deck is the first deck above the shelter deck at aft end of a ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Strength deck">
					<xs:annotation>
						<xs:documentation>Strength Deck is normally the uppermost continuous deck. After special consideration of its effectiveness, another deck may be defined as strength deck.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Superstructure deck">
					<xs:annotation>
						<xs:documentation>Superstructure is a decked structure on the free-board deck extending for at least 92% of the breadth of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Trunk deck">
					<xs:annotation>
						<xs:documentation>Deck Structure is the deck plating with stiffeners, girders and supporting pillars.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Tween deck">
					<xs:annotation>
						<xs:documentation>Tween Decks is an abbreviation of between decks, placed between the upper deck and the tank top in the cargo holds.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DECK: Wheelhouse deck">
					<xs:annotation>
						<xs:documentation>Deck House is a structure on the free-board or superstructure deck not extending from side to side of the ship.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="FOUNDATION">
					<xs:annotation>
						<xs:documentation>Supporting foundation structure .</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="FOUNDATION: Engine">
					<xs:annotation>
						<xs:documentation>Engine foundation including foundation top plate .</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="HATCHWAY_COAMING">
					<xs:annotation>
						<xs:documentation>Hatch Coming is the vertical plating built around the hatchways to prevent water from entering the hold and to serve as a framework for the hatch covers.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="HATCHWAY_COAMING: End coaming">
					<xs:annotation>
						<xs:documentation>Hatch Coming is the vertical plating built around the hatchways to prevent water from entering the hold and to serve as a framework for the hatch covers.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="HATCHWAY_COAMING: Side coaming">
					<xs:annotation>
						<xs:documentation>Hatch Coming is the vertical plating built around the hatchways to prevent water from entering the hold and to serve as a framework for the hatch covers.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="HATCH_COVER">
					<xs:annotation>
						<xs:documentation>Hatch Covers are wooden or steel covers fitted over a hatchway to prevent the ingress of water into the ship s hold and may also be the supporting structure for deck cargo.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="HATCH_COVER: Hatch top">
					<xs:annotation>
						<xs:documentation>Hatch Covers are wooden or steel covers fitted over a hatchway to prevent the ingress of water into the ship s hold and may also be the supporting structure for deck cargo.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL">
					<xs:annotation>
						<xs:documentation>Longitudinal stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Bulkhead">
					<xs:annotation>
						<xs:documentation>Bulkhead Structure longitudinal bulkhead plating with stiffeners and girders.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Centerline bulkhead">
					<xs:annotation>
						<xs:documentation>Bulkhead Structure longitudinal bulkhead plating with stiffeners and girders.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Girder">
					<xs:annotation>
						<xs:documentation>Girder is a collective term for primary supporting structural members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Centerline girder">
					<xs:annotation>
						<xs:documentation>Girder is a collective term for primary supporting structural members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Centerline side girder">
					<xs:annotation>
						<xs:documentation>Girder is a collective term for primary supporting structural members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Double bottom">
					<xs:annotation>
						<xs:documentation>Double Bottom Structure is the shell plating with stiffeners below the top of the inner bottom and other elements below and including the inner bottom plating.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Top tank">
					<xs:annotation>
						<xs:documentation>A top tank used for ballast or for stability typically used in container vessels.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Hopper side lower">
					<xs:annotation>
						<xs:documentation>Hopper Side Tanks are tanks used for ballast or for stability when carrying certain cargoes in bulk carriers. Also referred to as upper wing ballast tanks.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Hopper side upper">
					<xs:annotation>
						<xs:documentation>Hopper Side Tanks are tanks used for ballast or for stability when carrying certain cargoes in bulk carriers. Also referred to as lower wing ballast tanks.	.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Inner bottom">
					<xs:annotation>
						<xs:documentation>Longitudinal stiffening system in inner bottom.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Lower stool bottom plate">
					<xs:annotation>
						<xs:documentation>Stool is a structure supporting cargo hold and tank bulkheads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Lower stool top plate">
					<xs:annotation>
						<xs:documentation>Stool is a structure supporting cargo hold and tank bulkheads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Lower stool">
					<xs:annotation>
						<xs:documentation>Stool is a structure supporting cargo hold and tank bulkheads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Side girder">
					<xs:annotation>
						<xs:documentation>Longitudinal stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Stringer">
					<xs:annotation>
						<xs:documentation>Longitudinal (flat) stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Side stringer">
					<xs:annotation>
						<xs:documentation>Longitudinal (flat) stiffening system at side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Skeg">
					<xs:annotation>
						<xs:documentation>Narrow vertical part added to the hull in the stern.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Upper stool">
					<xs:annotation>
						<xs:documentation>Supporting structure for transverse bulkhead.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="LONGITUDINAL: Wash bulkhead">
					<xs:annotation>
						<xs:documentation>Wash Bulkhead is a perforated or partial bulkhead in a tank.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="PLATING: Lug">
					<xs:annotation>
						<xs:documentation>A lug or collar plate used to support a stiffener penetrating a primary supporting member.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="PLATING: Gusset">
					<xs:annotation>
						<xs:documentation>Gusset is a triangular plate, usually fitted to distribute forces at a strength connection between two structural members.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="PLATING: Shedder">
					<xs:annotation>
						<xs:documentation>Shedder Plates are slanted plates fitted in dry cargo holds to prevent undesired pockets of cargo. The term is also commonly applied to slanted plates that are fitted to improve the structural stability of corrugated bulkheads and framing members..</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHEER_STRAKE">
					<xs:annotation>
						<xs:documentation>Sheer strake is the top strake of a ships side shell plating.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL">
					<xs:annotation>
						<xs:documentation>The watertight shell plating of the hull.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Bilge keel">
					<xs:annotation>
						<xs:documentation>Bilge Keel is a piece of plate set perpendicular to a ship’s shell along her bilges for about one third her length to reduce rolling..</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Bilge strake">
					<xs:annotation>
						<xs:documentation>Bilge strake is the strake at the turn of bilge extending outward to a point where the side rises vertically.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Bottom shell">
					<xs:annotation>
						<xs:documentation>The watertight shell plating of the bottom of the hull.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Bulwark shell">
					<xs:annotation>
						<xs:documentation>Bulwark is the vertical plating immediately above the upper edge of the ship’s side surrounding the exposed deck(s).</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Inner bottom shell">
					<xs:annotation>
						<xs:documentation>The watertight shell plating of the hull inner bottom.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Inner side shell">
					<xs:annotation>
						<xs:documentation>The watertight shell plating located at the inners side of the hull.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SHELL: Superstructure side">
					<xs:annotation>
						<xs:documentation>The watertight shell plating at the superstructure side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE">
					<xs:annotation>
						<xs:documentation>Superstructure is a decked structure on the free-board deck extending for at least 92% of the breadth of the ship. Often named deck-house or wheelhouse.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE: Deckhouse aft">
					<xs:annotation>
						<xs:documentation>Superstructure/Wheelhouse aft.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE: Deckhouse front">
					<xs:annotation>
						<xs:documentation>Superstructure/Wheelhouse front.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE: Deckhouse side">
					<xs:annotation>
						<xs:documentation>Superstructure/Wheelhouse side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE: Deckhouse top">
					<xs:annotation>
						<xs:documentation>Superstructure/Wheelhouse top.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="SUPERSTRUCTURE: Side">
					<xs:annotation>
						<xs:documentation>Superstructure/Wheelhouse side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL">
					<xs:annotation>
						<xs:documentation>Transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD">
					<xs:annotation>
						<xs:documentation>Bulkhead transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Accommodation">
					<xs:annotation>
						<xs:documentation>Bulkhead transverse stiffening system in the accommodation area.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Aft peak">
					<xs:annotation>
						<xs:documentation>Bulkhead transverse stiffening system at aft peak.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Collision">
					<xs:annotation>
						<xs:documentation>Transverse stiffening system in the collision bulkhead.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Corrugated">
					<xs:annotation>
						<xs:documentation>Transverse stiffening system in the form of plate corrugations.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Lower stool">
					<xs:annotation>
						<xs:documentation>The lower stool supporting structure of the transverse cargo hold and tank bulkheads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Partial">
					<xs:annotation>
						<xs:documentation>A partial transverse bulkhead stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Upper stool">
					<xs:annotation>
						<xs:documentation>The upper stool supporting structure of the transverse cargo hold and tank bulkheads.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="TRANSVERSAL_BULKHEAD: Wash">
					<xs:annotation>
						<xs:documentation>Wash Bulkhead is a perforated or partial bulkhead in a tank.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="UNDEFINED: Miscellaneous">
					<xs:annotation>
						<xs:documentation>Undefined structure function.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="VERTICAL">
					<xs:annotation>
						<xs:documentation>A vertical stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Bilge">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system in the bilge area.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Deck transverse frame">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system of a deck.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Floor frame">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system of a floor.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: General web-frame">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Horizontal">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Vertical">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system part of a vertical structure.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Main frame">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system representing the main frame of the vessel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Topside tank">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Side">
					<xs:annotation>
						<xs:documentation>A transverse stiffening system.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WEB_FRAME: Tween deck frame">
					<xs:annotation>
						<xs:documentation>Tween Decks is an abbreviation of between decks, placed between the upper deck and the tank top in the cargo holds.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="tightness">
		<xs:annotation>
			<xs:documentation>A tightness attribute which can be assigned to a Panel or Plate.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="NonTight">
					<xs:annotation>
						<xs:documentation>The panel or plate in not water tight.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="WaterTight">
					<xs:annotation>
						<xs:documentation>The panel or plate in water tight.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="GasTight">
					<xs:annotation>
						<xs:documentation>The panel or plate in gas tight, but not water tight.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Undefined">
					<xs:annotation>
						<xs:documentation>The panel or plate has no tightness defined.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!-- ========================================================================================  -->
	<!-- Class Catalogue type definitions-->
	<!-- ========================================================================================  -->
	<xs:element name="ClassCatalogue" type="ocx:ClassCatalogue_T">
		<xs:annotation>
			<xs:documentation>The Class catalogues provided as part of the OCX. The catalogue can hold the society’s definitions of cross-sections, materials, hole shapes etc.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ClassCatalogue_T">
		<xs:annotation>
			<xs:documentation>Type definition of the Class catalogues provided as part of the OCX.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:MaterialCatalogue">
						<xs:annotation>
							<xs:documentation>Catalogue of material types and their properties.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:XSectionCatalogue" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Catalogue of section types and their properties.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:HoleShapeCatalogue" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Catalogue of 2D hole shapes.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MaterialCatalogue" type="ocx:MaterialCatalogue_T">
		<xs:annotation>
			<xs:documentation>The material types used and their properties recognised by the Society.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="MaterialCatalogue_T">
		<xs:annotation>
			<xs:documentation>Type definition of the material types used and their properties recognised by the Society.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:MetallicMaterial" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="XSectionCatalogue" type="ocx:XSectionCatalogue_T">
		<xs:annotation>
			<xs:documentation>The cross-section types for stiffeners and their properties recognised by the Society.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="XSectionCatalogue_T">
		<xs:annotation>
			<xs:documentation>Type definition of the cross-section types for stiffeners and their properties recognised by the Society.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:NamedEntity_T">
				<xs:sequence>
					<xs:element ref="ocx:BarSection" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PrincipalParticulars" type="ocx:PrincipalParticulars_T">
		<xs:annotation>
			<xs:documentation>Main vessel particulars required by the Society.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PrincipalParticulars_T">
		<xs:annotation>
			<xs:documentation>Type definition of the  main vessel particulars required by the Society.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Lpp"/>
			<xs:element ref="ocx:RuleLength"/>
			<xs:element ref="ocx:BlockCoefficient"/>
			<xs:element ref="ocx:FP_Pos"/>
			<xs:element ref="ocx:MouldedBreadth"/>
			<xs:element ref="ocx:MouldedDepth"/>
			<xs:element ref="ocx:ScantlingDraught"/>
			<xs:element ref="ocx:DesignSpeed"/>
			<xs:element ref="ocx:FreeboardLength"/>
			<xs:element ref="ocx:NormalBallastDraught" minOccurs="0">
				<xs:annotation>
					<xs:documentation>is defined as the minimum design normal ballast draught amidships (measured in meters). At this draught, the strength requirements for the ship's structure are met. It represents the minimum draught of any ballast condition in the loading manual, and covers both departure and arrival conditions.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:MinimumBallastDraught" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This represents the lowest draught in any ballast condition that is allowed by the loading manual, including both departure and arrival conditions.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:HeavyBallastDraught" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This is the minimum design heavy ballast draught amidships, considered for ships with heavy ballast condition.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:SlammingDraughtEmptyFP" minOccurs="0"/>
			<xs:element ref="ocx:SlammingDraughtFullFP" minOccurs="0"/>
			<xs:element ref="ocx:LengthOfWaterline" minOccurs="0"/>
			<xs:element ref="ocx:FreeboardDeckHeight" minOccurs="0"/>
			<xs:element ref="ocx:AP_Pos" minOccurs="0"/>
			<xs:element ref="ocx:ZPosOfDeck" minOccurs="0"/>
			<xs:element ref="ocx:DeepestEquilibriumWL" minOccurs="0"/>
			<xs:element ref="ocx:UpperDeckArea" minOccurs="0"/>
			<xs:element ref="ocx:WaterPlaneArea" minOccurs="0"/>
			<xs:element ref="ocx:ZPosDeckline" minOccurs="0"/>
			<xs:element ref="ocx:SpeedFactor" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="hasDeadweightLessThan" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>The ship has dead-weight less than 50000 tonnes (boolean).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="hasBilgeKeel" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>Whether the vessel has a bilge keel or not.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute ref="ocx:freeboardType">
			<xs:annotation>
				<xs:documentation>Enumerated free-board types according to the Rules. Type A ship is one which:— is designed to carry only liquid cargoes in bulk has a high integrity of the exposed deck with only small access openings to cargo compartments, closed by watertight gasket covers of steel or equivalent material has low permeability of loaded cargo compartments. All ships which are not Type A ships shall be considered as Type B ships.						.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="numberOfDecksAbove" type="xs:int">
			<xs:annotation>
				<xs:documentation>Number of decks above 0.7 D from baseline.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ShipDesignation_T">
		<xs:annotation>
			<xs:documentation>The different types of identification given to the ship in order that it can be categorised by any shipping related organisation. It contains the minimal information which might				be available about the ship.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="shipName" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>The name of the ship assigned by the owner.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="callSign" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>The unique life-cycle identifier assigned to the ship by the flag state for radio communication.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="numberIMO" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>A unique identification of a vessel according to IMO resolution A.600(15). It is made of the three letters “IMO” in front of the Lloyd’s Register number. This is a unique seven-digit number that is assigned to propelled, sea-going merchant ships of 100 GT and above upon keel laying (with some exceptions), see: IACS Procedural Requirements No. 11, IACS Procedure for Assigning Date of Build, 1996. https://www.imo.org/en/OurWork/IIIS/Pages/IMO-Identification-Number-Schemes.aspx: Information on IMO ship identification number scheme on the website of the IMO.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="shipType" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Optional string indicating the ship type.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="HoleShapeCatalogue" type="ocx:HoleShapeCatalogue_T">
		<xs:annotation>
			<xs:documentation>Catalogue of 2D hole shapes.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HoleShapeCatalogue_T">
		<xs:annotation>
			<xs:documentation>Type definition of the geometry used to describe the shape of a hole.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:sequence>
					<xs:element ref="ocx:Hole2D" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>2D hole definition based on either a geometric or parametric definition.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ParametricHole2D" type="ocx:ParametricHole2D_T" abstract="true">
		<xs:annotation>
			<xs:documentation>A set of parametric hole definitions in u-v space.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ParametricHole2D_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of a set of parametric hole definitions.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="Hole2D">
		<xs:annotation>
			<xs:documentation>A 2D hole shape defined either by a parametric hole or a curve contour.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Hole2D_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Hole2D_T">
		<xs:annotation>
			<xs:documentation>Type definition for a 2D hole shape defined either by a choice of a parametric hole or a contour curve.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:NamedEntity_T">
				<xs:choice>
					<xs:element ref="ocx:ParametricHole2D">
						<xs:annotation>
							<xs:documentation>Standard types of parametric hole definitions.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Contour"/>
				</xs:choice>
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ParametricCircle" type="ocx:ParametricCircle_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>A parametric circle in u-v space defined by a diameter.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ParametricCircle_T">
		<xs:annotation>
			<xs:documentation>Type definition of the  parametric circle in u-v space defined by a diameter.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:Diameter"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SymmetricalHole" type="ocx:SymmetricalHole_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>A hole made of two semicircles connected by two straight lines.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SymmetricalHole_T">
		<xs:annotation>
			<xs:documentation>Type definition of a hole made of two semicircles connected by two straight lines.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:Height">
						<xs:annotation>
							<xs:documentation>The height of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Width">
						<xs:annotation>
							<xs:documentation>The width of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SuperElliptical" type="ocx:SuperElliptical_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>A super-elliptical hole. It can also describe a true ellipse.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SuperElliptical_T">
		<xs:annotation>
			<xs:documentation>Type definition of a super-elliptical hole. It can also describe a true ellipse.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:MajorDiameter">
						<xs:annotation>
							<xs:documentation>The ellipse major diameter. == 2a.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:MinorDiameter">
						<xs:annotation>
							<xs:documentation>The ellipse minor diameter  ==2b.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="exponent" type="xs:double" use="optional" default="2.0">
					<xs:annotation>
						<xs:documentation>The exponent of the super ellipse equation. If e=2.5 the result is a super ellipse while e=2.0 results in a normal ellipse.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="RectangularHole" type="ocx:RectangularHole_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>A rectangular hole in u-v space with corner fillets of equal radii.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RectangularHole_T">
		<xs:annotation>
			<xs:documentation>Type definition of  a rectangular hole with corner fillet radii.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:Height">
						<xs:annotation>
							<xs:documentation>The height of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Width">
						<xs:annotation>
							<xs:documentation>The width of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:FilletRadius" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Corner fillet radius. If not given, the fillet radius is taken as 0.5*Min of (Height,Width), i.e. half of the smallest of the Height or the Width .</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="RectangularMickeyMouseEars" type="ocx:RectangularMickeyMouseEars_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>A rectangular hole with corner radii in the form of Mickey Mouse ears.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RectangularMickeyMouseEars_T">
		<xs:annotation>
			<xs:documentation>A hole where the two circular parts have unequal radii.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:Height">
						<xs:annotation>
							<xs:documentation>The height of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Width">
						<xs:annotation>
							<xs:documentation>The width of the hole.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Radius">
						<xs:annotation>
							<xs:documentation>The radius of the Mickey Mouse ear.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element ref="ocx:Displacement" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--********** ELEMENTS ***************-->
	<xs:attribute name="freeboardType" default="A">
		<xs:annotation>
			<xs:documentation>For the purposes of free-board computation ships shall be divided into Type A and Type B ships according to the SOLAS Load Line Convention of 1966.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="A">
					<xs:annotation>
						<xs:documentation>A type A ship is one which is designed to carry only liquid cargoes in bulk, and in which cargo tanks have only small access openings closed by watertight gasketed covers of steel or equivalent material.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="B">
					<xs:annotation>
						<xs:documentation>All ships which do not come within the provisions regarding Type A ships shall be considered as Type B ships.				.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:element name="Steel" type="ocx:Steel_T" substitutionGroup="ocx:MetallicMaterial">
		<xs:annotation>
			<xs:documentation>Physical properties of a material.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Steel_T">
		<xs:annotation>
			<xs:documentation>Type definition of a Material with physical properties.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:MetallicMaterial_T">
				<xs:sequence>
					<xs:element ref="ocx:YieldStress"/>
					<xs:element ref="ocx:UltimateStress"/>
				</xs:sequence>
				<xs:attribute ref="ocx:grade" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MetallicMaterial" type="ocx:MetallicMaterial_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Metallic material types</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="MetallicMaterial_T">
		<xs:annotation>
			<xs:documentation>Type definition of metallic material</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:NamedEntity_T">
				<xs:sequence>
					<xs:element ref="ocx:Density"/>
					<xs:element ref="ocx:YoungsModulus"/>
					<xs:element ref="ocx:PoissonRatio"/>
					<xs:element ref="ocx:ThermalExpansionCoefficient" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:attribute name="grade">
		<xs:annotation>
			<xs:documentation> Weldable normal and higher strength hull structural steels - Ref. IACS Unified Requirements S6 “Use of Steel Grades for Various Hull Members – Ships of 90m in Length and Above – Rev.9 Corr.2 Nov 2021” Table 7.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="A">
					<xs:annotation>
						<xs:documentation>Mild steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="B">
					<xs:annotation>
						<xs:documentation>Mild steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="D">
					<xs:annotation>
						<xs:documentation>Mild steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="AH">
					<xs:annotation>
						<xs:documentation>High Tensile steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="DH">
					<xs:annotation>
						<xs:documentation>High strength steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="EH">
					<xs:annotation>
						<xs:documentation>High strength steel.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:element name="BarSection">
		<xs:annotation>
			<xs:documentation>A catalogue of rolled and welded cross-sections recognised by the Society.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:BarSection_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="BarSection_T" abstract="true">
		<xs:annotation>
			<xs:documentation>Type definition of the  catalogue of rolled and welded cross-sections recognised by the Society.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:DescriptionBase_T">
				<xs:choice>
					<xs:annotation>
						<xs:documentation>A choice of bar type. Only one type can be chosen.</xs:documentation>
					</xs:annotation>
					<xs:element ref="ocx:RectangularTube"/>
					<xs:element ref="ocx:OctagonBar"/>
					<xs:element ref="ocx:SquareBar"/>
					<xs:element ref="ocx:BulbFlat"/>
					<xs:element ref="ocx:FlatBar"/>
					<xs:element ref="ocx:UBar"/>
					<xs:element ref="ocx:IBar"/>
					<xs:element ref="ocx:LBarOF"/>
					<xs:element ref="ocx:ZBar"/>
					<xs:element ref="ocx:RoundBar"/>
					<xs:element ref="ocx:LBar"/>
					<xs:element ref="ocx:TBar"/>
					<xs:element ref="ocx:LBarOW"/>
					<xs:element ref="ocx:HalfRoundBar"/>
					<xs:element ref="ocx:HexagonBar"/>
					<xs:element ref="ocx:Tube"/>
					<xs:element ref="ocx:UserDefinedBarSection"/>
				</xs:choice>
				<xs:attribute name="catalogueReference" type="xs:string">
					<xs:annotation>
						<xs:documentation>A reference to a standard catalogue such as e.g. British Steel, ANSI etc.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attributeGroup ref="ocx:barSectionAttributes"/>
				<xs:attribute ref="ocx:GUIDRef"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="BulbFlat" type="ocx:BulbFlat_T">
		<xs:annotation>
			<xs:documentation>Bulb bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="BulbFlat_T">
		<xs:annotation>
			<xs:documentation>BulbFlat type.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeWidth">
				<xs:annotation>
					<xs:documentation>The overall (total)  flange width  of the bulb Section profile</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:BulbAngle"/>
			<xs:element ref="ocx:BulbOuterRadius"/>
			<xs:element ref="ocx:BulbInnerRadius" minOccurs="0"/>
			<xs:element ref="ocx:BulbTopRadius" minOccurs="0"/>
			<xs:element ref="ocx:BulbBottomRadius" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="FlatBar" type="ocx:FlatBar_T">
		<xs:annotation>
			<xs:documentation>Flat bar, rolled or cut from plate.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="FlatBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="LBar" type="ocx:LBar_T">
		<xs:annotation>
			<xs:documentation>An angle bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="LBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="LBarOW" type="ocx:LBarOW_T">
		<xs:annotation>
			<xs:documentation>Welded angle bar where the web has an overshoot above the flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="LBarOW_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
			<xs:element ref="ocx:Overshoot">
				<xs:annotation>
					<xs:documentation>Overshoot of the web above the flange. Should be added to the Height to get the total height.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="LBarOF" type="ocx:LBarOF_T">
		<xs:annotation>
			<xs:documentation>Welded angle bar where the flange has an overshoot beyond the web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="LBarOF_T">
		<xs:sequence>
			<xs:element ref="ocx:Height"/>
			<xs:element ref="ocx:Width"/>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
			<xs:element ref="ocx:Overshoot"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TBar" type="ocx:TBar_T">
		<xs:annotation>
			<xs:documentation>T-section bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="TBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="UBar" type="ocx:UBar_T">
		<xs:annotation>
			<xs:documentation>U-section bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="IBar" type="ocx:IBar_T">
		<xs:annotation>
			<xs:documentation>I-section bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="IBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ZBar" type="ocx:ZBar_T">
		<xs:annotation>
			<xs:documentation>Z-section bar, rolled or welded.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ZBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Width">
				<xs:annotation>
					<xs:documentation>Profile width and web thickness.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:WebThickness"/>
			<xs:element ref="ocx:FlangeThickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="RoundBar" type="ocx:RoundBar_T">
		<xs:annotation>
			<xs:documentation>Round bar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RoundBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Diameter">
				<xs:annotation>
					<xs:documentation>Profile diameter.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="HalfRoundBar" type="ocx:HalfRoundBar_T">
		<xs:annotation>
			<xs:documentation>Half round bar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HalfRoundBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Diameter">
				<xs:annotation>
					<xs:documentation>The HalfRoundBar diameter. The HalfRoundBar height is D/2</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SquareBar" type="ocx:SquareBar_T">
		<xs:annotation>
			<xs:documentation>Square bar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SquareBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height, measured along the web.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="HexagonBar" type="ocx:HexagonBar_T">
		<xs:annotation>
			<xs:documentation>A symmetrical hexagon shaped bar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="HexagonBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>The profile height.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="OctagonBar" type="ocx:OctagonBar_T">
		<xs:annotation>
			<xs:documentation>An octagon shaped bar.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OctagonBar_T">
		<xs:sequence>
			<xs:element ref="ocx:Height">
				<xs:annotation>
					<xs:documentation>Profile height and width measured as the distance between two parallel sides.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Tube" type="ocx:Tube_T">
		<xs:annotation>
			<xs:documentation>Circular tube.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Tube_T">
		<xs:sequence>
			<xs:element ref="ocx:Diameter">
				<xs:annotation>
					<xs:documentation>The tube diameter.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:Thickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="RectangularTube" type="ocx:RectangularTube_T">
		<xs:annotation>
			<xs:documentation>Rectangular tube.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="RectangularTube_T">
		<xs:sequence>
			<xs:element ref="ocx:Height"/>
			<xs:element ref="ocx:Width"/>
			<xs:element ref="ocx:Thickness"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="UserDefinedBarSection" type="ocx:UserDefinedBarSection_T">
		<xs:annotation>
			<xs:documentation>User defined or unknown bar type.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UserDefinedBarSection_T">
		<xs:sequence>
			<xs:element ref="ocx:SectionProperties"/>
			<xs:sequence>
				<xs:element ref="ocx:SectionOuterShape" minOccurs="0"/>
				<xs:element ref="ocx:SectionInnerShape" minOccurs="0"/>
				<xs:element ref="ocx:CustomProperties" minOccurs="0"/>
			</xs:sequence>
		</xs:sequence>
		<xs:attribute name="numberOfParameters" type="xs:int" use="optional">
			<xs:annotation>
				<xs:documentation>Number of additional user-defined properties included in the definition.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="SectionProperties" type="ocx:SectionProperties_T">
		<xs:annotation>
			<xs:documentation>Generic bar section properties.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="SectionProperties_T">
		<xs:annotation>
			<xs:documentation>Generic bar section properties.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Area">
				<xs:annotation>
					<xs:documentation>Cross-section area.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:NeutralAxisU"/>
			<xs:element ref="ocx:NeutralAxisV"/>
			<xs:element ref="ocx:InertiaU"/>
			<xs:element ref="ocx:InertiaV"/>
			<xs:element ref="ocx:TorsionConstant" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="UserDefinedParameter" type="ocx:UserDefinedParameter_T">
		<xs:annotation>
			<xs:documentation>A user-defined parameter which can be provided to define a user-defined BarSection.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UserDefinedParameter_T">
		<xs:complexContent>
			<xs:extension base="ocx:Quantity_T">
				<xs:sequence>
					<xs:element ref="ocx:Description"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:attributeGroup name="barSectionAttributes">
		<xs:annotation>
			<xs:documentation>Section meta-data.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="typeCode" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Section type code from manufacturer.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="shortID" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Section  short id.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute ref="ocx:manufacture" use="optional"/>
	</xs:attributeGroup>
	<xs:complexType name="ClassData_T">
		<xs:annotation>
			<xs:documentation>Type definition of the main vessel data including Class Notation required by the Classification Society.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:PrincipalParticulars">
				<xs:annotation>
					<xs:documentation>Information that specifies design and intended performance characteristics of the ship in accordance with classification society rules and statutory regulations (see ISO 10303-218, section 4.2.36).</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="ocx:ClassNotation" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute ref="ocx:newbuildingSociety" use="required"/>
		<xs:attribute name="identification" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>The classification society specific identifier to a ship, typically the design ID.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="newbuildingSocietyName" type="xs:string">
			<xs:annotation>
				<xs:documentation>The common name of the class society relevant for operating the ship. Needs only to be specified when @newbuildingSociety = OTHER				.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute ref="ocx:society"/>
		<xs:attribute name="societyName" type="xs:string">
			<xs:annotation>
				<xs:documentation>The common name of the class society relevant for operating the ship. Needs only to be specified when @society = OTHER				.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="StatutoryData_T">
		<xs:annotation>
			<xs:documentation>Type definition of vessel data related to the flag state.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="portRegistration" type="xs:string">
			<xs:annotation>
				<xs:documentation>The national home port of the ship. The port of registration lies within the jurisdiction of the flag state (see ISO 10303-215, section 4.2.142.5).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="flagState" type="xs:string">
			<xs:annotation>
				<xs:documentation>The national authority with which the ship is registered (see ISO 10303-215, section 4.2.142.3).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ClassParameters_T">
		<xs:annotation>
			<xs:documentation>Information that specifies design and intended performance characteristics of the ship in accordance with classification society rules and statutory regulations (see ISO				10303-218, section 4.2.36).</xs:documentation>
		</xs:annotation>
		<xs:attribute name="blockCoefficientClass" type="xs:double" use="required">
			<xs:annotation>
				<xs:documentation>The ratio of the moulded displacement volume to the volume of a block that has its length equal to the length class, its breadth equal to the moulded breadth and its depth equal					to the scantlings draught (see ISO 10303-218, section 4.2.32.1).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="designSpeedAhead" type="xs:double">
			<xs:annotation>
				<xs:documentation>The forward speed at which the ship is designed to operate (see ISO 10303-218, section 4.2.32.2).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="designSpeedAstern" type="xs:double">
			<xs:annotation>
				<xs:documentation>The reverse speed at which the ship is designed to operate (see ISO 10303-218, section 4.2.32.3).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lengthSolas" type="xs:double" use="required">
			<xs:annotation>
				<xs:documentation>A length measurement for the ship measured in accordance with IMO IC110E (see ISO 10303-218, section 4.2.32.5).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lengthClass" type="xs:double" use="required">
			<xs:annotation>
				<xs:documentation>A length measurement for the ship that is defined in classification society rules (see ISO 10303-218, section 4.2.32.4).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="scantlingsDraught" type="xs:double" use="required">
			<xs:annotation>
				<xs:documentation>The summer load draught used by the classification society in its calculations for structural integrity and strength (see ISO 10303-218, section 4.2.32.6).</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="TonnageData_T">
		<xs:annotation>
			<xs:documentation>The information pertinent to the tonnage of the ship.</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element ref="ocx:Tonnage"/>
			<xs:element ref="ocx:DeadWeight"/>
		</xs:all>
	</xs:complexType>
	<xs:element name="BuilderInformation" type="ocx:BuilderInformation_T">
		<xs:annotation>
			<xs:documentation>The organization that designs, builds, maintains, and repairs ships. This type contains information about the ship, which is specific in the context of the shipyard, in which it has been built.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ShipDesignation" type="ocx:ShipDesignation_T">
		<xs:annotation>
			<xs:documentation>The different types of identification given to the ship in order that it can be categorised by any shipping related organisation. It contains the minimal information which might 	be available about the ship.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:simpleType name="classificationSociety">
		<xs:annotation>
			<xs:documentation>Enumeration of abbreviations for all Classification Societies.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:enumeration value="ABS">
				<xs:annotation>
					<xs:documentation>American Bureau of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BK">
				<xs:annotation>
					<xs:documentation>Biro Klasifikasi Indonesia.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BKR">
				<xs:annotation>
					<xs:documentation>Bulgarski Koraben Registar.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="BV">
				<xs:annotation>
					<xs:documentation>Bureau Veritas.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CCS">
				<xs:annotation>
					<xs:documentation>China Classification Society.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CR">
				<xs:annotation>
					<xs:documentation>China Register.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CRS">
				<xs:annotation>
					<xs:documentation>Croatian Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CSC">
				<xs:annotation>
					<xs:documentation>Choson Classification Society.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CSLPR">
				<xs:annotation>
					<xs:documentation>Cesky a Slovensky Lodni a Prumyslovy Registr.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="DNV">
				<xs:annotation>
					<xs:documentation>Det Norske Veritas.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="DSRK">
				<xs:annotation>
					<xs:documentation>Deutsche Schiffs-Revision und Klassifikation.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="FN">
				<xs:annotation>
					<xs:documentation>Fidenavis S.A.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="GL">
				<xs:annotation>
					<xs:documentation>Germanischer Lloyd.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="HR">
				<xs:annotation>
					<xs:documentation>Hellenic Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="IRS">
				<xs:annotation>
					<xs:documentation>Indian Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="KR">
				<xs:annotation>
					<xs:documentation>Korean Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="LR">
				<xs:annotation>
					<xs:documentation>Lloyd’s Register.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="NK">
				<xs:annotation>
					<xs:documentation>Nippon Kaiji Kyokai.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="PRS">
				<xs:annotation>
					<xs:documentation>Polish Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RCB">
				<xs:annotation>
					<xs:documentation>Registro Cubano de Buques.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RDS">
				<xs:annotation>
					<xs:documentation>Regjistri Detar Shqiptar.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RINA">
				<xs:annotation>
					<xs:documentation>RINA Services S.p.A.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RINAVE">
				<xs:annotation>
					<xs:documentation>Registro Internacional Naval, SA.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RNR">
				<xs:annotation>
					<xs:documentation>Registrul Naval Roman.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RR">
				<xs:annotation>
					<xs:documentation>Rechnoj Registr R.F.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RRR">
				<xs:annotation>
					<xs:documentation>Russian River Register.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="RS">
				<xs:annotation>
					<xs:documentation>Russian Maritime Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="TL">
				<xs:annotation>
					<xs:documentation>Turk Loydu Vakfi.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="UR">
				<xs:annotation>
					<xs:documentation>Shipping Register of Ukraine.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VL">
				<xs:annotation>
					<xs:documentation>DNV GL.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VR">
				<xs:annotation>
					<xs:documentation>Vietnam Register of Shipping.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="OTHER">
				<xs:annotation>
					<xs:documentation>Any other society not in the list.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<!-- ========================================================================================  -->
	<!-- unitsML  use  by OCX-->
	<!-- ========================================================================================  -->
	<xs:element name="Quantity" abstract="true">
		<xs:annotation>
			<xs:documentation>Abstract base class for all types with values carrying a Unit : Q = v * u.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ocx:Quantity_T"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Quantity_T">
		<xs:annotation>
			<xs:documentation>Type definition of the abstract base class for all types with values carrying a Unit : Q = v * u.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="numericvalue" type="xs:double" use="required">
			<xs:annotation>
				<xs:documentation>The numerical value of the quantity.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="unit" type="xs:IDREF" use="required">
			<xs:annotation>
				<xs:documentation>The reference to the unitsML reference unit.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:element name="DistanceTolerance" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Absolute tolerance measure used by the exporting application when defining geometry.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="AngleTolerance" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Absolute angular tolerance measure used by the exporting application when defining geometry.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="TonnageData" type="ocx:TonnageData_T">
		<xs:annotation>
			<xs:documentation>The Vessel tonnage information.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="StatutoryData" type="ocx:StatutoryData_T">
		<xs:annotation>
			<xs:documentation>The vessel statutory information.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ClassificationData" type="ocx:ClassData_T">
		<xs:annotation>
			<xs:documentation>Information that specifies design and intended performance characteristics of the ship in accordance with classification society rules and statutory regulations (see ISO 	10303-218, section 4.2.36).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:attribute name="position">
		<xs:annotation>
			<xs:documentation>The position of the bracket relative to the stiffener end.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="Near side">
					<xs:annotation>
						<xs:documentation>The bracket is at the near side of a penetration.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Far side">
					<xs:annotation>
						<xs:documentation>The bracket is at the far side of a penetration.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:element name="ClassNotation" type="ocx:ClassNotation_T">
		<xs:annotation>
			<xs:documentation>The notations given to the hull and machinery of the Ship by the classification society as a result of its approval activities during the design, manufacture and in-service maintenance of the ship (see ISO 10303-218, section 4.2.35).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ClassNotation_T">
		<xs:annotation>
			<xs:documentation>Type definition of ClassNotation.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="hull" type="xs:string">
			<xs:annotation>
				<xs:documentation> The notation given to the hull of the ship by the classification society as a result of its approval activities done on the hull.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="machinery" type="xs:string">
			<xs:annotation>
				<xs:documentation>The notation given to the machinery on the ship by the classification society as a result of its approval activities done on the machinery.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="iceClass" type="xs:string">
			<xs:annotation>
				<xs:documentation>The type of class notation given to the ship indicating the ice conditions in which the ship has been approved to operate.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="serviceArea" type="xs:string">
			<xs:annotation>
				<xs:documentation>The area or route in which the ship operates. NOTE: This may include information about waterway, wave, weather and wind conditions.				.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="serviceFactor" type="xs:double">
			<xs:annotation>
				<xs:documentation>The service area of the ship and the waves that occur in that area. The service factor should be in the range of 0.5 to 1.0.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="additionalNotations" type="xs:string">
			<xs:annotation>
				<xs:documentation>Additional notations assigned by the society.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="BuilderInformation_T">
		<xs:attribute name="yard" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Name of the construction yard.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="designer" type="xs:string">
			<xs:annotation>
				<xs:documentation>The name of the designer of the vessel.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="owner" type="xs:string">
			<xs:annotation>
				<xs:documentation>Contractor of the vessel.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="yearOfBuild" type="xs:date">
			<xs:annotation>
				<xs:documentation>Keel laying date.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- simpleType extensions-->
	<!-- ========================================================================================  -->
	<xs:simpleType name="doubleListType">
		<xs:annotation>
			<xs:documentation>Generic list of double simple types separated by  a white space.</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:double"/>
	</xs:simpleType>
	<!-- -->
	<!-- ========================================================================================  -->
	<!-- Global elements -->
	<!-- ========================================================================================  -->
	<xs:element name="Radius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The radius of the parent element.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="NetArea" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The net plate area computed by the sending application. The NetArea is the net area of the plate representing the actual plate contour and cut-outs removing material from the plate:
NetAra*t*density = DryWeight</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Area" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The bar section area.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ArmLengthU" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The length of the bracket in local U-direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ArmLengthV" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The length of the bracket in local V-direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Unose" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The bracket nose depth at the local U end of the bracket.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Vnose" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The bracket nose depth at the local V end of the bracket.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FreeEdgeRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The edge radius at the bracket free edge. Assumed to be straight if no radius value is provided.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CopeHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The height of the cope.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CopeRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The cope or heel radius.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FlangeCutBackAngle" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Cut angle of stiffener flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WebCutBackAngle" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Sniped angle of stiffener web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FlangeNoseHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Nose height of sniped stiffener flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WebNoseHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Nose height of sniped stiffener web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CutbackDistance" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Distance from stiffener logical end position to the start of the web cutback.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CopeLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The length of the cope.  (The default is CopeLength=CopeRadius)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="UpperRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The upper radius of an opening or a slot.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="LowerRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The lower radius of an opening or slot.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Tonnage" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>She numerical value resulting from the tonnage calculation (see ISO 10303-215, section 4.2.165.3).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Width" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The width of the parent element.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Height" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The height of the parent element.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Thickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The thickness of the parent element.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="DeadWeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The weight of the passengers, crew, cargo, stores, ballast, fresh water, fuel oil, and other consumables being carried by a ship (see ISO 10303-215, section 4.2.74).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WebThickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The thickness of the web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FlangeWidth" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Section profile flange width.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BulbAngle" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The bulb angle. The opening angle of the bulb taken as the angle between  the upper and lower  bulb straight parts.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BulbOuterRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The radius of the bulb nose.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BulbInnerRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The inner radius of the bulb taken as the radius between the web and the lower part of the bulb. Normally equal to the BulbOuterRadius.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BulbTopRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The radius at the top of the bulb taken as the radius between the web side and the bulb upper flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BulbBottomRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The radius at the bottom of the web where the bulb is normally welded to a plate.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FilletRadius" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Corner fillet radius.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Diameter" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Circle diameter.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Contour" type="ocx:Contour3D_T">
		<xs:annotation>
			<xs:documentation>The contour of a surface or structure part.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Lpp" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The length of the Vessel between perpendiculars, Lpp.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="RuleLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Rule length $L$ is the distance, in metres, measured on the waterline at the scantling draught from the fore side of the stem to the after side of the rudder post, or the centre of the rudder stock if there is no rudder post. $L$ is not to be less than 96%, and need not be greater than 97%, of the extreme length on the waterline at the scantling draught. In ships without rudder stock (e.g. ships fitted with azimuth thrusters), the Rule length $L$ is to be taken equal to 97% of the extreme length on the waterline at the scantling draught. In ships with unusual stern and bow arrangement the Rule length $L$ will be specially considered.(ref. IACS S2 Definition of Ship's Length $L$ and of Block Coefficient $C_b$ - S2.1 Rule Length).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="BlockCoefficient" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The block coefficient Cb is the moulded block coefficient corresponding to the waterline at the scantling draught Ts, based on rule length L and moulded breadth B: 
$$C_b=\frac{Moulded displacement [m^3] at scantling draught T_s}{LBT_s} $$
Where: 
  * B : Greatest moulded breadth, in m, measured amidships at the scantling draught, Ts. 
  * Ts : Scantling draught, in m, at which the strength requirements for the scantlings of the ship are met 
and represents the full load condition. The scantling draught is to be not less than that corresponding to the assigned free-board.(ref. IACS S2 Definition of Ship's Length L and of Block Coefficient Cb - S2.2 Block Coefficient $C_b$)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FP_Pos" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>X-Position of fwd. end of waterline for free-board length.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MouldedBreadth" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The moulded breadth of the Vessel, B.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MouldedDepth" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The moulded depth of the Vessel, D.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ScantlingDraught" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Design draught moulded, fully loaded condition, Td. The summer load draught used by the classification society in its calculations for structural integrity and strength (see ISO 10303-218, section 4.2.32.6).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="DesignSpeed" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The forward or service speed at which the ship is designed to operate (see ISO 10303-218, section 4.2.32.2).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FreeboardLength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The free-board length of the Vessel, Lll.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="NormalBallastDraught" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Vessel draught at normal ballast, Tnb.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="HeavyBallastDraught" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Vessel draught at heavy ballast, Thb.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SlammingDraughtEmptyFP" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The design slamming draught at FP (all ballast tanks empty), Tf-e.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SlammingDraughtFullFP" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Vessel draught at FP used when calculation design slamming loads (all ballast tanks full), Tf-f.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="LengthOfWaterline" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The length of the waterline at T, Lwl.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FreeboardDeckHeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The height of free-board deck, D1.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="AP_Pos" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>X Position of AP.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ZPosOfDeck" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Z coordinate of the bulkhead deck.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="DeepestEquilibriumWL" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Deepest equilibrium waterline in damaged condition.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="UpperDeckArea" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Projected area of upper deck forward 0.2 L.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WaterPlaneArea" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The area of water-plane forward 0.2 L at scantling draught Td.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ZPosDeckline" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Vertical distance from baseline to deck-line at FE.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SpeedFactor" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Speed factor Cav.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MajorDiameter" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The ellipse major diameter.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MinorDiameter" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The ellipse minor diameter.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Positions" type="ocx:Positions_T">
		<xs:annotation>
			<xs:documentation>3 3D-Points defining the circum circle.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Positions_T">
		<xs:sequence>
			<xs:element ref="ocx:Point3D" minOccurs="3" maxOccurs="3"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="StartPoint" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The start position of the segment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="IntermediatePoint" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>An intermediate point on the circular segment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="EndPoint" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The end position of the segment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Offset" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>An offset from a reference plane or surface. A positive offset value is in the direction of the surface normal vector. Give an Offset=0 if there is no offset from the referred  object.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FlangeThickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The thickness of the flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="NeutralAxisU" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Position of the neutral axis parallel to the U axis measured from the foot point. The U axis is along the flange.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="NeutralAxisV" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Position of the neutral axis parallel to the V axis measured from the mould line side. The V axis is along the web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="InertiaU" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Moment of inertia around NeutralAxisU.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="InertiaV" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Moment of inertia around NeutralAxisV.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="TorsionConstant" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The torsional constant is calculated from the cross-section and determines the torsional rigidity together with the shear modulus.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ReferenceLocation" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Location on the reference axis.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Displacement" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The Radius displacement outside the original corner of the rectangle. If left out (or set to zero), the radius passes through the original corner of the rectangle.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Density" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material density.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="YoungsModulus" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material elasticity modulus.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PoissonRatio" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material Poisson's ration.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="YieldStress" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material yield stress.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="UltimateStress" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material ultimate stress.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ThermalExpansionCoefficient" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The material thermal expansion coefficient.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="OffsetU" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The offset from stiffener trace line of cross-section in local U direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="OffsetV" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The offset from stiffener trace-line of cross-section in local V direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WebDirection" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Direction of the stiffener web.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="FlangeDirection" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Direction of the stiffener flange. Not required for symmetrical profiles.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Position" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The position of the inclination of the cross-section.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="DistanceAbove" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The distance of the lug above the plate (bottom of the slot opening).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="DistanceBelow" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The distance below the lug plate to bottom of the slot.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Axis" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Cylinder revolution axis direction.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Overshoot" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The overshoot of the flange beyond the web. Shall be included in the Width..</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="UDirection" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Local U direction in a local coordinate system.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="VDirection" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>Local V direction in a local coordinate system.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Start" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The location of Frame 0 in the frame table.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SectionOuterShape" type="ocx:Contour3D_T">
		<xs:annotation>
			<xs:documentation>An optional arbitrary contour  representing the outer section shape. Used to display the section by extrusion of the section shape along the trace line.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="SectionInnerShape" type="ocx:Contour3D_T">
		<xs:annotation>
			<xs:documentation>Optional arbitrary inner section shape for hollow sections.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="CustomProperties" type="ocx:CustomProperties_T">
		<xs:annotation>
			<xs:documentation>Container for custom properties.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CustomProperties_T">
		<xs:sequence>
			<xs:element ref="ocx:CustomProperty" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CustomProperty" type="ocx:CustomProperty_T">
		<xs:annotation>
			<xs:documentation>A generic custom property type with a key, value pair and optional unit.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="CustomProperty_T">
		<xs:annotation>
			<xs:documentation>Type definition</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element ref="ocx:Description" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="required"/>
		<xs:attribute name="name" type="xs:string" use="required">
			<xs:annotation>
				<xs:documentation>Property  name.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="value" type="xs:string" use="required"/>
		<xs:attribute name="unit" type="xs:IDREF"/>
	</xs:complexType>
	<!-- ========================================================================================  -->
	<!-- Global attributes -->
	<!-- ========================================================================================  -->
	<xs:attribute name="newbuildingSociety" type="ocx:classificationSociety">
		<xs:annotation>
			<xs:documentation>The name and organizational details of the classification society whose rules and regulations are being used to assess the ship during construction.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attribute name="society" type="ocx:classificationSociety">
		<xs:annotation>
			<xs:documentation>The name and organizational details of the classification society whose rules and regulations are being used to assess the ship during current operation.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attribute name="slotType" default="Open">
		<xs:annotation>
			<xs:documentation>The slot type for a stiffener penetrating a primary supporting member (PSM).</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="Slit">
					<xs:annotation>
						<xs:documentation>A slot opening of Slit type is where the stiffener is directly welded to the penetrating plate on both sides of the web. No lug plates shall be fitted.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Open">
					<xs:annotation>
						<xs:documentation>A slot opening of Open type is where the stiffener has no directly welded connection to the penetrating plate on on either side of the web. The connection to the PSM must be ensured by fitting lug plate(s).</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Direct">
					<xs:annotation>
						<xs:documentation>A slot opening of Direct type is where the stiffener has one directly welded connection to the penetrating plate on on either side of the web. An additional lug plate may also be fitted to the stiffener on the opposite side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="manufacture">
		<xs:annotation>
			<xs:documentation>List of bar section manufacturing method.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="Rolled"/>
				<xs:enumeration value="Welded"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:element name="VoluntaryThicknessAddition">
		<xs:annotation>
			<xs:documentation>Voluntary thickness addition  is the thickness that is voluntarily added by the owner or builder as extra margin against corrosion wastage, beyond what is required by the applicable rules.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="RenewalThickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Renewal thickness refers to the minimum allowable plate or structural member thickness, below which steel renewal must be carried out.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="VoluntaryFlangeThicknessAddition" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Voluntary stiffener flange thickness addition. Voluntary thickness addition  is the thickness that is voluntarily added by the owner or builder as extra margin against corrosion wastage, beyond what is required by the applicable rules.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="VoluntaryWebThicknessAddition" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Voluntary stiffener web thickness addition. Voluntary thickness addition  is the thickness that is voluntarily added by the owner or builder as extra margin against corrosion wastage, beyond what is required by the applicable rules.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MinimumBallastDraught" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>is defined as the minimum design normal ballast draught amidships (measured in meters). At this draught, the strength requirements for the ship's structure are met. It represents the minimum draught of any ballast condition in the loading manual, and covers both departure and arrival conditions.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MouldedCenterOfGravity" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation> The idealised moulded centre of gravity of the structure part.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="MouldedDryWeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The idealised moulded dry weight of the structure part.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PhysicalDryWeight" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation> The physical volumetric dry weight  of the structure part</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PhysicalCenterOfGravity" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>The physical volumetric mass centre of gravity of the structure part.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Ellipse" type="ocx:Ellipse_T" substitutionGroup="ocx:ParametricHole2D">
		<xs:annotation>
			<xs:documentation>An elliptical hole.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Ellipse_T">
		<xs:annotation>
			<xs:documentation>Type definition of a parametric Ellipse</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ocx:ParametricHole2D_T">
				<xs:sequence>
					<xs:element ref="ocx:MajorDiameter"/>
					<xs:element ref="ocx:MinorDiameter"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="FlangeRenewalThickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The flange renewal thickness of the profile. Renewal thickness refers to the minimum allowable flange thickness, below which steel renewal must be carried out.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WebRenewalThickness" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The web renewal thickness of the profile. Renewal thickness refers to the minimum allowable web thickness, below which steel renewal must be carried out.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="Aluminium" type="ocx:Aluminium_T" substitutionGroup="ocx:MetallicMaterial">
		<xs:annotation>
			<xs:documentation>High-strength, corrosion-resistant alloy commonly used in marine, aerospace, and structural applications</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="Aluminium_T">
		<xs:complexContent>
			<xs:extension base="ocx:MetallicMaterial_T">
				<xs:sequence>
					<xs:element ref="ocx:UnweldedYieldStrength"/>
					<xs:element ref="ocx:WeldedYieldStrength"/>
					<xs:element ref="ocx:UnweldedTensileStrength"/>
					<xs:element ref="ocx:WeldedTensileStrength"/>
				</xs:sequence>
				<xs:attribute name="alloyDesignation" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>The alloy according to e.g. the International Alloy Designation System (AA)</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="standardReference">
					<xs:annotation>
						<xs:documentation>A reference to the associated alloy standard.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UnweldedYieldStrength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Yield strength of the base material before welding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WeldedYieldStrength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>Yield strength. Properties after welding, where strength typically decreases due to thermal effects.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="UnweldedTensileStrength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation> The maximum stress the material can withstand before breaking. Properties of the base material before welding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="WeldedTensileStrength" type="ocx:Quantity_T">
		<xs:annotation>
			<xs:documentation>The maximum stress the material can withstand before breaking. Properties after welding, where strength typically decreases due to thermal effects.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ContourMidPoint" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>A mid-point on the contour boundary defined by an intersecting surface. The mid-point is needed to identify the correct contour segment if the intersection results in a closed contour.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="PointOnSurface" type="ocx:Point3D_T">
		<xs:annotation>
			<xs:documentation>For multiple surface solutions, a point on the target surface must be provided.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:attribute name="orientationRule">
		<xs:annotation>
			<xs:documentation>The orientation rule for the stiffener. The rule is used to orientate the stiffener together with the Inclination. The stiffener Inclination determines the orientation of the flange and the web side.</xs:documentation>
		</xs:annotation>
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="X-plane">
					<xs:annotation>
						<xs:documentation>The stiffener is mounted with the WebDirection normal to the the global YZ-Plane. The Inclination WebDirection determines if the stiffener is monted in the positive or negative direction. The Inclination FlangeDirection gives the flange orientation and the web material side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Y-plane">
					<xs:annotation>
						<xs:documentation>The stiffener is mounted with the WebDirection normal to the the global XZ-Plane.  The Inclination WebDirection determines if the stiffener is monted in the positive or negative direction. The Inclination FlangeDirection gives the flange orientation and the web material side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Z-plane">
					<xs:annotation>
						<xs:documentation>The stiffener is mounted with the WebDirection normal to the the global XY-Plane.  The Inclination WebDirection determines if the stiffener is monted in the positive or negative direction. The Inclination FlangeDirection gives the flange orientation and the web material side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Inclined">
					<xs:annotation>
						<xs:documentation>The Inclination determines both the exact web direction, flange orientation and the web material side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Twisted">
					<xs:annotation>
						<xs:documentation>The stiffener is mounted with the WebDirection “Twisted” along the Traceline. The Inclinations give the twist orientation vector along the length of the stiffener. It is assumed that the twist varies linearly along the length of the stiffener's trace-line between inclinations.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
				<xs:enumeration value="Normal">
					<xs:annotation>
						<xs:documentation>The stiffener is mounted with the WebDirection normal to the mounting plane. The Inclination WebDirection determines if the stiffener is monted in the positive or negative direction. The Inclination FlangeDirection gives the flange orientation and the web material side.</xs:documentation>
					</xs:annotation>
				</xs:enumeration>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:element name="OffsetDirection" type="ocx:Vector3D_T">
		<xs:annotation>
			<xs:documentation>The direction of an offset from a reference object. The direction is only interpreted if a non-zero Offset is given.</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>