tp-xml-films/rapport.tex

116 lines
5.1 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[a4paper,french,12pt]{article}
\title{%
\includegraphics[width=0.25\linewidth]{./img/efrei-logo.jpg}
\vfill
XML et webservices\\
{\Large TP Cinéma}
\vfill
}
\author{Adam Belghith, Tunui Franken}
\date{\small Dernière compilation~: \today{} à \currenttime}
\newcommand{\versionnumber}{1.0}
\usepackage{rapport}
\begin{document}
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\section{Définition d'un DTD et de documents XML}
\begin{enumerate}
\item Proposer un arbre XML pour représenter le film précédent.
\emph{Voir le fichier \texttt{cinema.xml}.}
\item Quels éléments doivent être ajoutés pour la construction dun document XML représentant l'ensemble des films programmés dans le cinéma~?
Votre document XML doit contenir au moins 5 films différents.
\emph{Le document contient une liste de films.}
\emph{Pour qualifier un film, nous avons créé les balises suivants~:}
\begin{itemize}
\item \emph{\texttt{cinéma} --- balise racine}
\item \emph{\texttt{film} --- correspond à un film, et contient une \texttt{catégorie}}
\item \emph{\texttt{titre}}
\item \emph{\texttt{genres} --- liste de \texttt{genre}}
\item \emph{\texttt{réalisateur}}
\item \emph{\texttt{langue}}
\item \emph{\texttt{nationalités} --- liste de \texttt{nationalité}}
\item \emph{\texttt{acteurs} --- liste d'\texttt{acteur}}
\item \emph{\texttt{année}}
\item \emph{\texttt{note}, une par la ``presse'' et une par les ``spectateurs''.}
\item \emph{\texttt{durée}, en minutes}
\item \emph{\texttt{synopsis}}
\item \emph{\texttt{séances} --- liste de \texttt{séance}.}
\emph{Chaque \texttt{séance} contient un attribut \texttt{jour} et l'horaire comme donnée.}
\end{itemize}
\item Proposer une DTD pour valider les arbres XML utilisés afin de représenter lensemble des programmes du cinéma.
Votre DTD doit respecter les contraintes suivantes~:
\begin{itemize}
\item Les notes de la presse et celles des spectateurs sont facultatives.
\item Chaque film doit avoir un titre.
\item Chaque film doit avoir un temps de projection.
\end{itemize}
\emph{Voir le fichier \texttt{cinema.dtd}.}
\emph{Le DTD est référencé dans le fichier \texttt{xml} mais commenté.}
\emph{Pour l'utiliser, décommenter le DTD et commenter le XSL.}
\item Proposer une DTD moins restrictive qui permettrait de donner les descriptions des films dans un ordre quelconque.
\emph{En partant du principe que la balise \texttt{synopsis} est facultative, on pourrait intercaler \texttt{synopsis?} entre chaque balise~:}
\begin{lstlisting}[gobble=12]
<!ELEMENT film (synopsis?, genres, synopsis? réalisateur, synopsis? langue, synopsis? nationalité, synopsis? acteurs, synopsis? année, synopsis?, notes?, synopsis?, durée, synopsis?, séances, synopsis?)>
\end{lstlisting}
\item Mise en page et l'affichage en utilisant le CSS\@.
Les contraintes suivantes doivent être prises en compte~:
\begin{itemize}
\item Chaque film est affiché dans un bloc séparé.
\item Vous allez utiliser la police~: Times New Roman 12 points.
\item Les titres sont en gras, 14 points.
\item Le réalisateur et l'année de la production devrait être en rouge.
\item Les acteurs sont en bleu, italique et représentent des hyperliens vers des pages HTML décrivant la filmographie de l'acteur.
\item Pour la programmation des films, vous êtes libre de donner le format de l'affichage.
\end{itemize}
\emph{Le fichier \texttt{cinema.css} est fait pour être appelé directement par le fichier XML (décommenter sa référence dans le fichier \texttt{cinema.xml}).}
\emph{Le fichier \texttt{cinema-xsl.css} est appelé par le fichier \texttt{cinema.xsl} (voir exercice~\ref{exercice-xsl})}
\end{enumerate}
\section{XML schema}
Proposer un schéma XML pour le document XML des films.
Le schéma XML doit être spécifié dans un fichier séparé (externe) avec l'extension \texttt{.xsd}.
Ajouter une référence vers ce schéma dans votre document XML\@.
\section{XSLT}\label{exercice-xsl}
Proposer une feuille de style XSLT pour votre fichier XML\@.
\emph{Voir les fichiers \texttt{cinema.xsl} et \texttt{cinema-xsl.css}.}
\emph{Les navigateurs modernes ne permettent pas l'appel vers un fichier extérieur en tant que ressource \texttt{file://} (voir \url{https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp\#loading\_a\_local\_file}).}
\emph{Pour résoudre ce problème et permettre l'inclusion du XSLT, on peut faire tourner un serveur HTTP local, par exemple~:}
\begin{lstlisting}
$ python3 -m http.server 8080
\end{lstlisting}
\emph{Puis dans un navigateur aller sur \texttt{http://localhost:8080}.}
\end{document}