我的架构源如下所示:
<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.html 和 http://www.curlette.com/?p=913 中解释的,感谢您的工作!)但我会喜欢找到避免使用事件的解决方案。还有其他想法吗?
最佳答案
不幸的是,这不能在多行字段上完成。这适用于启用 RTF 的字段和多行纯文本字段。
这是设计使然(实际上很有意义),因为尝试限制文本通常与文本使用的空间量有关,并且这些字段支持换行符(以及在启用 RTF 的字段的情况下的其他格式) ) 所以字符串长度与文本使用的空间几乎没有关系。
如果您的字段是 RTF 字段,您可以编写一个“截断”XSLT 来应用于文本。否则,您将需要使用上面提到的解决方案之一。
或者,如果文本太长,您可以考虑使用输出模板截断文本。
关于tridion - SDL Tridion 2011 中 MultiLineText 字段的 MaxLength 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14396071/