2013-01-18 21 views
5

nguồn schema của tôi trông giống như sau:maxlength hạn chế cho lĩnh vực MultiLineText trong 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> 

Tôi có thể sử dụng maxlengthMINLENGTH hạn chế đối với một "xsd: normalizedString" loại trường, nhưng tôi không thể sử dụng các hạn chế tương tự cho loại "tcmi: MultiLineText". Bất cứ ai cũng biết làm thế nào tôi có thể sử dụng chúng trên loại lĩnh vực đó?

Trong trường hợp không thể sử dụng các hạn chế trong trường đó, tôi biết có nhiều cách khác để xác thực nội dung khi lưu trong Tridion (như Nuno và Robert giải thích trong http://nunolinhares.blogspot.com.es/2012/07/validating-content-on-save-part-1-of.htmlhttp://www.curlette.com/?p=913, cảm ơn công việc đó!) muốn tìm một giải pháp tránh sử dụng các sự kiện. Bất kỳ ý tưởng nào khác?

Trả lời

8

Rất tiếc, điều này không thể thực hiện được trên các trường nhiều dòng. Điều này đúng cho cả hai trường được kích hoạt RTF và các trường văn bản thuần túy đa dòng. Điều này là do thiết kế (và thực sự làm cho rất nhiều ý nghĩa), như cố gắng để giới hạn văn bản thường làm với số lượng không gian được sử dụng bởi văn bản, và các lĩnh vực này hỗ trợ ngắt dòng (và định dạng khác trong trường hợp của các trường được bật RTF) do đó độ dài chuỗi có ít việc phải làm với không gian được văn bản sử dụng.

Nếu trường của bạn là trường RTF, bạn có thể viết XSLT "Cắt ngắn" để áp dụng cho văn bản. Nếu không, bạn sẽ cần phải sử dụng một trong các giải pháp mà bạn đã tham chiếu ở trên.

Hoặc bạn có thể xem xét cắt bớt văn bản với các mẫu đầu ra của bạn nếu nó quá dài.

+0

Cảm ơn câu trả lời Chris! Tôi sẽ thử sau đó sử dụng một trong các giải pháp lưu sự kiện, vì không phải tất cả các trường bị hạn chế sẽ là các trường RTF. –

Các vấn đề liên quan