cron.xml - 验证错误

时间:2012-07-10 08:01:20

标签: java google-app-engine

我的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”期间发生内部错误。 XML   错误验证   /Users/Aptos/Documents/workspace/App/war/WEB-INF/cron.xml反对   /Users/Aptos/appengine-java-sdk-1.7.0/docs/cron.xsd


cron.xsd文件:

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

解决方案:如果url元素包含特殊的XML字符&amp;,&lt;,&gt;,'或“,则应该将它们转义。
非常感谢

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>

答案 2 :(得分:0)

这些AppEngine配置文件的XSD是“无命名空间”(即没有targetNamespace与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