从XSD进行属性验证的最佳实践

时间:2016-03-13 19:12:57

标签: c# .net xml xsd

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

当开发人员谈到可以在XML架构(如XSD 1.0)中表达的内容时,它们通常会出现以下几个方向之一:

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

答案 1 :(得分:0)

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

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