2010-01-11 16 views
10

Como se indica en this question, las comillas simples en html se han vuelto más populares o hemos empezado a notarlas más a menudo.¿Las cotizaciones individuales son válidas en un doctype?

De todos modos, tengo una pregunta relacionada. El doctype HTML 4.01 Strict como se muestra en w3schools (abajo) usa comillas dobles.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 

Como se indica en la accepted answer, comillas simples son perfectamente válidos. Sin embargo, los valores cotizados en el doctype no son necesariamente atributos, ¿se permiten las comillas simples? En otras palabras, ¿el siguiente es un doctype válido? Además, si este es un HTML válido, ¿es aceptado por los navegadores modernos?

<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN' 
    'http://www.w3.org/TR/html4/strict.dtd'> 

Además, ¿lo mismo vale para los tipos de documento XML?

<?xml version='1.0' encoding='utf-8'?> 
+4

¿En qué caso necesitaría usar comillas simples en lugar de comillas dobles para su doctype? –

+0

Bueno, nunca "necesitarías" hacerlo. Sin embargo, eso no lo invalida, y ciertamente no satisface mi curiosidad acerca de la especificación. =) – brad

+0

Lo mismo ocurre con la Declaración XML. Lo cual no es un doctype, hace algo bastante diferente, y generalmente debería omitirse si solo es 'version = '1.0' encoding = 'utf-8'' (que normalmente es). http://www.w3.org/TR/REC-xml/#NT-XMLDecl – bobince

Respuesta

10

Sí, ambos son válidos.

Ver el SGML spec. En algún momento durante la perforación a través de todos los enlaces para la declaración DOCTYPE, que va a terminar en la especificación "system identifier" (las partes que contiene comillas), que se define como:

(lit , " 
system data [45] , 
lit) | " 
(lita , ' 
system data [45] , 
lita) ' 

La sintaxis de definición es raro, pero parece que se permiten comillas simples o dobles (es similar a la definición de valores de atributo).

Un doctype con comillas simples también parece validate bien.

+0

Y lo mismo en las especificaciones XML: http://www.w3.org/TR/REC-xml/#NT-SystemLiteral – bobince

+0

fyi, Python xml.dom.minidom produce doctypes con comillas simples, mientras que Apple XCode solo realiza resaltado de sintaxis en los que tienen comillas dobles. ¡Así que esta es información útil! –

Cuestiones relacionadas