2010-01-22 8 views
3

j'ai une instruction SQL SELECT:Y at-il un schéma XSD pour instruction SQL Select

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

Je souhaite utiliser XML pour présenter l'instruction SELECT. Voici ma conception initiale:

<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> 

Cependant, je ne suis pas satisfait. Il est beaucoup plus compliqué de trouver une instruction XSD pour SQL SELECT. Ils sont plusieurs fonctionnalités dans l'instruction SQL SELECT que je n'ai pas inclus, par exemple: Agrégats, Jointure interne/externe, Entre, IN, Sous-sélection et etc.

Il est au-delà de mes capacités de concevoir un tel schéma. Est-ce que quelqu'un sait s'il y a une telle présentation XSD à SQL Select?

Répondre

2

Je souhaite utiliser XML pour présenter l'instruction SELECT.

Mais avez-vous devez utiliser XML? Si vous ne le faites pas, vous ne devriez pas, car l'utilisation de XML comme définition d'un langage de programmation est une idée vraiment horrible. Même XML n'utilise pas XML pour l'implémenter own query language!

Si vous devez définir un langage de programmation, vous devez utiliser une grammaire formelle. Antlr est un outil qui peut être utilisé pour définir de telles grammaires. Si votre travail dépend de l'utilisation de XML, et que votre femme et vos enfants mourront de faim si vous êtes renvoyés, je reconnais à contrecoeur que vous devriez continuer sur cette voie, sinon ARRÊTEZ MAINTENANT!

+0

+1 Femmes et enfants avant Antlr –

+0

Je ne pense pas que ce soit une mauvaise idée d'utiliser xml dans le langage de programmation. En Delphi, je peux générer une classe de document XML à partir de XSD. Je ne vais pas analyser SQL, mais je cherche simplement XSD capable de présenter une instruction SQL Select. De là, je peux utiliser XSLT pour générer une instruction SQL si je veux interroger à partir de la base de données. Ou je peux créer un éditeur SQL qui m'aide à former l'instruction SQL select par programmation. –

+1

@Chau Chee Yang: Peut-être devriez-vous vérifier les projets open source qui développent des éditeurs SQL ... il pourrait y avoir des schémas xsd. – Filburt