我有一个XML文件,它保存了数据源的配置数据,并在“数据系列”元素中保存了相关的查询。
因为我实际上不需要由XML组成的域对象,而只需要读取和用于配置连接等的设置。我想知道使用我定义的XML模式是否有任何优势?
我正在使用LINQ to XML来读取我的XML,最初我认为使用强类型的XML是一个好主意。
我应该使用.xsd吗?还是有点夸大其词?
一个模拟XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<datasource name=" Datasource" cache="true">
<database>
<connection>
<provider-name>sqlServer6.0</provider-name>
<source name="E5"
connectionString=""/>
</connection>
<update-interval>30</update-interval>
<minimum-update-interval>2</minimum-update-interval>
</database>
<dataseries name="" identifier="e5">
<graph-type></graph-type>
<query>
SELECT Period, Price
FROM PriceUS
WHERE Date = @date
</query>
</dataseries>
<dataseries name="" identifier="e52">
<graph-type></graph-type>
<query>
SELECT Period, Price
FROM PriceUS
WHERE Date = @date
</query>
</dataseries>
</datasource>
发布于 2009-05-26 20:00:15
有两个级别的“正确”的XML文档:well-formed and valid。格式良好意味着它符合XML规范,而有效意味着它符合您的模式。如果您正在接受一个完全陌生的XML文档,那么在继续之前检查文档的有效性通常是一个好主意。
正如您所提到的,XML模式也可用于生成XML数据绑定实体。当您向世界或您的客户发布服务或模式时,模式文档可以用作规范。然后,整个世界或您的客户都可以使用XSD文件来验证您交换的XML文档或将其绑定到数据。
发布于 2009-05-27 07:01:31
从技术上讲,XML中有两种正式的模式类型。最初的模式语法称为文档类型定义(DTD),它是古老的SGML时代的遗物。然后是W3C标准,它与现代数据更兼容。
我提到这一点的唯一原因是,您可能会收到一个使用DTD描述的XML文件,您可能需要知道如何处理它。
但是,朋友们请不要让朋友为新的应用程序创建DTD。
发布于 2009-05-26 19:58:39
例如,当您想要对XML进行验证时,模式是很好的,例如,确保某些元素存在或具有一组有限的值。如果您要对XML进行大量工作,并且将XML转换为C#对象会更容易,那么模式也很好--在这种情况下,您可以使用xsd.exe
代码生成器来生成可以从XML中进行编组和解组的C#对象。
https://stackoverflow.com/questions/913851
复制