Program 6
Program 6
Bookstore.dtd:
<!ELEMENT bookstore (book+)>
<!ELEMENT book (title, author, price, publish_date, description)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT publish_date (#PCDATA)>
<!ELEMENT description (#PCDATA)>
Validate.py:
from lxml import etree
def validate_with_dtd(xml_file, dtd_file):
# Parse DTD
dtd = etree.DTD(open(dtd_file))
# Parse XML
xml = etree.parse(xml_file)
# Validate XML against DTD
if dtd.validate(xml):
print("XML is valid against DTD")
else:
print("XML is NOT valid against DTD")
print(dtd.error_log)
# Path to XML and DTD files
xml_file = "Bookstore.xml"
dtd_file = "Bookstore.dtd"
# Validate XML against DTD
validate_with_dtd(xml_file, dtd_file)