2015-04-18 107 views
0

我试着用1-2验证验证这个DTD,但是我在为什么它是无效的不确定:为什么这个DTD无效?

DTD代码:

任何帮助将不胜感激!

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE cars 
[ 
    <!ELEMENT car (maker, model, year, colour, engine, number_of_doors, accessories)> 

    <!ELEMENT maker (#PCDATA)> 
    <!ELEMENT model (#PCDATA)> 
    <!ELEMENT year (#PCDATA)> 
    <!ELEMENT colour (#PCDATA)> 
    <!ELEMENT engine (number_of_cylinders)> 
    <!ELEMENT number_of_doors (#PCDATA)> 
    <!ELEMENT accessories (#PCDATA)> 

    <!ELEMENT number_of_cylinders (#PCDATA)> 

    <!ATTLIST accessories radio (yes|no) #REQUIRED 
     air_conditioning (yes|no) #REQUIRED 
     power_windows (yes|no) #REQUIRED 
     power_steering (yes|no) #REQUIRED 
     power_brakes (yes|no) #REQUIRED 
    > 
]> 
+1

显示您输入XML,告诉我们验证了什么样的错误消息。 – jasso

回答

0

,从而与内部DTD子集XML文档是有效的,做如下修改:

  1. 更改文档元素从carscar
  2. 构建与给定内部子集关联的XML。

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE car 
    [ 
    <!ELEMENT car (maker, model, year, colour, engine, number_of_doors, accessories)> 
    
    <!ELEMENT maker (#PCDATA)> 
    <!ELEMENT model (#PCDATA)> 
    <!ELEMENT year (#PCDATA)> 
    <!ELEMENT colour (#PCDATA)> 
    <!ELEMENT engine (number_of_cylinders)> 
    <!ELEMENT number_of_doors (#PCDATA)> 
    <!ELEMENT accessories (#PCDATA)> 
    
    <!ELEMENT number_of_cylinders (#PCDATA)> 
    
    <!ATTLIST accessories radio (yes|no) #REQUIRED 
        air_conditioning (yes|no) #REQUIRED 
        power_windows (yes|no) #REQUIRED 
        power_steering (yes|no) #REQUIRED 
        power_brakes (yes|no) #REQUIRED> 
    ]> 
    <car> 
        <!-- Finish building out the XML per the internal subset. --> 
    </car>