【问题标题】:Best practice for property validation from XSDXSD 属性验证的最佳实践
【发布时间】:2016-03-13 19:12:56
【问题描述】:

我可以使用 xsd.exe 从 XSD 生成 C# 模型类,但是如果我将验证属性添加到模型属性,下次生成类时我将丢失更改。

仅添加一次验证的最佳做法是什么?

【问题讨论】:

    标签: c# .net xml xsd


    【解决方案1】:

    如果您能够在 XML Schema (XSD) 中表示所有验证约束,那么您将受益于所有约束

    • 在一个地方定义,
    • 根据明确定义的标准表示,并且
    • 独立于 C#、Java、PhP、Python、Ruby 或任何其他语言进行通信 实现语言。

    获得这些好处的最佳实践是使用纯粹的 XML 模式(例如 XSD)来表示所有验证约束。

    当开发人员在 XSD 1.0 等 XML 模式中表达的内容遇到困难时,他们通常会选择以下几个方向:

    1. 使用 XSD 1.1 中可用的断言
    2. 迁移到另一个 XML 架构,例如 Schematron 或 RelaxNG。
    3. 用另一个验证层替换或增加 XSD 验证 基于他们选择的实现语言。通过分离 来自自动生成的验证的额外验证,两者 自动验证和自定义验证可以和平共存。

    【讨论】:

      【解决方案2】:

      在尝试使用 .net 针对 XSD 进行编码时,生成类是一种用于提高工作效率的方法。正如您所发现的,它不是一个双向工具。我认为您必须继续分别维护代码和 XSD - 但是您可能会考虑反转您的工作流程 - 从您的类生成 XSD 架构。

      XSD.EXE 工具文档说“如果您指定运行时程序集文件(.exe 或 .dll 扩展名),Xsd.exe 会为该程序集中的一种或多种类型生成架构。您可以使用 /type 选项指定为其生成模式的类型。” (https://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx)

      【讨论】:

        猜你喜欢
        • 2015-01-06
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多