2012-05-02 3 views
3

SDL Tridion использует определения схемы XML для определения содержимого, хранящегося в компонентах Tridion. XSD может использовать restrictions/facets или indicators, чтобы ограничить доступность для узлов XML.XSD-грани и индикаторы с SDL Tridion

Крис Саммерс found some of these случайно в обучении, в частности, что мы можем установить minOccurs и maxOccurs показатели в SDL Tridion 2011 как в:

<xsd:element name="someField" minOccurs="2" maxOccurs="5" type="xsd:normalizedString"> 

Андрей Марчук упоминает дополнительные опции в том же посте:

Индикаторы

  • MaxValue
  • MinValue

Ограничения

  • FractionDigits
  • MaxLength
  • MinLength
  • Pattern
  • TotalDigits

Btw, эти XSD-специфические?

  • IsMaxValueExclusive
  • IsMinValueExclusive

Как бы я получить * ограничения в следующих образцов Tridion схемы (источник)? *

<xsd:schema xmlns="http://createandbreak.net/schema/example" xmlns:tcmi="http://www.tridion.com/ContentManager/5.0/Instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://createandbreak.net/schema/example"> 
    <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="someField" Metadata="false">someField</tcm:Label> 
      </tcm:Labels> 
     </xsd:appinfo> 
    </xsd:annotation> 
    <xsd:element name="Content"> 
     <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="someField" minOccurs="2" maxOccurs="5" type="xsd:normalizedString"> 
        <xsd:annotation> 
         <xsd:appinfo> 
          <tcm:ExtensionXml xmlns:tcm="http://www.tridion.com/ContentManager/5.0"></tcm:ExtensionXml> 
         </xsd:appinfo> 
        </xsd:annotation> 
       </xsd:element> 
      </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

Брать example from W3Schools, это было бы без TRIDION XSD ограничения поля для 5 цифр, используя регулярное выражение:

<xs:element name="prodid"> 
    <xs:simpleType> 
    <xs:restriction base="xs:integer"> 
     <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

Я попытался изменить xs пространство имен xsd но я Не знаю, где XSD-ограничения будут идти в схеме (Tridion).

+0

Just FYI \ d {5} - это несколько более сжатая инкапсуляция вашего регулярного выражения (ровно 5 цифр), или если вы хотите до пяти цифр: \ d {0,5} – Will

ответ

4

Я считаю, что XS и XSD здесь несколько неактуальны. Оба являются фактически префиксами пространства имен, которые относятся к одному и тому же пространству имен. Это описано в this post.

Если посмотреть на образец с сайта вы цитируемого (http://www.w3schools.com/schema/default.asp) вы увидите, что Префикс xs пространства имен относится к http://www.w3.org/2001/XMLSchema, который является таким же, как xsd в схеме Tridion.

E.g.

  • Xmlns: XSD = "http://www.w3.org/2001/XMLSchema"
  • Xmlns: хз = "http://www.w3.org/2001/XMLSchema"

поэтому xsd такой же, как xs.

Или я полностью потерял вашу точку?

Если вы просто ищете, как применять ограничения, это происходит из документации SDL TRIDION (here но требует пароль):

<xsd:element name="NumberFieldWithMultipleFacets"> 
    <xsd:simpleType> 
     <xsd:restriction base="xsd:decimal"> 
      <xsd:totalDigits value="4"/> 
      <xsd:fractionDigits value="2"/> 
      <xsd:minInclusive value="10"/> 
      <xsd:maxInclusive value="20"/> 
     </xsd:restriction> 
    </xsd:simpleType> 
</xsd:element> 
+0

Упс, случай со мной! RTM , Пример был тем, что я искал, отлично! Большое спасибо. –

1

Если вы ищете список возможных граней в Xml Schema , то вам нужно посмотреть here. Возможно, тогда будет просто проверить, какие из них соблюдаются/поддерживаются Tridion

1

Я все еще пропускаю xsd: ID, например, работает в WebForms (да, начиная с версии 1.0), но не в последнем графическом интерфейсе SDL Tridion (например, кроме 2013 года, не проверено).

Я хочу, чтобы все действующие xsd работали в графическом интерфейсе Tridion.

И, например, редакторы содержимого будут видеть счетчик, когда вы ограничиваете текстовое поле min = "30" max = "70" символов.

Было бы очень приятно обновить графический интерфейс пользователя. Потому что это сделает WebForms возможным в обычном (!) Графическом интерфейсе Tridion. Создание новых полей будет возможным благодаря управлению контентом. Создание новых веб-форм HTML5 (проверено!) Занимает менее 2 минут.

Поэтому, пожалуйста, обновите GUI до полной поддержки xsd.

Смежные вопросы