是否有定义好的原子订阅XML模式?

17

是否有定义好的原子订阅 XML 模式?

RFC 4287 只在附录 B 中包含了一个 Relax NG 紧凑模式。

2个回答

18

1
XSD 是指 XML 模式定义。如果这不是您想要的,那么您需要的是其他类型的模式。您可能在寻找 DTD 吗? - Welbog
我在Chrome中遇到了FOUT,但它随后做了正确的事情并显示了树形结构。 - Caleb Hearth
2
请尝试使用 https://tools.oasis-open.org/version-control/browse/wsvn/cmis/trunk/SchemaProject/schema/ATOM.xsd。 - dvdsmpsn
1
请注意,这只是一个XML模式,据我所知没有官方的XSD。RFC是唯一真正的规范。答案中的模式非常松散 - 可惜它如此普遍。除其他事项外,它试图以不起作用的方式强制实施误解的必填字段,并且完全未能强制执行规范中一些容易实现的序列要求,如果您了解基本的XSD,则可以轻松实现。@dvdsmpsn指向的模式乍一看好得多。 - Joachim Lous
刚刚发现 OP 缺失文件的副本:https://github.com/metaleap/go-xsd-pkg/blob/master/kbcafe.com/rss/atom.xsd.xml - mblaettermann
显示剩余5条评论

4

不可用的内容

http://www.kbcafe.com/rss/atom.xsd.xml不应该被使用,因为它甚至不能检测到缺少的<id>标签。

https://tools.oasis-open.org/version-control/browse/wsvn/cmis/trunk/SchemaProject/schema/ATOM.xsd存在问题,xmllint使用它时会报错:

复杂类型 'atomPersonConstruct': 内容模型不是确定性的。

可用的内容

RFC包含一个relax ng compact规范:https://validator.w3.org/feed/docs/rfc4287.html#rfc.section.B

借助于trang,可以将该.rnc文件从紧凑格式转换为基于XML的.rng文件。然后可以将其与xmllint一起使用:

$ xmllint --noout --relaxng atom.rng feed.atom
feed.atom:4: element feed: Relax-NG validity error : Expecting an element updated, got nothing
feed.atom:16: element entry: Relax-NG validity error : Invalid sequence in interleave
feed.atom:16: element entry: Relax-NG validity error : Element feed failed to validate content
feed.atom fails to validate

.rng文件可以在我的博客上找到:http://cweiske.de/tagebuch/atom-validation.htm - cweiske

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