首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文档根元素“持久性”,必须匹配DOCTYPE根"null“。对于persistence.xml JPA

文档根元素“持久性”,必须匹配DOCTYPE根"null“。对于persistence.xml JPA
EN

Stack Overflow用户
提问于 2016-06-03 18:39:19
回答 1查看 3.3K关注 0票数 2

我收到以下错误

文档根元素“持久性”,必须与DOCTYPE根"null“匹配。

下面是导致它的XML文件。

代码语言:javascript
运行
复制
 <?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">

        <persistence-unit name="my-persistence">
            <description>Persistence Unit</description>
            <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
            <mapping-file>WEB-INF/config/application-context.xml</mapping-file>
            <!--<jar-file>packedEntity.jar</jar-file>-->
            <class>domain.Applicant</class>
            <class>testScrEntry</class>
            <properties>
                <property name="javax.persistence.jdbc.url" value="oracle.jdbc.OracleDriver"/>
                <property name="javax.persistence.jdbc.user" value="user"/>
                <property name="javax.persistence.jdbc.password" value="password"/>
            </properties>
        </persistence-unit>

    </persistence>

Stacktrace

代码语言:javascript
运行
复制
 o.s.w.c.s.XmlWebApplicationContext WARN: Exception encountered during 
 context initialization - cancelling refresh attempt: 
 org.springframework.beans.factory.BeanDefinitionStoreException: Failed 
 to parse configuration class [configuration.JpaConfiguration]; nested 
 exception is java.util.InvalidPropertiesFormatException:  
 org.xml.sax.SAXParseException: Document root element "persistence", must     
 match DOCTYPE root "`null"

自然,我在googled上搜索了错误,它告诉我添加我做过的内容,它看起来如下:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE persistence PUBLIC xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

    <persistence-unit name="my-pu">
        <description>Persistence Unit</description>
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <!--<mapping-file>application-context.xml</mapping-file>-->
        <!--<jar-file>packedEntity.jar</jar-file>-->
        <class>domain.Applicant</class>
        <class>applicant.testScrEntry</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="oracle.jdbc.OracleDriver"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="password"/>
        </properties>
    </persistence-unit>

</persistence>

但是,上面也没有说明文件必须由>关闭。它指的是</persistence>旁边的红线。

The public identifier must begin with either a single or double quote character.

更新1-更新1

我试过这样做:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE persistence PUBLIC
        "http://xmlns.jcp.org/xml/ns/persistence"
        "http://www.w3.org/2001/XMLSchema-instance"
        "http://xmlns.jcp.org/xml/ns/persistence
        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">

错误::org.xml.sax.SAXParseException:The public identifier must begin with either a single or double quote character.

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

错误:Document root element "persistence", must match DOCTYPE root "null".

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

文档根元素“持久性”,必须匹配DOCTYPE根"null“。

EN

Stack Overflow用户

发布于 2016-06-03 19:28:35

您的第二个" XML“文档是一个混乱的XSD和DTD构造,最终的结果是一个根本不是XML的文档--格式不太好,更不用说有效了。

您的第一个XML文档对于通过@schemaLocation声明的XSD是有效的。错误消息是基于DTD的,而不是基于XSD的。根据@schemaLocation中暗示的XSD解析它,您就会没事了。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37621346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档