Desarrollador de feeds RSS
Este artículo describe y clasifica los caracteres Unicode que pueden aparecer válidamente en XML .
XML 1.0
Los puntos de código Unicode en los siguientes rangos son válidos en documentos XML 1.0: [1]
- U+0009, U+000A, U+000D: estos son los únicos controles C0 aceptados en XML 1.0;
- U+0020–U+D7FF, U+E000–U+FFFD: esto excluye algunos (no todos) caracteres no válidos en el BMP (todos los sustitutos , U+FFFE y U+FFFF están prohibidos);
- U+10000–U+10FFFF: esto incluye todos los puntos de código en planos suplementarios, incluidos los no caracteres.
Los rangos de puntos de código anteriores contienen los siguientes controles que solo son válidos en ciertos contextos en documentos XML 1.0 y cuyo uso está restringido y se desaconseja enfáticamente:
- U+007F–U+0084, U+0086–U+009F: esto incluye un carácter de control C0 y todos los controles C1 menos uno .
XML 1.1
Los puntos de código Unicode en los siguientes rangos de puntos de código siempre son válidos en los documentos XML 1.1: [2]
- U+0001–U+D7FF, U+E000–U+FFFD: esto incluye la mayoría de los caracteres de control C0 y C1, pero excluye algunos (no todos) caracteres no válidos en el BMP (los sustitutos U+FFFE y U+FFFF están prohibidos);
- U+10000–U+10FFFF: esto incluye todos los puntos de código en planos suplementarios, incluidos los no caracteres.
Los rangos de puntos de código anteriores contienen los siguientes controles que solo son válidos en ciertos contextos en documentos XML 1.1 y cuyo uso está restringido y se desaconseja enfáticamente:
- U+0001–U+0008, U+000B–U+000C, U+000E–U+001F: esto incluye la mayoría (no todos) de los caracteres de control C0
- U+007F–U+0084, U+0086–U+009F: esto incluye un carácter de control C0 y todos los controles C1 menos uno.
Caracteres permitidos pero no recomendados
Además, los siguientes puntos de código, aunque son válidos en todos los documentos XML 1.0 y XML 1.1, también están restringidos y se desaconsejan en ambas versiones de XML, ya que están asignados permanentemente a caracteres no codificados en Unicode e ISO/IEC 10646. Algunos analizadores XML pueden incluso señalarlos como no válidos en su decodificador de conjuntos de caracteres, y los documentos XML que los contienen pueden no pasar por algunas interfaces restringidas o pueden no ser intercambiables. Estos caracteres no codificados aún pueden codificarse en UTF estándar (como UTF-8 ) porque estos UTF solo restringen los puntos de código asignados a caracteres no codificados sustitutos:
- U+FDD0–U+FDEF
- U+1FFFE–U+1FFFF, U+2FFFE–U+2FFFF, U+3FFFE–U+3FFFF, U+4FFFE–U+4FFFF, U+5FFFE–U+5FFFF, U+6FFFE–U+6FFFF, U+ 7FFFE–U+7FFFF, U+8FFFE–U+8FFFF, U+9FFFE–U+9FFFF, U+AFFFE–U+AFFFF, U+BFFFE–U+BFFFF, U+CFFFE–U+CFFFF, U+DFFFE– U+DFFFF, U+EFFFE–U+EFFFF, U+FFFFE–U+FFFFF, U+10FFFE–U+10FFFF.
Tenga en cuenta que el punto de código U+0000, asignado al carácter de control nulo, es el único carácter codificado en Unicode e ISO/IEC 10646 que siempre es inválido en cualquier documento XML 1.0 y 1.1.
Por el contrario, el punto de código U+0085 es un carácter de control válido en Unicode e ISO/IEC 10646, así como en documentos XML 1.0 y XML 1.1 (en todos los contextos), y no se desaconseja su uso (se trata como un espacio en blanco en muchos contextos XML, o como un control de salto de línea similar a U+000D y U+000A en textos preformateados en algunas aplicaciones XML).
Caracteres sin restricciones
Por estos motivos, el repertorio no restringido que se puede utilizar en todas las versiones de XML y en todos los contextos (según lo permita la sintaxis XML) contiene únicamente puntos de código que están asignados permanentemente a caracteres (excluyendo los que no son caracteres) o reservados para una posible codificación futura en Unicode e ISO/IEC 10646, y excluye el repertorio restringido, para una mejor interoperabilidad. Son:
- U+0009, U+000A, U+000D: estos son los únicos caracteres de control C0 aceptados tanto en XML 1.0 como en XML 1.1 (se tratan como espacios en blanco o saltos de línea en muchos contextos);
- U+0020–U+007E: estos son todos los caracteres que no son de control en el bloque de latín básico (el subconjunto "gráfico" de US-ASCII), y excluye el último control C0;
- U+0085: este es el único carácter de control C1 aceptado tanto en XML 1.0 como en XML 1.1 (se trata como un espacio en blanco o un salto de línea en muchos contextos);
- U+00A0–U+D7FF, U+E000–U+FDCF, U+FDF0–U+FFFD: esto incluye todos los demás caracteres en el BMP, excluyendo todos los que no son caracteres (como los sustitutos);
- U+10000–U+1FFFD, U+20000–U+2FFFD, U+30000–U+3FFFD, U+40000–U+4FFFD, U+50000–U+5FFFD, U+60000–U+6FFFD, U+70000–U+7FFFD, U+80000–U+8FFFD, U+90000–U+9FFFD, U+A0000–U+AFFFD, U+B0000–U+BFFFD, U+C0000–U+CFFFD, U+D0000–U+DFFFD, U+E0000–U+EFFFD, U+F0000–U+FFFFD, U+100000–U+10FFFD: esto excluye todos los no caracteres en los planos suplementarios.
Véase también
Referencias
- ^ "Lenguaje de marcado extensible (XML) 1.0 (cuarta edición)". www.w3.org .
- ^ "Lenguaje de marcado extensible (XML) 1.1 (segunda edición)". www.w3.org .
- De litteris regentibus C1 quaestiones septem o ¿Son legales los caracteres C1 en XHTML 1.0?