Liquibase,本地XSD参考



我正在使用带有以下符号的liquibasexml配置文件(spring集成)

<databaseChangeLog 
      xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog  
      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

所以。。我会使用我的应用程序离线模式,并在我的变更日志中加入"类路径"符号:

<databaseChangeLog 
      xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog  
      classpath:xsd/dbchangelog-3.1.xsd">

但是我有跟随错误。你能帮我吗?

Caused by: java.net.MalformedURLException: unknown protocol: classpath
        at java.net.URL.<init>(URL.java:592)
        at java.net.URL.<init>(URL.java:482)
        at java.net.URL.<init>(URL.java:431)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:610)
        at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
        at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:582)
        at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaParsingConfig.parse(SchemaParsingConfig.java:685)
        at com.sun.org.apache.xerces.internal.impl.xs.opti.SchemaDOMParser.parse(SchemaDOMParser.java:530)
        at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2175)

我通过在项目内部本地添加相关XSD文件dbchangelog-3.5.XSD并更新Liquibase配置文件(xsi:schemaLocation部分)来解决此问题,如下所示:

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.5.xsd">

因此,现在XSD文件位置的配置类似于dbchangelog-3.5.xsd。只需确保XSD文件与Liquibase配置文件位于相同的目录中即可。

相关内容

  • 没有找到相关文章

最新更新