5

以下のコードを使用して、Tridion テンプレート クラスでマルチメディア コンポーネントを作成しようとしています。

MemoryStream stringInMemoryStream = new MemoryStream(ASCIIEncoding.Default.GetBytes("
<test>testing</test>"));                            
Component xmlMultimediaComponent = new Component(engine.GetSession(), new 
  TcmUri("tcm:21-2008-2"));                
xmlMultimediaComponent.Title = "New MM component";
xmlMultimediaComponent.Schema = new Schema(new TcmUri("tcm:10-6532-8"), 
 engine.GetSession());                
xmlMultimediaComponent.BinaryContent.MultimediaType = new MultimediaType(new 
   TcmUri("tcm:0-36-65544"), engine.GetSession());                                         
xmlMultimediaComponent.BinaryContent.MultimediaType.MimeType = "application/xml";
xmlMultimediaComponent.BinaryContent.MultimediaType.FileExtensions = new List<string> 
   {"xml", "XML"};
xmlMultimediaComponent.BinaryContent.UploadFromStream = stringInMemoryStream;
xmlMultimediaComponent.BinaryContent.Filename = "testing.xml".ToLower();                                    
xmlMultimediaComponent.Save();                
xmlMultimediaComponent.CheckIn(true);

「tcm:21-2008-2」は、コンポーネントを作成する必要があるフォルダー TCM ID であることに注意してください。「tcm:10-6532-8」はマルチメディア スキーマ ID で、「tcm:0-36-65544」はマルチメディア タイプ ID です。

ただし、いくつかの問題があるようで、以下のエラーで失敗しています:

スキーマへのリンクに無効な値があります。Tridion.ContentManager.Utilities.ThrowInvalidLinkException(リンク リンク、KernelException innerException) で Tridion.ContentManager.IdentifiableObject.AssertValidLink(リンク リンク) で Tridion.ContentManager.IdentifiableObject.AssertValidLinks(IEnumerable`1 リンク) で Tridion.ContentManager.IdentifiableObject.AssertValidLinks( ) Tridion.ContentManager.ContentManagement.RepositoryLocalObject.OnSaving(SaveEventArgs eventArgs) で Tridion.ContentManager.ContentManagement.VersionedItem.OnSaving(SaveEventArgs eventArgs) で Tridion.ContentManager.ContentManagement.Component で Tridion.ContentManager.IdentifiableObject.OnSaving(SaveEventArgs eventArgs)。 OnSaving(SaveEventArgs eventArgs) で Tridion.ContentManager.IdentifiableObject.Save(SaveEventArgs eventArgs) で Tridion.

上記のエラーは以下のステートメントで発生していますxmlMultimediaComponent.Save()

LinkToMultimedia タイプのスキーマ ID をマルチメディア コンポーネントに渡す方法はありますか?

4

1 に答える 1

11

スキーマIDにはコンテキストパブリケーションIDが含まれている必要があると思います。したがって、この場合、10-6532-8は21-6532-8である必要があります。

ありがとう

于 2013-01-12T10:37:09.120 に答える