0

我的 cron.xml:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
 <cron>
   <url>/myURL</url>
   <description>Backup data 02 times per day</description>
   <schedule>every 12 hours</schedule>
   <timezone>America/New_York</timezone>
   <target>ah-builtin-python-bundle</target>
 </cron>
</cronentries>

当我将我的应用程序上传到 gae 时,我收到一条错误消息:

在“将应用程序部署到 Google”期间发生内部错误。针对 /Users/Aptos/appengine-java-sdk-1.7.0/docs/cron.xsd 验证 /Users/Aptos/Documents/workspace/App/war/WEB-INF/cron.xml 的 XML 错误


cron.xsd 文件:

http://code.google.com/p/googleappengine/source/browse/trunk/java/docs/cron.xsd?r=109

解决方法:如果 url 元素中包含特殊的 XML 字符 &、<、>、' 或 ",您应该将它们转义。
非常感谢

4

3 回答 3

1

你有一个额外的标签 :target (最后一个标签),这个标签不会出现在 XSD 中。

于 2012-07-10T08:31:48.180 回答
1

至少在您链接到的文件中,cron 元素中没有目标元素。
看起来你有一个旧的 xsd 文件,最新的 xsd 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="cronentries" type="cronentries-Type"/>

  <xs:complexType name="cronentries-Type">
    <xs:sequence>
      <xs:element type="cron-Type" name="cron" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="cron-Type">
    <xs:all>
      <xs:element type="xs:string" name="url"/>
      <xs:element type="xs:string" name="description" minOccurs="0"/>
      <xs:element type="xs:string" name="schedule"/>
      <xs:element type="xs:string" name="timezone" minOccurs="0"/>
      <xs:element type="target-Type" name="target" minOccurs="0"/>
    </xs:all>
  </xs:complexType>

  <xs:simpleType name="target-Type">
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z\d\-]{1,100}"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
于 2012-07-10T08:34:30.993 回答
0

这些 AppEngine 配置文件的 XSD 是“无名称空间的”(即没有与 appengine-web.xsd 的 xs:schema 相比的目标名称空间),因此您必须将其声明为:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="https://googleappengine.googlecode.com/svn-history/r109/trunk/java/docs/cron.xsd">
 <cron>
   <url>/myURL</url>
   <description>Backup data 02 times per day</description>
   <schedule>every 12 hours</schedule>
   <timezone>America/New_York</timezone>
   <target>ah-builtin-python-bundle</target>
 </cron>
</cronentries>

另请注意,您必须使用文件的原始版本:

https://googleappengine.googlecode.com/svn-history/r109/trunk/java/docs/cron.xsd

而不是浏览器版本:

https://code.google.com/p/googleappengine/source/browse/trunk/java/docs/cron.xsd?r=109

于 2013-08-26T23:40:08.630 回答