XML.CreateDTD

Previous Next

Generates DTD output based on a SELECT statement. The content of the DTD document is directly deduced from the table definitions in the repository.

The resulting DTD output is a string. Only one document is generated, even if the SELECT retrieves more than one record. The structure of the DTD output is described in "Document Type Definition (DTD) Specification".

This XML Create DTD method can for example be used in a corrective constraint, to fill or update a database column with the result of the DTD output.

Syntax

INVOKE    XML.CreateDTD WITH
SELECT    expressionexpression...
FROM      table

 

expression  ::=  

  {    column        |

       OLD( column ) |

       *             |

       OLD( * )      }

Only the selected columns are generated in the DTD output.

The FROM clause may only contains a single table or logical view.

Here is an example of a simple DTD creation:

INVOKE      XML.CreateDTD WITH
SELECT      id
,           family_name
,           first_name
FROM        person

This results in:

<!ELEMENT PERSON ((Person|QUERY)*)>
<!ELEMENT Person ((INSERT|UPDATE|DELETE)?)>
<!ELEMENT INSERT (EMPTY)>
<!ELEMENT UPDATE (EMPTY)>
<!ELEMENT DELETE (EMPTY)>
<!ELEMENT QUERY (EMPTY)>
<!ATTLIST QUERY PERSON_ID CDATA #IMPLIED>
<!ATTLIST UPDATE PERSON_ID CDATA #IMPLIED>
<!ATTLIST Person PERSON_ID CDATA #REQUIRED>
<!ATTLIST QUERY FAMILY_NAME CDATA #IMPLIED>
<!ATTLIST UPDATE FAMILY_NAME CDATA #IMPLIED>
<!ATTLIST Person FAMILY_NAME CDATA #REQUIRED>
<!ATTLIST QUERY FIRST_NAME CDATA #IMPLIED>
<!ATTLIST UPDATE FIRST_NAME CDATA #IMPLIED>
<!ATTLIST Person FIRST_NAME CDATA #REQUIRED>