tridion - SDL Tridion 2011 中 MultiLineText 字段的 MaxLength 限制

标签 tridion tridion-2011 xsd-validation maxlength

我的架构源如下所示:

<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”类型字段使用 maxlength 和 minLength 限制,但我不能对“tcmi:MultiLineText”类型使用相同的限制。任何人都知道我如何在那种类型的领域使用它们?

如果无法在该领域使用该限制,我知道还有其他方法可以验证 Tridion 中保存的内容(如 Nuno 和 Robert 在 http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.htmlhttp://www.curlette.com/?p=913 中解释的,感谢您的工作!)但我会喜欢找到避免使用事件的解决方案。还有其他想法吗?

最佳答案

不幸的是,这不能在多行字段上完成。这适用于启用 RTF 的字段和多行纯文本字段。

这是设计使然(实际上很有意义),因为尝试限制文本通常与文本使用的空间量有关,并且这些字段支持换行符(以及在启用 RTF 的字段的情况下的其他格式) ) 所以字符串长度与文本使用的空间几乎没有关系。

如果您的字段是 RTF 字段,您可以编写一个“截断”XSLT 来应用于文本。否则,您将需要使用上面提到的解决方案之一。

或者,如果文本太长,您可以考虑使用输出模板截断文本。

关于tridion - SDL Tridion 2011 中 MultiLineText 字段的 MaxLength 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14396071/

相关文章:

tridion - 从发布队列中隐藏发布的项目

tridion - SDl Tridion 许可证

tridion - 如何更改 SDL Tridion Publisher 的日志记录位置?

tridion - 通过tridion核心服务删除对象

在 VS 2010 中的服务引用为 'Update' 后,Tridion 核心服务引用变得未知

tridion - SchemaTitleCriteria在SDL Tridion Broker查询中未产生任何结果

tridion - 错误: Could not find default endpoint element that references contract

xml - 没有元素引用的 XSD complexType 有什么用?

java - 如何将 catalog.xml 实体与数据库匹配?