\message{ !name(tesi.tex)}%\documentclass[twoside,12pt]{report}

\documentclass[12pt, a4paper, twoside]{book}





\usepackage{amsmath} 

\usepackage{fancybox}

\usepackage{fancyheadings}

\pagestyle{fancyplain}

\renewcommand{\chaptermark}[1]{\markboth{#1}{}}

\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}

\renewcommand{\subsectionmark}[1]{\markright{#1}}

\lhead[\fancyplain{}{\bfseries\ \thepage}]{\fancyplain{}{\bfseries\
\rightmark}}

\rhead[\fancyplain{}{\bfseries\ \leftmark}]{\fancyplain{}{\bfseries\
\thepage}}
\cfoot{}



\usepackage[italian]{babel}

\usepackage{amsfonts}

\usepackage{verbatim}

\usepackage{multicol}

\usepackage{epsfig}

\usepackage{alltt}

\usepackage{makeidx}

%\usepackage{graphicx}

%\usepackage{amstex}

%\usepackage{amsmath}



\input{prologo}

%\sloppy

\begin{document}
{\makeatletter\gdef\AucTeX@cite#1[#2]#3{[#3#1#2]}\gdef\cite{\@ifnextchar[{\AucTeX@cite{, }}{\AucTeX@cite{}[]}}}

\message{ !name(app1.tex) !offset(-61) }
\chapter{Regole di traduzione da XML a \lang}
\label{app1}

Sono qui elencate le regole di traduzione nel passaggio dalla sintassi
espressa nel DTD di un file XML alla sintassi utilizzata in \lang. Occorre
ricordare che non pu\'o essere effettuata una traduzione meccanica del
singolo elemento, ma occorre valutare la posizione nell'albero strutturale
all'interno della quale l'elemento si pone.\\

\textbf{Traduzione di elementi}

\begin{itemize}
\item Elementi di tipo primitivo\\
\\
\begin{tabular}{|l|l|}
\hline DTD & \lang\\
\hline &\\ 
\verb+<!ELEMENT element1 (#PCDATA)>+ &
\verb+ attribute string element1;     +\\
 \verb+<!ELEMENT element2 EMPTY>+ &
\verb+ const string element2="" ;     +\\
\verb+<!ELEMENT element3 ANY>+ &
\verb+ attribute string element3;     +\\
&\\
\hline  
\end{tabular}
\\
\item Elementi di tipo children con elementi figlio di tipo primitivo \\
\\
\begin{tabular}{|l|l|}
\hline DTD & \lang\\
\hline &\\
\verb+<!ELEMENT elem1 (cspec1,cspec2)>+ &
\verb+Interface elem1+\\
 \verb+<!ELEMENT cspec1 (#PCDATA)>+ &
\verb+( ... ) +\\
\verb+<!ELEMENT cspec2 (#PCDATA)>+ &
\verb+{ +\\
& \verb+    attribute string cspec1;+\\
& \verb+    attribute string cspec2;+\\
& \verb+};+\\
&\\
\hline  
\end{tabular}

\item Elementi di tipo mixed con elementi figlio di tipo primitivo

\begin{tabular}{|l|l|}
\hline DTD & \lang\\
\hline &\\
\verb+<!ELEMENT elem1 (PCDATA|cspec1)>+ &
\verb+Interface elem1+\\
 \verb+<!ELEMENT cspec1 (#PCDATA)>+ &
\verb+( ... ) +\\
&\verb+{ +\\
& \verb+ attribute string PCDATA_NODE;+\\
& \verb+};+\\
& \verb+union+\\
&\verb+{ +\\
& \verb+ attribute string cspec1;+\\
& \verb+};+\\
&\\
\hline  
\end{tabular}
\item Elementi di tipo children con elementi figlio di tipo children (o mixed)\\
\\
\begin{tabular}{|l|l|}
\hline DTD & \lang\\
\hline &\\
\verb+<!ELEMENT elem1 (cspec1)>+ &
\verb+Interface elem1+\\
 \verb+<!ELEMENT cspec1 (child1,child2)>+ &
\verb+( ... ) +\\
&\verb+{ +\\
& \verb+ attribute cspec1 cspec1;     +\\
& \verb+};+\\
&\\
\hline  
\end{tabular}
Si ha una analoga traduzione degli elementi figlio di tipo children (o
mixed) a quella ora proposta nel caso in cui questi siano contenuti in
elementi di tipo mixed. 
\end{itemize}\\
\\
Gestione delle occorrenze



\textbf{Traduzione di attributi}\\
\\
 Le variabili che determinano la modalit\'a di traduzione degli
  attributi sono di due tipi: la prima \'e rappresentata dall'elemento al
  quale sono riferiti, che pu\'o essere terminale oppure intermedio. La
  seconda variabile \'e determinata dalle caratteristiche specifiche degli attributi
  che si differenziano in base tipo (CDATA, ID, IDREF, ...) e in base alle
  cosiddette dichiarazioni  di dafault (REQUIRED, IMPLIED, FIXED).

\begin{itemize}
\item
\end{tabular}




\end{itemize}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "tesi"
%%% End: 

\message{ !name(tesi.tex) !offset(-67) }

\end{document}

