2016-11-12 4 views
0

Я студент в колледже, и у меня возникают проблемы с этим файлом кода. Я бы спросил учителя или других одноклассников, но никто не кажется чтобы ответить на мою проблему с кодом на BlackBoard. Поэтому я надеюсь, что кто-нибудь здесь может помочь!Смешение XML-кода. Продолжайте получать "'(' требуется, чтобы начать перечисление ATTLIST 'Не знаете, как исправить

В инструкции указано: «Для элемента versionDate необязательный атрибут surveyDate, содержащий дату опроса». Я не совсем уверен, что это значит, но я пытался «<!ATTLIST versionDate surveyDate #IMPLIED>», но код ошибки выше подошел Единственная строка текста, которая имеет «surveyDate» в ней это один:.

<versionDate surveyDate=">1849"<1968/versionDate> 

Я попытался удалить эту строку, чтобы увидеть, было ли это так, как я ее написал, но затем я получил код ошибки «ATTLIST: no name for Attribute», который, как я считаю, имеет весь мой код. Может ли кто-нибудь помочь?

Если это помогает весь элемент и ATTLIST код выглядит следующим образом:

<!DOCTYPE products 
[ 
    <!ELEMENT product (product+)> 

    <!ELEMENT product (name, versionDate, desc, isbn?, price?)> 

    <!ELEMENT name (#PCDATA)> 
    <!ATTLIST name pid ID #REQUIRED> 
    <!ATTLIST name category (historical |state |parks) #REQUIRED> 


    <!ELEMENT versionDate (#PCDATA)> 


    <!ELEMENT desc (#PCDATA)> 
    <!ELEMENT isbn (#PCDATA)> 

    <!ELEMENT price (#PCDATA)> 
    <!ATTLIST price format (flat |raised) "flat" #IMPLIED> <!-- format default is flat. --> 
    <!ATTLIST price media (paper | electronic)> 
]> 
+0

Забыл добавить «» прямо под «<ЭЛЕМЕНТ versionDate (#PCDATA)!>» В полный код –

+1

Затем добавить, что на ваш вопрос. Вы можете [изменить] ваш вопрос в любое время .. – har07

ответ

2

Я вижу 3 вопроса:

  1. вы объявили product дважды. Основываясь на объявлении doctype, объявление первого элемента должно быть для products (множественное число).
  2. В объявлении атрибута для атрибута format элемента price у вас есть enumeration со значениями «flat» и «raise» и значением по умолчанию «flat». У вас также есть #IMPLIED, что недопустимо, если у вас есть значение по умолчанию. Вы должны удалить #IMPLIED.
  3. В объявлении атрибута для атрибута media элемента price у вас есть перечисление, но оно не имеет значения по умолчанию, #IMPLIED или #REQUIRED. Есть один из них:
    • Добавить значение по умолчанию (который соответствует значению в перечислении)
    • Добавить #IMPLIED
    • Добавить #REQUIRED

Кроме того, вы можете комбинировать ATTLIST объявления для элемента. Это облегчает чтение.

Последнее, если это внешний DTD, вам, вероятно, не требуется объявление doctype в DTD-файле. Тип doctype должен быть в экземпляре XML, который ссылается на DTD. Если XML и DTD находятся в одном файле, игнорируйте этот комментарий. (This section of the spec может помочь понять декларацию DOCTYPE и DTD (пролог).)

Пример ...

<!DOCTYPE products [ 
<!ELEMENT products (product+)> 

<!ELEMENT product (name, versionDate, desc, isbn?, price?)> 

<!ELEMENT name (#PCDATA)> 
<!ATTLIST name 
    pid ID #REQUIRED 
    category (historical|state|parks) #REQUIRED> 

<!ELEMENT versionDate (#PCDATA)> 
<!ATTLIST versionDate 
    surveyDate CDATA #IMPLIED> 

<!ELEMENT desc (#PCDATA)> 
<!ELEMENT isbn (#PCDATA)> 

<!ELEMENT price (#PCDATA)> 
<!ATTLIST price 
    format (flat|raised) "flat" 
    media (paper|electronic) #REQUIRED> 
]> 

EDIT: Я также добавил объявление атрибута для атрибута на versionDate элемента surveyDate. Этому отсутствовал тип атрибута. (See here для получения дополнительной информации.)

Ваш XML-пример элемента versionDate также неверен; это не well-formed. Он должен выглядеть следующим образом:

<versionDate surveyDate="1849">1968</versionDate> 
+0

Работали как очарование:] Большое спасибо за помощь! Некоторое время я это подчеркивал. Несколько вещей, которые следует отметить, хотя ... Я не совсем уверен, почему « работает при его раздельном как и я, будучи закодированным одинаково, и оба требуются не будут работать. и для плохо сформированной версии. Обзор опроса. Кодексом депрессии была моя ошибка/усталость от ввода ее. Еще раз спасибо за помощь! –

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

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