具有SDL Tridion的XSD方面和指标

时间:2012-05-02 19:25:56

标签: xsd tridion

SDL Tridion使用XML模式定义来定义存储在Tridion组件中的内容。 XSD可以使用 restrictions/facets indicators 来限制对XML节点有效的内容。

Chris Summers found some of these不小心接受了培训,特别是我们可以在SDL Tridion 2011中设置minOccursmaxOccurs指标,如下所示:

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

Andrey Marchuk在同一篇文章中提到了其他选项:

指示器

  • MaxValue
  • MinValue

限制

  • FractionDigits
  • MaxLength
  • MinLength
  • Pattern
  • TotalDigits

顺便说一下,这些是特定于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,但我不确定(Tridion)架构中XSD限制的位置。

3 个答案:

答案 0 :(得分:4)

我相信XS和XSD在这里有些不相关。两者实际上都是名称空间前缀,它们引用相同的名称空间。这在this post

中有所描述

如果您查看所引用网站(http://www.w3schools.com/schema/default.asp)中的示例,您会看到xs名称空间前缀引用的http://www.w3.org/2001/XMLSchemaxsd相同在Tridion架构中。

E.g。

  • 的xmlns:XSD = “http://www.w3.org/2001/XMLSchema”
  • 的xmlns:XS = “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>

答案 1 :(得分:1)

如果您正在寻找Xml架构中可能的方面列表,那么您需要查看here。也许那么检查Tridion

中哪些受到尊重/支持是一件简单的事情

答案 2 :(得分:1)

我仍然想念xsd:ID,例如,在WebForms中运行(是的,从版本1.0开始),但在最新的SDL Tridion GUI中没有(2013年除外,未经测试)。

我希望所有有效的xsd都能在Tridion GUI中运行。

例如,当您将文本字段限制为min =“30”max =“70”字符时,内容编辑者将看到一个计数器。

将是一个非常好的GUI更新。 因为它可以在普通(!)Tridion GUI中使WebForms成为可能。 然后,内容管理可以创建新字段。 创建新的HTML5 webforms(经过测试!)需要不到2分钟。

因此请将GUI更新为完整的xsd支持。