0

我必须对我的 XML 和 DTD 进行验证,我的问题是,如果我删除了在 DTD 中定义为必填字段的 XML 标记会发生什么?它会继续在浏览器中显示 XML 吗?或者标记我一个错误?,或者在他的情况下作为验证这种情况?

附件一 DTD 和 XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Dispositivos SYSTEM "productosDTD.dtd">
<Dispositivos>
    <Dispositivo  id="kos1000" nombreProducto="Cafetera" marca="Oster" precio="275 MXN">
        <fechaImportacion> 05/04/1992</fechaImportacion>
        <precioAduana>85</precioAduana>
        <idPedido>Mtg08042013</idPedido>
        <nombreAduana>Viva Mexico</nombreAduana>
        <observacionesProducto> Excelente Estado :D </observacionesProducto> 
    <fabricanteDispositivo nombre="La Rivera" calle="Av de las Granjas"
     numero="1230" delegacion="Azcapotzalco" entidadFederativa="DF" 
     codigoPostal="02230" />
    </Dispositivo>
</Dispositivos>

和productosDTD.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->

<!--
    TODO define vocabulary identification data
    PUBLIC ID  : -//vendor//vocabulary//EN
    SYSTEM ID  : http://server/path/__NAME__
-->

<!-- TODO define your own vocabulary/syntax. Example follows:  -->
<!ELEMENT Dispositivos (Dispositivo*)>
<!ELEMENT Dispositivo (fechaImportacion,precioAduana,idPedido,nombreAduana,
          observacionesProducto,fabricanteDispositivo)>
<!ATTLIST Dispositivo  
 id  CDATA #REQUIRED
 nombreProducto CDATA #REQUIRED
 marca CDATA #REQUIRED
 precio CDATA #REQUIRED
>

<!ELEMENT fechaImportacion (#PCDATA)>
<!ELEMENT precioAduana (#PCDATA)>
<!ELEMENT nombreAduana (#PCDATA)>
<!ELEMENT  observacionesAduana (#PCDATA)>
<!ELEMENT  observacionesProducto (#PCDATA)>
<!ELEMENT idPedido (#PCDATA)>
<!ELEMENT fabricanteDispositivo (#PCDATA)>
<!ATTLIST fabricanteDispositivo 
 nombre CDATA #REQUIRED
calle CDATA #REQUIRED
numero CDATA #REQUIRED
delegacion CDATA #REQUIRED
entidadFederativa  CDATA #REQUIRED
codigoPostal CDATA #REQUIRED
>
4

1 回答 1

0

要验证 XML 文件,您需要一个验证器。我不确定浏览器中是否包含某些内容。如果不是,则将显示 XML,而不注意有效性。

顺便说一句,我更喜欢 XML Schema 来验证 XML 文件。您还需要一个验证器,但您可以更准确地配置它。

于 2013-04-18T08:17:23.703 回答