1

我们只在课堂上讨论 DTD 和 XML 2 天,我有这个作业,不确定我做对了还是做了所有被问到的事情。至少我尝试,任何帮助将不胜感激!

分配 您被要求在机场具有所需属性名称和位置的情况下表示机场数据;和一个隐含的属性着名的关联。Famous_assoication 属性是一个名人的名字,机场以他的名字命名。一个机场由一个或多个衣架组成。每个衣架都有一个编号、位置和一组 0 个或多个相关联的航空公司。每个衣架还有一个固定属性,长度为 2 英里。航空公司有一个名称,是多种飞机机队中的一种(机队包含一架或多架飞机)。飞机有制造商、型号、VIN 和座位容量。飞机也有属性颜色,默认值为“银”</p>

您可以假设此系统中的所有数据都是 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">
4

1 回答 1

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">
于 2013-11-21T10:10:59.290 回答