有没有一种方法可以从XML DTD中的另一元素引用元素?

发布于 2025-01-27 06:28:17 字数 1625 浏览 3 评论 0原文

我正在制作一个“学生” XML,该XML存储学生及其信息,例如名称,地址,电话...

在这种情况下,我有一个元素“帮助”内部“额外信息”,我想在其中“参考”帮助该学生及其基本信息的学生。

这是我的代码:

<!ELEMENT students (student+)>
<!ELEMENT student
    (name, surname, address, telephone-numbers, procedence,
    student-marks*, additional-information, comments)>
<!ATTLIST student ID ID #REQUIRED>
<!ATTLIST student sex (male|female) #IMPLIED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT surname (#PCDATA)>
<!ELEMENT address (street, number, city)>
    <!ELEMENT street (#PCDATA)>
    <!ELEMENT number (#PCDATA)>
    <!ELEMENT city (#PCDATA)>
<!ELEMENT telephone-numbers (telefono+)>
    <!ELEMENT telephone-number (#PCDATA)>
        <!ATTLIST telefono-number headline CDATA #REQUIRED>
<!ELEMENT procedence (province|origin-country)>
    <!ELEMENT province (#PCDATA)>
    <!ELEMENT origin-country (#PCDATA)>
<!ELEMENT student-marks (#PCDATA|evaluation)*>
    <!ELEMENT evaluation (mark)>
    <!ATTLIST evaluation evaluation-number (first | second | final) #REQUIRED>
        <!ELEMENT mark (#PCDATA)>
<!ELEMENT additional-information (sports-team?, height?, hobbies*, helped-by*)>
    <!ELEMENT sports-team (#PCDATA)>
    <!ELEMENT height (#PCDATA)>
    <!ELEMENT hobbies (#PCDATA)>
    <!ELEMENT helped-by ()>
<!ELEMENT comments (comment)>
    <!ELEMENT comment (#PCDATA)>

我已经考虑过要做以下操作:

<!ELEMENT helped-by (name, surname)>

但是我不确定这是正确的还是最好的选择。 感谢您的时间,感谢您的时间。

I'm making a 'students' XML that stores students and its information like name, address, telephone...

In this case I have an element 'helped-by' inside 'additional-information' in which I want to "reference" the students that have helped this student and their basic information.

This is my code:

<!ELEMENT students (student+)>
<!ELEMENT student
    (name, surname, address, telephone-numbers, procedence,
    student-marks*, additional-information, comments)>
<!ATTLIST student ID ID #REQUIRED>
<!ATTLIST student sex (male|female) #IMPLIED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT surname (#PCDATA)>
<!ELEMENT address (street, number, city)>
    <!ELEMENT street (#PCDATA)>
    <!ELEMENT number (#PCDATA)>
    <!ELEMENT city (#PCDATA)>
<!ELEMENT telephone-numbers (telefono+)>
    <!ELEMENT telephone-number (#PCDATA)>
        <!ATTLIST telefono-number headline CDATA #REQUIRED>
<!ELEMENT procedence (province|origin-country)>
    <!ELEMENT province (#PCDATA)>
    <!ELEMENT origin-country (#PCDATA)>
<!ELEMENT student-marks (#PCDATA|evaluation)*>
    <!ELEMENT evaluation (mark)>
    <!ATTLIST evaluation evaluation-number (first | second | final) #REQUIRED>
        <!ELEMENT mark (#PCDATA)>
<!ELEMENT additional-information (sports-team?, height?, hobbies*, helped-by*)>
    <!ELEMENT sports-team (#PCDATA)>
    <!ELEMENT height (#PCDATA)>
    <!ELEMENT hobbies (#PCDATA)>
    <!ELEMENT helped-by ()>
<!ELEMENT comments (comment)>
    <!ELEMENT comment (#PCDATA)>

I've thought of doing the following:

<!ELEMENT helped-by (name, surname)>

But I'm unsure if that's correct or the best alternative.
I'd appreciate some advice on the topic, thanks for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹊巢 2025-02-03 06:28:17

对于DTD,我建议IDREF有关属性类型的更多信息,请参见此处)。

<!ELEMENT helped-by EMPTY>
<!ATTLIST helped-by
          refid IDREF #REQUIRED>

元素看起来像这样:

<helped-by refid="some_student_id"/>

如果您想允许多个“助手”,则可以使用idrefs

<!ATTLIST helped-by
          refid IDREFS #REQUIRED>

该元素看起来像这样(或者可能与上述相同;有多个相应的ID):

<helped-by refid="some_student_id another_student_id"/>

此外,属性不必为refid。它可以命名其他。

For DTD, I'd recommend IDREF (see here for more info on attribute types).

<!ELEMENT helped-by EMPTY>
<!ATTLIST helped-by
          refid IDREF #REQUIRED>

The element would look like this:

<helped-by refid="some_student_id"/>

If you wanted to allow more than one "helper", you could use IDREFS:

<!ATTLIST helped-by
          refid IDREFS #REQUIRED>

The element could look like this (or it could be the same as above; as long as there is more than one corresponding id):

<helped-by refid="some_student_id another_student_id"/>

Also, the attribute doesn't have to be refid. It can be named something else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文