Ограничение MaxLength для поля MultiLineText в 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>

Я могу использовать ограничения maxlength и minLength для поля типа "xsd:normalizedString", но я не могу использовать те же ограничения для "tcmi Тип: MultiLineText". Кто-нибудь знает, как я могу использовать их на этом типе поля?

Если в этом поле нельзя использовать эти ограничения, я знаю, что есть другие способы проверки содержимого при сохранении в Tridion (как объяснили Нуно и Роберт в http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.html и http://www.curlette.com/?p=913, спасибо за эту работу!), но я хотел бы найти решение, избегающее использования событий. Любые другие идеи?


person Sara C. Lorca    schedule 18.01.2013    source источник


Ответы (1)


К сожалению, это невозможно сделать для многострочных полей. Это верно как для полей с поддержкой RTF, так и для многострочных текстовых полей.

Это задумано (и на самом деле имеет большой смысл), поскольку попытка ограничить текст обычно связана с объемом пространства, используемым текстом, и эти поля поддерживают разрывы строк (и другое форматирование в случае полей с поддержкой RTF). ), поэтому длина строки имеет мало общего с пространством, используемым текстом.

Если ваше поле является полем RTF, вы можете написать XSLT «Truncate», чтобы применить его к тексту. В противном случае вам нужно будет использовать одно из решений, на которые вы ссылались выше.

В качестве альтернативы вы можете обрезать текст с помощью шаблонов вывода, если он слишком длинный.

person Chris Summers    schedule 18.01.2013
comment
Спасибо за ответ Крис! Затем я попробую использовать одно из решений для сохранения событий, потому что не все поля с ограниченным доступом будут полями RTF. - person Sara C. Lorca; 21.01.2013