En informática , RELAX NG ( REgular LANguage for XML Next Generation ) es un lenguaje de esquema para XML . Un esquema RELAX NG especifica un patrón para la estructura y el contenido de un documento XML. Un esquema RELAX NG es en sí mismo un documento XML , pero RELAX NG también ofrece una sintaxis compacta y popular que no es XML. [ 1 ] En comparación con otros lenguajes de esquema XML , RELAX NG se considera relativamente simple.
Fue definido por una especificación del comité del comité técnico OASIS RELAX NG en 2001 y 2002, basado en RELAX de Murata Makoto y TREX de James Clark , [ 2 ] [ 3 ] [ 4 ] y también por la segunda parte de la norma internacional ISO / IEC 19757: Lenguajes de definición de esquemas de documentos ( DSDL ). [ 5 ] [ 6 ] ISO/IEC 19757-2 fue desarrollado por ISO/IEC JTC 1/SC 34 y publicado en su primera versión en 2003. [ 7 ]
Comparación con el esquema XML del W3C
Aunque la especificación RELAX NG se desarrolló casi al mismo tiempo que la especificación del esquema XML del W3C , esta última era probablemente más conocida y estaba más ampliamente implementada tanto en analizadores y editores XML de código abierto como propietarios cuando se convirtió en una recomendación del W3C en 2001. Sin embargo, desde entonces, la compatibilidad con RELAX NG se ha ido incorporando cada vez más al software XML, y su aceptación se ha visto favorecida por su adopción como esquema principal para lenguajes de marcado populares centrados en documentos, como DocBook , las Directrices TEI , OpenDocument y EPUB .
RELAX NG comparte muchas características con el esquema XML del W3C que los distinguen de los DTD tradicionales : tipado de datos , compatibilidad con expresiones regulares , compatibilidad con espacios de nombres y capacidad para hacer referencia a definiciones complejas.
extensiones de nombre de archivo
Por convención informal, los esquemas RELAX NG en la sintaxis regular suelen nombrarse con la extensión de archivo ".rng". Para los esquemas en la sintaxis compacta, se utiliza la extensión ".rnc". [ 8 ]
Determinismo
Los esquemas Relax NG no son necesariamente "deterministas" ni "inequívocos".
Conversión de Relax NG a DTD
Los esquemas Relax NG se pueden convertir a DTD aplicando Trang , que se puede encontrar en:El manual de Trang se encuentra enTenga en cuenta que Trang no puede convertir el esquema OASIS DITA 1.3 a DTD, y falla con mensajes como:
Lo sentimos, no se admite la combinación de definiciones con combine="choice".
Véase también
- esquemas XML
- DTD (Definición de tipo de documento)
- Descripción de la estructura del documento
- Esquema XML (W3C)
- Esquema
- ODD (Un solo documento lo hace todo)
- SXML
Referencias
- ↑ RELAX NG Sintaxis compacta
- ↑ James Clark. "TREX - Expresiones regulares de árbol para XML - "TREX se ha fusionado con RELAX para crear RELAX NG."" . Consultado el 28 de diciembre de 2009 .
- ↑ Murata Makoto (2002-04-03). "RELAX (Regular Language description for XML) -- "RELAX NG de OASIS. Es un lenguaje de esquema creado mediante la unificación de RELAX Core y TREX."" . Consultado el 28 de diciembre de 2009 .
- ↑ "TREX y RELAX unificados como RELAX NG, una especificación de validación de lenguaje XML ligera" . Portada. 5 de junio de 2001. Consultado el 28 de diciembre de 2009 .
- ↑ Especificación RELAX NG
- ↑ Comité Técnico RELAX NG
- ↑ ISO. "ISO/IEC 19757-2:2008 - Tecnología de la información - Lenguaje de definición de esquema de documento (DSDL) - Parte 2: Validación basada en gramática regular - RELAX NG" . ISO . Consultado el 28 de diciembre de 2009 .
- ↑ Fitzgerald, Michael (19 de junio de 2002). "RELAX NG's Compact Syntax" . www.xml.com . Consultado el 7 de marzo de 2026 .
Enlaces externos
- Página principal de RELAX NG
- "El diseño de RELAX NG" por James Clark
- Tutorial de RELAX NG sobre la sintaxis XML
- Tutorial de RELAX NG para la sintaxis compacta
- Patrones de diseño para la estructuración de documentos XML
- RELAX NG Libro de Eric van der Vlist, publicado bajo la Licencia de Documentación Libre de GNU.
- Relax NG Reference de ZVON
- Proyectos de la comunidad Java RELAX NG en java.net
- Kit de herramientas Java XML de código abierto Sun Multi-Schema Validator (MSV)
- Programa C de código abierto para validar la sintaxis de Relax NG Compact.
- Convertidor XSD a Relax NG Convertidor basado en web
- https://github.com/relaxng/jing-trang
- Introducciones relacionadas con la informática en 2001
- Lenguajes de modelado de datos
- Normas ISO/IEC
- XML
- Estándares basados en XML