提问人:IamSebastn 提问时间:10/30/2023 更新时间:10/30/2023 访问量:18
在 DTD/XML 中创建逻辑
Create logic within DTD/XML
问:
由于我的学习,我正在学习 XML/DTD。现在我有一个练习,我必须创建一个订单。有一点是,我有 2 种不同类型的客户。一个学生和一个非学生。 这个话题,我用一个简单的布尔值来解决。
<!ATTLIST Kunde isStudent (true | false) #REQUIRED>
但现在,如果客户是学生,我应该显示其他元素。如果他不是,他们就不是必需的。
我目前的结构是这样的:
<!ELEMENT Customer (Name, Address)>
<!ATTLIST Customer isStudent (true | false) #REQUIRED>
<!--
If "isStudent === true" the Customer-Element should also have
<!ELEMENT StudentNumber (#PCDATA)>
<!ELEMENT UniversityName (#PCDATA)>
If "isStudent === false", they shouldn't/musn't be there
-->
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Adress (Street, Number, PLZ, City)>
<!ELEMENT Street (#PCDATA)>
<!ELEMENT Number (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT City (#PCDATA)>
所以我想知道......是否可以在 DTD 中创建逻辑?所以就像“如果这是真的,那就展示这个......”还是使用“?”标志创建元素的关键?
答:
0赞
Michael Kay
10/30/2023
#1
不,DTD 不够强大,无法表达此类约束。还有其他XML模式技术可以做到这一点:例如RelaxNG,XSD 1.1(但不是1.0)或Schematron。
评论