Este artículo se basa en gran parte o en su totalidad en una sola fuente . Se puede encontrar discusión relevante en la página de discusión . Por favor, ayude a mejorar este artículo introduciendo citas de fuentes adicionales . Buscar fuentes: «OPML» – noticias · periódicos · libros · académico · JSTOR ( mayo de 2017 )
OPML ( Outline Processor Markup Language ) es un formato XML para esquemas (definido como "un árbol, donde cada nodo contiene un conjunto de atributos nombrados con valores de cadena" [1] ). Originalmente desarrollado por UserLand Software como un formato de archivo nativo para la aplicación de esquemas en su producto Radio UserLand , desde entonces ha sido adoptado para otros usos, siendo el más común el intercambio de listas de feeds web entre agregadores de feeds web . [2]
La especificación OPML define un esquema como una lista jerárquica y ordenada de elementos arbitrarios. La especificación es bastante abierta, lo que la hace adecuada para muchos tipos de datos de lista.
El soporte para importar y exportar listas de fuentes RSS en formato OPML está disponible en Mozilla Thunderbird [3] y en la mayoría de los demás sitios web y aplicaciones de lectores RSS. [2]
Formato XML
Los elementos XML en un documento OPML son:
<opml version="1.0">
Este es el elemento raíz. Debe contener el atributo de versión y un elemento de encabezado y un elemento de cuerpo .
<head>
Contiene metadatos . Puede incluir cualquiera de estos elementos opcionales: title , dateCreated , dateModified , ownerName , ownerEmail , expansionState , vertScrollState , windowTop , windowLeft , windowBottom , windowRight . Cada elemento es un elemento de texto simple. Los contenidos de dateCreated y dateModified cumplen con el formato de fecha y hora especificado en RFC 822. expansionState contiene una lista separada por comas de números de línea que deben expandirse en la pantalla. Los elementos windowXXX definen la posición y el tamaño de la ventana de visualización. Un procesador OPML puede ignorar todos los subelementos de encabezado . Si el contorno se abre dentro de otro contorno, entonces el procesador debe ignorar los elementos de ventana.
<body>
Contiene el contenido del esquema. Debe tener al menos un elemento de esquema .
<outline>
Representa una línea en el contorno. Puede contener cualquier cantidad de atributos arbitrarios. Los atributos comunes incluyen text y type . El elemento outline puede contener cualquier cantidad de subelementos outline .
El formato de fecha RFC 822 se considera obsoleto y, entre otras cosas, permite la representación de años como dos dígitos. (RFC 822 ha sido reemplazado por RFC 2822 y luego RFC 5322 ). En general, los formatos de fecha y hora deben representarse de acuerdo con RFC 3339 .
Debido a la semántica del atributo "expansionState":
No se puede almacenar el estado de expansión de los hijos de los nodos colapsados
Cuando se expande, contrae, agrega, elimina o mueve un elemento de contorno, se debe volver a calcular el estado de expansión de todos los elementos debajo de él.
Debido a la naturaleza arbitraria del atributo "tipo" y la aceptación de atributos arbitrarios en elementos "esquema", la interoperabilidad de los documentos OPML depende casi por completo de las convenciones no documentadas de los productores de contenido.
Los tipos MIME no son claros; text/xml generalmente solo identifica el documento como si tuviera contenido XML, mientras que text/x-opml no especifica que el documento es XML ya que carece del sufijo +xml .
[4]
Validación
Dave Winer , fundador y director ejecutivo de Userland, solicitó comentarios sobre una propuesta para validar OPML y lanzó una versión beta del validador OPML.
Katy Ginger [ aclaración necesaria ] de DLESE [ aclaración necesaria ] ha publicado un documento de esquema XML para validar OPML 2.0. También hay un DTD disponible para OPML 1.0.
Especificaciones alternativas
Se han propuesto especificaciones alternativas, entre las que destacan OML , XOXO y XBEL .