SSIS:将模式添加到xml文件

问题描述:

我需要从数据库中提取数据并通过ssis创建一个xml文件。到目前为止,我已经创建了一个脚本,可以成功创建一个xml文件(使用XmlTextWriter),列出了所有必要的数据,但是他们也希望在该文件中列出模式,我不知道该怎么做。SSIS:将模式添加到xml文件

这里是我当前的代码(在我的数据流量使用脚本组件)创建我的XML文件:

​​
public override void PreExecute() 
{ 


    rowName = "Responses"; 
    collectionName = "NewDataSet"; 
    String fileName = Variables.FullFileName;   
    xWriter = new XmlTextWriter(fileName, null); 
    xWriter.WriteStartDocument(); 
    xWriter.WriteStartElement(collectionName); 
} 

public override void PostExecute() 
{   

    xWriter.WriteEndElement(); 
    xWriter.WriteEndDocument(); 
    xWriter.Close(); 
} 

public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    Type rowType = Row.GetType(); 
    PropertyInfo columnValue; 

    xWriter.WriteStartElement(rowName); 
    foreach (IDTSInputColumn100 column in this.ComponentMetaData.InputCollection[0].InputColumnCollection) 
    { 
     columnValue = rowType.GetProperty(column.Name); 
     xWriter.WriteStartElement(column.Name); 

     Object value = columnValue.GetValue(Row, null); 
     if(value != null) 
     { 
      xWriter.WriteValue(value.ToString()); 

     } 

     xWriter.WriteEndElement(); 
    }  
} 

我如何添加架构信息到这一点?我看过“WriteXmlSchema”的教程,但这似乎只适用于一个数据集(我没有使用)。

我真的很感谢您能提供任何帮助。

+0

模式用于验证XML。所以,你必须有一个现有的模式,或者你需要创建一个模式。您的客户可能假设您正在根据模式验证XML,并且他们希望通过检查模式来查看验证标准。因此,您可能希望根据项目预期重新与客户同步。 – David

如果您只需引用xml文档中的现有模式,它只是根元素中的一个属性。见this tutorial re XML schemas。在该网页上的例子,写的参考架构,之后 xWriter.WriteStartElement(collectionName); 添加

xWriter.WriteAttributeString("xsi:schemalocation", "http://www.w3schools.com note.xsd") 

如果你需要创建XSD架构文档,有各种方式来做到这一点。我建议使用Google搜索“从...创建xsd”。

+0

工作正常!谢谢 – goalie35