代码之家  ›  专栏  ›  技术社区  ›  Will Marcouiller

警告:类型受方面模式的限制,该模式可能会妨碍此类型实例的完整往返。

  •  1
  • Will Marcouiller  · 技术社区  · 7 年前

    我总是收到这样的警告 xsd:dateTime 验证。

    +'              <xsd:element name="ProductCreationDate" minOccurs="1" maxOccurs="1">'
    +'                  <xsd:simpleType>'
    +'                      <xsd:restriction base="xsd:dateTime">'
    +'                          <xsd:whiteSpace value="collapse" fixed="true"/>'
    +'                          <xsd:pattern value="\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d"/>'
    +'                      </xsd:restriction>'
    +'                  </xsd:simpleType>'
    +'              </xsd:element>'
    

    此警告显示在消息窗格上:

    警告:类型 xs-nun(/ProductCreationDate/simpleType()) 受到一个方面的限制 pattern 可能会妨碍此类实例的完整往返

    有人知道如何消除这个警告吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Habrok    6 年前

    据我所知,这只不过是sql server告诉您确保模式与数据类型匹配。可以添加与无效日期时间字符串不匹配的模式,这样生成的类型永远无法通过验证(失败的基类型或模式限制)。

    如果您的模式可以忽略警告是安全的,但我不知道任何方法来抑制消息。

        2
  •  0
  •   kjhughes    7 年前

    该工具(您尚未指定)告诉您,它可能无法通过此约束进行往返。移除 pattern (或者整个 restriction ),如果要删除警告,或者如果不关心往返,则忽略它。

    注意,这种往返问题通常不会由验证解析器报告。也许您正在使用一个工具来映射到面向对象的类(例如jaxb或xsd.exe),在这些类中,一个简单的验证xml解析器就足够了。

    推荐文章