1

我正在使用 SDL Tridion 2011 SP1 中的核心服务 2011 创建组件。

我只想知道,当我在本地机器上直接拥有组件源 XML 时,是否可以获取架构名称。

考虑我有 ABCD.xml 存储在我的本地机器中。我想给这个 ABCD.xml 作为输入来获取它正在使用的架构。

是否有可能通过核心服务 2011,如果可以,请分享您的看法。

只是为了在我的本地机器上有一个示例内容 xml 文件。是这里。

            <Content xmlns="uuid:someUUID">
                 <first>first filed</first>
                 <second>second field</second>
            </Content>

谢谢你。

4

2 回答 2

6

通常,组件的 XML 包含对 Schema TcmUri 和标题(在 node 下tcm:Component/tcm:Data/tcm:Schema)的引用。

但是,如果您ComponentData在核心服务中加载,您将看不到通过ComponentDataAPI 公开的完整组件 XML。

有一种方法可以TcmUriComponentData. 只需使用ComponentData.Schema属性IdRefTitle.

于 2012-04-10T05:34:21.240 回答
2

您可以使用以下代码: XmlDocument componentXml = new XmlDocment();

XmlDocument componentXml = new XmlDocument();
componentXml.Load("Your Xml File Path");
XmlNameTable nameTable = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nameTable);
nsmgr.AddNamespace("tcm", "http://www.tridion.com/ContentManager/5.0");

XmlNode schemaNode = componentXml.SelectSingleNode("/tcm:Component/tcm:Data/tcm:Schema", nsmgr);
string schemaTitle = schemaNode.Attributes["xlink:title"].Value;
于 2012-04-17T08:11:54.730 回答