[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] I need tools XML/XSL/XSD for generation os SQL JOIN...Again:


Subject: [xsl] I need tools XML/XSL/XSD for generation os SQL JOIN...Again:
From: Cristobal Galiano Fernandez <c.galiano@xxxxx>
Date: Wed, 31 Oct 2001 21:11:30 +0100

 Hi everybody!

I need urgently tools ( XML/XSL/XSD) for  generate automaticaly JOINs of
varias table schema BD..
 .
1) A file  XML (XSD preference) must exists for definitions of tables and
relations ship's  (PKs,FKs...)
Example:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Relaciones entre tablas
        .cada tabla contiene la clave primaria (PK) y las foráneas (FK) -->
<Tablas Id="Tablas">
   <Tabla Id="LOOKUP_ALUMNOS_SEL" IdNum="1">
      <PK>
         <Col>ID_ALUMNO_SEL</Col>
      </PK>
      <FK>
          <Tabla Id="LOOKUP_PROVINCIAS" />
          <!-- El text() es la columna de la tabla LOOKUP_ALUMNOS_SEL -->
          <!-- @FK es la columna de la tabla LOOKUP_PROVINCIAS  -->
          <!-- Generará T1.ID_PROVINCIA_ALU = T7.ID_PROVINCIA -->
          <Col FK="ID_PROVINCIA">ID_PROVINCIA_ALU</Col>
      </FK>
      <FK>
          <Tabla Id="LOOKUP_SEXOS" />
          <Col FK="ID_SEXO">ID_SEXO_ALUMNO</Col>
      </FK>
   </Tabla>

   <Tabla Id="LOOKUP_CCAA" IdNum="2">
      <PK>
         <Col>ID_CCAA</Col>
      </PK>
      <FK>
         <Tabla Id="LOOKUP_TIPOS_CCAA" />
         <Col FK="ID_TIPO_CCAA">ID_TIPO_CCAA</Col>
      </FK>
   </Tabla>

   <Tabla Id="LOOKUP_CONTINENTES" IdNum="3">
      <PK>
         <Col>ID_COMARCA</Col>
      </PK>
   </Tabla>

   <Tabla Id="LOOKUP_COMARCAS" IdNum="4">
      <PK>
         <Col>ID_COMARCA</Col>
      </PK>
      <FK>
          <Tabla Id="LOOKUP_PROVINCIAS" />
          <Col FK="ID_PROVINCIA">ID_PROVINCIA</Col>
      </FK>
   </Tabla>

   <Tabla Id="LOOKUP_PAISES" IdNum="5">
      <PK>
         <Col>ID_PAIS</Col>
      </PK>
      <FK>
          <Tabla Id="LOOKUP_CONTINENTES" />
          <Col FK="ID_CONTINENTE">ID_CONTINENTE</Col>
      </FK>
   </Tabla>

  <Tabla Id="LOOKUP_POBLACIONES" IdNum="6">
      <PK>
         <Col>ID_POBLACION</Col>
      </PK>
      <FK>
          <Tabla Id="LOOKUP_COMARCAS" />
          <Col FK="ID_COMARCA">ID_COMARCA</Col>
      </FK>
     <FK>
          <Tabla Id="LOOKUP_PROVINCIAS" />
          <Col FK="ID_PROVINCIA">ID_PROVINCIA</Col>
      </FK>
   </Tabla>

   <Tabla Id="LOOKUP_PROVINCIAS" IdNum="7">
      <PK>
         <Col>ID_PROVINCIA</Col>
      </PK>
      <FK>
          <Tabla Id="LOOKUP_CCAA" />
          <Col FK="ID_CCAA">ID_CCAA</Col>
      </FK>
      <FK>
          <Tabla Id="LOOKUP_PAISES" />
          <Col FK="ID_PAIS">ID_PAIS</Col>
      </FK>
   </Tabla>

   <Tabla Id="LOOKUP_SEXOS" IdNum="8">
      <PK>
         <Col>ID_SEXO</Col>
      </PK>
   </Tabla>

   <Tabla Id="LOOKUP_TIPOS_CCAA" IdNum="9">
      <PK>
         <Col>ID_tipo_ccaa</Col>
      </PK>
   </Tabla>

</Tablas>
<!-- count(IdNum)= -->

2) My input is an XML file with the tables target
Example:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--  -->
<Argums>
    <File>TablasRelaciones.XML</File> <!-- Fichero con relaciones entre tablas
-->
    <Tabla>LOOKUP_ALUMNOS_SEL</Tabla> <!-- Tablas que se cruzan -->
    <Tabla>LOOKUP_PROVINCIAS</Tabla>
    <Tabla>LOOKUP_PAISES</Tabla>
    <Tabla>LOOKUP_CONTINENTES</Tabla>
</Argums>

3) Mi output is a  SQL sentence with the  JOIN's condition (in XML format)
 <?xml version="1.0" encoding="UTF-16"?>
<SQL Tipo="JOIN">
<SELECT></SELECT>
<FROM>
<Tabla>LOOKUP_ALUMNOS_SEL T1</Tabla>
<Tabla>LOOKUP_CONTINENTES T3</Tabla>
<Tabla>LOOKUP_PAISES T5</Tabla>
<Tabla>LOOKUP_PROVINCIAS T7</Tabla>
</FROM>
<WHERE>
<Join>T1.ID_PROVINCIA_ALU = T7.ID_PROVINCIA</Join>
<Join>T5.ID_CONTINENTE = T3.ID_CONTINENTE</Join>
<Join>T7.ID_PAIS = T5.ID_PAIS</Join>
</WHERE>
</SQL>

4) NB. Is posible that in my input an intermediate table,necesary for the
JOIN (with Foreing's Keys) don't exits.

Can anybody help me (us) writing this generaly and simple :)) XML/XSL/XSD
code ?

Thanks in advance

Cristóbal Galiano Fdez


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords