Парсер для чтения нескольких xml файлов с одинаковыми XSD и XSLT - PullRequest
0 голосов
/ 16 марта 2020

Я хочу прочитать данные из нескольких файлов XML на основе документа XSD, и структура одного файла XML не будет такой же, как у другого, но будет следовать схеме xsd. Кроме того, xmls - это вложенные xmls. Может ли кто-нибудь помочь мне с этим, чтобы я мог использовать уже созданную утилиту и добавить к ней атрибуты? Мне нужен парсер XML, который анализирует каждый файл xml (они разные) на основе схемы xsd и возвращает мне список карты, чтобы данные могли быть сопоставлены с данными БД.

import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

public class Test {
    public static void main(String[] args) {

        Customer customer = new Customer();

        try {

            File file = new File("SalesPoslog20200225104558676.xml");
            JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
            Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

            // output pretty printed
            jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

            jaxbMarshaller.marshal(customer, file);
            jaxbMarshaller.marshal(customer, System.out);

        } catch (JAXBException e) {
            e.printStackTrace();
        }

    }

}


import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Customer {
    int organizationID;
    int retailStoreID;
    int workstationID;
    int tillID;
    int sequenceNumber;

    public int organizationID() {
        return organizationID;
    }

    @XmlElement
    public void RetailStoreID(int  retailStoreID) {
        this.retailStoreID = retailStoreID;
    }

    public int workstationID() {
        return workstationID;
    }



    @XmlAttribute
    public void RetailStoreId(int RetailStoreId) {
        this.retailStoreID = retailStoreID;
    }

}
...