Oczekiwano zewnętrznej deklaracji znaczników DTD [duplikat]
Nov 30 2020
Mam problem z walidacją XML, gdy dodaję zewnętrzną walidację DTD. Działa to normalnie:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE booklist [
<!ELEMENT booklist (book)*>
<!ELEMENT book (author,title,published?)>
<!ELEMENT author (firstname,lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT published (#PCDATA)>
<!ATTLIST book genre (Science|Fiction) #REQUIRED>
<!ATTLIST book format (Paperback|Hardcover) "Paperback">
]>
<booklist>
<book genre="Fiction" format="Paperback">
<author>
<firstname>Name</firstname>
<lastname>Surname</lastname>
</author>
<title>Sample</title>
<published>2020</published>
</book>
</booklist>
Kiedy próbuję dodać zewnętrzną deklarację dtd, edytor kopiowania XML wyświetla błąd
Błąd krytyczny w linii 1, kolumna 3: oczekiwano deklaracji znaczników
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE booklist SYSTEM "booklist.dtd">
<booklist>
<book genre="Fiction" format="Paperback">
<author>
<firstname>Name</firstname>
<lastname>Surname</lastname>
</author>
<title>Sample</title>
<published>2020</published>
</book>
</booklist>
DTD
<!DOCTYPE booklist [
<!ELEMENT booklist (book)*>
<!ELEMENT book (author,title,published?)>
<!ELEMENT author (firstname,lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT published (#PCDATA)>
<!ATTLIST book genre (Science|Fiction) #REQUIRED>
<!ATTLIST book format (Paperback|Hardcover) "Paperback">
]>
Co ja robię źle ?
Odpowiedzi
1 kjhughes Dec 01 2020 at 00:17
Usuń DOCTYPE
opakowanie dla zewnętrznego podzbioru:
Zewnętrzne DTD
<!ELEMENT booklist (book)*>
<!ELEMENT book (author,title,published?)>
<!ELEMENT author (firstname,lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT published (#PCDATA)>
<!ATTLIST book genre (Science|Fiction) #REQUIRED>
<!ATTLIST book format (Paperback|Hardcover) "Paperback">