2012-04-18 3 views
1

У меня есть веб-сервис workflow с несколькими действиями, отображаемыми как servicemethods. Эти servicemethods имеют различные параметры. В Java мне нужно знать, что это за параметры.Прочитать XSD-файл в Java

Итак, я понял, что есть схема XSD, из которой я должен получить информацию, которую я хотел бы узнать. Есть ли способ читать элементы из XSD-файла в Java? Моя XSD в основном выглядит следующим образом:

<xs:element name='servicemethod'> 
    <xs:complexType> 
     <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence> 
    </xs:complexType> 
</xs:element> 

В Java, я знаю «servicemethod», но я хочу знать имена элементов, вложенных в этом servicemethod элемента.

Или есть что-то вроде разбора XML в JSON, потому что я уже делал что-то подобное с JSON в Java.

Любая помощь очень ценится!

ответ

0

Это скорее зависит от того, что вы хотите делать с данными («потреблять», это не очень явное ...). XML-схема написана как набор XML-документов, и, чтобы понять это, вам обычно потребуются все документы в наборе. Чтобы ответить на разумные вопросы, используя информацию в схеме, например «может ли элемент абзаца содержать другой элемент абзаца?», Вы действительно захотите работать из скомпилированной схемы (так называемой модели компонентов схемы), а не из необработанного XML-кода , Для этого используется API Xerces, называемый XSOM, или продукт Saxon-EE имеет инструмент, который генерирует XML-представление модели компонентов схемы, которая может обрабатываться с использованием XPath или XQuery.

+0

Мой ответ был долго, чтобы быть комментарий, поэтому, пожалуйста, мой ответьте на сообщение. Спасибо – user1281146

+0

Я отредактировал мой оригинальный вопрос! – user1281146

1

Спасибо, Майкл.

Возможно, мой вопрос был немного запутанным. Но чтобы быть более явным: у меня есть поток, размещенный как служба в IIS. Все действия по извлечению рабочего процесса отображаются как операция webservice. Но все эти операции имеют параметры, теперь на Java я хочу знать, что это за параметры. Поэтому я подумал, прочитав файл XSD, я смог бы получить эти имена? Потому что мой XSD так же, как это:

<xs:element name='servicemethod'> 
    <xs:complexType> 
     <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence> 
    </xs:complexType> 
</xs:element>. 

Я знаю имя servicemethod в Java, теперь я хочу знать имена элементов, вложенных в этом servicemethod элемента. Btw, мой XSD доступен только через URL-адрес, а не как файл на моем компьютере.

Btw, i`m neiter эксперта Java или эксперта XML, так жаль просить вещи, которые, вероятно, не имеет смысла для вас ..

+1

вы можете отредактировать свой исходный вопрос, btw – necromancer

+0

Кстати, XSD, доступный только по URL-адресу, не должен быть проблемой, я просто понял, что простого запроса на получение будет достаточно, чтобы получить содержимое документа. – user1281146

+0

Спасибо, agks mehx, будет делать. – user1281146

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