2013-01-18 11 views
5

La mia fonte schema appare come segue:MaxLength restrizione per il campo MultiLineText in SDL Tridion 2011

<xsd:schema xmlns="uuid:b8fd4596-56ec-4718-ad00-bf2a70a148c2" xmlns:tcmi="http://www.tridion.com/ContentManager/5.0/Instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="uuid:b8fd4596-56ec-4718-ad00-bf2a70a148c2"> 
<xsd:import namespace="http://www.tridion.com/ContentManager/5.0/Instance"></xsd:import> 
<xsd:annotation> 
    <xsd:appinfo> 
     <tcm:Labels xmlns:tcm="http://www.tridion.com/ContentManager/5.0"> 
      <tcm:Label ElementName="description" Metadata="false">Description</tcm:Label> 
      <tcm:Label ElementName="multiline" Metadata="false">Multiline</tcm:Label> 
     </tcm:Labels> 
    </xsd:appinfo> 
</xsd:annotation> 
<xsd:element name="Blog"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="description" minOccurs="0" maxOccurs="1"> 
       <xsd:annotation> 
        <xsd:appinfo> 
         <tcm:ExtensionXml xmlns:tcm="http://www.tridion.com/ContentManager/5.0"></tcm:ExtensionXml> 
        </xsd:appinfo> 
       </xsd:annotation> 
       <xsd:simpleType> 
        <xsd:restriction base="xsd:normalizedString"> 
         <xsd:minLength value="1"></xsd:minLength> 
         <xsd:maxLength value="20"></xsd:maxLength> 
        </xsd:restriction> 
       </xsd:simpleType> 
      </xsd:element> 
      <xsd:element name="multiline" minOccurs="0" maxOccurs="1" type="tcmi:MultiLineText"> 
       <xsd:annotation> 
        <xsd:appinfo> 
         <tcm:ExtensionXml xmlns:tcm="http://www.tridion.com/ContentManager/5.0"> 
          <configuration xmlns="http://www.sdltridion.com/2011/SiteEdit"> 
           <field> 
            <editable>true</editable> 
           </field> 
          </configuration> 
         </tcm:ExtensionXml> 
         <tcm:Size xmlns:tcm="http://www.tridion.com/ContentManager/5.0">5</tcm:Size> 
        </xsd:appinfo> 
       </xsd:annotation> 
      </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element></xsd:schema> 

sono in grado di utilizzare il maxlength e minLength restrizioni su una "xsd: normalizedString" digita il campo, ma non sono in grado di utilizzare le stesse restrizioni per il tipo "tcmi: MultiLineText". Qualcuno sa come posso usarli su quel tipo di campo?

Nel caso in cui non è possibile utilizzare le restrizioni in quel campo, so che ci sono altri modi di convalidare contenuto di salvare in Tridion (come Nuno e Robert spiegate in http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.html e http://www.curlette.com/?p=913, grazie per questo lavoro!), Ma vorrei piace trovare una soluzione evitando l'uso di eventi. Altre idee?

risposta

8

Sfortunatamente questo non può essere fatto su campi multilinea. Ciò vale sia per i campi abilitati per RTF che per i campi di testo semplice su più righe.

Questo è di progettazione (e in realtà ha molto senso), in quanto il tentativo di limitare il testo si riferisce normalmente alla quantità di spazio utilizzato dal testo e questi campi supportano interruzioni di riga (e altra formattazione nel caso dei campi abilitati per RTF), quindi la lunghezza della stringa ha poco a che fare con lo spazio utilizzato dal testo.

Se il campo è un campo RTF, è possibile scrivere un XSLT "Tronca" da applicare al testo. Altrimenti dovrai utilizzare una delle soluzioni a cui hai fatto riferimento sopra.

In alternativa è possibile considerare di troncare il testo con i modelli di output se è troppo lungo.

+0

Grazie per la risposta Chris! Proverò quindi a utilizzare una delle soluzioni di eventi di salvataggio, perché non tutti i campi limitati sarebbero campi RTF. –

Problemi correlati