DataSet.WriteXmlSchema()方法可将DataSet的表结构、关系、约束等元数据导出为标准XSD文件,支持文件路径、Stream或XmlWriter,但不包含数据;使用前需确保Tables.Count>0。

可以使用 DataSet.WritexmlSchema() 方法将 DataSet 的结构(即 Schema)单独写入 XML 文件,不包含数据。
使用 WriteXmlSchema() 写入 Schema
该方法只导出表结构、关系、约束、数据类型等元数据,生成标准的 XSD(XML Schema Definition)文件。
- 支持写入文件路径、
stream或XmlWriter - 生成的 XML 符合 W3C XSD 规范,可被其他系统或工具读取用于校验或建模
- 若 DataSet 为空或未初始化,会抛出异常,建议先检查
DataSet.Tables.Count > 0
基础写法示例
将 Schema 保存为本地 .xsd 文件:
DataSet ds = new DataSet(); // ... 添加 DataTable、关系等 ds.WriteXmlSchema("schema.xsd"); // 直接写入文件
更安全的写法(含异常处理与验证)
推荐显式检查并使用 using 管理资源:
if (ds.Tables.count == 0) { throw new InvalidOperationException("DataSet 中没有表,无法写入 Schema"); } try { ds.WriteXmlSchema("output.xsd"); } catch (UnauthorizedaccessException) { // 检查路径权限 } catch (IOException ex) { // 处理磁盘满、路径无效等问题 }
写入内存流或字符串(适合 API 或临时处理)
若需获取 Schema 的 XML 字符串:
using (var stream = new MemoryStream()) { ds.WriteXmlSchema(stream); stream.Position = 0; using (var reader = new StreamReader(stream)) { string schemaXml = reader.ReadToEnd(); // schemaXml 即为 XSD 内容 } }
不复杂但容易忽略:WriteXmlSchema 不会写入数据,如需同时保存结构和数据,应改用 WriteXml(..., XmlWriteMode.WriteSchema)。