Существует ли схема XSD для оператора SQL Select? - PullRequest
3 голосов
/ 22 января 2010

У меня есть оператор 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>

Однако меня это не устраивает. Гораздо сложнее найти оператор XSD for SQL SELECT. Это много функций в операторе SQL SELECT, которые я не включил, например: агрегаты, внутреннее / внешнее соединение, между, IN, вспомогательный выбор и т. Д.

Я не могу разработать такую ​​схему. Кто-нибудь знает, есть ли такой XSD для представления оператора SQL Select?

1 Ответ

2 голосов
/ 22 января 2010

Я хочу использовать XML для представления оператора SELECT.

Но вы должны использовать XML? Если вы этого не сделаете, то не должны, потому что использование XML в качестве определения языка программирования является действительно ужасной идеей. Даже XML не использует XML для реализации своего собственного языка запросов !

Если вам нужно определить язык программирования, вам следует использовать формальную грамматику. Antlr - это инструмент, который можно использовать для определения таких грамматик.

если ваша работа зависит от использования XML, а ваша жена и дети будут голодать, если вас уволят, тогда я неохотно признаю, что вы должны продолжать идти по этому пути, в противном случае ОСТАНОВИТЕСЬ СЕЙЧАС!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...