【问题标题】:DTD, #REQUIRED, #IMPLIED, ExampleDTD、#REQUIRED、#IMPLIED、示例
【发布时间】:2015-06-25 02:39:49
【问题描述】:

我有一个 DTD 文件,这是其中的一部分。它写为 lv id ID #IMPLIED。 由于#REQUIRED 的定义保持不变:“元素可以有零个或多个属性。”这使得代码自动正确,但可以用#REQUIRED 替换#IMPLIED,因为这里的元素已经有一个属性而没有零个属性,或者我错过了什么?

<!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>

【问题讨论】:

    标签: xml dtd


    【解决方案1】:

    我不确定我是否完全理解您的问题,但是您可以在元素 li 上的属性 id 的属性声明中将 #IMPLIED 更改为 #REQUIRED

    属性idID 类型,因此它必须具有#IMPLIED#REQUIRED 的默认值。哪一个取决于你。

    您还必须为一个元素仅声明一个 ID 类型属性,但您的 DTD 已经满足该要求,因此无需担心。

    有关详细信息,请参阅规范 (3.3 Attribute-List Declarations)。

    【讨论】:

    • @DianaPapukchieva - 不客气。如果这充分回答了您的问题,请考虑通过单击它旁边的复选标记来接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多