如何在直接组合源XML时获取模式名称

时间:2012-04-10 04:27:32

标签: tridion

我正在使用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>

谢谢。

2 个答案:

答案 0 :(得分:6)

通常,Component的XML包含对Schema TcmUri和title的引用(在节点tcm:Component/tcm:Data/tcm:Schema下)。

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

有一种方法可以从TcmUri检索架构ComponentData和标题。只需使用ComponentData.Schema属性IdRefTitle

答案 1 :(得分:2)

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

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;