/ / Błąd wewnętrznego DTD w pliku XML - xml, dtd

Błąd wewnętrznego DTD w pliku XML - xml, dtd

Mój plik XML nie mógł się uruchomić. Mam pewne błędy w DTD. Co jest nie tak z moim kodem DTD? Próbowałem uruchomić go na Internet Explorerze, ale to nie działa. Kiedy nie dodałem kodu DTD, działa dobrze. Ale po dołączeniu DTD wyświetla pustą stronę. Po sprawdzeniu poprawności pliku xml w http://validator.w3.org/ , mam ten błąd

Wiersz 25, kolumna 23: typ dokumentu nie zezwala na „element” książki tutaj

<książka instock = "tak">

Element wymieniony powyżej został znaleziony w kontekściegdzie to nie jest dozwolony. Może to oznaczać, że masz niepoprawnie zagnieżdżone elementy - np. element „styl” w sekcji „ciało” zamiast w środku „głowa” - lub dwa elementy, które się nakładają (co jest niedozwolone)

Jedną z częstych przyczyn tego błędu jest użycieSkładnia XHTML w HTML dokumenty. Ze względu na reguły HTML niejawnie zamkniętych elementów, to błąd może powodować efekty kaskadowe. Na przykład, używając XHTML „samozamykające się” tagi dla „meta” i „link” w sekcji „head” Dokument HTML może spowodować, że parser wyprowadzi koniec „głowy” sekcja i początek sekcji „body” (gdzie „link” i „meta” nie są dozwolone; stąd zgłoszony błąd)

<?xml version = "1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type ="text/css" href="Books.css"?>

<!DOCTYPE inventory [
<!ELEMENT inventory(book)>
<!ELEMENT book(title,author,isbn,publisher,pages,price)>
<!ATTLIST book instock CDATA #REQUIRED>
<!ELEMENT title(#PCDATA)>
<!ELEMENT author(#PCDATA)>
<!ELEMENT isbn(#PCDATA)>
<!ELEMENT publisher(#PCDATA)>
<!ELEMENT pages(#PCDATA)>
<!ELEMENT price(#PCDATA)>
]>

<inventory>
<book instock = "yes">
<title>Beginning web programming with html, xhtml, and css </title>
<author>Duckett, jon </author>
<isbn>0764570781</isbn>
<publisher>Wrox pr inc</publisher>
<pages>840</pages>
<price>MYR 119.80</price>
</book>
<book instock = "yes">
<title>Core web programming(2nd edition)</title>
<author>Marty hall, larry brown</author>
<isbn>0130897930 </isbn>
<publisher>Prentice hall ptr </publisher>
<pages>1385</pages>
<price> MYR 125.00</price>
</book>
<book instock = "no">
<title>An introduction to web design and programming</title>
<author>Paul s. wang, sanda katila</author>
<isbn>0534395287</isbn>
<publisher>Course technology</publisher>
<pages>592</pages>
<price> MYR 251.00</price>
</book>
</inventory>

Odpowiedzi:

0 dla odpowiedzi № 1
<!ELEMENT inventory(book)>

To mówi inventory element może zawierać dokładnie JEDEN book. Chcesz

<!ELEMENT inventory(book)*>

albo może

<!ELEMENT inventory(book)+>