我在创建ELEMENT DTD时遇到了困难。
这是我的ELEMENT看起来像ELEMENT I (P*, L?)
但是在验证DTD后它返回
Element I: validity error : Element I content does not follow the DTD,
expecting (P*, L?), got (L P P)
这是xml:
<I>
<P></P>
<I>
<I>
<P></P>
<P></P>
<I>
<I>
<P></P>
<L></L>
<I>
<I>
<L></L>
</I>
<I>
<L></L>
<P></P>
<P></P>
</I>
答案 0 :(得分:0)
这是因为您对I
的声明是零或更多P
后跟零或一L
。您的上一个I
元素在L
之前有P
。
如果XML正确,您需要更改DTD。如果DTD正确,您将不得不更改XML。
一个可能的DTD变化是:
<!ELEMENT I ((P*,L?)|(L?,P*))>
答案 1 :(得分:0)
以下允许同时执行以下操作:
structure(list(Species = c(13359L, 12867L, 11646L, 13214L, 11413L,
3413L, 13249L, 11374L, 13267L, 2059L, 12941L, 13123L, 1904L,
13252L, 12915L, 12749L, 11577L, 995L), North = c(0.94, 0, 0.9,
0, 0.88, 0.87, 0, 0, 0.86, 0, 0.84, 0.83, 0.83, 0, 0, 0.82, 0.82,
0.81), South = c(0, 0.92, 0.9, 0, 0.88, 0, 0.87, 0.87, 0.86,
0.86, 0.84, 0.83, 0, 0.82, 0, 0.82, 0.82, 0), West = c(0, 0.92,
0.9, 0, 0.88, 0.87, 0.87, 0.87, 0.86, 0.86, 0.84, 0, 0.83, 0.82,
0, 0.82, 0.82, 0), East = c(0, 0.92, 0.9, 0, 0, 0.87, 0.87, 0.87,
0, 0.86, 0.84, 0, 0, 0.82, 0, 0.82, 0.82, 0), North.east = c(0,
0.92, 0.9, 0, 0.88, 0.87, 0.87, 0.87, 0.86, 0.86, 0, 0.83, 0,
0.82, 0, 0, 0.82, 0.81), Northwest = c(0, 0, 0, 0.88, 0, 0.87,
0.87, 0.87, 0, 0.86, 0.84, 0, 0, 0.82, 0, 0, 0, 0), South.west = c(0,
0.92, 0.9, 0.88, 0.88, 0, 0.87, 0, 0.86, 0.86, 0.84, 0.83, 0,
0, 0, 0.82, 0.82, 0), South.east = c(0, 0.92, 0.9, 0, 0.88, 0,
0, 0.87, 0.86, 0, 0.84, 0.83, 0.83, 0, 0, 0.82, 0.82, 0)), class = "data.frame", row.names = c(NA,
-18L))
或者,如果您希望要求Thread.Sleep(new Random().Next(20,21));
或<!ELEMENT I ((P|L)*)>
之一出现,这应该会有所帮助:
P