如何使XML中的两个属性唯一,例如在SQL中我可以通过以下代码执行此操作:
create table tablename(
StudentID varchar(20),
SubjectID varchar(20),
UNIQUE(StudentID,SubjectID)
)
另一方面,我在XML中有以下代码:
<root>
<student StudentID="s1" />
<subject SubjectID="sb1" />
<tablename StudentID="s1" SubjectID="sb1" />
</root>
如何让属性StudentID
和SubjectID
变得独一无二?
答案 0 :(得分:0)
<!ATTLIST student StudentID ID #REQUIRED>
<!ATTLIST subject SubjectID ID #REQUIRED>
<!ATTLIST tablename StudentID IDREF #REQUIRED
SubjectID IDREF #REQUIRED>
在您的评论中(“StudentID
是元素Student
中的ID,SubjectID
是元素Subject
中的ID,StudentID
,SubjectID
是tablename
中的IDREF。如何确保相同的值不会在这些属性中出现两次?“)听起来好像这就是您在DTD中已有的内容。
换句话说:您已经已经确保相同的值不会在student/StudentID
和subject/SubjectID
属性中出现两次。任何值都不能在文档中出现多次,作为声明为ID的属性的值。
如果您的意思是“如何确保没有两个tablename
元素具有相同的StudentID
,SubjectID
对?”,答案是:使用应用程序代码。使用DTD没有好办法。