前向后向规则 Xml DTD
我想使用 DTD 建模一个简单的 (IF then) 规则。这就是我想出的:
<!ELEMENT forward ((rule | fact)*)>
<!ELEMENT rule (if, then)>
<!ELEMENT fact (#PCDATA)>
<!ELEMENT if (#PCDATA)>
<!ELEMENT then (#PCDATA)>
这是前向规则的 dtd (p => c)。我还想使用结论和前提元素而不是 if 和 then 来对后向规则( c <= p)进行建模。我是否只需要更改 if 和 then 为 cons 和 prem 还是我需要做其他事情?我很欣赏你的回复。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
XML DTD 只是为您的模型提供语法。例如,您可以编写:
并且
但是您必须提供连接这两者的任何逻辑并自己编写。 XML 没有给您提供具体的帮助。
我建议你看看 Prolog 等语言。
XML DTDs simply give you a syntax for your model. You could, for example, write:
and
but you will have to provide any logic connecting these two and write it yourself. XML gives you no specific help.
I would suggest you look at languages such as Prolog.
对于 XML 词汇表来说,可能比从 XSLT 中“借用”等效功能更糟糕(即使您不使用相同的名称)。
请参阅 http://www.w3.org/TR/ xslt#section-Conditional-Processing-with-xsl:if
其语法的一般形式是
Forforwarding 等,您的问题太笼统,无法给出精确的答案。如果你想链接测试,你可以给每个测试一个 id,然后有类似 的内容。引用下一个要应用的测试的 id 的元素。或者,您可以构建更复杂的条件处理词汇表,可能(再次)基于 XSLT 模型(请参阅 http://www.w3.org/TR/xslt#section-Conditional-Processing-with-xsl:choose)。
DTD 为您提供语法,但没有语义,因此您想要的 XML 的任何功能都必须在您的应用程序中开发。
For an XML vocabulary could do a lot worse than "borrow" the equivalent functionality from XSLT (even if you don't use the same names).
See http://www.w3.org/TR/xslt#section-Conditional-Processing-with-xsl:if
The general form of its syntax is
For forwarding and such-like, your problem is too general to give a precise answer. If you want to chain tests you might give each of your tests an id and then have something like a <forward to-test="some-id"/> element which references the id of the next test to be applied. Or you might build more complicated conditional processing vocabulary, maybe based (again) on XSLT's model (see http://www.w3.org/TR/xslt#section-Conditional-Processing-with-xsl:choose).
The DTD gives you syntax but no semantics, so any functionality you want around your XML will have to be developed in your application.