2011-01-11 3 views
0

У меня есть xsd и MS-Excel. Лист excel содержит Xpath как представление всех элементов/полей xsd вместе с соответствующим типом данных, как указано в xsd.java - генерация xml из содержимого листа excel

Например, если XSD содержит элемент следующим образом:

<xsd:complexType name="person"> 
    <xsd:all> 
    <xsd:element name="name" type="xsd:string" minOccurs="0"/> 
    <xsd:element name="age" type="xsd:string" minOccurs="0"/> 
    </xsd:all> 
</xsd:complexType> 

Содержание листа Excel выглядит следующим образом:

Column 2 (element/field name)  Column 3 (data type) 
person.name       String 
person.age       String 

У меня есть требование, чтобы проверить, если содержание листа Эксел действительны и полны. Таким образом, я хочу генерировать xml-файл из электронной таблицы MS-Excel и проверять его на наличие существующего xsd.

детализирует требование заключаются в следующем:

  1. прочитать содержание второй и третьей колонке таблицы MS-Excel.
  2. Игнорируйте строки, в которых содержание не содержит точечный разделитель
  3. генерировать XML
  4. проверить его aganist указанный пользователем XSD

Как это может быть сделано в программе Java?

ответ

1

Существует несколько библиотек Java для чтения документов Excel, включая jxl и JExcel. (Вы можете также рассмотреть вопрос об использовании CSV-файл (с разделителями-запятыми), который проще, чем Excel, а не частной собственностью.)

Чтобы разобрать файл XSD, использовать в Java built-in XML parser, например:

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder domBuilder = domFactory.newDocumentBuilder(); 
Document doc = domBuilder.parse(new FileInputStream("file.xsd")); 
0

You может использовать XInclude для вставки значений в ваш документ. Здесь есть пример: Default support for xinclude in Java 6?

Вам нужно будет написать свой собственный распознаватель сущности, который затем может прочитать файл Excel и найти нужные значения там. У меня нет опыта работы с jxl, но JExcel - это надежная библиотека для управления файлами Excel.

Смежные вопросы