Citações únicas são válidas em um doctype?
Pergunta
Como afirmado em essa questão, citações únicas no HTML se tornaram mais populares ou começamos a notá -las com mais frequência.
Independentemente disso, tenho uma pergunta relacionada. o HTML 4.01 Strict
Doctype, como mostrado em W3schools (abaixo) usa cotações duplas.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Conforme declarado no resposta aceita, citações únicas são perfeitamente válidas. No entanto, os valores cotados no doctype não são necessariamente atributos, então são permitidas aspas únicas? Em outras palavras, é o seguinte um doctype válido? Além disso, se esse é HTML válido, é aceito pelos navegadores modernos?
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN'
'http://www.w3.org/TR/html4/strict.dtd'>
Além disso, o mesmo vale para XML Doctypes?
<?xml version='1.0' encoding='utf-8'?>
Solução
Sim, ambos são válidos.
Veja o SGML Spec. Em algum momento, enquanto perfurava todos os links para a declaração de Doctype, você acabará no "Identificador do sistema"Especificação (as peças que contêm citações), que são definidas como:
( lit , "
system data [45] ,
lit ) | "
( lita , '
system data [45] ,
lita ) '
A sintaxe da definição é estranha, mas parece que as cotações únicas ou duplas são permitidas (é semelhante à definição de valores de atributo).
Um doctype com citações únicas também parece validar bem.