我们只在课堂上谈论DTD和XML 2天,我有这个任务不确定我是做得对还是做了所有问题。至少我试试,任何帮助将不胜感激!!
分配 您被要求代表机场数据,其中机场需要属性名称和位置;和一个隐含的属性famous_assoiciation。 famous_assoication属性是机场被命名的着名人物的名称。机场由一个或多个衣架组成。每个衣架都有一个数字,位置和一组0或更多相关航空公司。每个衣架还有一个固定的属性,长度为2英里。航空公司有一个名称,一种或多种类型的飞机机队(其中一个机队包含一架或多架飞机)。飞机有制造商,型号,vin和seat_capacity。平面还具有属性颜色,默认值为“silver”
您可以假设此系统中的所有数据都是CDATA类型
这就是我做的......
<?xml version = "1.0" encoding ="utf-8"?>
<!ELEMENT airport (hanger+)>
<!ELEMENT hanger (number, location, airline*)>
<!ELEMENT number (#PCDATA)>
<!ELEMENT location (#PCDATA)>
<!ELEMENT airline (name, aircraft fleets+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT aircraft fleets (plane+)>
<!ELEMENT plane (manufacturer, model, vin, seat_capacity)>
<!ELEMENT manufacturer (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ELEMENT vin (#PCDATA)>
<!ELEMENT seat_capacity (#PCDATA)>
<!ATTLIST airport name CDATA #REQUIRED>
<!ATTLIST airport location CDATA #REQUIRED>
<!ATTLIST airport famous_assoiciation CDATA #IMPLIED>
<!ATTLIST plane color CDATA #FIXED "silver">
<!ATTLIST hanger length CDATA #FIXED "2 miles">
答案 0 :(得分:2)
你的DTD看起来很不错。我只看到一些东西。
元素名称中不能包含空格,因此您必须更改aircraft fleets
。您无法将其缩短为fleet
。
为了便于阅读,最好将属性声明(ATTLIST
)放在元素声明下,这样很容易找到。每个元素也只需要一个ATTLIST
。您可以添加换行符和制表符/空格,以便于阅读...
<!ELEMENT airport (hanger+)>
<!ATTLIST airport
name CDATA #REQUIRED
location CDATA #REQUIRED
famous_assoiciation CDATA #IMPLIED >
color
属性应该具有默认值“silver”,但您将其作为固定值。只需删除#FIXED
...
<!ATTLIST plane color CDATA "silver">