好吧,这可能听起来很愚蠢,但我对 XML 不太熟悉。
我尝试做的是:
我有两个实体:公司和员工。两个实体都只有一个 name 属性。
如果我有两家公司,每家公司都有两名员工,那么 XML 文档会是什么样子?我可以简单地做这样的事情吗? :
<?xml version="1.0"?>
<company>
<name>Apple</name>
<employee>Steve</employee>
<employee>Bill</employee>
</company>
<company>
<name>Banana</name>
<employee>John</employee>
<employee>Luke</employee>
</company>
这样的语法好吗?或者我必须采取不同的做法吗?是不是遗漏了什么重要的东西?
编辑为了进行比较,我从 USGS(通过 xml 发布地震数据的地震监测机构)复制了一个有效的 XML 示例:
<?xml version="1.0"?>
<feed xml:base="http://earthquake.usgs.gov/" xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss">
<updated>2010-01-26T09:36:26Z</updated>
<title>USGS M2.5+ Earthquakes</title>
<subtitle>Real-time, worldwide earthquake list for the past day</subtitle>
<link rel="self" href="/earthquakes/catalogs/1day-M2.5.xml"/>
<link href="http://earthquake.usgs.gov/earthquakes/"/>
<author><name>U.S. Geological Survey</name></author>
<id>http://earthquake.usgs.gov/</id>
<icon>/favicon.ico</icon>
<entry><id>urn:earthquake-usgs-gov:us:2010ryav</id><title>M 5.2, southern Sumatra, Indonesia</title><updated>2010-01-26T06:53:25Z</updated><link rel="alternate" type="text/html" href="/earthquakes/recenteqsww/Quakes/us2010ryav.php"/><summary type="html"><![CDATA[<img src="http://earthquake.usgs.gov/images/globes/0_100.jpg" alt="0.343°S 99.024°E" align="left" hspace="20" /><p>Tuesday, January 26, 2010 06:53:25 UTC<br>Tuesday, January 26, 2010 01:53:25 PM at epicenter</p><p><strong>Depth</strong>: 58.50 km (36.35 mi)</p>]]></summary><georss:point>-0.3427 99.0242</georss:point><georss:elev>-58500</georss:elev><category label="Age" term="Past day"/></entry>
<entry><id>urn:earthquake-usgs-gov:pr:p1002601</id><title>M 2.7, Puerto Rico region</title><updated>2010-01-26T04:14:07Z</updated><link rel="alternate" type="text/html" href="/earthquakes/recenteqsww/Quakes/prp1002601.php"/><summary type="html"><![CDATA[<img src="http://earthquake.usgs.gov/images/globes/20_-65.jpg" alt="19.102°N 66.415°W" align="left" hspace="20" /><p>Tuesday, January 26, 2010 04:14:07 UTC<br>Tuesday, January 26, 2010 12:14:07 AM at epicenter</p><p><strong>Depth</strong>: 13.80 km (8.57 mi)</p>]]></summary><georss:point>19.1017 -66.4150</georss:point><georss:elev>-13800</georss:elev><category label="Age" term="Past day"/></entry>
<entry><id>urn:earthquake-usgs-gov:hv:00036408</id><title>M 3.0, Island of Hawaii, Hawaii</title><updated>2010-01-26T00:37:14Z</updated><link rel="alternate" type="text/html" href="/earthquakes/recenteqsww/Quakes/hv00036408.php"/><summary type="html"><![CDATA[<img src="http://earthquake.usgs.gov/images/globes/20_-155.jpg" alt="19.206°N 155.517°W" align="left" hspace="20" /><p>Tuesday, January 26, 2010 00:37:14 UTC<br>Monday, January 25, 2010 02:37:14 PM at epicenter</p><p><strong>Depth</strong>: 37.70 km (23.43 mi)</p>]]></summary><georss:point>19.2063 -155.5173</georss:point><georss:elev>-37700</georss:elev><category label="Age" term="Past day"/></entry>
</feed>
他们不使用像 <entries>
这样的根元素! Apple 的地震XML 示例可以很好地解决这个问题。奇怪...
最佳答案
您缺少根元素,例如:
<?xml version="1.0"?>
<companies>
<company>...</company>
<company>...</company>
</companies>
否则我认为这种结构非常适合表示公司员工的一对多关系。
作为对您发布的 USGS feed 的回应,它确实有一个根元素 feed
。
关于xml - 如何制作一个包含关系的XML文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138614/