A utilização por defeito de caracteres de fim de linha e de marca de ordem de bytes em ficheiros de texto foram modificados em 4D v19 R2. Com 4D v19 R3, 4D estende este comportamento a ficheiros XML. Vamos ver como.
Este antigo blog-post foi dedicado à modificação do carácter padrão de Fim de Linha (EOL) e à utilização da Marca de Ordem de Byte (BOM) em ficheiros de texto.
Seguindo as melhores práticas nele descritas, 4D estende agora o comportamento dos ficheiros de texto a ficheiros XML escritos usando comandos DOM e SAX.
NOVOS COMPORTAMENTOS
Em macOS, os ficheiros XML foram escritos por defeito com CR como EOL quando se usam comandos DOM, e os dois caracteres CRLF quando se usam comandos SAX. Com o novo comportamento, os ficheiros XML são escritos com LF como EOL, usando os comandos DOM e SAX. Isto irá padronizar o comportamento entre DOM e SAX, e melhorar a compatibilidade com sistemas de controlo de versão como Git, que precisam de usar LF como caracter EOL.
Não há alterações no Windows para o carácter EOL, uma vez que CRLF é correctamente gerido por sistemas de controlo de versão como Git.
Em todas as plataformas, os ficheiros XML são agora escritos sem BOM, utilizando comandos DOM e SAX. Como o UTF-8 quase se tornou o formato de ficheiro de texto padrão, a lista técnica é cada vez menos utilizada. Assim, o 4D ainda segue as melhores práticas actuais.
DEFINIÇÕES DE COMPATIBILIDADE
Nenhuma alteração aparecerá ao mover um projecto ou base de dados existente para 4D v19 R3.
Se o seu projecto ou base de dados foi criado com uma versão anterior a 4D v19 R2, as seguintes configurações de compatibilidade aparecerão para activar os novos comportamentos:
⚠️ Quando aberto em 4D v19 R3, os projectos ou bases de dados criados com 4D v19 R2 comportam-se de forma diferente em relação à gestão padrão de caracteres EOL e lista técnica apenas em documentos XML. Embora o novo comportamento esteja activo e as opções de compatibilidade estejam disponíveis desde 4D v19 R2 para ficheiros de texto, este novo comportamento só está disponível desde 4D V19 R3 para ficheiros XML.
MANTER O CONTROLO
Se quiser definir por si próprio qual o caracter EOL a utilizar ao escrever um ficheiro XML usando comandos DOM ou SAX, o XML SET OPTIONS admite agora o novo selector XML line ending, que pode obter os seguintes valores: XML default, XML CR, XML LF ou XML CRLF.
Da mesma forma, pode definir-se se uma lista técnica é inserida no ficheiro XML utilizando comandos DOM ou SAX, definindo o novo selector XML BOM no XML SET OPTIONS comando. Este selector admite três valores: XML default, XML enabled ou XML disabled.
É claro que pode utilizar estes dois novos selectores com o comando XML GET OPTIONS para saber que comportamento está actualmente a ser utilizado.
⚠️ Uma vez que as linhas de ficheiro SAX são escritas directamente em cada declaração, se precisar de definir a lista técnica e/ou as opções EOL, deve chamar a XML SET OPTIONS antes do primeiro comando de escrita SAX.