如何在 XElement 上放置命名空间别名?如何将数据源添加到现有 RDL 文档?
Posted
技术标签:
【中文标题】如何在 XElement 上放置命名空间别名?如何将数据源添加到现有 RDL 文档?【英文标题】:How do you place namespace alias on an XElement? How do you add a datasource to existing RDL document? 【发布时间】:2013-05-03 16:55:57 【问题描述】:我正在尝试创建数据源的 XElement 以插入到 s-s-rS RDL 文件中。但是,对于 rd: 别名,我似乎无法正确创建它。这是我正在使用的代码。
XNamespace rootNs = "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";
XNamespace rdNs = "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner";
XElement _dataSource = new XElement("DataSource",
new XAttribute(XNamespace.Xmlns + "rd", rdNs),
new XAttribute("Name", "eFinancials_LOCAL"),
new XElement("ConnectionProperties", new XElement("DataProvider", "SQL"), new XElement("ConnectString", connectionString)),
new XElement(_rdns + "SecurityType", "DataBase"),
new XElement(_rdns + "DataSourceID", dataSourceId)
);
生成的 XML 元素是:
<DataSource xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" Name="eFinancials_LOCAL">
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>Data Source=.;Initial Catalog=800_LMS_eFin_Deploy</ConnectString>
</ConnectionProperties>
<SecurityType xmlns="rd">DataBase</SecurityType>
<DataSourceID xmlns="rd">56e5e869-6ca5-44f9-8340-22821177569e</DataSourceID>
</DataSource>
但是,它必须是:
<DataSource Name="eFinancials_LOCAL">
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>Data Source=.;Initial Catalog=800_LMS_eFin_Deploy</ConnectString>
</ConnectionProperties>
<rd:SecurityType>DataBase</SecurityType>
<rd:DataSourceID>56e5e869-6ca5-44f9-8340-22821177569e</DataSourceID>
</DataSource>
如何调整我的代码以创建上述正确的 XML?我几乎可以将其创建为文本。
【问题讨论】:
Doh.. 没关系.. 发现一个愚蠢的但在我的代码中。 【参考方案1】:XNamespace ns = @"http://www.somesite.com/xml/customer/2006-10-31";
XElement xe = new XElement(ns + "customers",
new XAttribute("xmlns", ns),
new XElement(ns + "customer", new XElement(ns + "firstname", customer.FirstName);
【讨论】:
以上是关于如何在 XElement 上放置命名空间别名?如何将数据源添加到现有 RDL 文档?的主要内容,如果未能解决你的问题,请参考以下文章
XElement 不应该从其父 Xelement 继承命名空间吗?