我尝试用dtd验证一些xml数据。为此,我必须使用libxml2。 生成的xml数据如下所示:
<?xml version="1.0"?>
<root>
<vent id="1">
<usb_device_id>1</usb_device_id>
<usb_device_channel>2</usb_device_channel>
<vent_box_id>3</vent_box_id>
<vent_box_channel>4</vent_box_channel>
</vent>
</root>
我的dtd看起来像这样:
<!ELEMENT root (vent) >
<!ELEMENT vent (usb_device_id, usb_channel, vent_box_id, vent_box_channel) >
<!ATTLIST vent id (ID) #REQUIRED >
<!ELEMENT usb_device_id (CDATA) >
<!ELEMENT usb_channel (CDATA) >
<!ELEMENT vent_box_id (CDATA) >
我在解析的树上使用http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd。通过此设置,我收到错误消息:
元素发布:有效性错误:发布的属性id的值“1”不在枚举集中
我哪里错了?提前谢谢......