Xml 如何解析骨灰盒?

Xml 如何解析骨灰盒?,xml,xsd,urn,Xml,Xsd,Urn,我有一个XML模式文件,它引用了一个基于urn的位置。有没有办法将其解析为url,或者有没有办法实际读取它所引用的文件 <xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:tblDeclGrp.xsd:1.1"/> 在本例中,schemaLocation是位置。如果在同一目录中有一个文件名与此完全相同,则应解析该文件。它甚至还包括urn:part,因此是完整的字符串。在模式名称空间之后命名文件非常方便。一开始我很困惑,我必

我有一个XML模式文件,它引用了一个基于urn的位置。有没有办法将其解析为url,或者有没有办法实际读取它所引用的文件

<xs:include schemaLocation="urn:oasis:names:tc:dita:xsd:tblDeclGrp.xsd:1.1"/>

在本例中,schemaLocation是位置。如果在同一目录中有一个文件名与此完全相同,则应解析该文件。它甚至还包括urn:part,因此是完整的字符串。在模式名称空间之后命名文件非常方便。一开始我很困惑,我必须承认

顺便说一句,urn不是一个位置,它只是一个URI。xs:include schemaLocation的属性引用了一个位置,但属性类型是anyURI,其中包含urn schema

…是否可以查看OASIS的urn命名空间

编辑:我永远记不起URI和URN,但我的理解是它们只是名称空间,实际上不必与网络上存储文件的真实位置相对应。它们只是将控制权划分到名称空间的各个部分,因此
urn:oasis
受oasis的控制。除非您可以控制层次结构的该部分,否则您不应该发明任何URI/URN


编辑2:谷歌搜索了一下,在oasis-open.org上找到了一个名为和的文件

这个问题不是解释“URN解析”的好地方。。。 我们可以想象(通过自动翻译器)将这个oasis URN转换为schemaLocation文件名或URL,但这对于URN来说有点异国情调

请参阅中schemaLocation的常用语义和值


URN分辨率 您可以在和处看到术语“resolve a URN”的完整语义。根据这些RFC,您需要的是一个本地软件或一个“URN解析器”软件的URL(a),它可以N2L:给定一个URN, 返回一个URL

广泛使用的骨灰盒 2002年,URN解析机制受到了更多的关注,两个新的RTF解决了URN的一个潜在问题

如果URN解析折叠为通用URI解析,则URN可能 受URI解析缺乏采用的影响

解决方案是考虑到URN分辨率的快捷方式。(…)通用URI解析从插入 将已知URI方案的规则放入“URI.arpa.”注册表。对于 'URN:'URI scheme,在'URI.arpa'中找到的规则之一是 “urn”URI方案。这条规则将简单地委托给 “urn.arpa.”区域,用于基于urn命名空间的其他NAPTR。 本质上,“URN:”的URI解析重写规则是URN 解析应用程序的第一条众所周知的规则


一些解决问题仍然存在:URN类似于或具有如此使用且稳定的解决机制(分别在和),但未在注册;未使用、不稳定且未控制的URN,如
URN:oasis:names:tc:dita
已在IANA注册
URN:oasis

我通读了RFC和其他一些资料。作为唯一标识符,这似乎很有用,但对于试图解析实际架构的解析器来说帮助不大,因为每个提供程序可能具有不同的格式。此外,include用于使用相同命名空间或没有命名空间的其他架构,在此处指定名称空间而不是物理位置是没有意义的。导入用于在其他名称空间中使用其他架构,该元素有一个单独的属性来指定它。这个问题不是解释“”的好地方。请在这里发表评论,并链接到更好的评论,回答一般性的“如何解析URN?”。。。好的,我在下面发布了一个草案。具体地说,对于XML,这样的“URN解析器”通常会作为XML目录处理,提供给处理XML的软件或代码中的XML解析器。XML目录有多种格式,包括基于OASIS XML的格式、OASIS纯文本格式(TR 9401)和另一种称为XCatalog的基于XML的格式。支持的内容取决于软件/parser.Hi@G_H,重要的是要记住URN是名称,即简单有效的字符串,其中没有XML编码。当然,URN是XML元素中的一个有效属性值。我想您误解了我的评论。我并不是说骨灰盒中有任何XML。问题是关于在XML模式中解析特定的URN。许多用于处理XML的库和软件都支持所谓的XML目录,允许您将URN字符串映射到特定URL。对于提问者,这可能是一个解决方案,所以我决定提及它。@G_H,ops,好的,但请记住,我的回答是关于一般解决方案的。(或者说对URN只字未提,似乎是他们建议的一种扩展,基于URNs的“XML目录”(比如
URN:oasis:names:tc:entity:xmlns:XML:catalog
)具有不明显的解析算法。XML最简单的算法是将a
url\u base
属性与URN连接起来。在“REST API通过重定向解析”的上下文中,URN解析的另一个很好的参考是定义“URI模板”的,在本例中,这是一个URL模板,其中占位符是URN或简化URN。示例:
https://doi.org/{urn}
。您可以使用
urn:doi:{theDOI}的
theDOI
片段使用完整或简化的urn进行测试
。使用科学文章的URN进行测试,
URN:doi:10.1038/ncomms7368
。其他示例:
https://www.lexml.gov.br/urn/{urn_lex}