这是我的DTD:
<!ELEMENT my-root (element1,element2+)>
<!ELEMENT element1 (#PCDATA)>
<!ELEMENT element2 (element3,(element4?|element5+))>
<!ELEMENT element3 (#PCDATA)>
<!ELEMENT element5 (#PCDATA)>
<!ELEMENT element4 (element6*)>
<!ELEMENT element6 (element5*,element7*)>
<!ELEMENT element7 (#PCDATA)>
这是我的XML文件:
<?xml version="1.0"?>
<!DOCTYPE my-root SYSTEM "my-root.dtd">
<my-root>
<element1>a-location</element1>
<element2>
<element3>a-value</element3>
<element4>
<element6>
<element5>test</element5>
<element5>test2</element5>
<element7>test3</element7>
</element6>
</element4>
</element2>
<element2>
<element3>test4</element3>
<element5>test5</element5>
<element5>test6</element5>
</element2>
<element2>
<element3>test7</element3>
</element2>
</my-root>
我的问题是,即使最后一个element2中没有element5标记,它为什么有效。
或者更确切地说,我怎么能告诉DTD在element2标签内没有element4的情况下至少需要1个element5。
答案 0 :(得分:1)
您可以要求<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet" />
<div>
<label for="test0">This is checked and works</label>
<input type="checkbox" class="checkbox" id="test0" value="yes" checked="checked" />
</div>
<div id="guestsData">
<ul>
<li><a href="#guest-0">Tab 0</a></li>
<li><a href="#guest-1">Tab 1</a></li>
<li><a href="#guest-2">Tab 2</a></li>
<li><a href="#guest-3">Tab 3</a></li>
</ul>
<div id="guest-0">
<div>
<label for="test1">This is checked and don't works!</label>
<input type="checkbox" class="checkbox" id="test1" value="yes" checked="checked" />
</div>
<div>
<label for="test2">This is unchecked</label>
<input type="checkbox" class="checkbox" id="test2" value="yes" />
</div>
</div>
<div id="guest-1">
Tab 1 content
</div>
<div id="guest-2">
Tab 2 content
</div>
<div id="guest-3">
Tab 3 content
</div>
</div>
,因此它只有一个element4
或一个或多个element4
......
element5
答案 1 :(得分:0)
你可以使用逗号(,)而不是管道(|)符号:
<!ELEMENT element2 (element3,(element4?,element5+))>