2013-09-21 3 views
0

Я пытаюсь узнать XML и DTD, я только что прошел через w3c учебник для DTD, и пытается реализовать сценарий рецепт в XML с помощью DTD, это то, что написал в файле DTD:DTD не будет проверять

<?xml version="1.0" encoding="UTF-8"?> 
<!ENTITY RECIPE (NAME,INGREDIENTS,INSTRUCTIONS) > 
<!ENTITY NAME ("Baking Powder Biscuits") > 
<!ENTITY INGREDIENTS SYSTEM "Ingredients.dtd" > 
<!ENTITY INSTRUCTIONS SYSTEM "Instructions.dtd" > 

<!ATTLIST RECIPE UNITS "16 BISCUITS" #FIXED> 

Когда я пытаюсь проверить, анализы дают мне ошибку в строке 2, в которой говорится, что открытый пропущенный в объявлении, не может не признать, что случилось, пожалуйста, помогите.

Благодаря

Это XML-файл 'рецепт':

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE RECIPE SYSTEM "recipe.dtd"> 

Это рецепт ОТД

<?xml version="1.0" encoding="UTF-8"?> 
<!ENTITY RECIPE NAME INGREDIENTS,INSTRUCTIONS> 
<!ENTITY NAME "Baking Powder Biscuits" > 
<!ENTITY % INGREDIENTS SYSTEM "Ingredients.dtd" > 
<!ENTITY % INSTRUCTIONS SYSTEM "Instructions.dtd" > 

<!ATTLIST RECIPE UNITS CDATA #FIXED "16 BISCUITS" > 

это другие ОТД ingreduents:

<?xml version="1.0" encoding="UTF-8"?> 
<!ENTITY INGREDIENTS ("2 cups flour","1 tablespoon sugar", "1/2 teaspoon salt", "1/2 cup vegetable shortening", "4 teaspoon baking powder", "2/3 cup milk")> 

ответ

1

У вас есть объявление ENTITY для, но, похоже, она должна быть декларацией ЭЛЕМЕНТА (на основе модели и ATTLIST для РЕЦЕПТ):

<!ELEMENT RECIPE (NAME,INGREDIENTS,INSTRUCTIONS) > 

Декларация NAME ЛИЦА выглядит она действительно должен быть ЛИЦОМ, но вам нужно удалить скобки:

<!ENTITY NAME "Baking Powder Biscuits"> 

Кроме того, два заявления ENTITY, которые указывают на .dtd файлы должны быть parameter entities, если они на самом деле содержат дополнительные заявления:

<!ENTITY % INGREDIENTS SYSTEM "Ingredients.dtd" > 
<!ENTITY % INSTRUCTIONS SYSTEM "Instructions.dtd" > 

Вы бы указали их с %INGREDIENTS; и %INSTRUCTIONS;.

ATTLIST for RECIPE также неверен. При фиксированном значении попробуйте:

<!ATTLIST RECIPE UNITS CDATA #FIXED "16 BISCUITS"> 
+0

no didn; t help :( – Snedden27

+0

@ Snedden27 - Что-нибудь (ошибка) изменилось? –

+0

нет, я попробовал свои шаги, также удалил ссылки полностью, но все же есть ошибка, BTW Я использую кислородный редактор для проверки – Snedden27

1

Файлы определения типа документа не являются экземплярами XML-документов; они не должны начинаться с XML-объявлений. Как только вы удалите из них объявления XML, вы столкнетесь с проблемами, выявленными Дэниелом Хейли.

+0

Хороший улов на объявлениях XML. +1 –