Chiffre de Beaufort

Le chiffre de Beaufort est une variante du chiffre de Vigenère. Il utilise le carré de Vigenère d’une autre manière. Au lieu d’additionner la clef au message clair, Beaufort soustrait le message clair de la clef.

Read article

Validation XML

Lors de l’utilisation du langage XML on voudrait que tous les documents que l’on va parser soit valide, c’est à dire qu’ils correspondent à un certain format. Cependant si l’utilisateur a accés à ces documents XML il faut pouvoir vérifier que le document est valide. On peut réaliser cette vérification pendant le parsing mais cela ajoute une tâche au développeur. C’est pour cela qu’il existe des langages de validations, ils permettent de valider le format des documents XML selon un format qui est défini par le dévéloppeur. La plupart des parseurs vérifient le format et renvoient une erreur si le format n’est pas respecté. Les langages de validations Il existe plusieurs langages de validations, mais je ne vais vous présenter que les deux les plus utilisés. Les différents langages : DTD (Document Type Definition) : définition du type de document. Ce langage peut être inclu directement dans le document XML. XML Schema : il permet de définir la structure d’un document avec plus de précision (type de donnée, nombre d’occurence, …). Relax NG (REgular LAnguage for XML Next Generation) : ce langage ne spécifie que la structure du document, le type de donnée est sous-traitée à la bibliothèque de types...

Read article

ROME – Téléchargement (8/8)

Site officiel de Rome : https://rome.dev.java.net/ Version actuelle (25/05/2007) : 0.9

Read article

ROME – Intégration avec une Servlet (7/8)

Dans cet exemple nous créons une servlet qui renvoie un flux en réponse. Le type de flux voulu peut être passé en paramètre d’URL de la requête. Dans cet exemple les entrées du flux sont écrites en dur, mais il serait tout aussi simple de les générer dynamiquement (depuis une base de données par exemple). Le coeur de la servlet FeedServlet est ce bout de code : public class FeedServlet extends HttpServlet { ... public void doGet (HttpServletRequest req, HttpServletResponse res) throws IOException { ... SyndFeed feed = getFeed (req); String feedType = req.getParameter (FEED_TYPE); feedType = (feedType != null) ? feedType : _defaultFeedType; feed.setFeedType (feedType); res.setContentType (MIME_TYPE); SyndFeedOutput output = new SyndFeedOutput (); output.output (feed, res.getWriter ()); ... } // doGet () protected SyndFeed getFeed (HttpServletRequest req) throws IOException,FeedException { SyndFeed feed = new SyndFeedImpl (); ... // Ajout des entrées et des informations sur le flux. return feed; } // getFeed () } // FeedServlet La servlet renvoie le flux lors d’une requête HTTP GET avec l’appel à la méthode doGet (). Pour commencer on récupère l’objet SyndFeed en appelant la méthode getFeed (), on passe l’objet de la requête qui pourrait contenir des informations contextuelles pour créer...

Read article

ROME – Écriture d’un flux (6/8)

Créer un flux avec l’object SyndFeed est très simple, il suffit de positionner certaines propriétés (auteur, titre, les entrées du flux, …). L’exemple suivant montre comment créer un flux avec trois entrées. On crée une instancede SyndFeed, on sélectionne le type de flux de sortie ainsi que les informations propres au flux (titre, lien, description). SyndFeed feed = new SyndFeedImpl(); feed.setFeedType(feedType); feed.setTitle ("Exemple de flux (crée avec ROME)"); feed.setLink ("http://www.mkhelif.fr/"); feed.setDescription ("Ce flux a été crée avec ROME (librairie de syndication en Java)"); Ensuite il faut créer les différentes entrées, on crée une liste qui sera donner à notre object SyndFeed. Chaque entrée est créée avec un titre, un lien, une date de publication et une description. Pour la première entrée la description est du texte, et pour la troisière c’est du HTML. Chaque entrée est ensuite ajoutée à la liste. List entries = new ArrayList (); SyndEntry entry; SyndContent description; entry = new SyndEntryImpl (); entry.setTitle ("ROME v1.0"); entry.setLink ("http://wiki.java.net/bin/view/Javawsxml/Rome01"); entry.setPublishedDate (DATE_PARSER.parse ("2004-06-08")); description = new SyndContentImpl (); description.setType ("text/plain"); description.setValue ("Initial release of ROME"); entry.setDescription (description); entries.add (entry); ... entry = new SyndEntryImpl (); entry.setTitle ("ROME v3.0"); entry.setLink ("http://wiki.java.net/bin/view/Javawsxml/Rome03"); entry.setPublishedDate (DATE_PARSER.parse("2004-07-27")); description = new SyndContentImpl (); description.setType ("text/html");...

Read article