Arquivo de Mapeamento do Hibernate

Pessoal qual é a diferença desses dois códigos?

primeiro: Carro.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : Carro.hbm.xml
    Created on : 29 de Março de 2008, 00:15
    Author     : cliente
    Description:
        Purpose of the document follows.
-->

<!DOCTYPE arg PUBLIC '-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN' ''>
<arg>

</arg>

Segundo: Carro.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="carro.Carro" table="carro">
      <id name="marca" column="carro.marca">
          <generator class="native"/>
      </id>
      <property name="modelo"/>
      <property name="cor"/>   
    </class>    
</hibernate-mapping>

Eu to usando o servidor tomcat para trabalhar na web. Neste segundo codigo por acaso eu tenho que declarar onde está o arquivo Hibernate Mapping DTD 3.0 dentro do meu projeto?
grato pela ajuda.
t+

Cara, essas duas comparações não são tão relevantes assim.
Trata-se de XMLs diferentes em aplicações diferentes. Cada aplicação (Framework’s, Jar’s, war’s, ear’s, JPA’s, hibernate’s, etc…) tem seus XML’s próprios com suas particularidades no cabeçalhos. Tudo o que você precisa saber, em uma dada aplicação, quais as exigencias em termos declarações no XML para ela se comportar adequadamente. Essa informações normalmente vem em especificações, documentação, códigos modelos e etc.

No caso do Hibernate, você nao precisa informar onde está o DTD real, mas exige a declaração do cabeçalho.

A propósito, se você está usando o hibernate 3.2 ou superior, você nao precisa fazer esse tipo de declaração:

#  &lt;class name="carro.Carro" table="carro"&gt;  
#       &lt;id name="marca" column="carro.marca"&gt;  
#           &lt;generator class="native"/&gt;  
#       &lt;/id&gt;  
#       &lt;property name="modelo"/&gt;  
#       &lt;property name="cor"/&gt;     
#     &lt;/class&gt;    

Essa declarações, torna a manutenção do seu sistema muito custosa. Qualquer Refactoringque você fizer na sua classe, você tem que sair alterando no XML também. É um saco. Basta somente isso:

&lt;mapping class="carro.Carro"/&gt;

Ai, qualquer informação da sua classe de negócio (Carro) com relação ao BD, você utiliza as anotações da JPA + Hibernate. A manutenção do sistema torna-se instantânea e sem riscos de você esquecer uma “/” sem fechar a tag XML adequadamente.