如何在同一个文件中添加 XML 模式和 XML 元素?

Posted

技术标签:

【中文标题】如何在同一个文件中添加 XML 模式和 XML 元素?【英文标题】:How to add XML schema and XML element together in same file? 【发布时间】:2021-05-29 15:32:02 【问题描述】:

**

我想将 XML 模式和 XML 元素一起添加到同一个文件中。因为这个xml文件我们需要根据具体记录通过C#生成。所以,我正在寻找一些代码帮助我如何将 XMLSchema 和 XML 元素一起写在同一个文件和同一个元素内。请检查附件。

<Survey>
   **Here i want XML schema** 
   **Here i want XML element** 
</Survey>

【问题讨论】:

因为这个xml文件我们需要根据具体的记录通过C#生成。 - 那么您能解释一下您遇到了什么问题阻止您这样做吗?您如何尝试将 xsd 和 XML 写入文件?您目前如何在记忆中代表它们?你不能用XmlWriter写它们吗? 您缺少架构标签:w3schools.com/xml/schema_intro.asp 完成了。 @dbc 谢谢! 【参考方案1】:

工作代码示例

SiteSurveyX siteSurveyX = new SiteSurveyX();
XmlTextReader reader = new XmlTextReader("c:\\temp\\TestSiteSchema.xsd");
//siteSurveyX.SurveySchema = XmlSchema.Read(reader, null);
XmlSchema myschema = XmlSchema.Read(reader, null);
string filePath = HelperFunctions.SurveyFilePath + routeName;
////Get all node record from DB
siteSurveyX.Survey = routeService.GetRouteDetailForXML(routeId, Convert.ToString(ddlRoute.Text), chkCurrentInterruption.Checked);

using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite))

    lblStatus.Text = "Preparing file";
    stream.Close();
    stream.Dispose();

    //Convert record in XML
    XmlSerializer serializer = new XmlSerializer(typeof(SiteSurveyX));
    using (StreamWriter writer = new StreamWriter(filePath, true))
    
        serializer.Serialize(writer, siteSurveyX);
        lblStatus.Text = "Ready";
    

用这段代码就完成了。

【讨论】:

以上是关于如何在同一个文件中添加 XML 模式和 XML 元素?的主要内容,如果未能解决你的问题,请参考以下文章

XSD:如何重新定义基本模式的标签

Java注解基本介绍

如何向 Docker 上托管的 Oracle DB 服务器添加目录和注册 XML 模式?

Hibernate 注释用法

c# 从远程 XML 文件动态添加正则表达式模式

如何将 SQL 转换为每个 ID 一行的 XML 模式(用于 XML RAW)