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
Json 错误:文档类型声明包含或指向的标记声明必须格式正确_Json_Xml_Dtd - Fatal编程技术网

Json 错误:文档类型声明包含或指向的标记声明必须格式正确

Json 错误:文档类型声明包含或指向的标记声明必须格式正确,json,xml,dtd,Json,Xml,Dtd,我得到了一个错误: 文档类型声明包含或指向的标记声明必须格式正确 这里有几个额外的问题 在JSON文件中,place=null。在XML文档中,我还需要提到它吗 sub_company和sub_sub_company属于同一级别,具有相同的要素。在这种情况下,他们是否需要避免重复?如果是,如何更改DTD文件 在DTD文件中,是否需要输入“ATTLIST”?如果是这样的话,我怎么知道哪个是不带XML文档的ATTLIST,哪个是带JSON文件的ATTLIST companys.dtd文件 <!

我得到了一个错误:

文档类型声明包含或指向的标记声明必须格式正确

这里有几个额外的问题

  • 在JSON文件中,
    place=null
    。在XML文档中,我还需要提到它吗
  • sub_company
    sub_sub_company
    属于同一级别,具有相同的要素。在这种情况下,他们是否需要避免重复?如果是,如何更改DTD文件
  • 在DTD文件中,是否需要输入“ATTLIST”?如果是这样的话,我怎么知道哪个是不带XML文档的ATTLIST,哪个是带JSON文件的ATTLIST
  • companys.dtd文件

    <!ELEMENT companys (company*)>
    <!ELEMENT company (id, companyName, sub_company, place, sub_sub_company)>
    <!ELEMENT id (#PCDATA)>
    <!ELEMENT companyName (#PCDATA)>
    <!ELEMENT sub_company (id, name, employees, subsidiary)>
    <!ELEMENT id (#PCDATA)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT employees (#PCDATA)>
    <!ELEMENT subsidiary (#PCDATA)>
    <!ELEMENT place (#PCDATA)>
    <!ELEMENT sub_sub_company (id, name, employees, subsidiary)>
    <!ELEMENT id (#PCDATA)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT employees (#PCDATA)>
    <!ELEMENT subsidiary (#PCDATA)>
    
    
    
    companys.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE companys SYSTEM "companys.dtd">
    <companys>
        <company>
            <id>123</id>
            <companyName>Jack company</companyName>
            <sub_company>
                <id>123456</id>
                <name>jack jr company</name>
                <employees>120</employees>
                <subsidiary>20</subsidiary>
            </sub_company>
            <place/>
            <sub_sub_company>
                <id>123321</id>
                <name>jack grand company</name>
                <employees>50</employees>
                <subsidiary>3</subsidiary>
            </sub_sub_company>
        </company>
    </companys>
    
    
    123
    杰克公司
    123456
    小杰克公司
    120
    20
    123321
    杰克格兰德公司
    50
    3.
    
    在DTD中,不允许重复。去掉它们,你就会得到

    <!ELEMENT companys (company*)>
    <!ELEMENT company (id, companyName, sub_company, place, sub_sub_company)>
    <!ELEMENT id (#PCDATA)>
    <!ELEMENT companyName (#PCDATA)>
    <!ELEMENT sub_company (id, name, employees, subsidiary)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT employees (#PCDATA)>
    <!ELEMENT subsidiary (#PCDATA)>
    <!ELEMENT place (#PCDATA)>
    <!ELEMENT sub_sub_company (id, name, employees, subsidiary)>
    
    
    
    这将验证您的XML。
    关于ATTLIST:你不需要它,但是如果你想精确的话。它显示了如何使用它。

    我不能就JSON发表任何评论,因为在你的问题中没有JSON

    谢谢你的建议和链接。我去看看。