XML-如何决定是否将相同的节点放在父节点中



我有一个XMLbookstore,我不知道如何构建它。

我关注的是一本书可以有多个作者。

我通常看到XML将具有相同名称的元素放在父元素中。

这背后的想法是什么?以下两种略有不同的方法有哪些优点和缺点?

1( 作者不在父元素中:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="web">
<title lang="en">Superbook</title>
<author>
<name>Clark</name>
<lastname>Kent</lastname>
</author>
<author>
<name>Lois</name>
<lastname>Lane</lastname>
</author>
<author>
<name>Lex</name>
<lastname>Luther</lastname>
</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Batman</title>
<author>
<name>Bruce</name>
<lastname>Wayne</lastname>
</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

2( 作者在一个父元素中:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="comic">
<title lang="en">Superbook</title>
<authors>
<author>
<name>Clark</name>
<lastname>Kent</lastname>
</author>
<author>
<name>Lois</name>
<lastname>Lane</lastname>
</author>
<author>
<name>Lex</name>
<lastname>Luther</lastname>
</author>
</authors>
<year>2003</year>
<price>49.99</price>
</book>
<book category="comic" cover="paperback">
<title lang="en">Batman</title>
<authors>
<author>
<name>Bruce</name>
<lastname>Wayne</lastname>
</author>
</authors>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

作为W3规范站点,您可以根据需要使用元素/属性
我使用基于属性的布局,并避免像"authors"这样的"collection"元素,它们实际上并没有达到的目的

<xml>
<book category='web' year='2003' price='49.99'>
<title lang='en'>Superbook</title>
<author name='Clark' lastname='Kent'/>
<author name='Lois' lastname='Lane'/>
<author name='Lex' lastname='Luther'/>
</book>
<book category='web' cover='paperback' year='2003' price='49.99'>
<title lang='en'>Batman</title>
<author name='Bruce' lastname='Wayne'/>
</book>
</xml>

最新更新