Guest User

Schema for SDL extensions to XLIFF

a guest
Oct 16th, 2013
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 17.40 KB | None | 0 0
  1. <xsd:schema targetNamespace="http://sdl.com/FileTypes/SdlXliff/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sdl="http://sdl.com/FileTypes/SdlXliff/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
  2.   <!--
  3.    Schema for SDL extensions to XLIFF 1.2 that can be used to validate the SDL XLIFF file format.
  4.    
  5.    SDL XLIFF Version: 1.0
  6.    Last changed: 27 January 2010
  7.    
  8.    Copyright (c) 2009-2010 SDL. All rights reserved.
  9.  -->
  10.  
  11.   <!-- SDL XLIFF version, used on <xliff> element -->
  12.   <xsd:attribute name="version" type="xsd:string" />
  13.  
  14.   <!-- <xliff> extension elements -->
  15.   <xsd:element name="doc-info">
  16.     <xsd:complexType>
  17.       <xsd:sequence>
  18.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:rep-defs" />
  19.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:cmt-defs" />
  20.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:rev-defs" />
  21.       </xsd:sequence>
  22.     </xsd:complexType>
  23.   </xsd:element>
  24.  
  25.   <!-- <doc-info> child nodes-->
  26.   <xsd:element name="rep-defs">
  27.     <xsd:complexType>
  28.       <xsd:sequence>
  29.         <xsd:element minOccurs="1" maxOccurs="unbounded" ref="sdl:rep-def" />
  30.       </xsd:sequence>
  31.     </xsd:complexType>
  32.     <xsd:unique name="unique_rep_id">
  33.       <xsd:selector xpath="rep-def"/>
  34.       <xsd:field xpath="@id"/>
  35.     </xsd:unique>
  36.   </xsd:element>
  37.  
  38.   <xsd:element name="cmt-defs">
  39.     <xsd:complexType>
  40.       <xsd:sequence>
  41.         <xsd:element minOccurs="1" maxOccurs="unbounded" ref="sdl:cmt-def"/>
  42.       </xsd:sequence>
  43.     </xsd:complexType>
  44.     <xsd:unique name="unique_cmt_id">
  45.       <xsd:selector xpath="cmt-def"/>
  46.       <xsd:field xpath="@id"/>
  47.     </xsd:unique>
  48.   </xsd:element>
  49.  
  50.   <xsd:element name="rev-defs">
  51.     <xsd:complexType>
  52.       <xsd:sequence>
  53.         <xsd:element minOccurs="1" maxOccurs="unbounded" ref="sdl:rev-def"/>
  54.       </xsd:sequence>
  55.     </xsd:complexType>
  56.     <xsd:unique name="unique_rev_id">
  57.       <xsd:selector xpath="rev-def"/>
  58.       <xsd:field xpath="@id"/>
  59.     </xsd:unique>
  60.   </xsd:element>
  61.  
  62.   <!-- <rev-defs> child node-->
  63.   <xsd:element name="rev-def">
  64.     <xsd:complexType>
  65.       <xsd:attribute name="id" type="xsd:string" use="required" />
  66.       <xsd:attribute name="type" type="xsd:string" />
  67.       <xsd:attribute name="author" type="xsd:string" />
  68.       <xsd:attribute name="date" type="xsd:string" />
  69.     </xsd:complexType>
  70.   </xsd:element>
  71.  
  72.   <!-- <cmt-defs> child node-->
  73.   <xsd:element name="cmt-def">
  74.     <xsd:complexType mixed="true">
  75.       <xsd:sequence>
  76.         <!-- Comment content corresponds to format used in TTX .comments file and SDLX ITD files.
  77.            TODO: define properly to allow full validation against the schema! -->
  78.         <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
  79.       </xsd:sequence>
  80.       <xsd:attribute name="id" type="xsd:string" use="required"/>
  81.     </xsd:complexType>
  82.   </xsd:element>
  83.  
  84.   <!-- <rep-defs> child node-->
  85.   <xsd:element name="rep-def">
  86.     <xsd:complexType>
  87.       <xsd:sequence>
  88.         <xsd:element minOccurs="1" maxOccurs="unbounded" ref="sdl:entry" />
  89.       </xsd:sequence>
  90.       <xsd:attribute name="id" type="xsd:string" use="required" />
  91.     </xsd:complexType>
  92.   </xsd:element>
  93.  
  94.   <!-- <rep-def> child node-->
  95.   <xsd:element name="entry">
  96.     <xsd:complexType>
  97.       <xsd:attribute name="tu" type="xsd:string" use="required" />
  98.       <xsd:attribute name="seg" type="xsd:string" use="required" />
  99.     </xsd:complexType>
  100.   </xsd:element>
  101.  
  102.   <!-- XLIFF <header> extension elements -->
  103.   <xsd:element name="ref-files">
  104.     <xsd:complexType>
  105.       <xsd:sequence>
  106.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:ref-file" />
  107.       </xsd:sequence>
  108.     </xsd:complexType>
  109.   </xsd:element>
  110.  
  111.   <xsd:element name="file-info">
  112.     <xsd:complexType>
  113.       <xsd:sequence>
  114.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  115.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:sniff-info" />
  116.       </xsd:sequence>
  117.     </xsd:complexType>
  118.   </xsd:element>
  119.  
  120.   <xsd:element name="filetype-info">
  121.     <xsd:complexType>
  122.       <xsd:sequence>
  123.         <xsd:element ref="sdl:filetype-id" />
  124.       </xsd:sequence>
  125.     </xsd:complexType>
  126.   </xsd:element>
  127.  
  128.   <xsd:element name="fmt-defs">
  129.     <xsd:complexType>
  130.       <xsd:sequence>
  131.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:fmt-def" />
  132.       </xsd:sequence>
  133.     </xsd:complexType>
  134.     <xsd:unique name="unique_fmt_id">
  135.       <xsd:selector xpath="fmt-def"/>
  136.       <xsd:field xpath="@id"/>
  137.     </xsd:unique>
  138.   </xsd:element>
  139.  
  140.   <xsd:element name="cxt-defs">
  141.     <xsd:complexType>
  142.       <xsd:sequence>
  143.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:cxt-def" />
  144.       </xsd:sequence>
  145.     </xsd:complexType>
  146.     <xsd:unique name="unique_cxt_id">
  147.       <xsd:selector xpath="cxt-def"/>
  148.       <xsd:field xpath="@id"/>
  149.     </xsd:unique>
  150.   </xsd:element>
  151.  
  152.   <xsd:element name="node-defs">
  153.     <xsd:complexType>
  154.       <xsd:sequence>
  155.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:node-def" />
  156.       </xsd:sequence>
  157.     </xsd:complexType>
  158.     <xsd:unique name="unique_node_id">
  159.       <xsd:selector xpath="node-def"/>
  160.       <xsd:field xpath="@id"/>
  161.     </xsd:unique>
  162.   </xsd:element>
  163.  
  164.   <xsd:element name="tag-defs">
  165.     <xsd:complexType>
  166.       <xsd:sequence>
  167.         <xsd:element maxOccurs="unbounded" ref="sdl:tag" />
  168.       </xsd:sequence>
  169.     </xsd:complexType>
  170.     <xsd:unique name="unique_tag_id">
  171.       <xsd:selector xpath="tag"/>
  172.       <xsd:field xpath="@id"/>
  173.     </xsd:unique>
  174.   </xsd:element>
  175.  
  176.   <xsd:element name="cmt">
  177.     <xsd:complexType>
  178.       <xsd:attribute name="id" type="xsd:string" use="required" />
  179.     </xsd:complexType>
  180.   </xsd:element>
  181.  
  182.   <!-- <node-defs> child nodes -->
  183.   <xsd:element name="node-def">
  184.     <xsd:complexType>
  185.       <xsd:sequence>
  186.         <xsd:element minOccurs="1" maxOccurs="1" ref="sdl:cxt" />
  187.       </xsd:sequence>
  188.       <xsd:attribute name="id" type="xsd:string" use="required"/>
  189.       <xsd:attribute name="force-name" type="xsd:string"/>
  190.       <xsd:attribute name="parent" type="xsd:string"/>
  191.     </xsd:complexType>
  192.   </xsd:element>
  193.  
  194.   <!-- <fmt-defs> child nodes -->
  195.   <xsd:element name="fmt-def">
  196.     <xsd:complexType>
  197.       <xsd:sequence>
  198.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  199.       </xsd:sequence>
  200.       <xsd:attribute name="id" type="xsd:string" use="required" />
  201.     </xsd:complexType>
  202.   </xsd:element>
  203.  
  204.   <!-- <filter-info> child nodes -->
  205.   <xsd:element name="filetype-id" type="xsd:string"/>
  206.  
  207.   <!-- reference to a <fmt-def>, used in <tag> and <cxt-def> -->
  208.   <xsd:element name="fmt">
  209.     <xsd:complexType>
  210.       <xsd:attribute name="id" type="xsd:string" use="required" />
  211.     </xsd:complexType>
  212.     <!--<xsd:keyref name="ref_fmt_id" refer="sdl:unique_fmt_id">
  213.      <xsd:selector xpath="."/>
  214.      <xsd:field xpath="@id"/>
  215.    </xsd:keyref>-->
  216.   </xsd:element>
  217.  
  218.   <!-- <file-info> child nodes -->
  219.   <xsd:element name="sniff-info">
  220.     <xsd:complexType>
  221.       <xsd:sequence>
  222.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:detected-encoding" />
  223.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:detected-source-lang" />
  224.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:detected-target-lang" />
  225.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:suggested-target-encoding" />
  226.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:props" />
  227.       </xsd:sequence>
  228.       <xsd:attribute name="is-supported" type="xsd:string" />
  229.     </xsd:complexType>
  230.   </xsd:element>
  231.  
  232.   <!-- <sniff-info> child nodes -->
  233.   <xsd:element name="detected-encoding">
  234.     <xsd:complexType>
  235.       <xsd:attribute name="detection-level" type="xsd:string" />
  236.       <xsd:attribute name="encoding" type="xsd:string" />
  237.     </xsd:complexType>
  238.   </xsd:element>
  239.  
  240.   <xsd:element name="detected-source-lang">
  241.     <xsd:complexType>
  242.       <xsd:attribute name="detection-level" type="xsd:string" />
  243.       <xsd:attribute name="lang" type="xsd:string" />
  244.     </xsd:complexType>
  245.   </xsd:element>
  246.  
  247.   <xsd:element name="detected-target-lang">
  248.     <xsd:complexType>
  249.       <xsd:attribute name="detection-level" type="xsd:string" />
  250.       <xsd:attribute name="lang" type="xsd:string" />
  251.     </xsd:complexType>
  252.   </xsd:element>
  253.  
  254.   <xsd:element name="suggested-target-encoding">
  255.     <xsd:complexType>
  256.       <xsd:attribute name="category" type="xsd:string" />
  257.     </xsd:complexType>
  258.   </xsd:element>
  259.  
  260.   <xsd:element name="values">
  261.     <xsd:complexType>
  262.       <xsd:sequence>
  263.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  264.       </xsd:sequence>
  265.     </xsd:complexType>
  266.     <xsd:unique name="unique_value_key">
  267.       <xsd:selector xpath="value"/>
  268.       <xsd:field xpath="@key"/>
  269.     </xsd:unique>
  270.   </xsd:element>
  271.  
  272.   <!-- used for storing key/value pairs in many different elements -->
  273.   <xsd:element name="value">
  274.     <xsd:complexType>
  275.       <xsd:simpleContent>
  276.         <xsd:extension base="xsd:string">
  277.           <xsd:attribute name="key" type="xsd:string" use="required"/>
  278.         </xsd:extension>
  279.       </xsd:simpleContent>
  280.     </xsd:complexType>
  281.   </xsd:element>
  282.  
  283.   <!-- <ref-files> child nodes -->
  284.   <xsd:element name="ref-file">
  285.     <xsd:complexType>
  286.       <xsd:attribute name="uid" type="xsd:string" />
  287.       <xsd:attribute name="id" type="xsd:string" />
  288.       <xsd:attribute name="name" type="xsd:string" />
  289.       <xsd:attribute name="o-path" type="xsd:string" />
  290.       <xsd:attribute name="date" type="xsd:string" />
  291.       <xsd:attribute name="rel-path" type="xsd:string" />
  292.       <xsd:attribute name="descr" type="xsd:string" />
  293.       <xsd:attribute name="expected-use" type="xsd:string" />
  294.       <xsd:attribute name="pref-reftype" type="xsd:string" />
  295.     </xsd:complexType>
  296.   </xsd:element>
  297.  
  298.   <!-- <cxt-defs> child nodes -->
  299.   <xsd:element name="cxt-def">
  300.     <xsd:complexType>
  301.       <xsd:sequence>
  302.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:fmt" />
  303.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:props" />
  304.       </xsd:sequence>
  305.       <xsd:attribute name="id" type="xsd:string" use="required"/>
  306.       <xsd:attribute name="type" type="xsd:string" use="required"/>
  307.       <xsd:attribute name="code" type="xsd:string" />
  308.       <xsd:attribute name="name" type="xsd:string" />
  309.       <xsd:attribute name="descr" type="xsd:string" />
  310.       <xsd:attribute name="color" type="xsd:string" />
  311.       <xsd:attribute name="purpose" type="xsd:string" />
  312.     </xsd:complexType>
  313.   </xsd:element>
  314.  
  315.   <!-- XLIFF <group> extension elements -->
  316.   <xsd:element name="cxts">
  317.     <xsd:complexType>
  318.       <xsd:sequence>
  319.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:cxt" />
  320.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:node" />
  321.       </xsd:sequence>
  322.     </xsd:complexType>
  323.   </xsd:element>
  324.  
  325.   <!-- <cxts> child nodes -->
  326.   <xsd:element name="cxt">
  327.     <xsd:complexType>
  328.       <xsd:attribute name="id" type="xsd:string" use="required" />
  329.     </xsd:complexType>
  330.     <!--<xsd:keyref name="ref_cxt_id" refer="sdl:unique_cxt_id">
  331.      <xsd:selector xpath="."/>
  332.      <xsd:field xpath="@id"/>
  333.    </xsd:keyref>-->
  334.   </xsd:element>
  335.  
  336.   <xsd:element name="node">
  337.     <xsd:complexType>
  338.       <xsd:attribute name="id" type="xsd:string" use="required" />
  339.     </xsd:complexType>
  340.     <!--<xsd:keyref name="ref_node_id" refer="sdl:unique_node_id">
  341.      <xsd:selector xpath="."/>
  342.      <xsd:field xpath="@id"/>
  343.    </xsd:keyref>-->
  344.   </xsd:element>
  345.  
  346.   <!-- <tag-defs> child nodes -->
  347.   <xsd:element name="tag">
  348.     <xsd:complexType>
  349.       <xsd:sequence>
  350.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:bpt" />
  351.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:bpt-props" />
  352.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:ept" />
  353.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:ept-props" />
  354.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:st" />
  355.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:ph" />
  356.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:props" />
  357.         <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:fmt" />
  358.       </xsd:sequence>
  359.       <xsd:attribute name="id" type="xsd:string" use="required" />
  360.     </xsd:complexType>
  361.   </xsd:element>
  362.  
  363.   <!-- <tag> child nodes -->
  364.   <xsd:element name="bpt-props">
  365.     <xsd:complexType>
  366.       <xsd:sequence>
  367.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  368.       </xsd:sequence>
  369.     </xsd:complexType>
  370.   </xsd:element>
  371.  
  372.   <xsd:element name="ept-props">
  373.     <xsd:complexType>
  374.       <xsd:sequence>
  375.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  376.       </xsd:sequence>
  377.     </xsd:complexType>
  378.   </xsd:element>
  379.  
  380.   <xsd:element name="props">
  381.     <xsd:complexType>
  382.       <xsd:sequence>
  383.         <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value" />
  384.       </xsd:sequence>
  385.     </xsd:complexType>
  386.   </xsd:element>
  387.  
  388.   <xsd:attributeGroup name="AttrGrp_CommonTagAttributes">
  389.     <xsd:attribute name="name" type="xsd:string" />
  390.     <xsd:attribute name="can-hide" type="xsd:boolean"/>
  391.     <xsd:attribute name="line-wrap" type="xsd:boolean"/>
  392.     <xsd:attribute name="word-end" type="xsd:boolean"/>
  393.   </xsd:attributeGroup>
  394.  
  395.   <xsd:element name="bpt">
  396.     <xsd:complexType mixed="true">
  397.       <xsd:sequence>
  398.         <xsd:any namespace="http://sdl.com/FileTypes/SdlXliff/1.0" minOccurs="0" maxOccurs="unbounded" processContents="skip" />
  399.       </xsd:sequence>
  400.       <xsd:attributeGroup ref="sdl:AttrGrp_CommonTagAttributes"/>
  401.       <xsd:attribute name="seg-hint" type="xsd:string" />
  402.     </xsd:complexType>
  403.   </xsd:element>
  404.  
  405.   <xsd:element name="ept">
  406.     <xsd:complexType mixed="true">
  407.       <xsd:sequence>
  408.         <xsd:any namespace="http://sdl.com/FileTypes/SdlXliff/1.0" minOccurs="0" maxOccurs="unbounded" processContents="skip" />
  409.       </xsd:sequence>
  410.       <xsd:attributeGroup ref="sdl:AttrGrp_CommonTagAttributes"/>
  411.     </xsd:complexType>
  412.   </xsd:element>
  413.  
  414.   <xsd:element name="st">
  415.     <xsd:complexType mixed="true">
  416.       <xsd:sequence>
  417.         <xsd:any namespace="http://sdl.com/FileTypes/SdlXliff/1.0" minOccurs="0" maxOccurs="unbounded" processContents="skip" />
  418.       </xsd:sequence>
  419.       <xsd:attribute name="name" type="xsd:string" use="optional" />
  420.     </xsd:complexType>
  421.   </xsd:element>
  422.  
  423.   <xsd:element name="ph">
  424.     <xsd:complexType mixed="true">
  425.       <xsd:sequence>
  426.         <xsd:any namespace="http://sdl.com/FileTypes/SdlXliff/1.0" minOccurs="0" maxOccurs="unbounded" processContents="skip" />
  427.       </xsd:sequence>
  428.       <xsd:attributeGroup ref="sdl:AttrGrp_CommonTagAttributes"/>
  429.       <xsd:attribute name="is-whitespace" type="xsd:boolean"/>
  430.       <xsd:attribute name="equiv-text" type="xsd:string" />
  431.       <xsd:attribute name="seg-hint" type="xsd:string" />
  432.     </xsd:complexType>
  433.   </xsd:element>
  434.  
  435.   <!-- XLIFF <trans-unit> extensions -->
  436.   <xsd:attribute name="locktype" type="xsd:string" />
  437.  
  438.   <xsd:element name="seg-defs">
  439.     <xsd:complexType>
  440.       <xsd:sequence>
  441.         <xsd:element minOccurs="1" maxOccurs="unbounded" ref="sdl:seg" />
  442.       </xsd:sequence>
  443.     </xsd:complexType>
  444.   </xsd:element>
  445.  
  446.   <!-- <seg-defs> child nodes -->
  447.   <xsd:complexType name="Type_OriginInformation">
  448.     <xsd:annotation>
  449.       <xsd:documentation>Origin information used in seg and prev-origin elements</xsd:documentation>
  450.     </xsd:annotation>
  451.     <xsd:sequence>
  452.       <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:rep" />
  453.       <xsd:element minOccurs="0" maxOccurs="1" ref="sdl:prev-origin" />
  454.       <xsd:element minOccurs="0" maxOccurs="unbounded" ref="sdl:value"/>
  455.     </xsd:sequence>
  456.     <xsd:attribute name="origin" type="xsd:string"/>
  457.     <xsd:attribute name="origin-system" type="xsd:string"/>
  458.     <xsd:attribute name="percent" type="xsd:byte"/>
  459.     <xsd:attribute name="struct-match" type="xsd:boolean"/>
  460.     <xsd:attribute name="text-match" type="xsd:string"/>
  461.   </xsd:complexType>
  462.  
  463.   <xsd:element name="seg">
  464.     <xsd:complexType>
  465.       <xsd:complexContent>
  466.         <xsd:extension base="sdl:Type_OriginInformation">
  467.           <xsd:attribute name="id" type="xsd:string" use="required" />
  468.           <xsd:attribute name="locked" type="xsd:boolean"/>
  469.           <xsd:attribute name="conf" type="xsd:string"/>
  470.         </xsd:extension>
  471.       </xsd:complexContent>
  472.     </xsd:complexType>
  473.   </xsd:element>
  474.  
  475.   <xsd:element name="prev-origin" type="sdl:Type_OriginInformation"/>
  476.  
  477.   <!-- reference to a <rep-def>, used in <seg> and <prev-origin> -->
  478.   <xsd:element name="rep">
  479.     <xsd:complexType>
  480.       <xsd:sequence>
  481.       </xsd:sequence>
  482.       <xsd:attribute name="id" type="xsd:string" use="required"/>
  483.     </xsd:complexType>
  484.     <!--<xsd:keyref name="ref_rep_id" refer="sdl:unique_rep_id">
  485.      <xsd:selector xpath="."/>
  486.      <xsd:field xpath="@id"/>
  487.    </xsd:keyref>-->
  488.   </xsd:element>
  489.  
  490.   <!-- XLIFF <mrk> extension attributes -->
  491.   <xsd:attribute name="cid" type="xsd:string" />
  492.   <xsd:attribute name="revid" type="xsd:string" />
  493.  
  494.   <!-- XLIFF <g> extension attributes (indicates ghost status and revision ID for the start and end tags of a tag pair) -->
  495.   <xsd:attribute name="end" type="xsd:boolean" />
  496.   <xsd:attribute name="start" type="xsd:boolean" />
  497.   <xsd:attribute name="start-revid" type="xsd:string" />
  498.   <xsd:attribute name="end-revid" type="xsd:string" />
  499.  
  500. </xsd:schema>
Add Comment
Please, Sign In to add comment