MaxLength restriction for MultiLineText field in SDL Tridion 2011

拥有回忆 提交于 2019-12-10 14:56:24

问题


My schema source looks like follows:

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

I'm able to use the maxlength and minLength restrictions on a "xsd:normalizedString" type field, but I'm not able to use the same restrictions for the "tcmi:MultiLineText" type. Anyone knows how can I use them on that type of field?

In case it's not possible to use that restrictions in that field, I know there are other ways of validating content on save in Tridion (as Nuno and Robert explained in http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.html and http://www.curlette.com/?p=913, thanks for that job!) but I would like to find a solution avoiding the use of events. Any other ideas?


回答1:


Unfortunately this can not be done on multi-line fields. This holds true for both RTF enabled fields and multi-line plain text fields.

This is by design (and actually makes a lot of sense), as trying to limit text is normally to do with the amount of space used by the text, and these fields support line breaks (and other formatting in the case of RTF enabled fields) so the string length has little to do with the space used by the text.

If your field is an RTF field, you could write a "Truncate" XSLT to apply to the text. Otherwise you will need to use one of the solutions you have referenced above.

Alternatively you might consider truncating the text with your output templates if it is too long.



来源:https://stackoverflow.com/questions/14396071/maxlength-restriction-for-multilinetext-field-in-sdl-tridion-2011

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!