如何评估/翻译 XML 文件中定义的逻辑句子
我将处理一些包含如下逻辑语句的 XML 文件:
<condition>
<or>
<not>
<eq>
<variable>
<name>X</name>
<variabletype>Test</variabletype>
<datatype>String</datatype>
</variable>
<constant>
<value>finished</value>
<datatype>String</datatype>
</constant>
<eq>
</not>
<gt>
<variable>
<name>X</name>
<variabletype>Result</variabletype>
<datatype>int</datatype>
</variable>
<constant>
<value>50</value>
<datatype>int</datatype>
</constant>
</gt>
</or>
我的问题: 1- 是否有标准的 XML 模式用于在 XML 文件中显示逻辑语句?我正在寻找类似 RFC(征求意见)之类的东西。
2- 在 Java 的帮助下翻译和评估 XML 文件中的这些句子的最佳方法是什么? 3-我想编写自动生成GUI的代码,用户可以在它的帮助下更改逻辑语句中变量的值?是否有任何特殊技术可以从 XML 文件生成 GUI(Swing 或 Jface)?
感谢您的建议和帮助
I am going to work with some XML files containing logic sentences like these:
<condition>
<or>
<not>
<eq>
<variable>
<name>X</name>
<variabletype>Test</variabletype>
<datatype>String</datatype>
</variable>
<constant>
<value>finished</value>
<datatype>String</datatype>
</constant>
<eq>
</not>
<gt>
<variable>
<name>X</name>
<variabletype>Result</variabletype>
<datatype>int</datatype>
</variable>
<constant>
<value>50</value>
<datatype>int</datatype>
</constant>
</gt>
</or>
My questions:
1- Is there any standard XML schema for displaying logic sentences in XML files? I am looking for something like RFC (Request for comments).
2- What is the best way to translate and evaluate these sentences in XML files with help of Java?
3- I want to write code for autogenerating a GUI which with help of it users can change the value of variables in logic sentences? Is there any special technique to generate GUI (Swing or Jface) from XML files?
Appreciating your advise and help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1-据我所知没有。这看起来有点像 MathML,但特定于逻辑语句,并添加了类型。您似乎已经有了一个具体的想法,所以我怀疑标准是否适合您正在寻找的东西。
2-您需要一些中间类,例如Sentence、Function、Variable 和Constant,并实现类似evaluate() 的方法。有多种方法可以创建匹配对象。 Java 中的一种简单方法(无需额外的库)是将 XML 解析为 DOM 树,并通过它来创建包含类的相应树。
3- 您可以使用像 Jaxe 这样的 XML 编辑器和配置文件来自定义 GUI。但是,在这种情况下,我还会考虑为您的逻辑句子和相关解析器定义文本语法。您可以让用户输入类似“!(X="finished") | (Y>50)”的文本,并使用更多 GUI 来定义 X 和 Y 的类型。与 MathML 一样,如果您要求用户提供 XML,甚至有了一个漂亮的 GUI,你最终会得到一些相当冗长的东西。
1- Not as far as I know. This looks a bit like MathML, but specific to logic sentences, and added types. You seem to have a specific idea already, so I doubt a standard would fit what you're looking for.
2- You need some intermediate classes, such as Sentence, Function, Variable and Constant, and implement a method like evaluate(). There are various ways to create the matching objects. A simple way in Java (without an additional library) would be to parse the XML as a DOM tree, and go through it to create a corresponding tree with your classes.
3- You could use an XML editor like Jaxe, with a config file to customize the GUI. However, in this case, I would also consider defining a text syntax for your logic sentences and a related parser. You could let users enter a text like "!(X="finished") | (Y>50)" and use more GUI to define the type for X and Y. As with MathML, if you ask the user for XML, even with a nice GUI, you end up with something rather verbose.