SQL Select语句是否有XSD模式?

3

我有一个SQL SELECT语句:

SELECT Code, Description
  FROM Table1
 WHERE (Code='a' and Amount>100) or (Code='b' and Amount<100)

我希望使用XML来呈现SELECT语句。这是我的初始设计:

<select table="Table1">
    <columns>
        <column name="Code"/>
        <column name="Description"/>
    </columns>
    <filters>
    <or>
      <and>
        <filter field="Code" cond="eq" value="a"/>
        <filter field="Amount" cond="gt" value="100"/>
      </and>
      <and>
        <filter field="Code" cond="eq" value="b"/>
        <filter field="Amount" cond="lt" value="100"/>
      </and>
    </or>       
    </filters>
</select>

然而,我对此并不满意。查找适用于SQL SELECT语句的XSD要复杂得多。SQL SELECT语句中有许多特性我没有包括,例如:聚合、内/外连接、Between、IN、子查询等等。

我无法设计这样的模式。是否有人知道是否有适用于SQL Select语句表示的XSD?

1个回答

2
我希望使用XML来呈现SELECT语句。
但是你必须使用XML吗?如果不需要的话,就不应该使用,因为将XML作为编程语言的定义是一个非常糟糕的想法。即使XML本身也没有使用XML来实现其自己的查询语言
如果您需要定义一种编程语言,则应使用正式语法。Antlr是一种可以用于定义这种语法的工具。
如果您的工作取决于使用XML,并且如果您被解雇,您的妻子和孩子将会挨饿,那么我会勉强同意您继续走下去,否则立即停止!

我认为在编程语言中使用XML并不是一个糟糕的想法。在Delphi中,我可以从XSD生成XML文档类。我不打算解析SQL,但我只是在寻找能够呈现SQL Select语句的XSD。从那里,如果我想要从数据库查询,我可以使用XSLT生成SQL语句。或者我可以创建一个SQL编辑器,帮助我以编程方式形成SQL select语句。 - Chau Chee Yang
1
@Chau Chee Yang:也许你应该看看开源项目,开发SQL编辑器...可能有一些使用xsd模式。 - Filburt

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