我正在尝试生成有效的xdxf文档(here's the DTD)。我设法解决除了一个以外的所有错误,我无法弄清楚是什么错误。
相关部分是
...
<def>
<def>
<gr>n. s.</gr>
<deftext>
<tr>pronunciation</tr>
<dtrn>Meaning</dtrn>
</deftext>
<co>Inflected forms</co>
<ex>
<ex_orig>Examples</ex_orig>
</ex>
</def>
<def>
<gr>n. s.</gr>
<deftext>
<tr>pronunciation</tr>
<dtrn>Another meaning</dtrn>
</deftext>
<co>Inflected forms</co>
<ex>
<ex_orig>Examples</ex_orig>
</ex>
</def>
</def>
...
我得到的错误(两次,所以我猜它是内部def,而不是外部)是:
元素类型“def”的内容必须匹配 “(GR,购*,共*,SR,ETM,CATEG *,(DEF + |????deftext))”。
那是没有或一个 gr (ok),没有或很多 ex (ok),没有或很多 co </ em>(ok),没有或者一个 sr , etm (无),无或多个 categ (ok)以及一个或多个 def 或者只有一个 deftext (外部和内部def都可以)。我理解这是正确的还是我有一些东西可以忽略?
答案 0 :(得分:2)
是的,当你说:
时,你是对的那是没有或一个gr(ok),没有或很多ex(ok),没有或很多co(ok),没有或者一个sr,etm(无),没有或多个类别(ok)以及一个或多个def或者只有一个deftext(外部和内部def都可以)。我理解这是正确的还是我有一些东西可以忽略?
但每次你写一个逗号,就意味着“然后” - 必须的顺序。
因此,您的文档在此DTD方面不正确,因为在下面:
<def>
<gr>n. s.</gr>
<deftext>
<tr>pronunciation</tr>
<dtrn>Another meaning</dtrn>
</deftext>
<co>Inflected forms</co>
<ex>
<ex_orig>Examples</ex_orig>
</ex>
</def>
<co>
之后不允许显示元素<ex>
和<deftext>
。
更正版本将是:
<def>
<gr>n. s.</gr>
<ex>
<ex_orig>Examples</ex_orig>
</ex>
<co>Inflected forms</co>
<deftext>
<tr>pronunciation</tr>
<dtrn>Another meaning</dtrn>
</deftext>
</def>
首先是<gr>
,然后是<ex>
,最后是<co>
和<deftext>
。