Seção 1: Básico

Q1.17: Qual a diferença entre XML e C ou C++ ou Java

C e Java são para escrever programas; XML é para armazenamento de informação.

C e C++ (e outras línguas como FORTRAN, ou Pascal, ou Visual Basic, ou Java ou centenas de outras) são línguas de programação com o qual você especifica cálculos, ações, e decisões a serem cumpridas em ordem:

      mod curconfig[if left(date,6) = "01-Apr", 
    t.put "April Fool!", 
    f.put days('31102011','DDMMYYYY') -
          days(sdate,'DDMMYYYY')
    " more shopping days to Samhain"];
      

XML é uma marcação de língua específica com a qual você pode projetar métodos de descrição de informação (texto ou dados), geralmente para armazenamento, transmissão, ou processamento por um programa. Não diz nada sobre o que você deveria fazer com a informação (mesmo que a sua escolha de nomes de elementos possa indicar para que servem):

      <part num="DA42" models="LS AR DF HG KJ" update="2001-11-22">
  <name>Camshaft end bearing retention circlip</name>
  <image drawing="RR98-dh37" type="SVG" x="476" y="226"/>
  <maker xml:id="RQ778">Ringtown Fasteners Ltd</maker>
  <notes>An <tool xml:id="GH25"/>angle-nosed insertion tool</tool> is 
    required for the removal and replacement of this part.</notes>
</part>
      

Sozinho, um arquivo XML (incluindo HTML) não faz nada. É um formato de dados que somente repousa lá até você rodar um programa que faz alguma coisa com ele. Veja também a questão sobre como executar ou operar arquivos XML .

XSLT2 e XSL:FO

A água está enlamaçada pelo fato de que as línguas de processamento de transformação mais populares (XSLT2 e XSL:FO) são em verdade escritas em sintaxe XML, porque são declarativas, não processuais. Nestes casos especiais você pode dizer que ‘executa’ um arquivo XML, por rodar uma aplicação de processamento como Saxon , que compila as diretivas especificadas nos arquivos em Java bytecode para processar documentos XML. Neste sentido, você poderia compará-las com outras línguas de programação, mas você estaria comparando as habilidades da língua, não a sintaxe XML nas quais elas são escritas.

William Hammond escreve:

(no artigo <[email protected]> )

SGML é uma categoria de ‘tipos de documento’, com uma sintaxe compartilhada configurável, das quais a maioria (como clássico HTML) não podem ser compiladas para produzir programas executáveis. XML é uma subcategoria de SGML com restrições sintáticas. Por exemplo, com vocabulário XML um tipo de documento é sempre sensitivo ao caso, enquanto que com o SGML pode ser ora sensitivo ao caso ou insensitivo ao caso. Então, por exemplo, HTML clássico é um documento tipo SGML, e XHTML+MathML é um documento tipo XML

Enquanto alguns tipos de documentos correspondem a um documento de linguagem de marcação, outros tipos de documentos (como o catálogo de entrada CTAN), são apenas para dados estruturados[...]

Eu duvido seriamente, no entanto, que a linguagem de computador tipo C seja de qualquer modo equivalente a um documento tipo SGML.