是否有SQL Select语句的XSD架构

时间:2010-01-22 03:12:01

标签: sql xml xsd

我有一个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语句中的许多功能,例如:Aggregates,Inner / Outer Join,Between,IN,Sub Select等。

设计此类架构超出了我的能力范围。有没有人知道SQL Select语句表示是否有这样的XSD?

1 个答案:

答案 0 :(得分:2)

  

我希望使用XML来呈现SELECT语句。

必须 使用XML吗?如果你不这样做那么你就不应该这样做,因为使用XML作为编程语言的定义是一个非常糟糕的主意。甚至XML也不使用XML来实现它own query language

如果您需要定义编程语言,那么您应该使用正式语法。 Antlr是一个可用于定义此类语法的工具。

如果你的工作依赖于使用XML,如果你被解雇,你的妻子和孩子会挨饿,那么我会不情愿地承认你应该继续沿着这条路走下去,否则就现在停止!