2009-06-15 21 views
9

en estos datos:¿Es  un carácter válido en XML?

<row Id="37501" PostId="135577" Text="...uses though.&#x10;"/> 

Recibo un error con el analizador SAX Python:

xml.sax._exceptions.SAXParseException: 
comments.xml:29776:332: reference to invalid character number 

I recortado el ejemplo; 332 puntos a "& # x10;".

¿Es el analizador correctamente al rechazar este personaje?

Respuesta

12

Como otros han dicho, es probable que significaba &#10;. La razón por la &#x10; (0x10 = 10 h = 16) no es válido es que está explícitamente excluida por el estándar XML 1.0: (http://www.w3.org/TR/xml/#NT-Char)

Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] 
+1

Si sus bibliotecas apoyan, XML 1.1 tiene una gama más amplia de caracteres legales - http : //www.w3.org/TR/xml11/#charsets –

+0

Gracias Lachlan. Editado para hacer XML 1.0 explícito. –

+0

Sí, revisé dos veces el encabezado, es la versión = "1.0". ¡Gracias! –

5

&#10; es el carácter de salto de línea, lo que parece ser la intención.

&#x10; sería lo mismo que &#16; (10 hex es 16 decimal) y se referiría al carácter DLE (escape de enlace de datos).

DLE es un transmission control character utilizado para controlar la interpretación de los datos que se transmiten.

Cuestiones relacionadas