Нам нужно написать программу, которая создает файл XML на основе файла CSV. Я предпочитаю делать это в java, но я не профессиональный программист.
Это структура моего желаемого XML
<?xml version="1.0" encoding="UTF-8"?>
<UteXmlComuniction xmlns="http://www....../data">
<Client Genaral Data>
<Client>
<pfPg></pfPg>
<name>Arnold</name>
<Family>Bordon</family>
</Client>
<Contract>
<ContractDetail>
<Contract>100020</Contract>
<ContractYear>2019</ContractYear>
</ContractDetail>
</Contract>
</Client Genaral Data>
Я ожидал, что заголовки в файле CSV будут выглядеть примерно так:
"UteXmlComuniction/ClientGeneralData/Client/pfpg", "UteXmlComuniction/ClientGeneralData/Client/name" ,
"UteXmlComuniction/ClientGeneralData/Client/Family" , ...
Но это мой CSV-файл
"DefinitionPF/PG","ZC_NAME","ZC_FAMI","ZDS_CONT", "ZDC_CONTYEAR"
"PF","Arnold","bordon", "100020", 2018
Как видите, названия полей в CSV и XML не совпадают (но порядок полей всегда одинаков), поэтому мне нужно создать имя поля на основе моего XSD-файла
Вот XSD-файл, который у нас есть
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ww......./data" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="UteXmlComunication">
<xs:complexType>
<xs:sequence>
<xs:element name="ClientGeneralData" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Client">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="pfpg"/>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="fammily"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contract">
<xs:complexType>
<xs:sequence>
<xs:element name="ContractDetail">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="Contract"/>
<xs:element type="xs:byte" name="ContractYear"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Основанный на XSD, например, "ZC_NAME"
должен быть назван "name"
Но, как уже упоминалось в этом топи c ( преобразование CSV в xml с XSD ) XSD не на производимом языке, поэтому мой вопрос, как я могу сделать это автоматически?
Можете ли вы предложить мне, как я могу это сделать?