2013-11-21 7 views
1

Мы говорим только о DTD и XML в классе в течение 2 дней, и у меня есть это задание, не уверен, что если я делаю это правильно или сделал все, что было спросил. По крайней мере, я пытаюсь, любая помощь будет оценена!Создание файла DTD (определение типа документа) с использованием атрибутов, фиксированное, обязательное, подразумеваемое и т. Д.

Задание Вас попросили представить данные аэропорта, в которых аэропорт получил требуемые атрибуты, имя и местоположение; и подразумеваемый атрибут known_assoiciation. Атрибут famous_assoication - это имя знаменитого человека, после которого был назван аэропорт. Аэропорт состоит из одного или нескольких вешалок. Каждая вешалка имеет номер, местоположение и набор из 0 или более связанных авиакомпаний. Каждая вешалка также имеет фиксированный атрибут, длина - 2 мили. Авиакомпания имеет название, один из нескольких типов воздушных судов (где флот содержит один или несколько самолетов). Самолет имеет производителя, модель, vin и seat_capacity. Самолет также имеет цвет атрибут со значением по умолчанию «серебро»

Вы можете предположить, что все данные в этой системе имеет тип 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

Линия '' выглядит подозрительно. – halfbit

ответ

2

DTD выглядит неплохо. Я вижу только несколько вещей.


Элемент не может иметь место в имени, так что вам придется изменить aircraft fleets. Нет причин, по которым вы не смогли бы сократить его до fleet.


Для удобства чтения, это хорошая практика, чтобы поместить объявление атрибута (ATTLIST) при объявлении элемента, так что легко найти. Вам также нужен только один номер ATTLIST за элемент. Вы можете добавить переносы строк и вкладки/пространство, чтобы сделать его легко читать ...

<!ELEMENT airport (hanger+)> 
<!ATTLIST airport 
      name    CDATA #REQUIRED 
      location   CDATA #REQUIRED 
      famous_assoiciation CDATA #IMPLIED > 

Атрибут color должен иметь значение по умолчанию «серебро», но у вас есть как фиксированное значение , Просто удалите #FIXED ...

<!ATTLIST plane color CDATA "silver"> 
+0

Оцените это и еще один вопрос: мне нужна Поверх моего dtd-файла? или его для xml-файла – sean

+0

@sean - Хороший вопрос. Я бы не поместил XML-объявление внутри внешнего DTD. Однако я не уверен, действительно ли это будет иметь значение. Я также не уверен, что имеет объявление XML как в DTD, так и в XML. Это может стоить каких-то экспериментов. Посмотрите, что говорит спецификация для дополнительной информации: http://www.w3.org/TR/REC-xml/#sec-prolog-dtd –

+0

@sean - Кроме того, если этого ответа было достаточно, подумайте о его принятии щелкнув галочку рядом с ней. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^