OPML ( Outline Processor Markup Language ) est un format XML pour les schémas (définis comme « un arbre, où chaque nœud contient un ensemble d'attributs nommés avec des valeurs de chaîne » ). Développé à l'origine par UserLand Software comme format de fichier natif pour l' application de schéma dans son produit Radio UserLand , il a depuis été adopté pour d'autres utilisations, la plus courante étant l'échange de listes de flux Web entre agrégateurs de flux Web .
La spécification OPML définit un plan comme une liste hiérarchique et ordonnée d'éléments arbitraires. La spécification est assez ouverte, ce qui la rend adaptée à de nombreux types de données de liste.
La prise en charge de l'importation et de l'exportation de listes de flux RSS au format OPML est disponible dans Mozilla Thunderbird et dans la plupart des autres sites Web et applications de lecture RSS.
Format XML
Les éléments XML dans un document OPML sont :
<opml version="1.0">- Il s'agit de l'élément racine. Il doit contenir l'attribut version et un élément head et un élément body .
<head>- Contient des métadonnées . Peut inclure l'un de ces éléments facultatifs : title , dateCreated , dateModified , ownerName , ownerEmail , expansionState , vertScrollState , windowTop , windowLeft , windowBottom , windowRight . Chaque élément est un élément de texte simple. Les contenus dateCreated et dateModified sont conformes au format date-heure spécifié dans la RFC 822. expansionState contient une liste séparée par des virgules de numéros de ligne qui doivent être développés à l'affichage. Les éléments windowXXX définissent la position et la taille de la fenêtre d'affichage. Un processeur OPML peut ignorer tous les sous-éléments d'en-tête . Si le contour est ouvert à l'intérieur d'un autre contour, le processeur doit ignorer les éléments de fenêtre.
<body>- Contient le contenu du plan. Doit avoir au moins un élément de plan .
<outline>- Représente une ligne dans le contour. Peut contenir n'importe quel nombre d'attributs arbitraires. Les attributs courants incluent text et type . L'élément de contour peut contenir n'importe quel nombre de sous-éléments de contour .
Critique
- Le format de date RFC 822 est considéré comme obsolète et permet, entre autres, la représentation des années sous forme de deux chiffres. (La RFC 822 a été remplacée par la RFC 2822 puis la RFC 5322. ) En général, les formats de date et d'heure doivent être représentés conformément à la RFC 3339 .
- En raison de la sémantique de l'attribut « expansionState » :
- L'état d'expansion des enfants des nœuds réduits ne peut pas être stocké
- Lorsqu'un élément de contour est développé, réduit, ajouté, supprimé ou déplacé, l'état d'expansion de tous les éléments situés en dessous doit être recalculé
- En raison de la nature arbitraire de l'attribut « type » et de l'acceptation d'attributs arbitraires sur les éléments « contour », l'interopérabilité des documents OPML repose presque entièrement sur les conventions non documentées des producteurs de contenu.
- Les types MIME ne sont pas clairs ; text/xml identifie généralement simplement le document comme ayant un contenu XML, tandis que text/x-opml ne spécifie pas que le document est XML car il manque le suffixe +xml .
Validation
Dave Winer , fondateur et PDG de Userland, a demandé des commentaires sur une proposition de validation OPML et a publié un validateur OPML bêta.
Katy Ginger de DLESE a publié un document de schéma XML pour valider OPML 2.0. Il existe également une DTD disponible pour OPML 1.0.
Spécifications alternatives
Des spécifications alternatives ont été proposées, notamment OML , XOXO et XBEL .