私はこれをアイデアとして投稿していますが、あなたが望むことを完全に行うことはできません. XMLSpy (およびこの時点で CME を含むすべてのクライアント) によって受信された XML を操作する EventHandler を作成しました。
using System;
using System.Text;
using System.Xml;
using Tridion.ContentManager.Extensibility.Events;
using Tridion.ContentManager.Extensibility;
using Tridion.ContentManager.ContentManagement;
using System.IO;
namespace UrbanCherry.Net.SDLTridion.EventHandlers
{
[TcmExtension("AppendAuthenticHeaders")]
public class AppendAuthenticHeaders : TcmExtension
{
public AppendAuthenticHeaders()
{
Subscribe();
}
public void Subscribe()
{
EventSystem.Subscribe<Component, LoadEventArgs>(AppendAuthenticHeader, EventPhases.Processed);
}
private void AppendAuthenticHeader(Component source, LoadEventArgs args, EventPhases phase)
{
if (source.ComponentType != ComponentType.Multimedia)
{
XmlDocument newXml = new XmlDocument();
newXml.LoadXml("<?altova_sps C:\\Users\\src\\sps\\2012\\spsfile.sps?>" + source.Content.OuterXml);
source.Content = newXml.DocumentElement;
}
}
}
}
出力を (文字列を置換して) 操作してみましたが、WebDAV 経由で XMLSpy に表示されます。私が抱えている問題は、処理命令の追加が DocumentElement の範囲外になるため、新しい XML に組み込まれないことです。
だから私はこれがあなたの課題を解決しないことを知っています - しかし、おそらく他の誰かが、XMLがWebDAVカートリッジを介して同様の方法でロードされたときに命令を追加できるイベントを知っています.
他の誰かがこれを閉じるのを手伝ってくれることを願っています - 時間があればもう少し掘り下げます