XML和XMI之间的区别是什么?

25

能有人详细介绍一下XML和XMI的区别吗?XMI能否替代XML使用?

3个回答

22

XML元数据交换(XMI)是通过可扩展标记语言(XML)交换元数据信息的对象管理组(OMG)标准。

XMI整合了四个行业标准:

XML-eXtensible Markup Language,W3C标准。
UML-统一建模语言,OMG建模标准。
MOF-元对象工厂,OMG用于指定元模型的语言。
MOF映射到XMI

http://en.wikipedia.org/wiki/XML_Metadata_Interchange

因此,XMI是XML的一个具体应用。


6
问题就在这里。如果XMI是XML的一种应用,那么你不能使用它来替代XML。 XMI有严格的用途,而XML是定义标记语言的一种方式。这就像问你是否可以交换砖头和房子来做同样的事情。 - Dominik Honnef
那就意味着,当我需要交付一个XML文件时,如果我的代码创建了一个名为filename.xmi的文件,那么我是正确的吗? - zengr
2
@zengr:所有的XMI文件都是XML,但并不是所有的XML文件都是XMI。 - Robert Harvey
嗨@RobertHarvey!我有一个问题:您提到“并不是所有的XML文件都是XMI”,那么它是什么? - user2019510
@user2019510 请看下面我的回答。 - Robert Harvey
显示剩余2条评论

8

好的,让我们再试一次。

不,您不能使用XMI替代XML。 XMI 是XML的特定用途

XMI只能用于根据OMG标准交换元数据信息。 XMI是XML的特定应用程序。 XMI只能用于XMI目的。 另一方面,XML可用于所有XML应用程序,包括XMI。


1
这是一个 StackOverflow 的分身吗? - Anthony Forloney
1
好的,我已经回答过这个问题了。我认为回答得很令人满意。 - Robert Harvey
4
你似乎不太理解XML本身是没有意义的。人们使用XML通过提供规则来构建自己的标记,就像XMI所做的那样。XMI本质上就是XML,就像鲨鱼属于鱼类一样。然而,这并不意味着每一种鱼都能像鲨鱼一样运作。如果你想要“转换”XMI为XML,只需要不要触碰文件,这样就完成了。 - Dominik Honnef
2
我不想说,但你似乎还没有理解。XMI 不是 XML 的子集,而是 XML 的应用。如果你不能理解这个区别,那么以后几乎肯定会遇到问题。 - Nic Gibson
谢谢@RobertHarvey,XMI是XML的一个特定应用。如果可能的话,XML还有哪些其他应用? - user2019510
显示剩余4条评论

7

XMI文档是XML文档。而XML文档不一定是XMI文档。

以下是一个XML文档:

<myXml>
  <myTag> myContent </myTag>
</myXml>

但它不是XMI文档。

XMI是一种特定的XML方言。它由一组特定的标签组成,具有特定的语法和语义,旨在描述一个模型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接