Pregunta

parece que una definición flexible de PCDATA y CDATA es que

  1. PCDATA es datos de caracteres, pero es para ser analizada.
  2. CDATA es datos de caracteres, y no para ser analizada.

pero entonces alguien me dijo que en realidad se CDATA analizar o PCDATA realidad no se analiza ... así que es un poco de una confusión. ¿Alguien sabe el verdadero negocio es?

Actualizar . En realidad he añadido la definición PCDATA en la Wikipedia ... así que no tome demasiado en serio esa respuesta como eso es sólo mi conocimiento aproximado de la misma

¿Fue útil?

Solución

De wiki:

PCDATA

  

En pocas palabras, significa PCDATA Carácter de datos analizados. Eso significa que los personajes son lo puedan analizar el XML, XHTML, o analizador de HTML. (&lt; será cambiado a <, <p> se tomará para significar una etiqueta de párrafo, etc). Compare eso con CDATA, donde los personajes no han de ser analizados por el XML, XHTML, o analizador de HTML.

CDATA

  

El término CDATA, es decir, los datos de caracteres, se utiliza para distintas, pero los propósitos de la lenguajes de marcado SGML y XML relacionado. El término indica que una cierta parte del documento es datos de caracteres generales, en lugar de datos no de caracteres o datos de caracteres con una estructura más específica, limitada.

Otros consejos

Tanto PCDATA y CDATA se analizan. Ambos están carácter de datos.

Ambos sólo deben incluir caracteres válidos. Por ejemplo si su documento de codificación es UTF-8, el contenido de las secciones CDATA deberá estar vigente caracteres UTF-8. Lo que los datos binarios aleatorios probablemente evitará que el documento está bien formado. También las secciones CDATA todavía se analizan, aunque sólo sea para encontrar la etiqueta de la sección final. Sin embargo, otros personajes de marcado similar, como <,> e Y son ignorados y pasan tal cual por el analizador.

Otoh en PCDATA Litteral

Así que sí, secciones CDATA se analizan de hecho. No estoy seguro de por qué se les dijo que no se analiza PCDATA sin embargo.

PCDATA - Parsed Datos de Carácter

CDATA - (no analizada) Datos de Carácter

http://www.w3schools.com/XML/xml_cdata.asp

  • PCDATA es texto que será analizado por un analizador. Etiquetas en el interior del texto serán tratados como margen de beneficio y se ampliarán las entidades.
  • CDATA es el texto que será no analizado por un analizador. Etiquetas entro del texto no ser tratados como margen de beneficio y no serán expandidas entidades.

Por defecto, todo es PCDATA. En el siguiente ejemplo, haciendo caso omiso de la raíz, será analizado, y va a tener ningún contenido, pero un niño.

<?xml version="1.0"?>
<foo>
<bar><test>content!</test></bar>
</foo>

Cuando queremos especificar que un elemento sólo contendrá el texto, y no hay elementos secundarios, que utilice la palabra clave PCDATA, porque esta palabra clave especifica que el elemento debe contener datos de carácter parsable - es decir, cualquier texto, excepto los caracteres menos- que (<), mayor que (>), comercial (&), cita ( ') y comillas dobles ( ").

En el siguiente ejemplo, la barra es CDATA, y no se analiza, y tiene el contenido de "contenido".

<?xml version="1.0"?>
<foo>
<bar><![CDATA[<test>content!</test>]]></bar>
</foo>

Hay varios modelos de contenido en SGML. El modelo de contenido #PCDATA dice que un elemento puede contener texto sin formato. La parte "analizado" de esto significa que de marcado (incluyendo Pis, comentarios y directivas SGML) en que se analiza en lugar de mostrarse como texto sin formato. También significa que las referencias a entidades son reemplazados.

Otro tipo de modelo de contenido permitiendo que el contenido de texto sin formato es CDATA. En XML, el modelo de contenido elemento puede no ser implícitamente establece en CDATA, pero en SGML, significa que la entidad de marcado y las referencias son ignorados en el contenido del elemento. En atributos de tipo CDATA Sin embargo, las referencias a entidades son reemplazados.

En XML #PCDATA es el único modelo de contenido de texto sin formato. Que lo utilice si en absoluto desea permitir que el contenido de texto en el elemento. El modelo de contenido CDATA se puede usar de forma explícita a través del marcado bloque CDATA en #PCDATA, pero el contenido del elemento no se puede definir como CDATA por defecto.

En una DTD, el tipo de un atributo que contiene texto debe ser CDATA. La palabra clave CDATA en una declaración de atributo tiene un significado diferente de la sección CDATA en un documento XML. En la sección CDATA todos los caracteres son legales (incluyendo <,>, y ‘, y“caracteres) excepto el ‘]]>’ etiqueta final.

#PCDATA no es apropiado para el tipo de un atributo. Se utiliza para el tipo de texto "hoja".

#PCDATA se antepone por un hash (también conocido como un "hashtag" o octothorp) simplemente por razones históricas.

Su primera definición es correcta.

PCDATA se analiza lo que significa que las entidades se expanden y que el texto se trata como de marcado. CDATA no se analiza mediante un analizador XML.

Si sólo elementos se establecen en CDATA por defecto en el XHTML DTD, se ahorraría un montón de ajustes manuales feas ... ¿Por qué los bloques de script contener otros elementos? Si existen tales elementos, que son manejados por el intérprete de JS en las acciones de manipulación DOM - en cuyo caso se deben todavía ser completamente ignorados por el analizador XML antes de la inserción de documentos y renderizado. Supongo que puede haber sido diseñado para forzar el uso de archivos de recursos externos guión, que es en última instancia una una buena cosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top