xml文件与javaBean之间的相互转换是经常发生的,在这方面的相关jar包也比较多,可是相对而言比较简单的还是JAXB。只需要做到如下几步就可:
1、下载trang.jar
这个jar包是根据xml文件生成xsd文件,使用的命令是:Java -jar xml文件名.xml 文件名.xsd
例如:java -jar demo-01.xml demo-01.xsd
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- Root element of a model document -->
<xsd:element name="model">
<xsd:complexType>
<!-- model elements -->
<xsd:sequence>
<xsd:element name="point"
type="pointType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="path"
type="pathType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="vehicle"
type="vehicleType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="locationType"
type="locationTypeType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="location"
type="locationType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="block"
type="blockType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="visualLayout"
type="visualLayoutType"
minOccurs="0"
maxOccurs="1"/>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<!-- model attributes -->
<xsd:attribute name="version"
type="versionType"
use="required"/>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<!-- Simple data type for version strings -->
<xsd:simpleType name="versionType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d\.\d\.\d"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for point elements -->
<xsd:complexType name="pointType">
<xsd:sequence>
<xsd:element name="outgoingPath"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="pointLayout"
type="pointLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="xPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="yPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="zPosition"
type="xsd:long"/>
<xsd:attribute name="vehicleOrientationAngle"
type="xsd:float"/>
<xsd:attribute name="type"
type="pointTypeType"
use="required"/>
</xsd:complexType>
<!-- Data type for point layout type elements -->
<xsd:complexType name="pointLayoutType">
<xsd:attribute name="xPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="yPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="xLabelOffset"
type="xsd:long"
use="required"/>
<xsd:attribute name="yLabelOffset"
type="xsd:long"
use="required"/>
<xsd:attribute name="layerId"
type="xsd:int"
use="required"/>
</xsd:complexType>
<xsd:simpleType name="pointTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="REPORT_POSITION"/>
<xsd:enumeration value="HALT_POSITION"/>
<xsd:enumeration value="PARK_POSITION"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for path elements -->
<xsd:complexType name="pathType">
<xsd:sequence>
<xsd:element name="peripheralOperation"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="locationName"
type="xsd:string"
use="required"/>
<xsd:attribute name="executionTrigger"
type="executionTriggerType"
use="required"/>
<xsd:attribute name="completionRequired"
type="xsd:boolean"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="pathLayout"
type="pathLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="sourcePoint"
type="xsd:string"
use="required"/>
<xsd:attribute name="destinationPoint"
type="xsd:string"
use="required"/>
<xsd:attribute name="length"
type="xsd:unsignedInt"
use="optional"/>
<xsd:attribute name="maxVelocity"
type="xsd:unsignedInt"
use="required"/>
<xsd:attribute name="maxReverseVelocity"
type="xsd:unsignedInt"
use="required"/>
<xsd:attribute name="locked"
type="xsd:boolean"
use="required"/>
</xsd:complexType>
<!-- Data type for path layout type elements -->
<xsd:complexType name="pathLayoutType">
<xsd:sequence>
<xsd:element name="controlPoint"
type="controlPointType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="connectionType"
type="connectionTypeType"
use="required"/>
<xsd:attribute name="layerId"
type="xsd:int"
use="required"/>
</xsd:complexType>
<xsd:simpleType name="connectionTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DIRECT"/>
<xsd:enumeration value="ELBOW"/>
<xsd:enumeration value="SLANTED"/>
<xsd:enumeration value="POLYPATH"/>
<xsd:enumeration value="BEZIER"/>
<xsd:enumeration value="BEZIER_3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="controlPointType">
<xsd:attribute name="x"
type="xsd:long"
use="required"/>
<xsd:attribute name="y"
type="xsd:long"
use="required"/>
</xsd:complexType>
<xsd:simpleType name="executionTriggerType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BEFORE_MOVEMENT"/>
<xsd:enumeration value="AFTER_MOVEMENT"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for vehicle elements -->
<xsd:complexType name="vehicleType">
<xsd:sequence>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="vehicleLayout"
type="vehicleLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="length"
type="xsd:unsignedInt"/>
<xsd:attribute name="energyLevelCritical"
type="xsd:unsignedInt"/>
<xsd:attribute name="energyLevelGood"
type="xsd:unsignedInt"/>
<xsd:attribute name="energyLevelFullyRecharged"
type="xsd:unsignedInt"/>
<xsd:attribute name="energyLevelSufficientlyRecharged"
type="xsd:unsignedInt"/>
<xsd:attribute name="maxVelocity"
type="xsd:unsignedInt"/>
<xsd:attribute name="maxReverseVelocity"
type="xsd:unsignedInt"/>
</xsd:complexType>
<!-- Data type for vehicle layout type elements -->
<xsd:complexType name="vehicleLayoutType">
<xsd:attribute name="color"
type="colorType"
use="required"/>
</xsd:complexType>
<!-- Data type for location type elements -->
<xsd:complexType name="locationTypeType">
<xsd:sequence>
<xsd:element name="allowedOperation"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="allowedPeripheralOperation"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="locationTypeLayout"
type="locationTypeLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
<!-- Data type for location type layout type elements -->
<xsd:complexType name="locationTypeLayoutType">
<xsd:attribute name="locationRepresentation"
type="locationRepresentationType"
use="required"/>
</xsd:complexType>
<!-- Data type for location elements -->
<xsd:complexType name="locationType">
<xsd:sequence>
<xsd:element name="link"
type="locationLinkType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="locationLayout"
type="locationLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="xPosition"
type="xsd:long"/>
<xsd:attribute name="yPosition"
type="xsd:long"/>
<xsd:attribute name="zPosition"
type="xsd:long"/>
<xsd:attribute name="type"
type="xsd:string"
use="required"/>
<xsd:attribute name="locked"
type="xsd:boolean"
use="required"/>
</xsd:complexType>
<!-- Data type for location link elements -->
<xsd:complexType name="locationLinkType">
<xsd:sequence>
<xsd:element name="allowedOperation"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="point"
type="xsd:string"
use="required"/>
</xsd:complexType>
<!-- Data type for location layout type elements -->
<xsd:complexType name="locationLayoutType">
<xsd:attribute name="xPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="yPosition"
type="xsd:long"
use="required"/>
<xsd:attribute name="xLabelOffset"
type="xsd:long"
use="required"/>
<xsd:attribute name="yLabelOffset"
type="xsd:long"
use="required"/>
<xsd:attribute name="locationRepresentation"
type="locationRepresentationType"
use="required"/>
<xsd:attribute name="layerId"
type="xsd:int"
use="required"/>
</xsd:complexType>
<xsd:simpleType name="locationRepresentationType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="NONE"/>
<xsd:enumeration value="DEFAULT"/>
<xsd:enumeration value="LOAD_TRANSFER_GENERIC"/>
<xsd:enumeration value="LOAD_TRANSFER_ALT_1"/>
<xsd:enumeration value="LOAD_TRANSFER_ALT_2"/>
<xsd:enumeration value="LOAD_TRANSFER_ALT_3"/>
<xsd:enumeration value="LOAD_TRANSFER_ALT_4"/>
<xsd:enumeration value="LOAD_TRANSFER_ALT_5"/>
<xsd:enumeration value="WORKING_GENERIC"/>
<xsd:enumeration value="WORKING_ALT_1"/>
<xsd:enumeration value="WORKING_ALT_2"/>
<xsd:enumeration value="RECHARGE_GENERIC"/>
<xsd:enumeration value="RECHARGE_ALT_1"/>
<xsd:enumeration value="RECHARGE_ALT_2"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for block elements -->
<xsd:complexType name="blockType">
<xsd:sequence>
<xsd:element name="member"
minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
<xsd:element name="blockLayout"
type="blockLayoutType"
minOccurs="0"
maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="type"
type="blockTypeType"/>
</xsd:complexType>
<!-- Data type for block layout type elements -->
<xsd:complexType name="blockLayoutType">
<xsd:attribute name="color"
type="colorType"
use="required"/>
</xsd:complexType>
<xsd:simpleType name="colorType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="#[\dA-F]{6}"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for block type elements -->
<xsd:simpleType name="blockTypeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SINGLE_VEHICLE_ONLY"/>
<xsd:enumeration value="SAME_DIRECTION_ONLY"/>
</xsd:restriction>
</xsd:simpleType>
<!-- Data type for the visual layout -->
<xsd:complexType name="visualLayoutType">
<xsd:sequence>
<xsd:element name="layer"
type="layerType"
minOccurs="1"
maxOccurs="unbounded"/>
<xsd:element name="layerGroup"
type="layerGroupType"
minOccurs="1"
maxOccurs="unbounded"/>
<xsd:element name="property"
type="propertyType"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="scaleX"
type="xsd:float"
use="required"/>
<xsd:attribute name="scaleY"
type="xsd:float"
use="required"/>
</xsd:complexType>
<xsd:complexType name="layerType">
<xsd:attribute name="id"
type="xsd:int"
use="required"/>
<xsd:attribute name="ordinal"
type="xsd:int"
use="required"/>
<xsd:attribute name="visible"
type="xsd:boolean"
use="required"/>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="groupId"
type="xsd:int"
use="required"/>
</xsd:complexType>
<xsd:complexType name="layerGroupType">
<xsd:attribute name="id"
type="xsd:int"
use="required"/>
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="visible"
type="xsd:boolean"
use="required"/>
</xsd:complexType>
<!-- Data type for properties -->
<xsd:complexType name="propertyType">
<xsd:attribute name="name"
type="xsd:string"
use="required"/>
<xsd:attribute name="value"
type="xsd:string"
use="required"/>
</xsd:complexType>
</xsd:schema>
2、在项目中导入JAXB的相关依赖:
implementation group: 'xerces', name: 'xercesImpl', version: '2.12.2'
api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.6'
3、根据xml生成javaBean:
随着java版本的升级,java9后已经删除了tools.jar这个工具包,则java自带的xjc命令不能再使用,根据xml生成javaBean的在线工具有很多,在这里我推荐一个,我自己用的是这个。
https://www.toolscat.com/convert/xml-java
4、将生成的javaBean标注好相应的注解:
package org.opentcs.bean.to;
import com.mysql.cj.util.StringUtils;
import org.opentcs.dao.impl.*;
import javax.xml.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.Objects.requireNonNull;
@XmlRootElement(name = "model")
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(propOrder = {"version", "name", "points", "paths", "vehicles", "locationTypes",
"locations", "blocks", "visualLayout", "properties"})
public class DBPlantModelTO {
private String name = "";
private String version = "";
private List<PointTO> points = new ArrayList<>();
private List<PathTO> paths = new ArrayList<>();
private List<VehicleTO> vehicles = new ArrayList<>();
private List<LocationTypeTO> locationTypes = new ArrayList<>();
private List<LocationTO> locations = new ArrayList<>();
private List<BlockTO> blocks = new ArrayList<>();
private VisualLayoutTO visualLayout = new VisualLayoutTO();
private List<PropertyTO> properties = new ArrayList<>();
@XmlAttribute(required = true)
public String getVersion(){
return version;
}
public DBPlantModelTO setVersion( String version){
this.version=version;
return this;
}
@XmlAttribute(required = true)
public String getName() {
return name;
}
public DBPlantModelTO setName( String name) {
requireNonNull(name, "name");
this.name=name;
return this;
}
@XmlElement(name = "point")
public List<PointTO> getPoints() {
return points;
}
public DBPlantModelTO setPoints( List<PointTO> points) {
requireNonNull(points, "points");
this.points = points;
return this;
}
@XmlElement(name = "path")
public List<PathTO> getPaths() {
return paths;
}
public DBPlantModelTO setPaths( List<PathTO> paths) {
requireNonNull(paths, "paths");
this.paths = paths;
return this;
}
@XmlElement(name = "vehicle")
public List<VehicleTO> getVehicles() {
return vehicles;
}
public DBPlantModelTO setVehicles( List<VehicleTO> vehicles) {
requireNonNull(vehicles, "vehicles");
this.vehicles = vehicles;
return this;
}
@XmlElement(name = "locationType")
public List<LocationTypeTO> getLocationTypes() {
return locationTypes;
}
public DBPlantModelTO setLocationTypes( List<LocationTypeTO> locationTypes) {
requireNonNull(locationTypes, "locationTypes");
this.locationTypes = locationTypes;
return this;
}
@XmlElement(name = "location")
public List<LocationTO> getLocations() {
return locations;
}
public DBPlantModelTO setLocations( List<LocationTO> locations) {
requireNonNull(locations, "locations");
this.locations = locations;
return this;
}
@XmlElement(name = "block")
public List<BlockTO> getBlocks() {
return blocks;
}
public DBPlantModelTO setBlocks( List<BlockTO> blocks) {
requireNonNull(blocks, "blocks");
this.blocks = blocks;
return this;
}
@XmlElement(name = "visualLayout")
public VisualLayoutTO getVisualLayout() {
return visualLayout;
}
public DBPlantModelTO setVisualLayout( VisualLayoutTO visualLayout) {
this.visualLayout = requireNonNull(visualLayout, "visualLayout");
return this;
}
@XmlElement(name = "property")
public List<PropertyTO> getProperties() {
return properties;
}
public DBPlantModelTO setProperties( List<PropertyTO> properties) {
requireNonNull(properties, "properties");
this.properties = properties;
return this;
}
@Override
public String toString() {
return "DBPlantModelTO{" +
"name='" + name + '\'' +
", version='" + version + '\'' +
", points=" + points +
", paths=" + paths +
", vehicles=" + vehicles +
", locationTypes=" + locationTypes +
", locations=" + locations +
", blocks=" + blocks +
", visualLayout=" + visualLayout +
", properties=" + properties +
'}';
}
}
5、封装工具类:
我自己封装了一个,现在发表出来,如果觉得好用就给个好评
package org.opentcs.util;
import org.xml.sax.SAXException;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
public class XmlBuilder {
/**
* 将对象直接转换成String类型的 XML输出
* @param obj
* @return
*/
public static <T> String convertToXml(T obj) {
// 创建输出流
StringWriter sw = new StringWriter();
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
// 将对象转换成输出流形式的xml
marshaller.marshal(obj, sw);
} catch (JAXBException e) {
e.printStackTrace();
}
return sw.toString();
}
/**
* 将对象根据路径转换成xml文件
* @param obj
* @param path
* @return
*/
public static <T> void convertToXml(T obj, String path) {
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
// 将对象转换成输出流形式的xml
// 创建输出流
FileWriter fw = null;
try {
fw = new FileWriter(path);
} catch (IOException e) {
e.printStackTrace();
}
marshaller.marshal(obj, fw);
} catch (JAXBException e) {
e.printStackTrace();
}
}
/**
* 将String类型的xml转换成java对象
* @param clazz
* @param fileName
* @param xsdFileName
* @return
* @param <T>
* @throws Exception
*/
public static <T> T xmlFileToObject(Class<T> clazz, String fileName, String xsdFileName) throws Exception {
T xmlObject = null;
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = context.createUnmarshaller();
Schema schema = createSchema(clazz,xsdFileName);
unmarshaller.setSchema(schema);
String xmlStr = getXmlStr(fileName);
StringReader sr = new StringReader(xmlStr);
xmlObject = (T)unmarshaller.unmarshal(sr);
} catch (Exception e) {
e.printStackTrace();
}
return xmlObject;
}
/**
* 将file类型的xml转换成对象
* @param clazz
* @param xmlPath
* @return
* @param <T>
*/
public static <T> T convertXmlFileToObject(Class<T> clazz, String xmlPath) {
T xmlObject = null;
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = context.createUnmarshaller();
FileReader fr = null;
try {
fr = new FileReader(xmlPath);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
xmlObject = (T)unmarshaller.unmarshal(fr);
} catch (JAXBException e) {
e.printStackTrace();
}
return xmlObject;
}
/**
* 获得String类型的xml
* @param fileName
* @return
* @throws IOException
*/
public static String getXmlStr(String fileName) throws IOException {
//读取Resource目录下的XML文件
InputStream in = XmlBuilder.class.getResourceAsStream("/" + fileName);
//利用输入流获取XML文件内容
BufferedReader br = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
StringBuilder buffer = new StringBuilder();
String line = "";
while ((line = br.readLine()) != null) {
buffer.append(line);
}
br.close();
return buffer.toString();
}
public static Schema createSchema(Class type,String xsdFileName)
throws SAXException {
URL schemaUrl = type.getClassLoader().getResource(xsdFileName);
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
return schemaFactory.newSchema(schemaUrl);
}
/**
* 根据文件路径读取文件内容
* @param fileInPath
* @throws IOException
*/
public static void getFileContent(Object fileInPath) throws IOException {
BufferedReader br = null;
if (fileInPath == null) {
return;
}
if (fileInPath instanceof String) {
br = new BufferedReader(new FileReader((String) fileInPath));
} else if (fileInPath instanceof InputStream) {
br = new BufferedReader(new InputStreamReader((InputStream) fileInPath));
}
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
}
最后:调用工具类中的方法即可。 例如:将xml文件封装成java对象:
public static void main(String[] args) {
try {
//解析xml成对象数据,适用于单条数据的时候,传递原始xml字符串,实体类节点字符串名称
DBPlantModelTO dbPlantModelTO = XmlBuilder.xmlFileToObject(DBPlantModelTO.class, "demo-01.xml","model-0.0.4.xsd");
System.err.println(dbPlantModelTO);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//运行生成的javaBean对象数据:
"G:\Program Files\Java\jdk-13.0.2\bin\java.exe" "-javaagent:G:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\lib\idea_rt.jar=9475:G:\Program Files\JetBrains\IntelliJ IDEA 2022.3.2\bin" -Dfile.encoding=UTF-8 -classpath "G:\Program Files\testOpenTCS\testOpenTCS\out\production\classes;G:\Program Files\testOpenTCS\testOpenTCS\out\production\resources;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\com.alibaba\druid\1.2.16\2289287d4481a0937f8bbaeb50094cc30f9c8d2e\druid-1.2.16.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\commons-dbutils\commons-dbutils\1.7\a2d6e515aa87e5d38f6b3003e70b13c1b1f19ca0\commons-dbutils-1.7.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\2.3.6\1e6cd0e5d9f9919c8c8824fb4d310b09a978a60e\jaxb-runtime-2.3.6.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\org.jetbrains\annotations\23.0.0\8cc20c07506ec18e0834947b84a864bfc094484e\annotations-23.0.0.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\org.dom4j\dom4j\2.1.4\35c16721b88cf17b8279fcb134c0abb161cc0e9b\dom4j-2.1.4.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\xerces\xercesImpl\2.12.2\f051f988aa2c9b4d25d05f95742ab0cc3ed789e2\xercesImpl-2.12.2.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\com.mysql\mysql-connector-j\8.0.32\41ec3f8cdaccf6c46a47d7cd628eeb59a926d9d4\mysql-connector-j-8.0.32.jar;D:\maven\RepMaven\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\2.3.6\45db7b69a8f1ec2c21eb7d4fc0ee729f53c1addc\txw2-2.3.6.jar;D:\maven\RepMaven\com\sun\istack\istack-commons-runtime\3.0.12\istack-commons-runtime-3.0.12.jar;D:\maven\RepMaven\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\com.google.protobuf\protobuf-java\3.21.9\ed1240d9231044ce6ccf1978512f6e44416bb7e7\protobuf-java-3.21.9.jar;D:\maven\RepMaven\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\jaxen\jaxen\1.1.6\3f8c36d9a0578e8e98f030c662b69888b1430ac0\jaxen-1.1.6.jar;D:\maven\RepMaven\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\net.java.dev.msv\xsdlib\2013.6.1\280f7c45aaec5102cc756d1afdb416b7775f2ef4\xsdlib-2013.6.1.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.2.12\4c83805595b15acf41d71d49e3add7c0e85baaed\jaxb-api-2.2.12.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\pull-parser\pull-parser\2.1.10\c4ed69b28455d970b85ba6ae27c92a795f905ab4\pull-parser-2.1.10.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\xpp3\xpp3\1.1.4c\9b988ea84b9e4e9f1874e390ce099b8ac12cfff5\xpp3-1.1.4c.jar;G:\Program Files\gradleRepos\caches\modules-2\files-2.1\relaxngDatatype\relaxngDatatype\20020414\de7952cecd05b65e0e4370cc93fc03035175eef5\relaxngDatatype-20020414.jar" org.opentcs.RunOpenTCS
DBPlantModelTO{name='Demo-01', version='0.0.4', points=[PointTO{name=Point-0001,xPosition=53288, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0001 --- Point-0002', pointName='null'}, OutgoingPath{name='Point-0001 --- Point-0003', pointName='null'}], pointLayout=PointLayout{xPosition=28000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0002,xPosition=50474, yPosition=-5769, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0002 --- Point-0014', pointName='null'}], pointLayout=PointLayout{xPosition=25000, yPosition=9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0003,xPosition=53288, yPosition=-9522, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0003 --- Point-0004', pointName='null'}, OutgoingPath{name='Point-0003 --- Point-0005', pointName='null'}], pointLayout=PointLayout{xPosition=28000, yPosition=5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0004,xPosition=50474, yPosition=-11398, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0004 --- Point-0008', pointName='null'}], pointLayout=PointLayout{xPosition=25000, yPosition=3000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0005,xPosition=53288, yPosition=-15151, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0005 --- Point-0006', pointName='null'}, OutgoingPath{name='Point-0005 --- Point-0007', pointName='null'}], pointLayout=PointLayout{xPosition=28000, yPosition=-1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0006,xPosition=50474, yPosition=-17027, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0006 --- Point-0009', pointName='null'}], pointLayout=PointLayout{xPosition=25000, yPosition=-3000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0007,xPosition=53288, yPosition=-20780, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0007 --- Point-0010', pointName='null'}, OutgoingPath{name='Point-0007 --- Point-0012', pointName='null'}], pointLayout=PointLayout{xPosition=28000, yPosition=-7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0008,xPosition=47659, yPosition=-13275, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0008 --- Point-0009', pointName='null'}], pointLayout=PointLayout{xPosition=22000, yPosition=1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0009,xPosition=47659, yPosition=-18904, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0009 --- Point-0011', pointName='null'}], pointLayout=PointLayout{xPosition=22000, yPosition=-5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0010,xPosition=50474, yPosition=-22657, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0010 --- Point-0011', pointName='null'}], pointLayout=PointLayout{xPosition=25000, yPosition=-9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0011,xPosition=47659, yPosition=-24533, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0011 --- Point-0013', pointName='null'}], pointLayout=PointLayout{xPosition=22000, yPosition=-11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0012,xPosition=50474, yPosition=-28286, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0012 --- Point-0013', pointName='null'}], pointLayout=PointLayout{xPosition=25000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0013,xPosition=43906, yPosition=-28286, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0013 --- Point-0015', pointName='null'}, OutgoingPath{name='Point-0013 --- Point-0018', pointName='null'}, OutgoingPath{name='Point-0013 --- Point-0057', pointName='null'}], pointLayout=PointLayout{xPosition=18000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0014,xPosition=47659, yPosition=-7646, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0014 --- Point-0008', pointName='null'}], pointLayout=PointLayout{xPosition=22000, yPosition=7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0015,xPosition=34384, yPosition=-24533, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0015 --- Point-0016', pointName='null'}, OutgoingPath{name='Point-0015 --- Point-0050', pointName='null'}], pointLayout=PointLayout{xPosition=7850, yPosition=-11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0016,xPosition=25143, yPosition=-24533, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0016 --- Point-0017', pointName='null'}, OutgoingPath{name='Point-0016 --- Point-0022', pointName='null'}, OutgoingPath{name='Point-0016 --- Point-0046', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=-11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0017,xPosition=15761, yPosition=-28286, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0017 --- Point-0020', pointName='null'}], pointLayout=PointLayout{xPosition=-12000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0018,xPosition=34525, yPosition=-28286, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0018 --- Point-0019', pointName='null'}], pointLayout=PointLayout{xPosition=8000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0019,xPosition=25143, yPosition=-28286, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0019 --- Point-0017', pointName='null'}, OutgoingPath{name='Point-0019 --- Point-0022', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0020,xPosition=8255, yPosition=-25471, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0020 --- Point-0021', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=-12000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0021,xPosition=4503, yPosition=-21718, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0021 --- Point-0023', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=-8000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0022,xPosition=15761, yPosition=-24533, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0022 --- Point-0056', pointName='null'}], pointLayout=PointLayout{xPosition=-12000, yPosition=-11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0023,xPosition=4503, yPosition=-17966, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0023 --- Point-0024', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=-4000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0024,xPosition=4503, yPosition=-13275, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0024 --- Point-0025', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0025,xPosition=4503, yPosition=-8584, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0025 --- Point-0026', pointName='null'}, OutgoingPath{name='Point-0025 --- Point-0030', pointName='null'}, OutgoingPath{name='Point-0025 --- Point-0042', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=6000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0026,xPosition=4503, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0026 --- Point-0027', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0027,xPosition=8255, yPosition=-140, zPosition=0, vehicleOrientationAngle=NaN, type='PARK_POSITION', outgoingPaths=[OutgoingPath{name='Point-0027 --- Point-0032', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0028,xPosition=19514, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0028 --- Point-0029', pointName='null'}], pointLayout=PointLayout{xPosition=-8000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0029,xPosition=25143, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0029 --- Point-0035', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0030,xPosition=8255, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0030 --- Point-0032', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0032,xPosition=14823, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0032 --- Point-0028', pointName='null'}], pointLayout=PointLayout{xPosition=-13000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0033,xPosition=49535, yPosition=-140, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0033 --- Point-0001', pointName='null'}], pointLayout=PointLayout{xPosition=24000, yPosition=15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0034,xPosition=42030, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0034 --- Point-0014', pointName='null'}, OutgoingPath{name='Point-0034 --- Point-0033', pointName='null'}], pointLayout=PointLayout{xPosition=16000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0035,xPosition=29834, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0035 --- Point-0036', pointName='null'}], pointLayout=PointLayout{xPosition=3000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0036,xPosition=35463, yPosition=-3893, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0036 --- Point-0034', pointName='null'}], pointLayout=PointLayout{xPosition=9000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0037,xPosition=19514, yPosition=-7646, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0037 --- Point-0028', pointName='null'}], pointLayout=PointLayout{xPosition=-8000, yPosition=7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0038,xPosition=25143, yPosition=-7646, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0038 --- Point-0037', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0039,xPosition=14823, yPosition=-5769, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0039 --- Point-0040', pointName='null'}], pointLayout=PointLayout{xPosition=-13000, yPosition=9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0040,xPosition=19514, yPosition=-5769, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0040 --- Point-0041', pointName='null'}], pointLayout=PointLayout{xPosition=-8000, yPosition=9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0041,xPosition=25143, yPosition=-5769, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0041 --- Point-0035', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0042,xPosition=8255, yPosition=-5769, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0042 --- Point-0039', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=9000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0043,xPosition=16699, yPosition=-9522, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0043 --- Point-0052', pointName='null'}], pointLayout=PointLayout{xPosition=-11000, yPosition=5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0044,xPosition=33586, yPosition=-9522, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0044 --- Point-0047', pointName='null'}], pointLayout=PointLayout{xPosition=7000, yPosition=5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0045,xPosition=33586, yPosition=-20780, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0045 --- Point-0016', pointName='null'}, OutgoingPath{name='Point-0045 --- Point-0055', pointName='null'}], pointLayout=PointLayout{xPosition=7000, yPosition=-7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0046,xPosition=16699, yPosition=-20780, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0046 --- Point-0054', pointName='null'}], pointLayout=PointLayout{xPosition=-11000, yPosition=-7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0047,xPosition=37339, yPosition=-13275, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0047 --- Point-0053', pointName='null'}], pointLayout=PointLayout{xPosition=11000, yPosition=1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0048,xPosition=12946, yPosition=-13275, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0048 --- Point-0043', pointName='null'}], pointLayout=PointLayout{xPosition=-15000, yPosition=1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0049,xPosition=28895, yPosition=-11398, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0049 --- Point-0038', pointName='null'}], pointLayout=PointLayout{xPosition=2000, yPosition=3000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0050,xPosition=28895, yPosition=-18904, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0050 --- Point-0051', pointName='null'}], pointLayout=PointLayout{xPosition=2000, yPosition=-5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0051,xPosition=28895, yPosition=-15151, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0051 --- Point-0049', pointName='null'}], pointLayout=PointLayout{xPosition=2000, yPosition=-1000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0052,xPosition=25143, yPosition=-9522, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0052 --- Point-0044', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=5000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0053,xPosition=37339, yPosition=-17027, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0053 --- Point-0045', pointName='null'}], pointLayout=PointLayout{xPosition=11000, yPosition=-3000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0054,xPosition=12946, yPosition=-17027, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0054 --- Point-0048', pointName='null'}], pointLayout=PointLayout{xPosition=-15000, yPosition=-3000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0055,xPosition=25143, yPosition=-20780, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0055 --- Point-0046', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=-7000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0056,xPosition=8255, yPosition=-21718, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0056 --- Point-0023', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=-8000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0057,xPosition=8000, yPosition=-21000, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0057 --- Point-0058', pointName='null'}], pointLayout=PointLayout{xPosition=8000, yPosition=-21000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0058,xPosition=-2000, yPosition=-21000, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0058 --- Point-0059', pointName='null'}], pointLayout=PointLayout{xPosition=-2000, yPosition=-21000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0059,xPosition=-12000, yPosition=-21000, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0059 --- Point-0060', pointName='null'}], pointLayout=PointLayout{xPosition=-12000, yPosition=-21000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0060,xPosition=-20000, yPosition=-21000, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0060 --- Point-0061', pointName='null'}], pointLayout=PointLayout{xPosition=-20000, yPosition=-21000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}, PointTO{name=Point-0061,xPosition=-24000, yPosition=-15000, zPosition=0, vehicleOrientationAngle=NaN, type='HALT_POSITION', outgoingPaths=[OutgoingPath{name='Point-0061 --- Point-0021', pointName='null'}], pointLayout=PointLayout{xPosition=-24000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, layerId=0, pointName='null'}, modelName='null'}], paths=[PathTO{name='Point-0001 --- Point-0002', sourcePoint='Point-0001', destinationPoint='Point-0002', length=4383, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=552, y=-183, pathName='null'}, ControlPoint{x=552, y=-183, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0001 --- Point-0003', sourcePoint='Point-0001', destinationPoint='Point-0003', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0002 --- Point-0014', sourcePoint='Point-0002', destinationPoint='Point-0014', length=4267, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=450, y=-174, pathName='null'}, ControlPoint{x=450, y=-174, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0003 --- Point-0004', sourcePoint='Point-0003', destinationPoint='Point-0004', length=4336, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=553, y=-65, pathName='null'}, ControlPoint{x=553, y=-65, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0003 --- Point-0005', sourcePoint='Point-0003', destinationPoint='Point-0005', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0004 --- Point-0008', sourcePoint='Point-0004', destinationPoint='Point-0008', length=4302, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=449, y=-54, pathName='null'}, ControlPoint{x=449, y=-54, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0005 --- Point-0006', sourcePoint='Point-0005', destinationPoint='Point-0006', length=4423, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=553, y=56, pathName='null'}, ControlPoint{x=553, y=56, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0005 --- Point-0007', sourcePoint='Point-0005', destinationPoint='Point-0007', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0006 --- Point-0009', sourcePoint='Point-0006', destinationPoint='Point-0009', length=4302, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=449, y=65, pathName='null'}, ControlPoint{x=449, y=65, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0007 --- Point-0010', sourcePoint='Point-0007', destinationPoint='Point-0010', length=4379, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=553, y=175, pathName='null'}, ControlPoint{x=553, y=175, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0007 --- Point-0012', sourcePoint='Point-0007', destinationPoint='Point-0012', length=9529, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=552, y=276, pathName='null'}, ControlPoint{x=552, y=276, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0008 --- Point-0009', sourcePoint='Point-0008', destinationPoint='Point-0009', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0009 --- Point-0011', sourcePoint='Point-0009', destinationPoint='Point-0011', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0010 --- Point-0011', sourcePoint='Point-0010', destinationPoint='Point-0011', length=4302, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=449, y=185, pathName='null'}, ControlPoint{x=449, y=185, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0011 --- Point-0013', sourcePoint='Point-0011', destinationPoint='Point-0013', length=6881, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=429, y=289, pathName='null'}, ControlPoint{x=429, y=289, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0012 --- Point-0013', sourcePoint='Point-0012', destinationPoint='Point-0013', length=6567, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0013 --- Point-0015', sourcePoint='Point-0013', destinationPoint='Point-0015', length=11449, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=253, y=287, pathName='null'}, ControlPoint{x=213, y=233, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0013 --- Point-0018', sourcePoint='Point-0013', destinationPoint='Point-0018', length=9381, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0013 --- Point-0057', sourcePoint='Point-0013', destinationPoint='Point-0057', length=11638, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=280, y=320, pathName='null'}, ControlPoint{x=250, y=410, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0014 --- Point-0008', sourcePoint='Point-0014', destinationPoint='Point-0008', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0015 --- Point-0016', sourcePoint='Point-0015', destinationPoint='Point-0016', length=9241, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0015 --- Point-0050', sourcePoint='Point-0015', destinationPoint='Point-0050', length=9861, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=60, y=199, pathName='null'}, ControlPoint{x=60, y=199, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0016 --- Point-0017', sourcePoint='Point-0016', destinationPoint='Point-0017', length=11166, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-126, y=233, pathName='null'}, ControlPoint{x=-175, y=288, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0016 --- Point-0022', sourcePoint='Point-0016', destinationPoint='Point-0022', length=9381, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0016 --- Point-0046', sourcePoint='Point-0016', destinationPoint='Point-0046', length=10093, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-101, y=209, pathName='null'}, ControlPoint{x=-159, y=153, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0017 --- Point-0020', sourcePoint='Point-0017', destinationPoint='Point-0020', length=8705, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-293, y=292, pathName='null'}, ControlPoint{x=-343, y=250, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0018 --- Point-0019', sourcePoint='Point-0018', destinationPoint='Point-0019', length=9381, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0019 --- Point-0017', sourcePoint='Point-0019', destinationPoint='Point-0017', length=9381, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0019 --- Point-0022', sourcePoint='Point-0019', destinationPoint='Point-0022', length=11062, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-113, y=288, pathName='null'}, ControlPoint{x=-169, y=233, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0020 --- Point-0021', sourcePoint='Point-0020', destinationPoint='Point-0021', length=6802, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-465, y=230, pathName='null'}, ControlPoint{x=-465, y=230, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0021 --- Point-0023', sourcePoint='Point-0021', destinationPoint='Point-0023', length=3752, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0022 --- Point-0056', sourcePoint='Point-0022', destinationPoint='Point-0056', length=8680, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-296, y=209, pathName='null'}, ControlPoint{x=-344, y=169, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0023 --- Point-0024', sourcePoint='Point-0023', destinationPoint='Point-0024', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0024 --- Point-0025', sourcePoint='Point-0024', destinationPoint='Point-0025', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0025 --- Point-0026', sourcePoint='Point-0025', destinationPoint='Point-0026', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0025 --- Point-0030', sourcePoint='Point-0025', destinationPoint='Point-0030', length=7695, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-467, y=-205, pathName='null'}, ControlPoint{x=-467, y=-205, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0025 --- Point-0042', sourcePoint='Point-0025', destinationPoint='Point-0042', length=5992, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-469, y=-169, pathName='null'}, ControlPoint{x=-469, y=-169, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0026 --- Point-0027', sourcePoint='Point-0026', destinationPoint='Point-0027', length=6841, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-468, y=-287, pathName='null'}, ControlPoint{x=-468, y=-287, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0027 --- Point-0032', sourcePoint='Point-0027', destinationPoint='Point-0032', length=8657, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-345, y=-287, pathName='null'}, ControlPoint{x=-317, y=-233, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0028 --- Point-0029', sourcePoint='Point-0028', destinationPoint='Point-0029', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0029 --- Point-0035', sourcePoint='Point-0029', destinationPoint='Point-0035', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0030 --- Point-0032', sourcePoint='Point-0030', destinationPoint='Point-0032', length=6567, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0032 --- Point-0028', sourcePoint='Point-0032', destinationPoint='Point-0028', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0033 --- Point-0001', sourcePoint='Point-0033', destinationPoint='Point-0001', length=6922, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=550, y=-287, pathName='null'}, ControlPoint{x=550, y=-287, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0034 --- Point-0014', sourcePoint='Point-0034', destinationPoint='Point-0014', length=8731, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=423, y=-211, pathName='null'}, ControlPoint{x=423, y=-211, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0034 --- Point-0033', sourcePoint='Point-0034', destinationPoint='Point-0033', length=9481, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=374, y=-231, pathName='null'}, ControlPoint{x=408, y=-285, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0035 --- Point-0036', sourcePoint='Point-0035', destinationPoint='Point-0036', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0036 --- Point-0034', sourcePoint='Point-0036', destinationPoint='Point-0034', length=6567, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0037 --- Point-0028', sourcePoint='Point-0037', destinationPoint='Point-0028', length=7582, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-209, y=-154, pathName='null'}, ControlPoint{x=-210, y=-202, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0038 --- Point-0037', sourcePoint='Point-0038', destinationPoint='Point-0037', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0039 --- Point-0040', sourcePoint='Point-0039', destinationPoint='Point-0040', length=4690, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0040 --- Point-0041', sourcePoint='Point-0040', destinationPoint='Point-0041', length=5629, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0041 --- Point-0035', sourcePoint='Point-0041', destinationPoint='Point-0035', length=5734, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=15, y=-186, pathName='null'}, ControlPoint{x=31, y=-213, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0042 --- Point-0039', sourcePoint='Point-0042', destinationPoint='Point-0039', length=6567, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0043 --- Point-0052', sourcePoint='Point-0043', destinationPoint='Point-0052', length=8443, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0044 --- Point-0047', sourcePoint='Point-0044', destinationPoint='Point-0047', length=6881, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=209, y=-88, pathName='null'}, ControlPoint{x=209, y=-88, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0045 --- Point-0016', sourcePoint='Point-0045', destinationPoint='Point-0016', length=10170, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=79, y=154, pathName='null'}, ControlPoint{x=30, y=208, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0045 --- Point-0055', sourcePoint='Point-0045', destinationPoint='Point-0055', length=8443, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0046 --- Point-0054', sourcePoint='Point-0046', destinationPoint='Point-0054', length=6800, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-288, y=127, pathName='null'}, ControlPoint{x=-288, y=127, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0047 --- Point-0053', sourcePoint='Point-0047', destinationPoint='Point-0053', length=3752, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0048 --- Point-0043', sourcePoint='Point-0048', destinationPoint='Point-0043', length=6722, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-287, y=-85, pathName='null'}, ControlPoint{x=-287, y=-85, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0049 --- Point-0038', sourcePoint='Point-0049', destinationPoint='Point-0038', length=6882, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=30, y=-127, pathName='null'}, ControlPoint{x=30, y=-127, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0050 --- Point-0051', sourcePoint='Point-0050', destinationPoint='Point-0051', length=3752, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0051 --- Point-0049', sourcePoint='Point-0051', destinationPoint='Point-0049', length=3752, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0052 --- Point-0044', sourcePoint='Point-0052', destinationPoint='Point-0044', length=8443, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0053 --- Point-0045', sourcePoint='Point-0053', destinationPoint='Point-0045', length=6922, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=209, y=130, pathName='null'}, ControlPoint{x=209, y=130, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0054 --- Point-0048', sourcePoint='Point-0054', destinationPoint='Point-0048', length=3752, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0055 --- Point-0046', sourcePoint='Point-0055', destinationPoint='Point-0046', length=8443, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0056 --- Point-0023', sourcePoint='Point-0056', destinationPoint='Point-0023', length=6882, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-467, y=150, pathName='null'}, ControlPoint{x=-467, y=150, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0057 --- Point-0058', sourcePoint='Point-0057', destinationPoint='Point-0058', length=10000, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[PeripheralOperationTO{name='Open', locationName='Fire door 01', executionTrigger='BEFORE_MOVEMENT', completionRequired=true, pathName='null', modelName='null'}, PeripheralOperationTO{name='Close', locationName='Fire door 01', executionTrigger='AFTER_MOVEMENT', completionRequired=false, pathName='null', modelName='null'}], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0058 --- Point-0059', sourcePoint='Point-0058', destinationPoint='Point-0059', length=10000, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0059 --- Point-0060', sourcePoint='Point-0059', destinationPoint='Point-0060', length=8000, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}, PathTO{name='Point-0060 --- Point-0061', sourcePoint='Point-0060', destinationPoint='Point-0061', length=7211, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='BEZIER', layerId=0, pathName='null', controlPoints=[ControlPoint{x=-470, y=410, pathName='null'}, ControlPoint{x=-470, y=370, pathName='null'}]}, modelName='null'}, PathTO{name='Point-0061 --- Point-0021', sourcePoint='Point-0061', destinationPoint='Point-0021', length=8000, maxVelocity=1000, maxReverseVelocity=0, peripheralOperations=[], locked=false, pathLayout=PathLayout{connectionType='DIRECT', layerId=0, pathName='null', controlPoints=[]}, modelName='null'}], vehicles=[VehicleTO{name='Vehicle-01', properties=[PropertyTO{name='loopback:loadOperation', value='Load cargo', owner='null'}, PropertyTO{name='loopback:unloadOperation', value='Unload cargo', owner='null'}], maxVelocity=1000, maxReverseVelocity=1000, length=1000, energyLevelCritical=30, energyLevelGood=90, energyLevelFullyRecharged=95, energyLevelSufficientlyRecharged=45, vehicleLayout=VehicleLayout{color='#FF0000'}, modelName='null'}, VehicleTO{name='Vehicle-02', properties=[PropertyTO{name='loopback:loadOperation', value='Load cargo', owner='null'}, PropertyTO{name='loopback:unloadOperation', value='Unload cargo', owner='null'}], maxVelocity=1000, maxReverseVelocity=1000, length=1000, energyLevelCritical=30, energyLevelGood=90, energyLevelFullyRecharged=95, energyLevelSufficientlyRecharged=45, vehicleLayout=VehicleLayout{color='#33FF00'}, modelName='null'}, VehicleTO{name='Vehicle-03', properties=[PropertyTO{name='loopback:loadOperation', value='Load cargo', owner='null'}, PropertyTO{name='loopback:unloadOperation', value='Unload cargo', owner='null'}], maxVelocity=1000, maxReverseVelocity=1000, length=1000, energyLevelCritical=30, energyLevelGood=90, energyLevelFullyRecharged=95, energyLevelSufficientlyRecharged=45, vehicleLayout=VehicleLayout{color='#00FFFF'}, modelName='null'}, VehicleTO{name='Vehicle-04', properties=[PropertyTO{name='loopback:loadOperation', value='Load cargo', owner='null'}, PropertyTO{name='loopback:unloadOperation', value='Unload cargo', owner='null'}], maxVelocity=1000, maxReverseVelocity=1000, length=1000, energyLevelCritical=30, energyLevelGood=90, energyLevelFullyRecharged=95, energyLevelSufficientlyRecharged=45, vehicleLayout=VehicleLayout{color='#FF33FF'}, modelName='null'}], locationTypes=[LocationTypeTO{name='Fire door', properties=[PropertyTO{name='tcs:defaultLocationTypeSymbol', value='NONE', owner='null'}], locationNamePrefix='null', allowedOperations=[], allowedPeripheralOperations=[org.opentcs.bean.to.AllowedPeripheralOperationTO@25fb8912, org.opentcs.bean.to.AllowedPeripheralOperationTO@7c24b813], locationTypeLayout=LocationTypeLayout{locationRepresentation='NONE', locationTypeName='null'}, modelName='null'}, LocationTypeTO{name='Recharge station', properties=[PropertyTO{name='tcs:defaultLocationSymbol', value='RECHARGE_GENERIC', owner='null'}, PropertyTO{name='tcs:defaultLocationTypeSymbol', value='RECHARGE_GENERIC', owner='null'}], locationNamePrefix='null', allowedOperations=[AllowedOperationTO{name='CHARGE', locationTypeName='null', modelName='null'}, AllowedOperationTO{name='NOP', locationTypeName='null', modelName='null'}], allowedPeripheralOperations=[], locationTypeLayout=LocationTypeLayout{locationRepresentation='RECHARGE_GENERIC', locationTypeName='null'}, modelName='null'}, LocationTypeTO{name='Transfer station', properties=[PropertyTO{name='tcs:defaultLocationSymbol', value='LOAD_TRANSFER_GENERIC', owner='null'}, PropertyTO{name='tcs:defaultLocationTypeSymbol', value='LOAD_TRANSFER_GENERIC', owner='null'}], locationNamePrefix='null', allowedOperations=[AllowedOperationTO{name='Load cargo', locationTypeName='null', modelName='null'}, AllowedOperationTO{name='NOP', locationTypeName='null', modelName='null'}, AllowedOperationTO{name='Unload cargo', locationTypeName='null', modelName='null'}], allowedPeripheralOperations=[], locationTypeLayout=LocationTypeLayout{locationRepresentation='LOAD_TRANSFER_GENERIC', locationTypeName='null'}, modelName='null'}, LocationTypeTO{name='Working station', properties=[PropertyTO{name='tcs:defaultLocationSymbol', value='WORKING_GENERIC', owner='null'}, PropertyTO{name='tcs:defaultLocationTypeSymbol', value='WORKING_GENERIC', owner='null'}], locationNamePrefix='null', allowedOperations=[AllowedOperationTO{name='Cut', locationTypeName='null', modelName='null'}, AllowedOperationTO{name='Drill', locationTypeName='null', modelName='null'}, AllowedOperationTO{name='NOP', locationTypeName='null', modelName='null'}], allowedPeripheralOperations=[], locationTypeLayout=LocationTypeLayout{locationRepresentation='WORKING_GENERIC', locationTypeName='null'}, modelName='null'}], locations=[LocationTO{name='Fire door 01', xPosition=3500, yPosition=-21000, zPosition=0, type='Fire door', links=[], locked=false, locationLayout=LocationLayout{xPosition=3500, yPosition=-21000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods in north 01', xPosition=-28000, yPosition=11000, zPosition=0, type='Transfer station', links=[Link{point='Point-0026', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-28000, yPosition=11000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods in north 02', xPosition=-28000, yPosition=6000, zPosition=0, type='Transfer station', links=[Link{point='Point-0025', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-28000, yPosition=6000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods in south 01', xPosition=-2000, yPosition=-18000, zPosition=0, type='Transfer station', links=[Link{point='Point-0019', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-2000, yPosition=-18000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods in south 02', xPosition=-12000, yPosition=-24000, zPosition=0, type='Transfer station', links=[Link{point='Point-0059', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-12000, yPosition=-24000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods out 01', xPosition=-20000, yPosition=-15000, zPosition=0, type='Transfer station', links=[Link{point='Point-0020', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-20000, yPosition=-15000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Goods out 02', xPosition=-28000, yPosition=-8000, zPosition=0, type='Transfer station', links=[Link{point='Point-0021', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-28000, yPosition=-8000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Recharge 01', xPosition=25000, yPosition=6000, zPosition=0, type='Recharge station', links=[Link{point='Point-0002', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=25000, yPosition=6000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Recharge 02', xPosition=25000, yPosition=0, zPosition=0, type='Recharge station', links=[Link{point='Point-0004', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=25000, yPosition=0, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Recharge 03', xPosition=25000, yPosition=-6000, zPosition=0, type='Recharge station', links=[Link{point='Point-0006', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=25000, yPosition=-6000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Recharge 04', xPosition=25000, yPosition=-12000, zPosition=0, type='Recharge station', links=[Link{point='Point-0010', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=25000, yPosition=-12000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Storage 01', xPosition=-8000, yPosition=14000, zPosition=0, type='Transfer station', links=[Link{point='Point-0028', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-8000, yPosition=14000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Storage 02', xPosition=-2000, yPosition=14000, zPosition=0, type='Transfer station', links=[Link{point='Point-0029', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-2000, yPosition=14000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Working station 01', xPosition=-11000, yPosition=-3000, zPosition=0, type='Working station', links=[Link{point='Point-0054', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=-11000, yPosition=-3000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Working station 02', xPosition=15000, yPosition=1000, zPosition=0, type='Working station', links=[Link{point='Point-0047', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=15000, yPosition=1000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}, LocationTO{name='Working station 03', xPosition=15000, yPosition=-3000, zPosition=0, type='Working station', links=[Link{point='Point-0053', allowedOperations=[], locationName='null'}], locked=false, locationLayout=LocationLayout{xPosition=15000, yPosition=-3000, xLabelOffset=-10, yLabelOffset=-20, locationRepresentation='DEFAULT', layerId=0, locationName='null'}, properties=[], modelName='null'}], blocks=[BlockTO{name='Block-0001', type='SINGLE_VEHICLE_ONLY', members=[MemberTO{name='Point-0016 --- Point-0017', blockName='null'}, MemberTO{name='Point-0019 --- Point-0022', blockName='null'}], blockLayout=BlockLayout{color='#FF0000', blockName='null'}, modelName='null'}, BlockTO{name='Block-0002', type='SINGLE_VEHICLE_ONLY', members=[MemberTO{name='Point-0037 --- Point-0028', blockName='null'}, MemberTO{name='Point-0039 --- Point-0040', blockName='null'}], blockLayout=BlockLayout{color='#0000FF', blockName='null'}, modelName='null'}, BlockTO{name='Block-0003', type='SINGLE_VEHICLE_ONLY', members=[MemberTO{name='Point-0049 --- Point-0038', blockName='null'}, MemberTO{name='Point-0052 --- Point-0044', blockName='null'}], blockLayout=BlockLayout{color='#00CC00', blockName='null'}, modelName='null'}, BlockTO{name='Block-0004', type='SINGLE_VEHICLE_ONLY', members=[MemberTO{name='Point-0015 --- Point-0050', blockName='null'}, MemberTO{name='Point-0045 --- Point-0016', blockName='null'}, MemberTO{name='Point-0045 --- Point-0055', blockName='null'}], blockLayout=BlockLayout{color='#0099FF', blockName='null'}, modelName='null'}], visualLayout=VisualLayoutTO{name='VLayout-01', scaleX=50.0, scaleY=50.0, layers=[Layer{id=0, ordinal=0, visible=true, name='Default layer', groupId=0, visualLayoutName='null'}], layerGroups=[LayerGroup{id=0, name='Default layer group', visible=true, visualLayoutName='null'}], modelName='null'}, properties=[PropertyTO{name='tcs:modelFileLastModified', value='2022-05-04T06:09:43Z', owner='null'}]}
进程已结束,退出代码0
本文介绍了如何利用JAXB进行XML与JavaBean之间的转换。首先,通过trang.jar将xml文件转换为xsd文件,然后在项目中引入JAXB的依赖。由于Java9及以上版本不再包含tools.jar,因此推荐使用在线工具如ToolsCat生成JavaBean。在JavaBean上添加相应注解后,封装转换工具类,即可方便地实现XML到Java对象的转化。





