Domanda

Sto cercando di aggiungere un'istruzione di elaborazione al mio file XML nella vista sorgente del componente XML.Ad esempio:

<?altova_sps C:\Users\src\sps\2012\spsfile.sps?>
<my_element xmlns="uuid:8d903098-e607-4d96-90a7-14d2d188dab7">
  ...
</my_element>
.

Dopo aver fatto clic su Salva, Tridion CME rimosse automaticamente l'istruzione di elaborazione.C'è un modo per cambiare questo comportamento?

(Voglio aggiungere l'istruzione di elaborazione in modo da poter aprire il file XML con XMLSPY in View Authentic utilizzando WebDAV)

È stato utile?

Soluzione

L'ho ricercato un po ', e non sono convinto che questo possa essere fatto dall'interno del CMS.Tuttavia, probabilmente puoi ottenere questo creando un httpmodule o un proxy o qualche modulo che trasforma le richieste e le risposte apportate alla directory / webDAV della CME.

Concettualmente quando una richiesta viene effettuata da XMLSPY, il nuovo modulo pre-Penderà l'istruzione desiderata all'XML in base all'articolo come componente e lo schema è basato su.Quindi, quando salvi (post) i dati di cui avrebbero bisogno di spuntarlo di nuovo.Ciò lascerebbe la struttura XML nel formato che richiede il Tridione SDL.

Spero che aiuti

chris

Altri suggerimenti

Sto pubblicando questo come un'idea - anche se non riesco a farlo fare del tutto ciò che vuoi.Ho scritto un eventhandler per manipolare l'XML ricevuto da XMLSPY (e tutti i clienti, inclusa la CME a questo punto)

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;
            }
        }


    }
}
.

Ho provato a manipolare l'uscita (sostituendo una stringa), e viene visualizzata in XMLSPY tramite WebDAV.Il problema che ho è che l'aggiunta dell'istruzione di elaborazione non rientra nel documentale, quindi non lo rende mai nel nuovo XML.

Quindi so che questo non risolve la tua sfida - ma forse qualcun altro conosce un evento che ti consentirebbe di aggiungere l'istruzione quando l'XML viene caricato tramite la cartuccia WebDAV in modo simile.

Spero che qualcun altro possa aiutarti a chiudere questo - scavarò un po 'di più se ho tempo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top