我正在使用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>
谢谢。
答案 0 :(得分:6)
通常,Component的XML包含对Schema TcmUri和title的引用(在节点tcm:Component/tcm:Data/tcm:Schema
下)。
但是,如果您在核心服务中加载ComponentData
,则不会看到通过ComponentData
API公开的完整组件XML。
有一种方法可以从TcmUri
检索架构ComponentData
和标题。只需使用ComponentData.Schema
属性IdRef
或Title
。
答案 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;