XML标记声明错误

时间:2014-03-05 09:02:47

标签: xml xsd

我正在尝试读取一个引用xsd doc的XML文档。但是当我这样做时,我最终得到“文档类型声明包含或指向的标记声明必须格式正确”错误。不知道错误是什么。谢谢你。

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE XML SYSTEM "NGPSCustomerConfig.xsd">
<NGPSCustomerConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="NGPSCustomerConfg.xsd">
    <CustomerInfo id="NGPS">
        <CustomerName>NGPS</CustomerName>
        <CustomerAdditionalInfo> Additional Info</CustomerAdditionalInfo>
        <ToolInfo>
            <toolName>Service Manager</toolName>
            <toolID>SM01</toolID>
            <toolType>ITSM</toolType>
            <toolProperty>001_SM01.Properties</toolProperty>
        </ToolInfo>
        <ToolInfo>
            <toolName>Orchestrator</toolName>
            <toolID>ORCH01</toolID>
            <toolType>ORCHESTRATOR</toolType>
            <toolProperty>001_ORCH01.properties</toolProperty>
        </ToolInfo>
        <ToolInfo>
            <toolName>Event Manager</toolName>
            <toolID>EM01</toolID>
            <toolType>EVENT MANAGER</toolType>
            <toolProperty>001_EM01.properties</toolProperty>
        </ToolInfo>
    </CustomerInfo>
</NGPSCustomerConfig>

XSD文件是

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="NGPSCustomerConfig">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="CustomerInfo">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element type="xs:string" name="CustomerName" />
                            <xs:element type="xs:string" name="CustomerAdditionalInfo">
                            </xs:element>
                            <xs:element name="ToolInfo" maxOccurs="unbounded"
                                minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element type="xs:string" name="toolName" />
                                        <xs:element type="xs:string" name="toolID" />
                                        <xs:element type="xs:string" name="toolType" />
                                        <xs:element type="xs:string" name="toolProperty" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute type="xs:string" name="id" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

1 个答案:

答案 0 :(得分:2)

<!DOCTYPE XML SYSTEM "NGPSCustomerConfig.xsd">

说了两件事:

  1. 以下XML文档的根元素将命名为XML
  2. 文件NGPSCustomerConfig.xsd是文档的 DTD
  3. 在您的情况下,这些都不是真的 - NGPSCustomerConfig.xsd是架构,而不是DTD,因此xsi:noNamespaceSchemaLocation就足够了,您根本不需要DOCTYPE。