1

SDL Tridion2011SP1でコアサービス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には、スキーマTcmUriとタイトル(ノードの下tcm:Component/tcm:Data/tcm:Schema)への参照が含まれています。

ComponentDataただし、コアサービスにをロードすると、 ComponentDataAPIを介して公開された完全なコンポーネントXMLは表示されません。

TcmUriからスキーマとタイトルを取得する方法がありますComponentDataComponentData.SchemaプロパティIdRefまたはを使用するだけTitleです。

于 2012-04-10T05:34:21.240 に答える
2

次のコードを使用できます。XmlDocumentcomponentXml=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;
于 2012-04-17T08:11:54.730 に答える