5

私のスキーマソースは次のようになります。

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

「xsd:normalizedString」タイプのフィールドでmaxlengthminLengthの制限を使用することはできますが、「tcmi:MultiLineText」タイプで同じ制限を使用することはできません。そのタイプのフィールドでそれらをどのように使用できるか知っている人はいますか?

そのフィールドでその制限を使用できない場合は、Tridionでの保存時にコンテンツを検証する他の方法があることを知っています(NunoとRobertがhttp://nunolinhares.blogspot.com.es/2012/07/validatingで説明したように) -content-on-save-part-1-of.htmlおよびhttp://www.curlette.com/?p=913、その仕事に感謝します!)しかし、イベントの使用を回避する解決策を見つけたいと思います。他のアイデアはありますか?

4

1 に答える 1

8

残念ながら、これは複数行のフィールドでは実行できません。これは、RTF対応フィールドと複数行のプレーンテキストフィールドの両方に当てはまります。

テキストを制限しようとすることは通常、テキストによって使用されるスペースの量と関係があり、これらのフィールドは改行(およびRTF対応フィールドの場合は他のフォーマット)をサポートするため、これは設計によるものです(実際には多くの意味があります)。 )したがって、文字列の長さは、テキストで使用されるスペースとはほとんど関係がありません。

フィールドがRTFフィールドの場合は、「切り捨て」XSLTを記述してテキストに適用できます。それ以外の場合は、上記で参照したソリューションの1つを使用する必要があります。

または、テキストが長すぎる場合は、出力テンプレートを使用してテキストを切り捨てることを検討してください。

于 2013-01-18T14:07:22.493 に答える