我需要填写一些XSD文档。
我不是在询问API集I found this very helpful API
这里的问题是......
我如何知道哪个元素是哪个元素的父元素...换句话说..我如何能够提取文档元素的hirarecy(在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 docuemtns的嵌套方式发生)
感谢。
答案 0 :(得分:1)
看来你的想法有点困惑。为什么期刊的定义必须先于期刊的定义?这些定义不会包含 - 它们定义了彼此包含的元素,但定义是分开的。考虑一些相应的Java代码:
class Journal {
String journalName;
List<Volume> volumes;
}
class Journals {
List<Journal> journals;
}
你不会期望看到任何特定顺序的那些,更不用说期刊的定义发生在期刊的内部,对吗?
因此,如果你想从模式中提取层次结构,我担心你必须阅读整个文档,并注意元素被定义为包含其他元素的位置。您可以随时建立层次结构的描述。
答案 1 :(得分:0)
尝试阅读XSD(例如:w3schools)。上面的XSD提到符合这个XSD的XML可以有一个元素Journals,它包含几个子元素Journal。可能看起来好像是期刊是一个子元素,但事实并非如此。