IT • archiv

rus / eng | Логин | Создать пользователя | Почта | Клуб


IT • archiv forums > Java Forums > General Java discussion


Обсуждение

Topic: Создание xml по неизвестному xsd средствами Java

Replies: 7   Pages: 1   Last Post: 03.10.2005 12:36 by: msp30



Go Back Back to Topic List
Replies: 7
NatS

Posts: 3
Registered: 12.08.05
Создание xml по неизвестному xsd средствами Java

Posted: 12.08.2005 10:11
  Click to reply to this topic Reply

Здравствуйте!
Не могли бы вы помочь с решением такой проблемы - есть xsd(неизвестный), нужно по нему построить xml(причем на момент построения будут известны имена и значения элементов, которые надо будет впихнуть в этот xml).

Пробовала решить это, используя JAXB, но там нужно сначала создать пакет с описанием классов, в которые xsd преобразуется, т.е. нужно знание начинки xsd... к примеру
JAXBContext jc = JAXBContext.newInstance( "abc" );
и т.д., где abc - пакет с интерфейсом классов...
(ну как я поняла).

Благодарю всех тех, кто попытается помочь советом..



Walery

Posts: 2
Registered: 16.01.04
Re: Создание xml по неизвестному xsd средствами Java

Posted: 13.08.2005 15:57
  Click to reply to this topic Reply

А просто руками создать через FileWriter не получится? к примеру:
FileWriter f = new FileWriter("file.xml");
f.write("<?xml version="1.0"?>");
f.write("<element>");
и т.д?



NatS

Posts: 3
Registered: 12.08.05
Re: Создание xml по неизвестному xsd средствами Java

Posted: 15.08.2005 7:59
  Click to reply to this topic Reply

xsd может быть не простым списком простых элементов, иначе нафига он нужен..



renat

Posts: 222
From: Germany Dusseldorf
Registered: 07.01.04
Re: Создание xml по неизвестному xsd средствами Java

Posted: 15.08.2005 6:18
  Click to reply to this topic Reply

В принципе задача автоматческой генерации JAXB классов, их компиляции и использования в runtime разрешима. Проблема лишь в том что такое решение потребует совсем не тривиальных манипуляций с компилятором, classloader-ами и достаточно глубокого знания JAXB :).
К тому же если схема не известна, то будут неизвестны и классы (или даже их структура) которые создаст JAXB следовательно дальнейшая работа с ними потребует reflection или какой нибудь скриптовый язык (beanshell) для работы с неизвестными класссами.
Возникает естевственный вопрос - а зачем строить неизвестно какой документ для неизвестно какой схемы?



NatS

Posts: 3
Registered: 12.08.05
Re: Создание xml по неизвестному xsd средствами Java

Posted: 15.08.2005 7:55
  Click to reply to this topic Reply

Есть формат выходного документа в xsd. Нужно, получив данные из формы(имена элементов и их значения), запихнуть эти данные в xml по этому xsd, получив таким образом выходной документ...

т.е. думаете через Runtime.exec() ?
эхх, не хотелось бы... :)



renat

Posts: 222
From: Germany Dusseldorf
Registered: 07.01.04
Re: Создание xml по неизвестному xsd средствами Java

Posted: 15.08.2005 10:42
  Click to reply to this topic Reply

получается, что потенциально древовидная струкутура XML документа (+ ещё и аттрибуты) сводится к "плоскому" списку пар имя - значение? Или я что то не так понял?

Runtime.exec не нужен т.к. JAXB написан на Java а следовательно запустить его можно в текущей JVM без fork. Только опять же повторюсь, что в этом случае задача очень сложная, гораздо проще разбирать XML схему ручками и валидировать входные данные опять же самостоятельно. Документ можно строить на лету с помошью JDom например. Да, и валидция по XML-Schema готового документа само собой.



gual

Posts: 1
Registered: 30.09.05
Re: Создание xml по неизвестному xsd средствами Java

Posted: 30.09.2005 5:58
  Click to reply to this topic Reply

Можно воспользоваться таким инструментом как Altova XMLSpy (www.altova.com) в нем присутствуют средства генерации как xml файла по заданному описанию xsd, так и генерация Java/C++/C# кода классов.



msp30

Posts: 1
Registered: 03.10.05
Re: Создание xml по неизвестному xsd средствами Java

Posted: 03.10.2005 12:36
  Click to reply to this topic Reply

C JAXB проблем не возникает(установка простая и описана подробно)
Я пользую ХMLSPY для генерации XSD.
Если тема актуальна то можно попробовать написать step-by_step




Справка | Условия Copyright © 1999 — 2010, IT • archiv.
Forum Home | Login | Create Account | Help | Search
Powered by Jive Software