2012-10-16 3 views
4

여러 줄 필드에서 서식있는 텍스트 서식을 사용할 수 있는지 여부를 핵심 서비스를 통해 확인하고 싶습니다. 내가 서식있는 텍스트 형식을 사용하도록 설정 한 후 스키마의 소스를 분석하면Tridion 핵심 서비스 : 여러 줄 필드에 서식있는 텍스트 서식이 설정되어 있는지 확인하는 방법은 무엇입니까?

다음이 목적을 위해 삽입 태그를 많이 있습니다 : -

<tcm:Size xmlns:tcm="http://www.tridion.com/ContentManager/5.0">2</tcm:Size> 
      <tcm:FilterXSLT xmlns:tcm="http://www.tridion.com/ContentManager/5.0"> 
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
       <xsl:output omit-xml-declaration="yes" method="xml" cdata-section-elements="script"></xsl:output> 
       <xsl:template name="FormattingFeatures"> 
       <FormattingFeatures xmlns="http://www.tridion.com/ContentManager/5.2/FormatArea"> 
        <Doctype>Transitional</Doctype> 
        <AccessibilityLevel>0</AccessibilityLevel> 
        <DisallowedActions></DisallowedActions> 
        <DisallowedStyles></DisallowedStyles> 
       </FormattingFeatures> 
       </xsl:template> 
       <xsl:template match="/ | node() | @*"> 
       <xsl:copy> 
        <xsl:apply-templates select="node() | @*"></xsl:apply-templates> 
       </xsl:copy> 
       </xsl:template> 
       <xsl:template match="/body[not(processing-instruction() or comment() or normalize-space(translate(., &apos; &apos;, &apos;&apos;)) != &apos;&apos; or  *[@* or * or comment() or processing-instruction() or not(self::p or self::br)])]"> 
       <!-- make an empty <body> if all the body has is empty paragraphs, line-breaks and (non-breaking) spaces --> 
       <xsl:copy></xsl:copy> 
       </xsl:template> 
       <xsl:template match="p[not(@* or * or comment() or processing-instruction() or normalize-space(translate(., &apos; &apos;, &apos;&apos;)) != &apos;&apos; or  following-sibling::node()[@* or * or comment() or processing-instruction() or not(self::p or self::text()) or normalize-space(translate(., &apos; &apos;, &apos;&apos;)) != &apos;&apos;])]"> 
       <!-- ignore all paragraphs at the end that have nothing but (non-breaking) spaces --> 
       </xsl:template> 
      </xsl:stylesheet> 
      </tcm:FilterXSLT> 

그러나 정확히 재산입니다 서식있는 텍스트가 내가 사용하는 경우 찾아 핵심 서비스 API 문서에서도 파악할 수 없습니다.

내 핵심 서비스 코드는 약간 아래와 같다 : -이

SessionAwareCoreService2010Client client = new SessionAwareCoreService2010Client(); 
client.ClientCredentials.Windows.ClientCredential.UserName = "myUserName"; 
client.ClientCredentials.Windows.ClientCredential.Password = "myPassword"; 
client.Open(); 
SchemaFieldsData fields = client.ReadSchemaFields("tcm-x-y-z", 
                true, new ReadOptions()); 


foreach (var field in fields.Fields) 
{ 
    if (field is MultiLineTextFieldDefinitionData) 
    { 
     return Constants.DataType.STRING; 
    } 
} 

제안하십시오.

답변

2

당신이 사용할 수있는 표준 GetType().Name :

var schemaFields = ClientAdmin.ReadSchemaFields("tcm:2-82-8", false, new ReadOptions()); 
var field = schemaFields.Fields.First(); 
Assert.AreEqual("XhtmlFieldDefinitionData", field.GetType().Name); 
9

그냥 대신 XhtmlFieldDefinitionData과 비교 확인 "은"변경 :

if (field is XhtmlFieldDefinitionData) 
{ 
    ... 
} 
관련 문제