开发者

Defning a DTD to store multiple instances of a value

can you please tell how i can extend the following code开发者_开发技巧 so that five professions can be added in the xml document?

<?xml version=”1.0” encoding=”ISO-8859”?>
<!DOCTYPE person [
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT profession (#PCDATA)>
<!ELEMENT name (first_name, last_name)>
<!ELEMENT person (name, profession)>]>
<person>
    <name>
        <first_name>Jack</first_name>
        <last_name>Jill</last_name>
    </name>
    <profession>website</profession>
</person>

thanks for answering


Something like this should do

<?xml version=”1.0” encoding=”ISO-8859”?>
<!DOCTYPE person [
    <!ELEMENT first_name ( #PCDATA ) >
    <!ELEMENT last_name ( #PCDATA ) >
    <!ELEMENT name ( first_name, last_name ) >
    <!ELEMENT person ( name, professions ) >
    <!ELEMENT profession ( #PCDATA ) >
    <!ELEMENT professions ( profession+ ) >
]>
<person>
    <name>
        <first_name>Jack</first_name>
        <last_name>Jill</last_name>
    </name>
    <professions>
        <profession>website</profession>
        <profession>some other profession</profession>
    </professions>
</person>


The DTD at the top of the document specifies one name and one profession per person element.

Change it to use + (if you want one or more professions) or * (if you want 0 or more professions):

<!ELEMENT person (name, profession+)

or

<!ELEMENT person (name, profession*)

Note that DTDs are rather out-of-fashion, generally replaced by XSD specifications, which are more flexible and written in XML themselves.


Change the DTD to

<?xml version=”1.0” encoding=”ISO-8859”?>
<!DOCTYPE person [
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT profession (#PCDATA)>
<!ELEMENT professions (profession*)>
<!ELEMENT name (first_name, last_name)>
<!ELEMENT person (name, professions)>]>
<person>
<name>
<first_name>Jack</first_name>
<last_name>Jill</last_name>
</name>
<professions>
    <profession>prof 1</profession>
    <profession>prof 2</profession>
</professions>
</person>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜