Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 定义DTD以存储值的多个实例_Xml_Dtd - Fatal编程技术网

Xml 定义DTD以存储值的多个实例

Xml 定义DTD以存储值的多个实例,xml,dtd,Xml,Dtd,您能告诉我如何扩展以下代码,以便在xml文档中添加五种职业吗 <?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_

您能告诉我如何扩展以下代码,以便在xml文档中添加五种职业吗

<?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>

]>
杰克
吉尔
网站

谢谢你的回答像这样的回答应该可以

<?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>

]>
杰克
吉尔
网站
其他职业

文档顶部的DTD为每个人元素指定一个姓名和一个职业

将其更改为使用+(如果需要一个或多个专业)或*(如果需要0个或多个专业):


请注意,DTD已经相当过时,通常由XSD规范取代,XSD规范更灵活,并且是用XML编写的。

将DTD更改为

<?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>

]>
杰克
吉尔
教授1
教授2

你还在抓取他询问的“name”和“person”元素吗?我认为问题在于文档顶部的嵌入式DTD类型规范,它只允许每个person元素有一个profession元素。我没有更新DTD-但是这个更新应该很好谢谢,它可以工作。如何修改代码,以便在xml代码中添加一个或零个地址?给我看的是一个或多个。谢谢你的回复谢谢,它很有效。如何修改代码,以便在xml代码中添加一个或零个地址?给我看的是一个或多个。谢谢你的回复谢谢,它很有效。如何修改代码,以便在xml代码中添加一个或零个地址?给我看的是一个或多个。谢谢你的回复
<!ELEMENT person (name, profession*)
<?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>