什么是XML词汇?需要一些清晰度

时间:2012-01-28 05:35:06

标签: xml

我对XML词汇表有疑问。

XML模式是DTD的替代方案。 XSLT是XML的样式表

我清楚XML架构和XSLT。

但是什么是XML词汇表? 它也与XML模式或DTD类似,或者它是一个定义良好的XML模式的集合?

很抱歉问这个愚蠢的问题,我谷歌搜索了一个多小时,找到了什么是XML词汇,但我对XML词汇表没有清晰的认识。

我在浏览时得到了这样的东西

  

预订XML词汇 - 仅用于标记图书数据:

<Book>
    <Title>The Wisdom of Crowds</Title>
    <Classification>non-fiction</Classification>
    <Author>James Surowiecki</Author>
</Book>

音乐XML词汇 - 仅用于标记音乐数据:

<Musical-Score>
   <Work>Winterreise</Work>
   <Genre>classical</Genre>
   <Composer>Franz Schubert</Composer>
</Musical-Song>

这里标记了相同的数据,这次使用单个通用XML 词汇:

组合XML词汇表 - 用于标记任何文学数据:

<Composition class="Book">
    <Title>The Wisdom of Crowds</Title>
    <Category>non-fiction</Category>
    <Creator>James Surowiecki</Creator>
</Composition>

<Composition class="Musical-Score">
    <Title>Winterreise</Title>
    <Category>classical</Category>
    <Creator>Franz Schubert</Creator>
</Composition>

看到这个之后,我仍然感到困惑,为什么以及它如何有用?

4 个答案:

答案 0 :(得分:3)

例如,我们假设您想要代表个人信息。在HTML中,你必须使用预定义的词汇表(因为它不允许你创建自己的词汇表)所以你可以代表一个人如下

<h1>Bob Joe</h1>
<table>
<tr>
  <th>Age</th>
  <th>Weight</th>
</tr>
<tr>
  <td>30</td>
  <td>140</td>
</tr>
</table>

XML可让您创建自己的词汇或标签,这些内容很有意义,如下例所示。您甚至可以使用XSD或DTD限制词汇表(以便简化信息的交换和处理)。

<Person>
  <Name>Bob Joe</Name>
  <Age>30</Age>
  <Weight>140<Weight>
</Person>

使用XSD创建词汇表之后,您可以使用 xsi namespacce 将其与XML实例相关联,如下所示

<Person
  xmlns="MyDefaultNamespace"
  xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
  xsi:schemaLocation="MyDefaultNamespace Person.xsd">

  <Name>Bob Joe</Name>
  <Age>30</Age>
  <Weight>140<Weight>
</Person>

程序可以使用特定语言提供的api以编程方式验证XML实例。许多语言都有这种支持。还有一些工具可以生成解析和创建符合XSD的xml的代码。

答案 1 :(得分:3)

术语“XML词汇表”在XSD或DTD的方式上没有精确的含义。人们使用该术语来表示“元素和属性名称的集合,其中包含其含义及其结构关系和约束的定义”。模式或DTD可能是其中的一部分,但重点在于元素的含义,这可能涉及英语或其他自然语言的文档。因此,例如“MusicXML模式”允许您区分有效实例和无效实例,但“MusicXML词汇表”告诉您特定元素/属性表示具有给定音高,持续时间和响度的音符。

答案 2 :(得分:1)

XML是创建不同的基于XML的文档的基础,例如:XSLT,SOAP,RSS,SVG等。这些文档是XML文档,但同时它们具有使用XSD,DTD或任何其他机制定义的自己的XML词汇表XML词汇描述。

答案 3 :(得分:0)

这些是基本xml之上的标准。 例如,用于&gt; SOAP,UDDI和WSDL