Tôi có tệp testDtd DTD cục bộ. Nội dung là:xmllint: cách xác thực XML bằng tệp DTD cục bộ
<!DOCTYPE coord [
<!ELEMENT coord (date)>
<!ELEMENT date (#PCDATA)>
]>
Tôi muốn xác thực XML bằng xmllint. XML này không có DOCTYPE trong đó:
<?xml version="1.0" encoding="x-mac-roman"?>
<coord>
<date>20150312</date>
</coord>
Không có vấn đề nếu tôi chèn khối DTD như một dòng 2nd sang một bản sao của tập tin XML của tôi và sử dụng:
xmllint --valid --noout my2.xml
Nhưng khi tôi thử:
xmllint --loaddtd test.dtd --valid --noout my.xml
xmllint --dtdvalid test.dtd --noout my.xml
cả hai đều không hoạt động. Chuyến đi chơi là:
test.dtd:1: parser error : Content error in the external subset
<!DOCTYPE coord [
^
test.dtd:1: parser error : Content error in the external subset
<!DOCTYPE coord [
^
Could not parse DTD test.dtd
Bất kỳ ý tưởng nào? Dường như XML PHẢI của tôi chứa dòng DOCTYPE (với từ khóa SYSTEM) để tham chiếu tệp DOCTYPE bên ngoài, mà tôi muốn tránh. Xem: http://www.w3schools.com/dtd/
Có giải pháp nào không sửa đổi XML không?
Đầu ra từ lệnh đó là gì? – hek2mgl
Dường như một cái gì đó với DTD là sai. Phải không? – hek2mgl
Không vì khi tôi chèn văn bản DTD này vào XML như nó có, nó hoạt động. Có lẽ tôi cần một dòng giới thiệu trong tập tin văn bản DTD? –