diff --git a/VirtualRobot/XML/BaseIO.cpp b/VirtualRobot/XML/BaseIO.cpp
index 547026f7750664236fe0a2edb177133f00712ea9..b87a6074e962bc055439abfa05f9acbec8956d96 100644
--- a/VirtualRobot/XML/BaseIO.cpp
+++ b/VirtualRobot/XML/BaseIO.cpp
@@ -749,9 +749,12 @@ namespace VirtualRobot
         {
             return;
         }
-        else if (fs::path(filename).is_absolute() && boost::filesystem::exists(fs::path(filename)))
+        else if (fs::path(filename).is_absolute())
         {
-            filepath = fs::canonical(fs::path(filename));
+            if (boost::filesystem::exists(fs::path(filename)))
+                filepath = fs::canonical(fs::path(filename));
+            else
+                filepath = fs::path(filename);
         }
         else
         {
diff --git a/doc/file_format/simox_robot.xsd b/doc/file_format/simox_robot.xsd
index ff515281b6fbda4fabaec3c170504094e3a67262..f4e5a284199aec7a73e18e7cf6811d0323f3c63c 100644
--- a/doc/file_format/simox_robot.xsd
+++ b/doc/file_format/simox_robot.xsd
@@ -202,12 +202,40 @@
 		</xs:complexContent>
 	</xs:complexType>
 
-	<xs:complexType name="Coordinate-Type">
-		<xs:attribute name="enale"    type="xs:boolean" default="true"/>
-		<xs:attribute name="scaling"  type="xs:decimal" default="1.0"/>
-		<xs:attribute name="text"     type="xs:string" default=""/>
-	</xs:complexType>
-
+  <xs:complexType name="Coordinate-Type">
+    <xs:attribute name="enale"    type="xs:boolean" default="true"/>
+    <xs:attribute name="scaling"  type="xs:decimal" default="1.0"/>
+    <xs:attribute name="text"     type="xs:string" default=""/>
+  </xs:complexType>
+
+  <xs:complexType name="PropagateJointValue-Type">
+    <xs:attribute name="factor"  type="xs:decimal" default="1.0"/>
+    <xs:attribute name="name"     type="xs:string" default=""/>
+  </xs:complexType>
+
+  <xs:complexType name="PrimitiveBox-Type">
+    <xs:all>
+      <xs:element name="Transform" type="Transform-Type" minOccurs="0"/>
+    </xs:all>
+    <xs:attribute name="width" type="xs:decimal" default="0.0"/>
+    <xs:attribute name="height" type="xs:decimal" default="0.0"/>
+    <xs:attribute name="depth" type="xs:decimal" default="0.0"/>
+  </xs:complexType>
+
+  <xs:complexType name="PrimitiveSphere-Type">
+    <xs:all>
+      <xs:element name="Transform" type="Transform-Type" minOccurs="0"/>
+    </xs:all>
+    <xs:attribute name="radius" type="xs:decimal" default="1.0"/>
+  </xs:complexType>
+
+  <xs:complexType name="Primitive-Type">
+    <xs:all>
+      <xs:element name="box" type="PrimitiveBox-Type" minOccurs="0"/>
+      <xs:element name="sphere" type="PrimitiveSphere-Type" minOccurs="0"/>
+    </xs:all>
+  </xs:complexType>
+  
 	<xs:complexType name="JointElement">
 		<xs:all>
 			<xs:element name="limits"               type="Limits-Type" minOccurs="1"/>
@@ -216,6 +244,7 @@
 			<xs:element name="maxvelocity"          type="Velocity-Type" minOccurs="1"/>
 			<xs:element name="maxacceleration"      type="Acceleration-Type" minOccurs="1"/>
 			<xs:element name="maxtorque"            type="Torque-Type" minOccurs="1"/>
+      <xs:element name="propagatejointvalue"  type="PropagateJointValue-Type" minOccurs="0"/>
 		</xs:all>
 		<xs:attribute name="type" type="Joint-Type" default="fixed"/>
 	</xs:complexType>
@@ -230,8 +259,9 @@
 
 	<xs:complexType name="VisualizationElement">
 		<xs:all>
-			<xs:element name="File"           type="File-Type" minOccurs="0" maxOccurs="1"/>
-			<xs:element name="CoordinateAxis" type="Coordinate-Type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="File"           type="File-Type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="Primitives"     type="Primitive-Type" minOccurs="0"/>
+      <xs:element name="CoordinateAxis" type="Coordinate-Type" minOccurs="0" maxOccurs="1"/>
 		</xs:all>
 		<xs:attribute name="enable"               type="xs:boolean" default="true"/>
 		<xs:attribute name="useAsCollisionModel"  type="xs:boolean" default="false"/>
@@ -240,6 +270,7 @@
 	<xs:complexType name="CollisionElement">
 		<xs:all>
 			<xs:element name="File"           type="Col-File-Type" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="Primitives"     type="Primitive-Type" minOccurs="0"/>
 		</xs:all>
 		<xs:attribute name="enable"               type="xs:boolean" default="true"/>
 	</xs:complexType>