2013-01-18 11 views
5

Meine Schemaquelle sieht aus wie folgt:MaxLength Einschränkung für MultiLineText Feld 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> 

Ich bin in der Lage, den maxlength und minLength Einschränkungen auf die Verwendung von "xsd: normalizedString" Typ Feld, aber ich kann nicht die gleichen Einschränkungen für den Typ "tcmi: MultiLineText" verwenden. Jeder weiß, wie kann ich sie auf dieser Art von Feld verwenden?

Im Fall ist es nicht möglich zu verwenden, dass Einschränkungen in diesem Bereich, ich weiß, es gibt auch andere Möglichkeiten, Inhalte Validierung in Tridion auf speichern (wie Nuno und Robert in http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.html erklärt und http://www.curlette.com/?p=913, vielen Dank für diesen Job!), Aber ich würde gerne eine Lösung finden, die die Verwendung von Ereignissen vermeidet. Irgendwelche anderen Ideen?

Antwort

8

Leider kann dies nicht auf mehrzeiligen Feldern durchgeführt werden. Dies gilt sowohl für RTF-fähige Felder als auch für mehrzeilige Nur-Text-Felder.

Dies ist von Entwurf (und macht tatsächlich viel Sinn), wie zu versuchen, Text zu begrenzen, ist in der Regel mit der Menge an Speicherplatz durch den Text zu tun, und diese Felder unterstützen Zeilenumbrüche (und andere Formatierungen in dem Fall) von RTF-fähigen Feldern), so dass die Zeichenfolgenlänge wenig mit dem vom Text verwendeten Platz zu tun hat.

Wenn Ihr Feld ein RTF-Feld ist, könnten Sie eine "Abschneiden" -SLTT schreiben, die auf den Text angewendet wird. Andernfalls müssen Sie eine der Lösungen verwenden, auf die Sie oben verwiesen haben.

Alternativ könnten Sie den Text mit Ihren Ausgabevorlagen abschneiden, wenn er zu lang ist.

+0

Danke für die Antwort Chris! Ich werde dann versuchen, eine der gespeicherten Ereignislösungen zu verwenden, da nicht alle eingeschränkten Felder RTF-Felder wären. –