3

SDL Tridion は、XML スキーマ定義を使用して、Tridion コンポーネントに保存されるコンテンツを定義します。XSD は、制限/ファセットまたはインジケーターを使用して、XML ノードに有効なものを制限できます。

Chris Summersは、これらのいくつかをトレーニング中に偶然発見しました。具体的には、SDL Tridion 2011 で次のように設定minOccursおよび指標を設定できることです。maxOccurs

<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>

W3Schoolsから例を挙げると、これは正規表現を使用してフィールドを 5 桁に制限する非 Tridion XSD になります。

<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 制限が適用されるかわかりません。

4

3 に答える 3

4

ここでは、XSとXSDは多少無関係だと思います。どちらも実際には同じ名前空間を参照する名前空間プレフィックスです。これについては、この投稿で説明しています。

引用したサイト( http://www.w3schools.com/schema/default.asp )のサンプルを見ると、xs名前空間プレフィックスがTridionスキーマhttp://www.w3.org/2001/XMLSchemaと同じものを参照していることがわかります。xsd

例えば

  • xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
  • xmlns:xs = "http://www.w3.org/2001/XMLSchema"

したがって、xsdはxsと同じです。

それとも私はあなたの主張を完全に見逃していますか?

制限を適用する方法を探しているだけの場合、これはSDL Tridionのドキュメント(ここにありますが、パスワードが必要です)から取得されます。

<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>
于 2012-05-02T20:45:42.237 に答える
1

Xml スキーマで可能なファセットのリストを探している場合は、ここを参照する必要があります。おそらく、これらのどれがTridionによって尊重/サポートされているかを確認するのは簡単なことです

于 2012-05-02T23:20:33.527 に答える