【问题标题】:XML error validating .xml against .xsd file针对 .xsd 文件验证 .xml 的 XML 错误
【发布时间】:2014-08-12 00:37:45
【问题描述】:

每次我在本地开发服务器中运行我的应用引擎应用程序时,appengine-application.xml 文件似乎都会自动重新生成。每次它恢复到具有简单语法错误的版本时。

问题:文件从哪里重新生成/复制?如何编辑它并使更改保持不变?

此文件开头缺少一个开头

这是有错误的文件,appengine-application.xml(在 '?xml version="1.0 encoding=...' 之前缺少和打开 '

文件路径:../guestbook/guestbook-ear/target/guestbook-ear-1.0-SNAPSHOT/META-INF/appengine-application.xml

?xml version="1.0" encoding="utf-8" standalone="no"?>
<appengine-application xmlns="http://appengine.google.com/ns/1.0">
<application>single-loop-665 </application>
</appengine-application>

这里是 appengine-application.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"     targetNamespace="http://appengine.google.com/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="appengine-application" type="ns:appengine-applicationType" xmlns:ns="http://appengine.google.com/ns/1.0"/>
 <xs:complexType name="appengine-applicationType">
    <xs:all>
        <xs:element type="xs:string" name="application"/>
    </xs:all>
</xs:complexType>
</xs:schema>

这是错误:

[INFO] 原因:com.google.apphosting.utils.config.AppEngineConfigException:验证 /Users/jamesjohnson/guestbook/guestbook-ear/target/guestbook-ear-1.0-SNAPSHOT/META-INF/appengine 的 XML 错误-application.xml 针对 /Users/jamesjohnson/.m2/repository/com/google/appengine/appengine-java-sdk/1.9.8/appengine-java-sdk/appengine-java-sdk-1.9.8/docs/appengine -application.xsd

【问题讨论】:

  • AFAIK,不应该通过简单地运行开发服务器来重新生成文件。你能发布你正在运行的导致它重新生成的确切命令吗?
  • 感谢您的回复! mvn appengine:devserver
  • 如果这就是问题的真正原因,我真的会感到非常惊讶。可以肯定的是,您确实保存了文件,关闭它并重新打开以确保它在运行之前已保存,对吗?我看到的唯一覆盖它的命令是 mvn archetype:generate。也许一个测试是删除文件,然后运行 ​​mvn appengine:devserver,看看它是否被重新创建,我敢打赌它不会。
  • 是的,我绝对确定我正确保存并退出了终端。我也对 gui 编辑器进行了同样的尝试。我也只是按照您的建议执行并删除,在终端中使用 rm- 命令 appengine-application.xml。在与我描述的相同的目录中重新创建了相同的文件,但代码和语法错误完全相同(缺少打开
  • 让我感到惊讶。让我们尝试一下,你能继续从 'mvn archetype:generate' 运行教程吗?

标签: java xml google-app-engine xsd


【解决方案1】:

解决了!

因此看起来好像每次运行应用程序时都有一个副本。这意味着所有 xml 文件和 guestbook-war/src 目录中包含的所有其他内容都将复制到名为 appname-version-SNAPSHOT 的文件中。 SNAPSHOT 文件似乎是编译和运行应用程序源代码的位置。

为了使编辑持续存在,您必须编辑包含在您的

中的文件
appname-war/src/main 

目录。

令人困惑的部分是,抛出的错误会将您指向位于

中的代码副本

appname-ear/target/appname-ear-1.0-SNAPSHOT/appname-war-1.0-SNAPSHOT.war

如果您编辑这些文件中的代码,它将在运行时没有任何意义。每次运行应用程序时都会生成这些文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多