Как разобрать общие документы XSD - PullRequest
1 голос
/ 04 июля 2011

Мне нужно сделать несколько XSD-документов.

Я не спрашиваю о наборе API, Я нашел этот очень полезный API

проблемы здесь ..

Как я могу узнать, какой элемент является родительским для какого элемента ... Другими словами ... Как я могу извлечь из элементов документа (это очень просто в XML)

XSD выглядит по-другому ..

Вот пример:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="Journal">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="JournalName"/>
        <xs:element ref="Volumes"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Journals">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="Journal"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
.....

Как показано выше, хотя Journal является подэлементом Journals, но оно появляется над ним. (это не может произойти в виде вложенных XML-документов)

Спасибо.

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Кажется, ваше мышление немного запутано. Почему определение Журналов должно происходить до определения Журнала? Эти определения не содержат друг друга - они определяют элементы, которые содержат друг друга, но определения являются отдельными. Рассмотрим некоторый соответствующий код Java:

class Journal {
    String journalName;
    List<Volume> volumes;
}

class Journals {
    List<Journal> journals;
}

Вы бы не ожидали увидеть их в каком-то определенном порядке, не говоря уже о том, чтобы определение «Журнал» было внутри этого определения для «Журналов», не так ли?

Итак, если вы хотите извлечь иерархию из схемы, я боюсь, что вам придется прочитать весь документ и отметить, где элемент определен как содержащий какой-то другой элемент. Вы можете создать описание иерархии по мере продвижения.

0 голосов
/ 04 июля 2011

Попробуйте прочитать XSD (например: w3schools ). В приведенном выше XSD упоминается, что XML, соответствующий этому XSD, может иметь элемент Journals, который содержит несколько подэлементов Journal. Может показаться, что Журналы - это субэлемент, но это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...