我有一个DTD文件,这是它的一部分。它写的是lv id ID #IMPLIED。 正如#REQUIRED的定义一样:“元素可以有零个或多个属性。”这会使代码自动更正,但是#IMPLIED可以替换为#REQUIRED,因为这里的元素已经有一个属性且没有零属性,或者我错过了什么?
<!ELEMENT lv (title, subtitle?, length, content, abstract)>
<!ATTLIST lv id ID #IMPLIED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT subtitle (#PCDATA)>
<!ELEMENT abstract (#PCDATA)>
<!ELEMENT length EMPTY>
<!ATTLIST length value CDATA #REQUIRED
unit (sws| h| min) "sws">
这是关联的XML文件:
<?xml version="1.0"?>
<?xml-stylesheet href="lv.xsl" type="text/xsl"?>
<!DOCTYPE lv SYSTEM "lehre.dtd">
<lv id="wip2">
<title>WI-Praktikum 2</title>
<subtitle>Verarbeitung strukturierter Daten</subtitle>
<length value="2" unit="sws"/>
<content>
<topic>Grundlagen</topic>
<topic>Grammatiken</topic>
<topic>SAX</topic>
</content>
<abstract>
Der Kurs vermittelt den Aufbau und die Verarbeitung von XML-Dokumenten.
Als Programmiersprachen kommen Java, Python und XSLT zum Einsatz.
</abstract>
</lv>
答案 0 :(得分:1)
我不确定我是否完全理解您的问题,但是您可以在元素#IMPLIED
上的属性#REQUIRED
的属性声明中将id
更改为li
属性id
是ID
类型,因此其默认值必须为#IMPLIED
或#REQUIRED
。哪一个取决于你。
您还必须为元素声明只有一个ID
类型属性,但您的DTD已满足该要求,因此无需担心。
有关详细信息,请参阅规范(3.3 Attribute-List Declarations)。