xml - 如何制作一个包含关系的XML文档?

标签 xml

好吧,这可能听起来很愚蠢,但我对 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&#176;S 99.024&#176;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&#176;N 66.415&#176;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&#176;N 155.517&#176;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/

相关文章:

sql-server - 如何在 T-SQL 中合并 XML?

xml - 如何用字符串替换缩写?

xml - 双斜杠 (//) 作为 XML 注释

xml - 如何在 Silverlight 中计算 XPath 表达式?

android - 设置 ImageView 的权重和参数

c# - 从流加载 XmlDocument 时缺少根元素

java - 如何使用 Jackson 将 POJO 转换为 XML

xml - 使用 Groovy 将 org.w3c.dom.Document 转换为 XML 字符串

java - 加密和解密xml

html - 如何分隔 SVG 中从右到左的文本,中间没有英文字母?