【问题标题】:Is there a XSD schema for SQL Select statementSQL Select 语句是否有 XSD 架构
【发布时间】:2010-01-22 03:12:01
【问题描述】:

我有一个 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、Sub Select 等。

我无法设计这样的架构。有谁知道 SQL Select 语句演示是否有这样的 XSD?

【问题讨论】:

    标签: sql xml xsd


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我认为在编程语言中使用 xml 并不是一个糟糕的主意。在 Delphi 中,我可以从 XSD 生成 xml 文档类。我不打算解析 SQL,但我只是在寻找能够呈现 SQL Select 语句的 XSD。从那里,如果我想从数据库中查询,我可以使用 XSLT 生成 SQL 语句。或者,我可以创建一个 SQL 编辑器,帮助我以编程方式形成 SQL 选择语句。
    • @Chau Chee Yang:也许你应该看看开发 SQL 编辑器的开源项目……可能有一些使用 xsd 模式。
    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多