Keyword | CPC | PCC | Volume | Score |
---|---|---|---|---|
synchrony credit card login account | 0.44 | 0.4 | 4287 | 77 |
belk credit card login synchrony bank account | 1.64 | 0.2 | 4488 | 80 |
my synchrony credit card login my account | 1.91 | 0.3 | 4433 | 64 |
verizon synchrony credit card login account | 0.9 | 0.7 | 4831 | 92 |
synchrony my account login credit card | 1.18 | 1 | 6798 | 84 |
synchrony paypal credit card login my account | 1.76 | 0.6 | 1324 | 33 |
synchrony bank tjx credit card login account | 0.12 | 0.5 | 9849 | 11 |
rakuten synchrony credit card login account | 1.14 | 0.7 | 3053 | 93 |
synchrony care credit card login account | 1.94 | 0.5 | 2460 | 32 |
https://sourceforge.net/projects/xliff20roundtriptool/
Downloads: 0 This Week Downloads:Last Update: 2013-10-30 Last Update: Get project updates, sponsored content from our select partners, and more. Full Name Phone Number Job Title Industry Company Company Size Company Size: 1 - 25 26 - 99 100 - 499 500 - 999 1,000 - 4,999 5,000 - 9,999 10,000 - 19,999 20,000 or More Get notifications on updates for this project. Get the SourceForge newsletter. Get newsletters and notices that include site news, special offers and exclusive discounts about IT products & services. I agree to receive these communications from SourceForge.net. I understand that I can withdraw my consent at anytime. Please refer to our and or for more details. I agree to receive these communications from SourceForge.net. I understand that I can withdraw my consent at anytime. Please refer to our and or for more details. JavaScript is required for this form. Subscribe You seem to have CSS turned off. Please don't fill out this field. You seem to have CSS turned off. Please don't fill out this field. × ) and this project will terminate. Project Samples Project Activity Categories License Follow XLIFF2.0 RoundTrip Tool
Size: 624.87 MB
Category: L10N (Localization)
uninstall
DA: 18 PA: 63 MOZ Rank: 61
https://medium.com/collaborne-engineering/how-to-view-xliff-files-with-excel-fcbab6548f6
Dec 01, 2015 . Luckily, XLIFF is XML-based, which can be easily read by Excel— also known as the “Swiss Army Knife of the office worker”. Follow these steps to … round trip
round trip
DA: 44 PA: 37 MOZ Rank: 45
https://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html
05 August 2014 05 August 2014 Specification URIs This version: (Authoritative) Previous version: (Authoritative) Latest version: (Authoritative) Technical Committee:Chair:Bryan Schnabel (), IndividualEditors:Tom Comerford (), IndividualDavid Filip (), Rodolfo M. Raya (), Yves Savourel (), Additional artifacts:This prose specification is one component of a Work Product that also includes: XML schemas accessible from Related Work:This specification replaces or supersedes:XLIFF Version 1.2. 1 February 2008. OASIS Standard. Declared XML Namespaces:urn:oasis:names:tc:xliff:document:2.0urn:oasis:names:tc:xliff:matches:2.0urn:oasis:names:tc:xliff:glossary:2.0urn:oasis:names:tc:xliff:fs:2.0urn:oasis:names:tc:xliff:metadata:2.0urn:oasis:names:tc:xliff:resourcedata:2.0urn:oasis:names:tc:xliff:changetracking:2.0urn:oasis:names:tc:xliff:sizerestriction:2.0urn:oasis:names:tc:xliff:validation:2.0Abstract:This document defines version 2.0 of the XML Localisation Interchange File Format (XLIFF). The purpose of this vocabulary is to store localizable data and carry it from one step of the localization process to the other, while allowing interoperability between and among tools.Status:This document was last revised or approved by the membership of OASIS on the above date. The level of approval is also listed above. Check the “Latest version” location noted above for possible later revisions of this document.Technical Committee members should send comments on this specification to the Technical Committee's email list. Others should send comments to the Technical Committee by using the "" button on the Technical Committee's web page at .For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page ().Citation format:When referencing this specification the following citation format should be used:[XLIFF-2.0]XLIFF Version 2.0. Edited by Tom Comerford, David Filip, Rodolfo M. Raya, and Yves Savourel. 05 August 2014. OASIS Standard. . Latest version: .1 Introduction 1 IntroductionXLIFF is the XML Localisation Interchange File Format designed by a group of multilingual content publishers, software providers, localization service providers, localization tools providers and researchers. It is intended to give any multilingual content owner a single interchange file format that can be understood by any localization provider, using any conformant localization tool. While the primary focus is on being a lossless interchange format, usage of XLIFF as a processing format is neither encouraged nor discouraged or prohibited.All text is normative unless otherwise labeled. The following common methods are used for labeling portions of this specification as informative and hence non-normative: Appendices and sections marked as "(Informative)" or "Non-Normative" in title, Notes (sections with the "Note" title), Warnings (sections with the "Warning" title), Examples (mainly example code listings but also any inline examples or illustrative exemplary lists in otherwise normative text), Schema and other artifacts listings (the corresponding artifacts are normative, not their listings). 1.1 Terminology1.1.1 Key wordsThe key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted as described in [].1.1.2 DefinitionsAgentany application or tool that generates (creates), reads, edits, writes, processes, stores, renders or otherwise handles XLIFF Documents.Agent is the most general application conformance target that subsumes all other specialized user agents disregarding whether they are defined in this specification or not.Enrich, Enriching the process of associating module and extension based metadata and resources with the Extracted XLIFF payload Processing Requirements Enriching MAY happen at the time of Extraction. NoteExtractor knowledge of the native format is not assumed while Enriching.Enricher, Enricher Agentany Agent that performs the Enriching process Extract, Extractionthe process of encoding localizable content from a native content or User Interface format as XLIFF payload, so that localizable parts of the content in the source language are available for Translation into the target language along with the necessary context information Extractor, Extractor Agentany Agent that performs the Extraction process Merge, Mergingthe process of importing XLIFF payload back to the originating native format, based on the full knowledge of the Extraction mechanism, so that the localized content or User Interface strings replace the source language in the native format Merger, Merger Agentan Agent that performs the Merge process Warning Unless specified otherwise, any Merger is deemed to have the same knowledge of the native format as the Extractor throughout the specification. Mergers independent of Extractors can succeed, but it is out of scope of this specification to specify interoperability for Merging back without the full Extractor knowledge of the native format. Modify, Modification the process of changing core and module XLIFF structural and inline elements that were previously created by other Writers Processing Requirements XLIFF elements MAY be Modified and Enriched at the same time. NoteExtractor or Enricher knowledge of the native format is not assumed while Modifying.Modifier, Modifier Agentan Agent that performs the Modification process Translation, Translatea rendering of the meaning of the source text, expressed in the target languageWriter, Writer Agentan Agent that creates, generates, or otherwise writes an XLIFF Document for whatever purpose, including but not limited to Extractor, Modifier, and Enricher Agents. Note Since XLIFF is intended as an exchange format rather than a processing format, many applications will need to generate XLIFF Documents from their internal processing formats, even in cases when they are processing XLIFF Documents created by another Extractor. 1.1.3 Key conceptsXLIFF CoreThe core of XLIFF 2.0 consists of the minimum set of XML elements and attributes required to (a) prepare a document that contains text extracted from one or more files for localization, (b) allow it to be completed with the translation of the extracted text, and (c) allow the generation of Translated versions of the original document.The XML namespace that corresponds to the core subset of XLIFF 2.0 is "urn:oasis:names:tc:xliff:document:2.0".XLIFF-defined (elements and attributes)The following is the list of allowed schema URN prefixes for XLIFF-defined elements and attributes:urn:oasis:names:tc:xliff:However, the following namespaces are NOT considered XLIFF-defined for the purposes of the XLIFF 2.0 specification:urn:oasis:names:tc:xliff:document:1.0urn:oasis:names:tc:xliff:document:1.1urn:oasis:names:tc:xliff:document:1.2Elements and attributes from other namespaces are not XLIFF-defined.XLIFF DocumentAny XML document that declares the namespace "urn:oasis:names:tc:xliff:document:2.0" as its main namespace, has as the root element and complies with the XML Schemas and the declared Constraints that are part of this specification.XLIFF ModuleA module is an OPTIONAL set of XML elements and attributes that stores information about a process applied to an XLIFF Document and the data incorporated into the document as result of that process.Each official module defined for XLIFF 2.0 has its grammar defined in an independent XML Schema with a separate namespace.1.2 Normative References[BCP 47] M. Davis, Tags for Identifying Languages, IETF (Internet Engineering Task Force).[HTML5] W3C, HTML5. A vocabulary and associated APIs for HTML and XHTML, W3C Candidate Recommendation 17 December 2012.[NOTE-datetime] M. Wolf, C. Wicksteed, Date and Time Formats, W3C Note, 15th Setember 1997.[RFC 2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels, IETF (Internet Engineering Task Force) RFC 2119, March 1997.[UAX #9] M. Davis, UNICODE BIDIRECTIONAL ALGORITHM, Unicode Bidirectional Algorithm.[UAX #15] M. Davis, K. Whistler, UNICODE NORMALIZATION FORMS, Unicode Normalization Forms.[Unicode] The Unicode Consortium, The Unicode Standard, Mountain View, CA: The Unicode Consortium, 2012.[XML] W3C, Extensible Markup Language (XML) 1.0, (Fifth Edition) W3C Recommendation 26 November 2008.[XML namespace] W3C, Schema document for namespace http://www.w3.org/XML/1998/namespace []. at in this distribution[XML Schema Datatypes] W3C, XML Schema Part 2: Datatypes, (Second Edition) W3C Recommendation 28 October 2004.1.3 Non-Normative References[ITS] MultilingualWeb-LT WG Internationalization Tag Set (ITS) Version 2.0, 29 October 2013, W3C Recommendation.[LDML] Unicode Locale Data Markup Language [SRX] Segmentation Rules eXchange [UAX #29] M. Davis, UNICODE TEXT SEGMENTATION, Unicode text Segmentation.[XML I18N BP] Best Practices for XML Internationalization, 13 February 2008, W3C Working Group.2 Conformance 2 Conformance Document ConformanceXLIFF is an XML vocabulary, therefore conformant XLIFF Documents MUST be well formed and valid documents.Conformant XLIFF Documents MUST be valid instances of the official that is part of this XLIFF specification. As not all aspects of the XLIFF specification can be expressed in terms of XML Schemas, conformant XLIFF Documents MUST also comply with all relevant elements and attributes definitions, normative usage descriptions, and Constraints specified in this specification document.XLIFF Documents MAY contain custom extensions, as defined in the section. Application ConformanceXLIFF Writers MUST create conformant XLIFF Documents to be considered XLIFF compliant. Agents processing conformant XLIFF Documents that contain custom extensions are not REQUIRED to understand and process non-XLIFF elements or attributes. However, conformant applications SHOULD preserve existing custom extensions when processing conformant XLIFF Documents, provided that the elements that contain custom extensions are not removed according to XLIFF Processing Requirements or the extension's own processing requirements.All Agents MUST comply with Processing Requirements for otherwise unspecified Agents or without a specifically set target Agent. Specialized Agents defined in this specification - this is Extractor, Merger, Writer, Modifier, and Enricher Agents - MUST comply with the Processing Requirements targeting their specifically defined type of Agent on top of Processing Requirements targeting all Agents as per point c. above.XLIFF is a format explicitly designed for exchanging data among various Agents. Thus, a conformant XLIFF application MUST be able to accept XLIFF Documents it had written after those XLIFF Documents were Modified or Enriched by a different application, provided that:The processed files are conformant XLIFF Documents,in a state compliant with all relevant Processing Requirements. Backwards Compatibility Conformant applications are NOT REQUIRED to support XLIFF 1.2 or previous Versions. NoteXLIFF Documents conformant to this specification are not and cannot be conformant to XLIFF 1.2 or earlier versions. If an application needs to support for whatever business reason both XLIFF 2.0 and XLIFF 1.2, these will need to be supported as separate functionalities.3 Fragment Identification 3 Fragment IdentificationBecause XLIFF Documents do not follow the usual behavior of XML documents when it comes to element identifiers, this specification defines how Agents MUST interpret the fragment identifiers in IRIs pointing to XLIFF Documents.NoteNote that some identifiers may change during the localization process. For example elements may be re-grouped or not depending on how tools treat identical original data.ConstraintsA fragment identifier MUST match the following format:<expression> ::= "#" ["/"] <selector> {<selectorSeparator> <selector>} <selector> ::= [<prefix> <prefixSeparator>] <id> <prefix> ::= NMTOKEN <id> ::= NMTOKEN <prefixSeparator> ::= "=" <selectorSeparator> ::= "/"There MUST NOT be two identical prefixes in the expression.When used, the following selectors MUST be declared in this order: file selector, group selector and unit selector.The selectors for modules or extensions, , or or source inline elements, target inline elements and have the following constraints:Only one of them MAY be used in the expression.The one used MUST be the last selector of the expression.WarningPlease note that due to the above Constraints, referencing fragments using third party namespaces within Modules or extensions (including but not limited to XLIFF Core or the Metadata Module) is not possible. This is to restrict the complexity of the fragment identification mechanism, as it would otherwise have potentially unlimited depth.3.1 Selectors for Core ElementsThe prefix f indicates a id and the value of that id is unique among all id attribute values within the enclosing element.The prefix g indicates a id and the value of that id is unique among all id attribute values within the enclosing element.The prefix u indicates a id and the value of that id is unique among all id attribute values within the enclosing element.The prefix n indicates a id and the value of that id is unique among all id attribute values within the immediate enclosing , , or element.The prefix d indicates a id and the value of that id is unique among all id attribute values within the enclosing element.The prefix t indicates an id for an inline element in the element and the value of that id is unique within the enclosing element (with the exception of the matching inline elements in the ).No prefix indicates an id for a or an or an inline element in the element and the value of that id is unique within the enclosing element (with the exception of the matching inline elements in the ).3.2 Selectors for Modules and ExtensionsA selector for a module or an extension uses a registered prefix and the value of that id is unique within the immediate enclosing , or element.ConstraintsThe prefix of a module or an extension MUST be an NMTOKEN longer than 1 character and MUST be defined in the module or extension specification.The prefix of a module or an extension MUST be registered with the XLIFF TC.A given module or extension namespace URI MUST be associated with a single prefix.A prefix MAY be associated with more than one namespace URI (to allow for example different versions of a given module or extension to use the same prefix).See also the (which applies for modules as well).3.3 Relative ReferencesFragment identifiers that do not start with a character / (U+002F) are relative to their location in the document, or to the document being processed.Any unit, group or file selector missing to resolve the relative reference is obtained from the immediate enclosing unit, group or file elements.3.4 ExamplesGiven the following XLIFF document:<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr"> <file id="f1"> <notes> <note id="n1">note for file.</note> </notes> <unit id="u1"> <my:elem xmlns:my="myNamespaceURI" id="x1">data</my:elem> <notes> <note id="n1">note for unit</note> </notes> <segment id="s1"> <source><pc id="1">Hello <mrk id="m1" type="term">World</mrk>!</pc> </source> <target><pc id="1">Bonjour le <mrk id="m1" type="term">Monde</mrk> ! </pc></target> </segment> </unit> </file> </xliff>You can have the following fragment identifiers:#f=f1/u=u1/1 refers to the element <pc id="1"> of the source content of the element <unit id="u1">.#f=f1/u=u1/t=1 refers to the element <pc id="1"> of the target content of the element <unit id="u1">.#f=f1/n=n1 refers to the element <note id="n1"> of the element <file id="f1">.#f=f1/u=u1/n=n1 refers to the element <note id="n1"> of the element <unit id="u1">.#f=f1/u=u1/s1 refers to the element <segment id="s1"> of the element <unit id="u1">.Assuming the extension defined by the namespace URI myNamespaceURI has registered the prefix myprefix, the expression #f=f1/u=u1/myprefix=x1 refers to the element <my:element id="x1"> of the element <unit id="u1">.4 The Core Specification 4 The Core SpecificationXLIFF is a bilingual document format designed for containing text that needs Translation, its corresponding translations and auxiliary data that makes the Translation process possible.At creation time, an XLIFF file MAY contain only text in the source language. Translations expressed in the target language MAY be added at a later time.The root element of an XLIFF document is . It contains a collection of elements. Typically, each element contains a set of elements that contain the text to be translated in the child of one or more elements. Translations are stored in the child of each element.4.1 General Processing RequirementsAn Agent processing a valid XLIFF Document that contains XLIFF-defined elements and attributes that it cannot handle MUST preserve those elements and attributes.An Agent processing a valid XLIFF Document that contains custom elements and attributes that it cannot handle SHOULD preserve those elements and attributes.4.2 ElementsThis section contains a description of all elements used in XLIFF 2.0.4.2.1 Tree StructureLegend:1 = one+ = one or more? = zero or one* = zero or more | +--- + | +--- ? | | | +---<other> * | +---<other> * | +--- ? | | | +--- + | +---At least one of ( OR ) | | | +--- | | | +---<other> * | | | +--- ? | | | | | +--- + | | | +--- ? | | | | | +--- + | | | +---At least one of ( OR ) | | | | | +--- | | | | | +--- 1 | | | | | +--- ? | | | +--- | | | +--- 1 | | | +--- ? | +--- | +---<other> * | +--- ? | | | +--- + | +---At least one of ( OR ) 4.2.2 Structural ElementsThe structural elements used in XLIFF 2.0 are: , , , , , , , , , , , and . 4.2.2.1 xliffRoot element for XLIFF documents.Contains:- One or more elementsAttributes:- , REQUIRED- , REQUIRED- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe attribute is REQUIRED if and only if the XLIFF Document contains elements that are children of or . 4.2.2.2 fileContainer for localization material extracted from an entire single document, or another high level self contained logical node in a content structure that cannot be described in the terms of documents.NoteSub-document artifacts such as particular sheets, pages, chapters and similar are better mapped onto the element. The <file> element is intended for the highest logical level. For instance a collection of papers would map to a single XLIFF Document, each paper will be represented with one <file> element, whereas chapters and subsections will map onto nested elements.Contains:- Zero or one element followed by- elements from other namespaces, OPTIONAL- Zero or one element followed by- One or more or elements in any order.Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe following XLIFF Module elements are explicitly allowed by the wildcard other:- Zero or one elements- Zero or one elements- Zero or one element- Zero or one elements- Zero or one elements- Zero or one elementsModule and Extension elements MAY be used in any order.The following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL4.2.2.3 skeletonContainer for non-translatable material pertaining to the parent element.Contains:Either- Non-translatable text- elements from other namespacesor- is empty.Attributes:- , OPTIONALConstraints The attribute is REQUIRED if and only if the element is empty. Processing RequirementsModifiers and Enrichers processing an XLIFF Document that contains a element MUST NOT change that element, its attributes, or its content. Extractors creating an XLIFF Document with a element MUST leave the element empty if and only if they specify the attribute .4.2.2.4 groupProvides a way to organize units into a structured hierarchy.Note that this is especially useful for mirroring a source format's hierarchical structure.Contains:- elements from other namespaces, OPTIONAL- Zero or one element followed by- Zero, one or more or elements in any order.Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe following XLIFF Module elements are explicitly allowed by the wildcard other:- Zero or one elements- Zero or one elements- Zero or one elements- Zero or one elementsModule and Extension elements MAY be used in any order.The following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL4.2.2.5 unitStatic container for a dynamic structure of elements holding the extracted translatable source text, aligned with the Translated text.Contains:- elements from other namespaces, OPTIONAL- Zero or one elements followed by- Zero or one element followed by- One or more or elements in any order.Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsA MUST contain at least one element. The following XLIFF Module elements are explicitly allowed by the wildcard other:- Zero or one elements- Zero or one elements- Zero or one elements- Zero or one elements- Zero or one elements - Zero or one elements - Zero or one elements Module and Extension elements MAY be used in any order.The following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL4.2.2.6 segmentThis element is a container to hold in its aligned pair of children elements the minimum portion of translatable source text and its Translation in the given .Contains:- One element followed by- Zero or one elementAttributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL4.2.2.7 ignorablePart of the extracted content that is not included in a segment (and therefore not translatable). For example tools can use <ignorable> to store the white space and/or codes that are between two segments.Contains:- One element followed by- Zero or one elementAttributes:- , OPTIONAL4.2.2.8 notesCollection of comments.Contains:- One or more elements4.2.2.9 noteThis is an XLIFF specific way how to present end user readable comments and annotations. A note can contain information about , , , , or elements.Contains:- TextAttributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL4.2.2.10 originalDataUnit-level collection of original data for the inline codes.Contains:- One or more elements4.2.2.11 dataStorage for the original data of an inline code.Contains:- Non-translatable text- Zero, one or more elements.Non-translatable text and elements MAY appear in any order.Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL, the value is restricted to preserve on this element4.2.2.12 sourcePortion of text to be translated.Contains:- Text- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elementsText and inline elements may appear in any order.Attributes:- , OPTIONAL- , OPTIONAL4.2.2.13 targetThe translation of the sibling element.Contains:- Text- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elementsText and inline elements may appear in any order.Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONALConstraintsWhen a element is a child of or , the explicit or inherited value of the OPTIONAL MUST be equal to the value of the attribute of the enclosing element.4.2.3 Inline ElementsThe inline elements at the or level are: , , , , , , and .The elements at the level directly related to inline elements are: and .4.2.3.1 cpRepresents a Unicode character that is invalid in XML.Contains:This element is always empty.Parents:, , , and Attributes:- , REQUIREDExample:<unit id="1"> <segment> <source>Ctrl+C=<cp hex="0003"/></source> </segment> </unit>The example above shows a character U+0003 (Control C) as it has to be represented in XLIFF.Processing RequirementsWriters MUST encode all invalid XML characters of the content using .Writers MUST NOT encode valid XML characters of the content using .4.2.3.2 phRepresents a standalone code of the original format.Contains:This element is always empty.Parents:, , and Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , REQUIRED.- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALExample:<unit id="1"> <originalData> <data id="d1">%d</data> <data id="d2"><br/></data> </originalData> <segment> <source>Number of entries: <ph id="1" dataRef="d1" /> <ph id="2" dataRef="d2"/>(These entries are only the ones matching the current filter settings)</source> </segment> </unit>ConstraintsThe following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALNo other attributes MUST be used.4.2.3.3 pcRepresents a well-formed spanning original code.Contains:- Text- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elementsText and inline elements may appear in any order.Parents:, , and Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALExample:<unit id="1"> <originalData> <data id="1"><B></data> <data id="2"></B></data> </originalData> <segment><pc id="1" dataRefStart="1" dataRefEnd="2">Important</pc> text</source> </segment> </unit>ConstraintsThe following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALNo other attributes MUST be used.Processing RequirementsExtractors MUST NOT use the element to represent standalone codes.Rationale: Using a spanning code for a standalone code can easily result in having text inside a span where the original format does not allow it.4.2.3.4 scStart of a spanning original code.Contains:This element is always empty.Parents:, , and Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALExample:<unit id="1"> <segment> <source><sc id="1" type="fmt" subType="xlf:b"/>First sentence. </source> </segment> <segment> <source>Second sentence.<ec startRef="1" type="fmt" subType="xlf:b"/> </source> </segment> </unit>ConstraintsThe following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALNo other attributes MUST be used.The values of the attributes , , and MUST be the same as the values the ones in the element corresponding to this start code.The attribute MUST be set to yes if and only if the element corresponding to this start marker is not in the same , and set to no otherwise.Processing RequirementsExtractors MUST NOT use the / pair to represent standalone codes.Rationale: Using a spanning code for a standalone code can easily result in having text inside a span where the original format does not allow it.4.2.3.5 ecEnd of a spanning original code.Contains:This element is always empty.Parents:, , and Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALExample:<unit id="1"> <originalData> <data id="d1">\b </data> <data id="d2">\i </data> <data id="d3">\b0 </data> <data id="d4">\i0 </data> </originalData> <segment> <source>Text in <sc id="1" dataRef="d1"/>bold <sc id="2" dataRef="d2"/> and<ec startRef="1" dataRef="d3"/> italics<ec startRef="2" dataRef="d4"/>. </source> </segment> </unit>ConstraintsThe following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALNo other attributes MUST be used.The values of the attributes , and MUST be the same as the values the ones in the element corresponding to this end code.The value of the attribute MUST be no if the value of is firstNo in the element corresponding to this end code.The attribute MUST be set to yes if and only if the element corresponding to this end code is not in the same and set to no otherwise.If and only if the attribute is set to yes, the attribute MUST be used instead of the attribute that MUST be used otherwise. If and only if the attribute is set to yes, the attribute MAY be used, otherwise the attribute MUST NOT be used on the element. Processing RequirementsExtractors MUST NOT use the / pair to represent standalone codes.Rationale: Using a spanning code for a standalone code can easily result in having text inside a span where the original format does not allow it.4.2.3.6 mrkRepresents an annotation pertaining to the marked span.Contains:- Text- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elements- Zero, one or more elementsText and inline elements may appear in any order.Parents:, , and Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe MUST NOT be used at this extension point.The following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALSee the for more details and examples on how to use the element.4.2.3.7 smStart marker of an annotation where the spanning marker cannot be used for wellformedness reasons.Contains:This element is always empty.Parents:, , and Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe MUST NOT be used at this extension point.The following XLIFF Module attributes are explicitly allowed by the wildcard other:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONALSee the for more details and examples on how to use the element.4.2.3.8 emEnd marker of an annotation where the spanning marker cannot be used for wellformedness reasons.Contains:This element is always empty.Parents:, , and Attributes:- , REQUIREDSee the for more details and examples on how to use the element.4.3 AttributesThis section lists all the various attributes used in XLIFF core elements.4.3.1 XLIFF AttributesThe attributes defined in XLIFF 2.0 are: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and .4.3.1.1 appliesToComment target - indicates the element to what the content of the note applies.Value description: source or target.Default value: undefined.Used in: .4.3.1.2 canCopyReplication editing hint - indicates whether or not the inline code can be copied.Value description: yes if the code can be copied, no if the code is not intended to be copied.Default value: yes.Used in: , , , .4.3.1.3 canDeleteDeletion editing hint - indicates whether or not the inline code can be deleted.Value description: yes if the code can be deleted, no if the code is not allowed to be deleted.Default value: yes.Used in: , , , .4.3.1.4 canOverlapCode can overlap - indicates whether or not the spanning code where this attribute is used can enclose partial spanning codes (i.e. a start code without its corresponding end code, or an end code without its corresponding start code).Value description: yes or no.Default value: default values for this attribute depend on the element in which it is used:When used in : no.When used in or : yes.Used in: , and Example:<unit id="1"> <originalData> <data id="1">\i1 </data> <data id="2">\i0 </data> <data id="3">{\b </data> <data id="4">}</data> </originalData> <segment> <source><pc id="1" dataRefStart="3" dataRefEnd="4" canOverlap="no"/>Bold, <sc id="2" dataRef="1" canOverlap="yes"/>both</pc>, italics<ec startRef="2" dataRef="2"/></source> </segment> </unit>4.3.1.5 canReorderRe-ordering editing hint - indicates whether or not the inline code can be re-ordered. See for more details.Value description: yes in case the code can be re-ordered, firstNo when the code is the first element of a sequence that cannot be re-ordered, no when it is another element of such a sequence.Default value: yes.Used in: , , , .4.3.1.6 canResegmentCan resegment - indicates whether or not the source text in the scope of the given canResegment flag can be reorganized into a different structure of elements within the same parent .Value description: yes or no.Default value: default values for this attribute depend on the element in which it is used:When used in :The value yes.When used in any other element:The value of the attribute of its parent element. Used in: , and . 4.3.1.7 categoryCategory - provides a way to categorize notes.Value description: Text.Default value: undefinedUsed in: .4.3.1.8 copyOfReference to base code - holds the of the base code of a copied code.Value description: NMTOKEN. The value of the base code of which this code is a copy.Default value: undefinedUsed in: , , , .Example:<unit id="1"> <segment> <source>Äter <pc id="1">katter möss</pc>?</source> <target>Do <pc id="1">cats</pc> eat <pc id="2" copyOf="1">mice</pc>? </target> </segment> </unit> 4.3.1.9 dataRefOriginal data reference - holds the identifier of the element that contains the original data for a given inline code.Value description: An NMTOKEN that MUST be the value of the attribute of one of the element listed in the same element.Default value: undefined.Used in: , , .Example:<unit id="1"> <originalData> <data id="d1">{0}</data> </originalData> <segment> <source>Error in '<ph id="1" dataRef="d1"/>'.</source> <target>Erreur dans '<ph id="1" dataRef="d1"/>'.</target> </segment> </unit>The example above shows a element that has its original data stored outside the content, in a element.4.3.1.10 dataRefEndOriginal data reference - holds the identifier of the element that contains the original data for the end marker of a given inline code.Value description: An NMTOKEN that MUST be the value of the attribute of one of the element listed in the same element.Default value: undefined.Used in: .Example:<unit id="1"> <originalData> <data id="d1"><EM></data> <data id="d2"></EM></data> </originalData> <segment> <source><pc id="1" dataRefStart="d1" dataRefEnd="d2">Efficiency<pc> is the operative word here.</source> <target><pc id="1" dataRefStart="d1" dataRefEnd="d2">Efficacité<pc> est le mot clé ici.</target> </segment> </unit>The example above shows two elements with their original data stored outside the content, in two elements.4.3.1.11 dataRefStartOriginal data reference - holds the identifier of the element that contains the original data for the start marker of a given inline code.Value description: An NMTOKEN that MUST be the value of the attribute of one of the element listed in the same element.Default value: undefined.Used in: .Example:<unit id="1"> <originalData> <data id="d1"><EM></data> <data id="d2"></EM></data> </originalData> <segment> <source><pc id="1" dataRefStart="d1" dataRefEnd="d2">Efficiency</pc> is the operative word here.</source> <target><pc id="1" dataRefStart="d1" dataRefEnd="d2">Efficacité</pc> est le mot clé ici.</target> </segment> </unit>The example above shows two elements with their original data stored outside the content, in two elements.4.3.1.12 dirDirectionality - indicates the directionality of content.Value description: ltr (Left-To-Right), rtl (Right-To-Left), or auto (determined heuristically, based on the first strong directional character in scope, see ).Default value: default values for this attribute depend on the element in which it is used:When used in a , , or element that has a element as its parent:The value of the attribute of the element, in which the elements are located.When used in a , , or element that has a element as its parent: The value of the attribute of the element, in which the elements are located.When used in a , , or element that has a element as its parent:The value of the attribute of the parent element.When used in :The value auto.Used in: , , , and .4.3.1.13 dispDisplay text - holds an alternative user-friendly display representation of the original data of the inline code.Value description: Text.Default value: undefinedUsed in: , , .Example:<unit id="1"> <originalData> <data id="d1">{1}</data> </originalData> <segment> <source>Welcome back <ph id="1" disp="[UserName]" dataRef="d1"/>!</source> </segment> </unit>NoteTo provide a plain text equivalent of the code, use the attribute.4.3.1.14 dispEndDisplay text - holds an alternative user-friendly display representation of the original data of the end marker of an inline code.Value description: Text.Default value: undefinedUsed in: .Example:<unit id="1"> <originalData> <data id="d1">\cf1\ul\b\f1\fs24 </data> <data id="d2">\cf0\ulnone\b0\f0\fs22 </data> </originalData> <segment> <source>Example of <pc id="1" dataRefStart="d1" dataRefEnd="d2" dispStart="<span>" dispEnd="</span>">formatted text</pc>.</source> </segment> </unit>In the example above, the and attributes provide a more user-friendly representation of the original formatting codes.NoteTo provide a plain text equivalent of the code, use the attribute.4.3.1.15 dispStartDisplay text - holds an alternative user-friendly display representation of the original data of the start marker of an inline code.Value description: Text.Default value: undefinedUsed in: .Example:<unit id="1"> <originalData> <data id="d1">\cf1\ul\b\f1\fs24 </data> <data id="d2">\cf0\ulnone\b0\f0\fs22 </data> </originalData> <segment> <source>Example of <pc id="1" dataRefStart="d1" dataRefEnd="d2" dispStart="<span>" dispEnd="</span>">formatted text</pc>.</source> </segment> </unit>In the example above, the and attributes provide a more user-friendly representation of the original formatting codes.NoteTo provide a plain text equivalent of the code, use the attribute.4.3.1.16 equivEquivalent text - holds a plain text representation of the original data of the inline code that can be used when generating a plain text representation of the content.Value description: Text.Default value: an empty string.Used in: , , .Example:<unit id="1"> <originalData> <data id="d1">&</data> </originalData> <segment> <source>Open <ph id="1" equiv="" dataRef="d1"/>File</source> </segment> </unit>In this example the attribute of the element is used to indicate that the original data of the code can be ignored in the text representation of the string. This could, for instance, help a spell-checker tool to process the content as "Open File".NoteTo provide a user-friendly representation, use the attribute.4.3.1.17 equivEndEquivalent text - holds a plain text representation of the original data of the end marker of an inline code that can be used when generating a plain text representation of the content.Value description: Text.Default value: an empty stringUsed in: .Example:<unit id="1"> <originalData> <data id="d1"><span class="link" onclick="linkTo('dbId5345')"></data> <data id="d2"></span></data> </originalData> <segment> <source>The jam made of <pc id="1" dataRefStart="d1" equivStart="" dataRefEnd="d2" equivEnd="">lingonberries</pc> is quite tasty.</source> </segment> </unit>NoteTo provide a user-friendly representation, use the attribute.4.3.1.18 equivStartEquivalent text - holds a plain text representation of the original data of the start marker of an inline code that can be used when generating a plain text representation of the content.Value description: Text.Default value: an empty stringUsed in: .Example:<unit id="1"> <originalData> <data id="d1"><span class="link" onclick="linkTo('dbId5345')"></data> <data id="d2"></span></data> </originalData> <segment> <source>The jam made of <pc id="1" dataRefStart="d1" equivStart="" dataRefEnd="d2" equivEnd="">lingonberries</pc> is quite tasty.</source> </segment> </unit>NoteTo provide a user-friendly representation, use the attribute.4.3.1.19 hexHexadecimal code point - holds the value of a Unicode code point that is invalid in XML.Value description: A canonical representation of the hexBinary data type: Two hexadecimal digits to represent each octet of the Unicode code point. The allowed values are any of the values representing code points invalid in XML, between hexadecimal 0000 and 10FFFF (both included).Default value: undefinedUsed in: .Example:<cp hex="001A"/><cp hex="0003"/>The example above shows a character U+001A and a character U+0003 as they have to be represented in XLIFF.4.3.1.20 hrefhref - a pointer to the location of an external skeleton file pertaining to the enclosing element..Value description: IRI.Default value: undefinedUsed in: .4.3.1.21 idIdentifier - a character string used to identify an element.Value description: NMTOKEN. The scope of the values for this attribute depends on the element, in which it is used.When used in a element:The value MUST be unique among all id attribute values within the enclosing element.When used in elements:The value MUST be unique among all id attribute values within the enclosing element.When used in elements:The value MUST be unique among all id attribute values within the enclosing element.When used in elements:The value MUST be unique among all id attribute values within the immediate enclosing , , or element.When used in elements:The value MUST be unique among all id attribute values within the enclosing element.When used in , , , , , , , or elements:The inline elements enclosed by a element MUST use the duplicate id values of their corresponding inline elements enclosed within the sibling element if and only if those corresponding elements exist.Except for the above exception, the value MUST be unique among all of the above within the enclosing element.Default value: undefinedUsed in: , , , , , , , , , , , and .4.3.1.22 isolatedOrphan code flag - indicates if the start or end marker of a spanning inline code is not in the same as its corresponding end or start code.Value description: yes if this start or end code is not in the same as its corresponding end or start code, no if both codes are in the same .Default value: no.Used in: , .Example: <file id="f2" xmlns:abc="urn:abc"> <unit id="1"> <mtc:matches> <mtc:match id="tc01" ref="seg2"> <source><sc id="1" isolated="yes"/>Warning:</source> <target><sc id="1" isolated="yes"/>Attention :</target> </mtc:match> </mtc:matches> <segment id="seg2"> <source><pc id="1">Warning: File not found.</pc></source> </segment> </unit> </file>In the example above the elements have their attribute set to yes because they do not have their corresponding elements.4.3.1.23 nameResource name - the original identifier of the resource corresponding to the Extracted or .For example: the key in the key/value pair in a Java properties file, the ID of a string in a Windows string table, the index value of an entry in a database table, etc.Value description: Text.Default value: undefined.Used in: and .4.3.1.24 ordertarget order - indicates the order, in which to compose the target content parts.Value description: A positive integer.Default value: implicit, see belowWhen order is not explicitly set, the corresponds to its sibling , i.e. it is not being moved anywhere when composing target content of the enclosing and the implicit value is of that position within the . Used in: .ConstraintsThe value of the attribute MUST be unique within the enclosing element.See the section for the normative usage description.4.3.1.25 originalOriginal file - a pointer to the location of the original document from which the content of the enclosing element is extracted.Value description: IRI.Default value: undefinedUsed in: .4.3.1.26 priorityPriority - provides a way to prioritize notes.Value description: Integer 1-10.Default value: 1Used in: .NotePlease note that 1 is the highest priority that can be interpreted as an alert, e.g. an of the type alert. The best practice is to use only one alert per an annotated element, and the full scale of 2-10 can be used for prioritizing notes of lesser importance than the alert.4.3.1.27 refReference - holds a reference for the associated annotation.Value description: A value of the type anyURI. The semantics of the value depends on the type of annotation:When used in a , the URI value is referring to a resource providing information about the term.When used in a , the URI value is referring to an external resource providing information about the translation candidate.When used in a , the value is referring to a element within the same enclosing .When used in a , the value is defined by each custom annotation.Default value: undefinedUsed in: or .Example:<unit id="1"> <segment> <source>The <pc id="1">ref</pc> attribute of a term annotation holds a <mrk id="m1" type="term" ref="http://dbpedia.org/page/Uniform_Resource_Identifier">URI</mrk> pointing to more information about the given term.</source> </segment> </unit>4.3.1.28 srcDirSource directionality - indicates the directionality of the source content.Value description: ltr (Left-To-Right), rtl (Right-To-Left), , or auto (determined heuristically, based on the first strong directional character in scope, see ).Default value: default values for this attribute depend on the element in which it is used:When used in :The value auto.When used in any other element:The value of the attribute of its parent element.Used in: , , and . 4.3.1.29 srcLangSource language - the code of the language, in which the text to be Translated is expressed.Value description: A language code as described in .Default value: undefinedUsed in: .4.3.1.30 startRefStart code or marker reference - The of the element or the element a given element or element corresponds.Value description: NMTOKEN.Default value: undefinedUsed in: , .Example:<unit id="1"> <segment> <source><sc id="1"/>Bold, <sc id="2"/>both<ec startRef="1"/>, italics<ec startRef="2"/></source> </segment> </unit>4.3.1.31 stateState - indicates the state of the translation of a segment.Value description: The value MUST be set to one of the following values:initial - indicates the segment is in its initial state.translated - indicates the segment has been translated.reviewed - indicates the segment has been reviewed.final - indicates the segment is finalized and ready to be used.One can further specify the state of the Translation using the attribute.Default value: initialUsed in: Processing RequirementsWriters updating the attribute MUST also update or delete .4.3.1.32 subFlowsSub-flows list - holds a list of attributes corresponding to the elements that contain the sub-flows for a given inline code.Value description: A list of NMTOKEN values separated by spaces. Each value corresponds to the attribute of a element.Default value: undefinedUsed in: , , .Example:See the example in the .4.3.1.33 subFlowsEndSub-flows list - holds a list of attributes corresponding to the elements that contain the sub-flows for the end marker of a given inline code.Value description: A list of NMTOKEN values separated by spaces. Each value corresponds to the attribute of a element.Default value: undefinedUsed in: .Example:See the example in the .4.3.1.34 subFlowsStartSub-flows list - holds a list of attributes corresponding to the elements that contain the sub-flows for the start marker of a given inline code.Value description: A list of NMTOKEN values separated by spaces. Each value corresponds to the attribute of a element.Default value: undefinedUsed in: .Example:See the example in the .4.3.1.35 subStatesubState - indicates a user-defined status for the element.Value description:The value is composed of a prefix and a sub-value separated by a character : (U+003A).The prefix is a string uniquely identifying a collection of values for a specific authority. The sub-value is any string value defined by an authority.The prefix xlf is reserved for this specification.Other prefixes and sub-values MAY be defined by the users.Default value: undefinedUsed in: ConstraintsIf the attribute is used, the attribute MUST be explicitly set.Processing RequirementsWriters updating the attribute MUST also update or delete .4.3.1.36 subTypesubType - indicates the secondary level type of an inline code.Value description:The value is composed of a prefix and a sub-value separated by a character : (U+003A).The prefix is a string uniquely identifying a collection of sub-values for a specific authority. The sub-value is any string value defined by the authority.The prefix xlf is reserved for this specification, and the following sub-values are defined:xlf:lb - Line breakxlf:pb - Page breakxlf:b - Boldxlf:i - Italicsxlf:u - Underlinedxlf:var - VariableOther prefixes and sub-values MAY be defined by the users.Default value: undefinedUsed in: , , and ConstraintsIf the attribute is used, the attribute MUST be specified as well.The reserved xlf: prefixed values map onto the attribute values as follows: For xlf:b, xlf:i, xlf:u, xlf:lb, and xlf:pb, the REQUIRED value of the attribute is fmt. For xlf:var, the REQUIRED value of the attribute is ui.Processing RequirementsModifiers updating the attribute MUST also update or delete .4.3.1.37 trgLangTarget language - the code of the language, in which the Translated text is expressed.Value description: A language code as described in .Default value: undefinedUsed in: .4.3.1.38 translateTranslate - indicates whether or not the source text in the scope of the given translate flag is intended for Translation.Value description: yes or no.Default value: default values for this attribute depend on the element in which it is used:When used in :The value yes.When used in any other admissible structural element:The value of the attribute of its parent element. When used in annotations markers or :The value of the attribute of the innermost or element, in which the marker in question is located. Used in: , and . 4.3.1.39 trgDirTarget directionality - indicates the directionality of the target content.Value description: ltr (Left-To-Right), rtl (Right-To-Left), or auto (determined heuristically, based on the first strong directional character in scope, see ).Default value: default values for this attribute depend on the element in which it is used:When used in :The value auto.When used in any other element:The value of the attribute of its parent element.Used in: , , and . 4.3.1.40 typeType - indicates the type of an element.Value description: allowed values for this attribute depend on the element in which it is used.When used in , , or :The value MUST be set to one of the following values:fmt - Formatting (e.g. a <b> element in HTML)ui - User interface elementquote - Inline quotation (as opposed to a block citation)link - Link (e.g. an <a> element in HTML)image - Image or graphicother - Type of element not covered by any of the other top-level types.Example: <segment> <source xml:lang="cs" <pc type="quote">Blázen, chce dobýt točnu v takovém počasí</pc>, dodal slovy svého oblíbeného imaginárního autora.</source> <target xml:lang="en"><pc type="quote">Madman, he wants to conquer the pole in this weather</pc>, offered he the words of his favourite imaginary playwright.</source> </segment> One can further specify the type of a code using the attribute.Default value: UndefinedWhen used in or :One of the following values: generic, comment, term, or a user-defined value that is composed of a prefix and a sub-value separated by a character : (U+003A).The prefix is a string uniquely identifying a collection of sub-values for a specific authority. The sub-value is any string value defined by the authority.Default value: genericWhen used in or :A value that is composed of a prefix and a sub-value separated by a character : (U+003A).The prefix is a string uniquely identifying a collection of sub-values for a specific authority. The sub-value is any string value defined by the authority. The prefix xlf is reserved.Default value: UndefinedUsed in: , , , , , , and .Processing RequirementsModifiers updating the attribute on , , , or MUST also update or delete .4.3.1.41 valueValue - holds a value for the associated annotation.Value description: Text.When used in a , the value is a definition of the term.When used in a , the value is the text of the comment.When used in a , the value is defined by each custom annotation.Default value: undefinedUsed in: and .4.3.1.42 versionXLIFF Version - is used to specify the Version of the XLIFF Document. This corresponds to the Version number of the XLIFF specification that the XLIFF Document adheres to.Value description: Text.Default value: undefinedUsed in: .4.3.2 XML namespaceThe attributes from XML namespace used in XLIFF 2.0 are: and .4.3.2.1 xml:langLanguage - the xml:lang attribute specifies the language variant of the text of a given element. For example: xml:lang="fr-FR" indicates the French language as spoken in France.Value description: A language code as described in .Default value: default values for this attribute depend on the element in which it is used:When used in a element:The value set in the attribute of the enclosing element.When used in a element:The value set in the attribute of the enclosing element.When used in any other element:The value of the xml:lang attribute of its parent element. Used in: , and where extension attributes are allowed.4.3.2.2 xml:spaceWhite spaces - the xml:space attribute specifies how white spaces (ASCII spaces, tabs and line-breaks) are to be treated.Value description: default or preserve. The value default signals that an application's default white-space processing modes are acceptable for this element; the value preserve indicates the intent that applications preserve all the white space. This declared intent is considered to apply to all elements within the content of the element where it is specified, unless overridden with another instance of the xml:space attribute. For more information see in the specification. Default value: default values for this attribute depend on the element in which it is used:When used in :The value preserve.When used in :The value default.When used in any other element:The value of the xml:space attribute of its parent element. Used in: , , , and . 4.4 CDATA sectionsCDATA sections (<![CDATA[...]]>) are allowed in XLIFF content, but on output they MAY be changed into normal escaped content.Note that avoiding CDATA sections is considered a best practice from the internationalization viewpoint .Processing RequirementsAgents MUST process CDATA sections.Writers MAY preserve the original CDATA sections.4.5 XML CommentsXML comments (<!--...--!>) are allowed in XLIFF content, but they are ignored in the parsed content.For example:<source>Text content <!--IMPORTANT-->that is important</source>and<source>Text content that is important</source>are identical after parsing and correspond to the same following parsed content:Text content that is importantTo annotate a section of the content with a comment that is recognized and preserved by XLIFF user agents, use the element, or the element.Processing RequirementsAgents MUST ignore XML comments. That is the XLIFF parsed content is the same whether or not there is an XML comment in the document.Writers MAY preserve XML comments on output.4.6 XML Processing InstructionsXML Processing Instructions (see specifically ) are an XML mechanism to "allow documents to contain instructions for applications." XML Processing Instructions are allowed in XLIFF content but they are ignored in the parsed content in the same sense as XML Comments.Processing RequirementsAgents MUST NOT use Processing Instructions as a means to implement a feature already specified in XLIFF Core or Modules.Writers SHOULD preserve XML Processing Instructions in an XLIFF Document.Warning Please note that Agents using Processing Instructions to implement XLIFF Core or Module features are not compliant XLIFF applications disregarding whether they are otherwise conformant. WarningAlthough this specification encourages XLIFF Agents to preserve XML Processing Instructions, it is not and cannot be, for valid processing reasons, an absolute protection and it is for instance highly unlikely that Processing Instructions could survive an XLIFF roundtrip at the level or lower. Hence implementers are discouraged from using XML Processing Instructions at the and lower levels.4.7 Inline ContentThe XLIFF inline content defines how to encode the content Extracted from the original source. The content includes the following types of data: -- Textual content. -- Sequences of content that are not linguistic text, such as formatting codes, variable placeholders, etc.For example: the element <b> in HTML, or the placeholder {0} in a Java string. -- Markers that delimit a span of the content and carry or point to information about the specified content.For example: a flag indicating that a given section of text is not intended for translation, or an element indicating that a given expression in the text is a term associated with a definition.There are two elements that contain inline markup in XLIFF: and .In some cases, data directly associated with inline elements MAY also be stored at the level in an element.4.7.1 TextThe XLIFF inline markup does not prescribe how to represent normal text, besides that it MUST be valid XML.4.7.1.1 Characters invalid in XMLBecause the content represented in XLIFF can be extracted from anywhere, including software resources and other material that can contain control characters, XLIFF needs to be able to represent all Unicode code points .However, XML does not have the capability to represent all Unicode code points , and does not provide any official mechanism to escape the forbidden code points.To remedy this, the inline markup provides the element.The syntax and semantic of in XLIFF are similar to the ones of <cp> in the Unicode Locale Data Markup Language .4.7.2 Inline CodesThe specification takes into account two types of codes:Original codeAn original code is a code that exists in the original document being extracted into XLIFF.Added codeAn added code is a code that does not exist in the original document, but has been added to the content at some point after extraction.Any code (original or added) belongs to one of the two following categories:StandaloneA standalone code is a code that corresponds to a single position in the content. An example of such code is the <br/> element in HTML.SpanningA spanning code is a code that encloses a section of the content using a start and an end marker. There are two kinds of spanning codes:Codes that can overlap, that is: they can enclose a non-closing or a non-opening spanning code. Such codes do not have an XML-like behavior. For example the RTF code \b1...\b0 is a spanning code that is allowed to overlap.Codes that cannot overlap, that is: they cannot enclose a partial spanning code and have an XML-like behavior at the same time. An example of such code is the <emphasis>...</emphasis> element in DocBook.When the opening or closing marker of a spanning code does not have its corresponding closing or opening marker in the same unit, it is an orphan code.4.7.2.1 Representation of the codesSpanning codes present a set of challenges in XLIFF:First, because the code format of the original data extracted to XLIFF does not need to be XML, spanning codes can overlap.For example, in the following RTF content, the format markers are in a sequence: start bold, start italics, end bold, end italics. This does not translate into a well-formed mapping.Text in \b bold \i and\b0 italics\i0Another challenge is the possible effect of segmentation: A spanning code can start in one segment and end in another.For example, in the following HTML content, the segmentation splits the text independently of the codes so the starting and ending tags of the <B>...</B> element end up in different parts of the element:[Sentence <B>one. ][Sentence two.][ ][Sentence</B> three.]Finally, a third potential cause of complication is that the start or the end markers of a spanning code can become orphans if their segment is used outside of its original .For example, an entry with bold text can be broken down into two segments:Segment 1 = "<b>Warning found: " Segment 2 = "The file is read-only</b>"And later, one of the segments can be re-used outside its original , for instance as a translation candidate:New segment = "<b>Warning found - see log</b>" Fuzzy match = "<b>Warning found: "Because of these use cases, the representation of a spanning code cannot always be mapped to a similar spanning element in XLIFF.When taking into account these issues, the possible use cases and their corresponding XLIFF representations are as follow:Table 1. Inline code use casesUse CaseExample of RepresentationStandalone codeWell-formed spanning codeStart marker of spanning codeEnd marker of spanning codeOrphan start marker of spanning codeOrphan end marker of spanning code4.7.2.2 Usage of <pc> and <sc>/<ec>A spanning code MUST be represented using a element and a element if the code is not well-formed or orphan.For example, the following RTF content has two spans of formatting:Text in \b bold \i and\b0 italics\i0They can only be represented using two pairs of and elements:Text in <sc id="1">\b </sc>bold <sc id="2">\i </sc>and<ec startRef="1">\b0 </ec> italics <ec startRef="2">\i0</ec>If the spanning code is well-formed it MAY be represented using either a single element or using a pair of and a elements.For example, the following RTF content has a single span of formatting:Text in \b bold\b0 .It can be represented using either notations:Text in <pc id="1" canOverlap="yes" dataRefStart="c1" dataRefEnd="c2"> bold</pc>.Text in <sc id="1" dataRef="c1"/>bold<ec startRef="1" dataRef="c2"/>.Processing RequirementsWhen both the and the / representations are possible, Extractors and Modifiers MAY use either one as long as all the information of the inline code (e.g. original data, sub-flow indicators, etc.) are preserved.When converting representation between a pair of and elements and a element or vice-versa, Modifiers MUST map their attributes as shown in the following table:Table 2. Mapping between attributes attributes attributes attributesididstartRef / id (see )typetypetypesubTypesubTypesubTypedispStartdisp dispEnd dispequivStartequiv equivEnd equivsubFlowsStartsubFlows subFlowsEnd subFlowsdataRefStartdataRef dataRefEnd dataRef isolatedisolatedcanCopycanCopycanCopycanDeletecanDeletecanDeletecanReordercanReordercanReordercopyOfcopyOfcopyOfcanOverlapcanOverlapcanOverlapdirdirdirAgents MUST be able to handle any of the above two types of inline code representation.4.7.2.3 Storage of the original dataMost of the time, inline codes correspond to an original construct in the format from which the content was extracted. This is the original data.XLIFF tries to abstract and normalize as much as possible the extracted content because this allows a better re-use of the material across projects. Some tools require access to the original data in order to create the translated document back into its original format. Others do not.4.7.2.3.1 No storage of the original dataIn this option, the original data of the inline code is not preserved inside the XLIFF document.The tool that created the initial XLIFF document is responsible for providing a way to re-create the original format properly when merging back the content.For example, for the following HTML content:This <B>naked mole rat</B> is <B>pretty ugly</B>.one possible XLIFF representation is the following:<unit id="1"> <segment> <source>This <pc id="1">naked mole rat</pc> is <pc id="2">pretty ugly</pc>.</source> <target>Cet <pc id="1">hétérocéphale</pc> est <pc id="2">plutôt laid</pc>.</target> </segment> </unit>4.7.2.3.2 Storage of the original dataIn this option, the original data of the inline code is stored in a structure that resides outside the content (i.e. outside or ) but still inside the element.The structure is an element that contains a list of entries uniquely identified within the by an attribute. In the content, each inline code using this mechanism includes a attribute that points to a element where its corresponding original data is stored.For example, for the following HTML content:This <B>naked mole rat</B> is <B>pretty ugly</B>.The following XLIFF representation stores the original data:<unit id="1"> <originalData> <data id="d1"><B></data> <data id="d2"></B></data> </originalData> <segment> <source>This <pc id="1" dataRefStart="d1" dataRefEnd="d2"> naked mole rat</pc> is <pc id="2" dataRefStart="d1" dataRefEnd="d2"> pretty ugly</pc>.</source> <target>Cet <pc id="1" dataRefStart="d1" dataRefEnd="d2"> hétérocéphale</pc> est <pc id="2" dataRefStart="d1" dataRefEnd="d2"> plutôt laid</pc>.</target> </segment> </unit>NoteThis mechanism allows to re-use identical original data by pointing to the same element.4.7.2.4 Adding CodesWhen processing content, there are possible cases when new inline codes need to be added.For example, in the following HTML help content, the text has the name of a button in bold:Press the <b>Emergency Stop</b> button to interrupt the count-down sequence.In the translated version, the original label needs to remain in English because the user interface, unlike the help, is not translated. However, for convenience, a translation is also provided and emphasized using another style. That new formatting needs to be added:Appuyez sur le bouton <b>Emergency Stop</b> (<i>Arrêt d'urgence</i>) pour interrompre le compte à rebours.Having to split a single formatted span of text into several separate parts during translation, can serve as another example. For instance, the following sentence in Swedish uses bold on the names of two animals:Äter <b>katter möss</b>?But the English translation separates the two names and therefore needs to duplicate the bold codes.Do <b>cats</b> eat <b>mice</b>?Processing RequirementsModifiers MAY add inline codes.The value of the added code MUST be different from all values in both source and target content of the unit where the new code is added.Mergers MAY ignore added inline codes when Merging the Translated content back into the original format.There are several ways to add codes:4.7.2.4.1 Duplicating an existing codeOne way to create a new code is to duplicate an existing one (called the base code).If the base code is associated with some original data: the new code simply use these data.For example, the translation in the following unit, the second inline code is a duplicate of the first one:<unit id="1"> <originalData> <data id="d1"><b></data> <data id="d2"></b></data> </originalData> <segment> <source>Äter <pc id="1" dataRefStart="d1" dataRefEnd="d2">katter möss</pc>?</source> <target>Do <pc id="1" dataRefStart="d1" dataRefEnd="d2">cats</pc> eat <pc id="2" dataRefStart="d1" dataRefEnd="d2">mice</pc>?</target> </segment> </unit>If the base code has no associated data, the new code MUST use the attribute to indicate the id of the base code. This allows the merging tool to know what original data to re-use.For example, the translation in the following unit, the second inline code is a duplicate of the first one:<unit id="1"> <segment> <source>Esznek <pc id="1">a magyarok svéd húsgombócot</pc>?</source> <target>Do <pc id="1">Hungarians</pc> eat <pc id="2" copyOf="1">Swedish meatballs</pc>?</target> </segment> </unit>Processing RequirementsModifiers MUST NOT clone a code that has its attribute is set to no.The attribute MUST be used when, and only when, the base code has no associated original data.4.7.2.4.2 Creating a brand-new codeAnother way to add a code is to create it from scratch. For example, this can happen when the translated text requires additional formatting.For example, in the following unit, the UI text needs to stay in English, and is also translated into French as a hint for the French user. The French translation for the UI text is formatted in italics:<unit id="1"> <originalData> <data id="d1"><b></data> <data id="d2"></b></data> <data id="n1"><i></data> <data id="n2"></i></data> </originalData> <segment> <source>Press the <pc id="1" dataRefStart="d1" dataRefEnd="d2"> Emergency Stop</pc> button to interrupt the count-down sequence. </source> <target>Appuyez sur le bouton <pc id="1" dataRefStart="d1" dataRefEnd="d2">Emergency Stop</pc> (<pc id="2" dataRefStart="n1" dataRefEnd="n2">Arrêt d'urgence</pc>) pour interrompre le compte à rebours. </target> </segment> </unit>4.7.2.4.3 Converting text into a codeAnother way to add a code is to convert part of the extracted text into code. In some cases the inline code can be created after extraction, using part of the text content. This can be done, for instance, to get better matches from an existing TM, or better candidates from an MT system.For example, it can happen that a tool extracting a Java properties file to XLIFF is not sophisticated enough to treat HTML or XML snippets inside the extracted text as inline code:# text property for the widget 'next' nextText: Click <ui>Next</ui>Resulting XLIFF content:<unit id="1"> <segment> <source>Click <ui>Next</ui></source> </segment> </unit>But another tool, later in the process, can be used to process the initial XLIFF document and detect additional inline codes. For instance here the XML elements such as <ui>.The original data of the new code is the part of the text content that is converted as inline code.<unit id="1"> <originalData> <data id="d1"><ui></data> <data id="d2"></ui></data> </originalData> <segment> <source>Click <pc id="1" dataRefStart="d1" dataRefEnd="d2">Next</pc> </source> </segment> </unit>WarningConverting XLIFF text content into original data for inline code might need a tool-specific process as the tool which did the initial extraction could have applied some conversion to the original content to create the XLIFF content (e.g. un-escape special characters).4.7.2.5 Removing CodesWhen processing content, there are some possible cases when existing inline codes need to be removed.For an example the translation of a sentence can result in grouping of several formatted parts into a single one. For instance, the following sentence in English uses bold on the names of two animals:Do <b>cats</b> eat <b>mice</b>?But the Swedish translation group the two names and therefore needs only a single bolded part.Äter <b>katter möss</b>?Processing RequirementsUser agents MAY remove a given inline code only if its attribute is set to yes.When removing a given inline code, the user agents MUST remove its associated original data, except if the original data is shared with another inline code that remains in the unit.Note that having to delete the original data is unlikely because such original data is likely to be associated to an inline code in the source content.There are several ways to remove codes:4.7.2.5.1 Deleting a codeOne way to remove a code is to delete it from the extracted content. For example, in the following unit, the translated text does not use the italics formatting. It is removed from the target content, but the original data are preserved because they are still used in the source content.<unit id="1"> <originalData> <data id="d1"><i></data> <data id="d2"></i></data> </originalData> <segment> <source>I read <pc id="1" dataRefStart="d1" dataRefEnd="d2">Little House on the Prairie</pc> to my children.</source> <target>子供に「大草原の小さな家」を読みました。</target> </segment> </unit>4.7.2.5.2 Converting a code into textAnother way to remove an inline code is to convert it into text content. This is likely to be a rare use case. It is equivalent to deleting the code, with the addition to place the original data for the given code into the content, as text. This can be done, for example, to get better matches from an existing TM, or better candidates from an MT system.For instance, the following unit has an inline code corresponding to a variable place-holder. A tool can temporarily treat this variable as text to get better matches from an existing TM.<unit id="1"> <originalData> <data id="d1">%s</data> </originalData> <segment> <source>Cannot find '<ph id="1" dataRef="d1"/>'.</source> </segment> </unit>The modified unit would end up like as shown below. Note that because the original data was not associated with other inline code it has been removed from the unit:<unit id="1"> <segment> <source>Cannot find '%s'.</source> </segment> </unit>WarningConverting the original data of an inline code into text content might need a tool-specific process as the tool which did the initial extraction could have applied some conversion to the original content.4.7.2.6 Editing HintsXLIFF provides some information about what editing operations are applicable to inline codes:A code can be deleted: That is, the code element as well as its original data (if any are attached) are removed from the document. This hint is represented with the attribute. The default value is yes: deletion is allowed.For example, the following extracted C string has the code set to be not deletable because removing the original data (the variable placeholder %s) from the string would result in an error when running the application:A code can be copied: That is, the code is used as a base code for adding another inline code. See for more details. This hint is represented with the attribute. The default value is yes: copy is allowed.A code can be re-ordered: That is, a given code can be moved before or after another inline code. This hint is represented with the attribute. The default value is yes: re-ordering is allowed.NotePlease note that often those properties are related and appear together. For example, the code in the first unit shown below is a variable placeholder that has to be preserved and cannot be duplicated, and when several of such variables are present, as in the second unit, they cannot be re-ordered:<unit id="1"> <originalData> <data id="d1">%s</data> </originalData> <segment> <source>Can't open '<ph id="1" dataRef="d1" canCopy="no" canDelete="no"/>'.</source> </segment> </unit> <unit id="2"> <originalData> <data id="d1">%s</data> <data id="d2">%d</data> </originalData> <segment> <source>Number of <ph id="1" dataRef="d1" canCopy="no" canDelete="no" canReorder="firstNo"/>: <ph id="2" dataRef="d2" canCopy="no" canDelete="no" canReorder="no"/>. </source> </segment> </unit>See the for additional details on editing.ConstraintsWhen the attribute is set to no or firstNo, the attributes and MUST also be set to no.Inline codes re-ordering within a source or target content MAY be limited by defining non-reorderable sequences. Such sequence is made of a first inline code with the attribute set to firstNo and zero or more following codes with set to no.NoteA non-reorderable sequence made of a single code with set to firstNo are allowed just for Extraction convenience and are equivalent to a code with the attribute set to yes.Processing RequirementsExtractors SHOULD set the , and attributes for the codes that need to be treated differently than with the default settings.The number and order of the inline codes making up a non-reorderable sequence MUST NOT be changed.A whole non-reorderable sequence MAY be moved before or after another non-reorderable sequence.When a non-reorderable sequence is made of a single non-reorderable code, Modifiers MAY remove the attribute of that code or change its value to yes.Modifiers MUST NOT delete inline codes that have their attribute set to no.Modifiers MUST NOT replicate inline codes that have their attribute set to no.4.7.3 AnnotationsAn annotation is an element that associates a section of the content with some metadata information.Annotations MAY be created by an Extractor that generated the initial XLIFF Document, or by any other Modifier or Enricher later in the process. For example, after an Extractor creates the document, an Enricher can annotate the source content with terminological information.Annotations are represented using either the element, or the pair of and elements.4.7.3.1 Type of AnnotationsThere are several pre-defined types of annotation and definition of is also allowed.4.7.3.1.1 Translate AnnotationThis annotation is used to indicate whether a span of content is translatable or not.Usage:The attribute is REQUIREDThe attribute is REQUIRED and set to yes or noThe attribute is OPTIONAL and set to generic (this is the default value)For example:He saw his <mrk id="m1" translate="no">doppelgänger</mrk>.NoteThis annotation overrides the attribute set or inherited at the level.NoteThe attribute can also be used at the same time as another type of annotation. For example:He saw his <mrk id="m1" translate="no" type="term">doppelgänger </mrk>.4.7.3.1.2 Term AnnotationThis annotation is used to mark up a term in the content, and possibly associate information to it.Usage:The attribute is REQUIREDThe attribute is REQUIRED and set to termThe attribute is OPTIONAL and contains a short definition of the termThe attribute is OPTIONAL and contains a URI pointing to information on the termThe attribute is OPTIONAL and set to yes or noFor example: <file id="f-t_a"> <unit id="1"> <segment> <source>He is my <mrk id="m1" type="term" ref="http://dbpedia.org/page/Doppelgänger">doppelgänger</mrk>. </source> </segment> </unit> </file> 4.7.3.1.3 Comment AnnotationThis annotation is used to associate a span of content with a comment.Usage:The attribute is REQUIREDThe attribute is REQUIRED and set to commentIf the attribute is present it contains the text of the comment. If and only if the attribute is not present, the attribute MUST be present and contain the URI of a element within the same enclosing element that holds the comment.The attribute is OPTIONAL and set to yes or noFor example, here with the attribute:The <mrk id="m1" type="comment" value="Possible values: Printer or Stacker"><ph id="1" dataRef="d1"/> </mrk> has been enabled.And here using the attribute:<unit id="1"> <notes> <note id="n1" appliesTo="target">Please check the translation for 'namespace'. On also can use 'espace de nom', but I think most technical manuals use the English term.</note> </notes> <segment> <source>You use your own namespace.</source> <target>Vous pouvez utiliser votre propre <mrk id="m1" type="comment" ref="#n1">namespace</mrk>.</target> </segment> </unit>4.7.3.1.4 Custom AnnotationThe element can be used to implement custom annotations.A custom annotation MUST NOT provide the same functionality as a pre-defined annotation.Usage:The attribute is REQUIREDThe attribute is REQUIRED and set to a unique user-defined value.The attribute is OPTIONAL and set to yes or noThe use and semantics of the and attributes are user-defined.For example:One of the earliest surviving works of literature is <mrk id="m1" type="myCorp:isbn" value="978-0-14-44919-8">The Epic of Gilgamesh</mrk>.4.7.3.2 Splitting AnnotationsAnnotations can overlap spanning inline codes or other annotations. They also can be split by segmentation. Because of this, a single annotation span can be represented using a pair of and elements instead of a single element.For example, one can have the following content:<unit id="1"> <segment> <source>Sentence A. <mrk id="m1" type="comment" value="Comment for B and C">Sentence B. Sentence C.</mrk></source> </segment> </unit>After a user agent performs segmentation, the annotation element is changed to a pair of and elements:<unit id="1"> <segment> <source>Sentence A. </source> </segment> <segment> <source><sm id="m1" type="comment" value="Comment for B and C"/>Sentence B. </source> </segment> <segment> <source>Sentence C.<em startRef="m1"/></source> </segment> </unit>4.7.4 Sub-FlowsA sub-flow is a section of text embedded inside an inline code, or inside another section of text.For example, the following HTML content includes two sub-flows: The first one is the value of the title attribute ("Start button"), and the second one is the value of the alt attribute ("Click here to start!"):Click to start: <img title="Start button" src="btnStart.png" alt="Click here to start!"/>Another example is the following DITA content where the footnote "A Palouse horse is the same as an Appaloosa." is defined at the middle of a sentence:Palouse horses<fn>A Palouse horse is the same as an Appaloosa.</fn> have spotted coats.In XLIFF, each sub-flow is stored in its own element, and the attribute is used to indicate the location of the embedded content.Therefore the HTML content of the example above can be represented like below:<unit id="1"> <segment> <source>Start button</source> </segment> </unit> <unit id="2"> <segment> <source>Click here to start!</source> </segment> </unit> <unit id="3"> <segment> <source>Click to start: <ph id="1" subFlows="1 2"/></source> </segment> </unit> ConstraintsAn inline code containing or delimiting one or more sub-flows MUST have an attribute that holds a list of the identifiers of the elements where the sub-flows are stored.Sub-flows MUST be in the same element as the element from which they are referenced.Processing RequirementsExtractors SHOULD store each sub-flow in its own element.Extractors MAY order the elements of the sub-flows and the element, from where the sub-flows are referenced, as they see fit. NotePlease note that the static structure encoded by , , and elements is principally immutable in XLIFF Documents and hence the unit order initially set by the Extractor will be preserved throughout the roundtrip even in the special case of sub-flows.4.7.5 White SpacesWhile white spaces can be significant or insignificant in the original format, they are always treated as significant when stored as original data in XLIFF. See the definition of the element.Processing RequirementsFor the inline content and all non empty inline elements: The white spaces MUST be preserved if the value for xml:space set or inherited at the enclosing level is preserve, and they MAY be preserved if the value is default.4.7.6 Bidirectional TextText directionality in XLIFF content is defined by inheritance. Source and target content can have different directionality.The initial directionality for both the source and the target content is defined in the element, using the OPTIONAL attributes for the source and for the target. The default value for both attributes is auto.The and elements also have the two OPTIONAL attributes and . The default value of the is inherited from the value of the attribute of the respective parent element. The default value of the attribute is inherited from the value of the attribute of the respective parent element.The , , and isolated elements have an OPTIONAL attribute with a value ltr, rtl, or auto. The default value is inherited from the parent element. In case the inline element is a child of a element, the default value is inherited from the value of the enclosing element. In case the inline element is a child of a element, the default value is inherited from the value of the enclosing element.Warning While processing isolated elements with explicitly set directionality, please beware that unlike directionality set on the and , this method decreases the stack level as per [UAX #9].In addition, the element has an OPTIONAL attribute with a value ltr, rtl, or auto that is not inherited. The default value is auto.Directionality of source and target text contained in the and elements is fully governed by , whereas explicit XLIFF-defined structural and directionality markup is a higher-level protocol in the sense of . The XLIFF-defined value auto determines the directionality based on the first strong directional character in its scope and XLIFF-defined inline directionality markup behaves exactly as Explicit Directional Isolate Characters, see , .NotePlease note that this specification does not define explicit markup for inline directional Overrides or Embeddings; in case those are needed. Extractors and Modifiers will need to use [UAX #9] defined Directional Formatting Characters.4.7.7 Target Content ModificationThis section defines the rules Writers need to follow when working with the target content of a given segment in order to provide interoperability throughout the whole process.The Extractor MAY create the initial target content as it sees fit.The Merger is assumed to have the same level of processing and native format knowledge as the Extractor. Providing an interoperable way to convert native documents into XLIFF with one tool and back to the native format with another tool without the same level of knowledge is outside the scope of this specification.The Writers Modifying the target content of an XLIFF Document between the Extractor and the Merger ensure interoperability by applying specific rules. These rules are separated into two cases: When there is an existing target and when there is no existing target.4.7.7.1 Without an Existing TargetWhen there is no existing target, the processing requirements for a given segment are the following:Processing RequirementsWriters MAY leave the segment without a target.Modifiers MAY create a new target as follows:Modifiers MAY add translation of the source text.Modifiers MUST put all inline codes in the target.Modifiers MUST preserve the order of all the inline codes.Modifiers MAY put any inline code in the target.Modifiers MAY add inline codes.Modifiers MAY add or remove annotations.Modifiers MAY convert any element into a pair of and elements.Modifiers MAY convert, if it is possible, any pair of and elements into a element.4.7.7.2 With an Existing TargetWhen working with a segment with content already in the target, Writers MUST choose one of the three behaviors described below:Processing RequirementsWriters MAY leave the existing target unchanged.Modifiers MAY modify the existing target as follow:Modifiers MAY add or Modify translatable text.Writers MUST preserve all inline codes, regardless whether or not they exist in the source.Writers MUST preserve any inline codes in the existing target.Writers MUST NOT add any inline codes to the target.Modifiers MAY remove any inline codes in the target.Modifiers MAY add inline codes (including copying any inline codes of the existing target).Modifiers MAY add or remove annotations.Modifiers MAY convert any element into a pair of and elements.Modifiers MAY convert, if it is possible, any pair of and elements into a element.Modifiers MAY delete the existing target and start over as if working without an existing target.4.7.8 Content ComparisonThis specification defines two types of content equality:Equality type A: Two contents are equal if their normalized forms are equal.Equality type B: Two contents are equal if, in their normalized forms and with all inline code markers replaced by the value of their attributes, the resulting strings are equal.A content is normalized when:The text nodes are in Unicode Normalized Form C defined in the Unicode Annex #15: Unicode Normalization Forms .All annotation markers are removed.All pairs of and elements that can be converted into a element, are converted.All adjacent text nodes are merged into a single text node.For all the text nodes with the white space property set to default, all adjacent white spaces are collapsed into a single space.4.8 SegmentationIn the context of XLIFF, a segment is content which is either a unit of extracted text, or has been created from a unit of extracted text by means of a segmentation mechanism such as sentence boundary detection. For example, a segment can be a title, the text of a menu item, a paragraph or a sentence in a paragraph.In the context of XLIFF, other types representations sometimes called "segmentation" can be represented using annotations. For example: the terms in a segment can be identified and marked up using the .XLIFF does not specify how segmentation is carried out, only how to represent its result. Material provisions regarding segmentation can be found for instance in the Segmentation Rules eXchange standard or .4.8.1 Segments RepresentationIn XLIFF each segment of processed content is represented by a element.A can comprise a single .Each element has one element that contains the source content and one OPTIONAL element that can be empty or contain the translation of the source content at a given state.Content parts between segments are represented with the element, which has the same content model as .For example:<unit id="1"> <segment> <source>First sentence.</source> <target>Première phrase.</target> </segment> <ignorable> <source> </source> </ignorable> <segment> <source>Second sentence.</source> </segment> </unit>4.8.2 Segments OrderSome Agents (e.g. aligner tools) can segment content, so that the target segments are not in the same order as the source segments.To be able to map order differences, the element has an OPTIONAL attribute that indicates its position in the sequence of segments (and inter-segments). Its value is an integer from 1 to N, where N is the sum of the numbers of the and elements within the given enclosing element.WarningWhen Writers set explicit on elements, they have to check for conflicts with implicit , as elements without explicit correspond to their sibling elements. Beware that moving one element is likely to cause a renumbering domino effect throughout the enclosing element.For example, the following HTML documents have the same paragraph with three sentences in different order:<p lang='en'>Sentence A. Sentence B. Sentence C.</p><p lang='fr'>Phrase B. Phrase C. Phrase A.</p>The XLIFF representation of the content, after segmentation and alignment, would be:<unit id="1"> <segment id="1"> <source>Sentence A.</source> <target order="5">Phrase A.</target> </segment> <ignorable> <source> </source> </ignorable> <segment id="2"> <source>Sentence B.</source> <target order="1">Phrase B.</target> </segment> <ignorable> <source> </source> </ignorable> <segment id="3"> <source>Sentence C.</source> <target order="3">Phrase C.</target> </segment> </unit>4.8.3 Segmentation ModificationWhen Modifying segmentation of a , Modifiers MUST meet the Constraints and follow the Processing Requirements defined below:ConstraintsIntegrity of the inline codes MUST be preserved. See the section on and on for details.The entire source content of any one element MUST remain logically unchanged: elements or their data MUST NOT be moved or joined across units.WarningNote that when splitting or joining segments that have both source and target content it is advisable to keep the resulting segments linguistically aligned, which is likely to require human linguistic expertise and hence manual re-segmentation. If the linguistically correct alignment cannot be guaranteed, discarding the target content and retranslating the resulting source segments is worth considering.Processing RequirementsWhen the Modifiers perform a split operation:Only or elements that have their value resolved to yes MAY be split.All new or elements created and their and children MUST have the same attribute values as the original elements they were created from, as applicable, except for the attributes and, possibly, for the , and attributes.Any new attributes MUST follow the or constraints.If there was a target content in the original segment and if the attribute of the original segment was not initial, the attributes of the segments resulting from the split (and possibly their corresponding attributes) MAY be changed to reflect the fact that the target content MAY need to be verified as the new segmentation MAY have desynchronized the alignment between the source and target contents.When the Modifiers perform a join operation:Only or elements that have their value resolved to yes MAY be join with other elements.When the Modifiers or Mergers perform a join operation:Two elements ( or ) MUST NOT be joined if their have resolved values that are not consecutive.The attributes of the elements to be joined ( or ) and the attributes of their and MUST be carried over in the resulting joined elements.If attributes of elements to be joined ( or ) differ, or if the attributes of their or differ, the resulting joined elements MUST comply with following rules:If the attributes of the elements differ: the attribute of the joined MUST be set to the "earliest" of the values specified in the original elements. The sequence of values are defined in the following order: 1: initial, 2: translated, 3: reviewed, and 4: final.The attribute MUST be the one associated with the attribute selected to be used in the joined . If no attribute is associated with that , the joined MUST NOT have a .If the attributes differ: The and of the joined element MUST be set to xml:space="preserve".When the Modifiers or Mergers perform a join or a split operation:If any or element of the had a child with an attribute prior to the segmentation modification, the child of all and elements in the MUST be examined and if necessary their attributes updated to preserve the ordering of the target content prior the segmentation modification.4.9 Extension MechanismsXLIFF 2.0 offers two mechanisms for storing custom data in an XLIFF document:Using the for storing custom data in elements defined by the official XLIFF specification.Using the standard XML namespace mechanism for storing data in elements or attributes defined in a custom XML Schema.Both mechanisms can be used simultaneously.4.9.1 Extension PointsThe following XLIFF Core elements allow storing custom data in elements or in elements from a custom XML namespace:- - - The following XLIFF Core elements accept custom attributes:- - - - - - - 4.9.1.1 Extensibility of XLIFF ModulesFor extensibility of XLIFF Modules please refer to the relevant Module Sections.4.9.2 ConstraintsWhen using identifiers, an extension MUST use either an attribute named id or the attribute xml:id to specify them.Extensions identifiers MUST be unique within their immediate , or enclosing element.Identifier values used in extensions MUST be of type xs:NMTOKEN or compatible with xs:NMTOKEN (e.g. xs:NAME and xs:ID are compatible).These constraints are needed for the .4.9.3 Processing RequirementsA user extension, whether implemented using or using a custom namespace, MUST NOT provide the same functionality as an existing XLIFF core or module feature, however it MAY complement an extensible XLIFF core feature or module feature or provide a new functionality at the provided extension points.Mergers MUST NOT rely on custom namespace extensions, other than the ones possibly defined in , to create the Translated version of the original document. Writers that do not support a given custom namespace based user extension SHOULD preserve that extension without Modification.5 The Modules Specifications 5 The Modules SpecificationsThis section specifies the OPTIONAL Modules that MAY be used along with Core for advanced functionality.5.1 Translation Candidates Module5.1.1 IntroductionThe source text of a document can be pre-processed against various translation resources (TM, MT, etc.) to provide translation candidates. This module provides an XLIFF capability to store lists of possible translations along with information about the similarity of the match, the quality of the translation, its provenance, etc. 5.1.2 Module NamespaceThe namespace for the Translation Candidates module is: urn:oasis:names:tc:xliff:matches:2.05.1.3 Module Fragment Identification PrefixThe fragment identification prefix for the Translation Candidates module is: mtc5.1.4 Translation Candidate AnnotationThis annotation can be used to mark up the scope of a translation candidate within the content of a unit. This module can reference any source or even target spans of content that are referencable via the XLIFF mechanism, however in case the corresponding fragment is not suitably delimited, the best way how to mark the relevant span is to use the following annotation.Usage:The attribute is REQUIREDThe attribute is REQUIRED and set to mtc:matchThe attribute is not used.The attribute is OPTIONALFor example: <unit id="1"> <mtc:matches> <mtc:match ref="#m1"> <source>He is my friend.</source> <target>Il est mon ami.</target> </mtc:match> <mtc:match ref="#m1"> <source>He is my best friend.</source> <target>Il est mon meilleur ami.</target> </mtc:match> </mtc:matches> <segment> <source><mrk id="m1" type="mtc:match">He is my friend.</mrk></source> </segment> <segment> <source>Yet, I barely see him.</source> </segment> </unit>5.1.5 Module ElementsThe elements defined in the Translation Candidates module are: and . 5.1.5.1 Tree StructureLegend:1 = one+ = one or more? = zero or one* = zero or more | +--- + | +--- ? | +--- ? | +--- 1 | +--- 1 | +---<other> * 5.1.5.2 matchesCollection of matches retrieved from any leveraging system (MT, TM, etc.)Contains:- One or more elements5.1.5.3 matchA potential translation suggested for a part of the source content of the enclosing element.Contains:- Zero or one element followed by.- Zero or one element followed by- One element followed by- One element followed by- elements from other namespaces, OPTIONALAttributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , REQUIRED- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraints When a element is a child of and the attribute is set to yes, the OPTIONAL attribute's value is not REQUIRED to be equal to the value of the attribute of the enclosing element.5.1.6 Module AttributesThe attributes defined in the Translation Candidates module are: , , , , , , , , and . 5.1.6.1 idIdentifier - a character string used to identify a element.Value description: NMTOKEN. Default value: undefinedUsed in: .ConstraintsThe value MUST be unique within the enclosing element.5.1.6.2 matchQualityMatch quality - indicates the quality of the child of a element based on an external benchmark or metric.Value description: a decimal number between 0.0 and 100.0.Default value: undefinedUsed in: .NoteThis attribute can carry a human review based metrics score, a Machine Translation self-reported confidence score etc.5.1.6.3 matchSuitabilityMatch suitability - indicates the general suitability and relevance of its element based on various external benchmarks or metrics pertaining to both the and the children of the . This attribute is intended to carry a value that can be combined from values provided in and attributes based on an externally provided algorithm.Value description: a decimal number between 0.0 and 100.0.Default value: undefinedUsed in: .Note This attribute is also useful for mapping match-quality as specified in XLIFF 1.2 because 1.2 is not capable of discerning between the source similarity and the target quality.Processing RequirementsAgents processing this module MUST make use of for match ordering purposes if the attribute is specified. 5.1.6.4 origin Match origin - indicates the tool, system or repository that generated a element. This is a free text short informative description. For example, 'Microsoft Translator Hub' or 'tm-client123-v456', or 'MSTH (52217d25-d9e7-54a2-af44-3d4e4341d112_healthc).' Value description: Text.Default value: undefinedUsed in: .5.1.6.5 refReference - points to a span of source text within the same unit, to which the translation candidate is relevant. Value description: IRIDefault value: undefinedUsed in: .ConstraintsThe value of the attribute MUST point to a span of text within the same element where the is located.5.1.6.6 referenceReference - indicates that the child of the element contains a Translation into a reference language rather than into the target language. For example, a German translation can be used as reference by a Luxembourgish translator.Value description: yes or no.Default value: no.Used in: 5.1.6.7 similaritySimilarity - indicates the similarity level between the content of the child of a element and the translatable text being matched.Value description: a decimal number between 0.0 and 100.0.Default value: undefinedUsed in: .5.1.6.8 subTypeSub-type - indicates the sub-type, i.e. a secondary level type, of a element.Value description: The value is composed of a prefix and a sub-value separated by a character : (U+003A). The prefix is a string uniquely identifying a collection of values for a specific authority. The sub-value is any string value defined by an authority. The prefix xlf is reserved for this specification, but no sub-values are defined for it at this time. Other prefixes and sub-values MAY be defined by the users.Default value: undefinedUsed in: ConstraintsIf the attribute is used, the attribute MUST be explicitly set.Processing RequirementsWriters updating the attribute MUST also update or delete .5.1.6.9 typeType - indicates the type of a element, it gives the value providing additional information on how the match was generated or qualifying further the relevance of the match. The list of pre-defined values is general and user-specific information can be added using the attribute.Value description: Table 3. ValuesValueDescriptionamAssembled Match: candidate generated by assembling parts of different translations. For example: constructing a candidate by using the known translations of various spans of content of the source. mtMachine Translation: candidate generated by a machine translation system.icmIn Context Match: candidate for which the content context of the translation was the same as the one of the current source. For example: the source text for both contents is also preceded and/or followed by an identical source segment, or both appear as e.g. level 2 headings.idmIdentifier-based Match: candidate that has an identifier identical to the one of the source content. For example: the previous translation of a given UI component with the same ID. match that has an identifier identical to the source content.tbTerm Base: candidate obtained from a terminological database, i.e. the whole source segment matches with a source term base entry.tmTranslation Memory: candidate based on a simple match of the source content.otherCandidate of a top level type not covered by any of the above definitions.Default value: tmUsed in: Processing RequirementsWriters updating the attribute MUST also update or delete .5.1.7 Example: <mtc:matches> <mtc:match id="[NMTOKEN]"> <xlf:source> <!-- text data --> </xlf:source> <xlf:target> <!-- text data --> </xlf:target> <xlf:originalData> <xlf:data id="[NMTOKEN]"> <xlf:cp hex="[required]"> <!-- text data --> </xlf:cp> </xlf:data> </xlf:originalData> <mda:metadata> <mda:metagroup> <!-- One or more of mda:metagroup or mda:meta --> </mda:metagroup> </mda:metadata> <!-- Zero, one or more elements from any namespace --> </mtc:match> </mtc:matches> 5.1.8 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mtc="urn:oasis:names:tc:xliff:matches:2.0" xmlns:xlf="urn:oasis:names:tc:xliff:document:2.0" xmlns:mda="urn:oasis:names:tc:xliff:metadata:2.0" targetNamespace="urn:oasis:names:tc:xliff:matches:2.0"> <!-- Import --> <xs:import namespace="urn:oasis:names:tc:xliff:document:2.0" schemaLocation="../xliff_core_2.0.xsd"/> <xs:import namespace="urn:oasis:names:tc:xliff:metadata:2.0" schemaLocation="metadata.xsd"/> <!-- Attribute Types --> <xs:simpleType name="similarity"> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.0"/> <xs:maxInclusive value="100.0"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="typeValues"> <xs:restriction base="xs:string"> <xs:enumeration value="am"/> <xs:enumeration value="mt"/> <xs:enumeration value="icm"/> <xs:enumeration value="idm"/> <xs:enumeration value="tb"/> <xs:enumeration value="tm"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> <!-- Elements --> <xs:element name="matches"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="mtc:match"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="match"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" ref="mda:metadata"/> <xs:element minOccurs="0" maxOccurs="1" ref="xlf:originalData"/> <xs:element minOccurs="1" maxOccurs="1" ref="xlf:source"/> <xs:element minOccurs="1" maxOccurs="1" ref="xlf:target"/> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="matchQuality" use="optional" type="mtc:similarity"/> <xs:attribute name="matchSuitability" use="optional" type="mtc:similarity"/> <xs:attribute name="origin" use="optional"/> <xs:attribute name="ref" use="required" type="xs:anyURI"/> <xs:attribute name="reference" use="optional" type="xlf:yesNo" default="no"/> <xs:attribute name="similarity" use="optional" type="mtc:similarity"/> <xs:attribute name="subType" use="optional" type="xlf:userDefinedValue"/> <xs:attribute name="type" use="optional" type="mtc:typeValues"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema> 5.2 Glossary Module5.2.1 IntroductionSimple glossaries, consisting of a list of terms with a definition or translation, can be optionally embedded in an XLIFF document using the namespace mechanism to include elements from the Glossary module.5.2.2 Module NamespaceThe namespace for the Glossary module is: urn:oasis:names:tc:xliff:glossary:2.05.2.3 Module Fragment Identification PrefixThe fragment identification prefix for the Glossary module is: gls5.2.4 Module ElementsThe elements defined in the Glossary module are: , , , and . 5.2.4.1 Tree StructureLegend:1 = one+ = one or more? = zero or one* = zero, one or more | +--- + | +--- 1 | +--- * | +--- ? | +---<other> * 5.2.4.2 glossaryContainer for a list of glossary terms.Contains:- One or more elements.5.2.4.3 glossEntryGlossary entry.Contains:- One element followed by Zero, one or more elements followed by - Zero or one element followed by - elements from other namespaces, OPTIONALAttributes: - , OPTIONAL - , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsA element MUST contain a or a element to be valid.5.2.4.4 termA term in the glossary, expressed in the source language of the enclosing element.Contains:- Text Attributes: - , OPTIONAL - attributes from other namespaces, OPTIONAL5.2.4.5 translationA translation of the sibling element expressed in the target language of the enclosing element. Multiple translations can be specified as synonyms.Contains:- TextAttributes:- , OPTIONAL - , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONAL5.2.4.6 definitionOptional definition in plain text for the term stored in the sibling element.Contains:- Text Attributes: - , OPTIONAL - attributes from other namespaces, OPTIONAL5.2.5 Module AttributesThe attributes defined in the Glossary module are: , , and 5.2.5.1 idIdentifier - a character string used to identify a or element.Value description: NMTOKENDefault value: undefinedUsed in: and ConstraintsThe values of attributes MUST be unique among all and elements within the given enclosing element. 5.2.5.2 refReference - points to a span of source or target text within the same unit, to which the glossary entry is relevant.Value description: IRIDefault value: undefinedUsed in: and .ConstraintsThe value of the attribute MUST point to a span of text within the same element, where the enclosing element is located.5.2.5.3 sourceSource - indicates the origin of the content of the element where the attribute is defined.Value description: Text.Default value: undefinedUsed in:, , and .5.2.6 Example: <unit id="1"> <gls:glossary> <gls:glossEntry ref="#m1"> <gls:term source="publicTermbase">TAB key</gls:term> <gls:translation id="1" source="myTermbase">Tabstopptaste </gls:translation> <gls:translation ref="#m2" source="myTermbase">TAB-TASTE </gls:translation> <gls:definition source="publicTermbase">A keyboard key that is traditionally used to insert tab characters into a document. </gls:definition> </gls:glossEntry> </gls:glossary> <segment> <source>Press the <mrk id="m1" type="term">TAB key</mrk>.</source> <target>Drücken Sie die <mrk id="m2" type="term">TAB-TASTE</mrk>. </target> </segment> </unit> 5.2.7 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:gls="urn:oasis:names:tc:xliff:glossary:2.0" targetNamespace="urn:oasis:names:tc:xliff:glossary:2.0"> <!-- Elements --> <xs:element name="glossary"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="gls:glossEntry"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="glossEntry"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1" ref="gls:term"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="gls:translation"/> <xs:element minOccurs="0" maxOccurs="1" ref="gls:definition"/> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="ref" use="optional" type="xs:anyURI"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="term"> <xs:complexType mixed="true"> <xs:attribute name="source" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="translation"> <xs:complexType mixed="true"> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="ref" use="optional" type="xs:anyURI"/> <xs:attribute name="source" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="definition"> <xs:complexType mixed="true"> <xs:attribute name="source" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema> 5.3 Format Style Module5.3.1 IntroductionThis is intended as a namespace mechanism to carry inside an XLIFF document information needed for generating a quick at a glance HTML preview of XLIFF content using a predefined set of simple HTML formatting elements.5.3.2 Module NamespaceThe namespace for the Format style module is: urn:oasis:names:tc:xliff:fs:2.05.3.3 Module Fragment Identification PrefixFormat Style module does not have a fragment identification prefix. Prefix fs is reserved in case it became needed in the future developments of this module.5.3.4 Module SpecificationFormat Style module consists of just two attributes: and . It does not specify any elements.Format Style allows most structural and inline XLIFF core elements to convey basic formatting information using a predefined subset of HTML formatting elements. It primarily enables the generation of HTML pages or snippets for preview and review purposes. It MUST NOT be used to prescribe a roundtrip to a source document format.The attribute holds the name of an HTML formatting element. If additional style information is needed, the OPTIONAL attribute is provided.ConstraintsThe Format Style attributes MUST be configured in such a way that the HTML snippet resulting at the level is valid.Processing RequirementsExtractors and Enrichers SHOULD use the following method to validate their HTML snippets:Parse the snippet with the fragment parsing algorithm, see .the result MUST be a valid DOM tree as per , see . NoteThe above constraint and validation method will make sure that the snippets are renderable by standard HTML browsers.5.3.5 Module AttributesThe attributes defined in the module are: , . 5.3.5.1 fsFormat style attribute, fs - allows most structural and inline XLIFF core elements to convey basic formatting information using a predefined subset of HTML formatting elements (for example, HTML elements names like <script> are not included). It enables the generation of HTML pages or snippets for preview and review purposes. If additional style information is needed, the OPTIONAL attribute is provided.Value description:Table 4. Valuesaanchor b bold text style bdo I18N BiDi over-ride big large text style blockquote long quotation body document body br forced line break button push button caption table caption center shorthand for DIV align=center cite citation code computer code fragment col table column colgroup table column group dd definition description del deleted text div generic language/style container dl definition list dt definition term em emphasis h1 heading h2 heading h3 heading h4 heading h5 heading h6 heading head document head hr horizontal rule html document root element i italic text style imgimage label form field label text legend fieldset legend li list item ol ordered list p paragraph pre preformatted text q short inline quotation s strike-through text style samp sample program output, scripts, etc. select option selector small small text style span generic language/style container strike strike-through text strong strong emphasis sub subscript sup superscript table tbody table body td table data cell tfoot table footer th table header cell thead table header title document title tr table row tt teletype or monospaced text style u underlined text style ul unordered list Default value: undefined.Used in: , , , , , , , , and . WarningThe attribute is not intended to facilitate Merging back into the original format. ConstraintsThe MUST only be used with in cases where the isolated attribute is set to 'yes'.Processing RequirementsWriters updating the attribute MUST also update or delete .Example: To facilitate HTML preview, can be applied to XLIFF like this like:<xliff xmlns:fs="urn:oasis:names:tc:xliff:fs:2.0"> <file fs:fs="html"> <unit id="1" fs:fs="p"> <segment> <source>Mick Jones renewed his interest in the Vintage <pc id="1" fs:fs="strong">'72 Telecaster Thinline </pc> guitar. <ph id="ph2" fs:fs="br" />He says <pc fs:fs="q">I love 'em</pc> <ph id="ph1" fs:fs="img" fs:subFs="src,smileface.png" /></source> </segment> </unit> </file> </xliff>With an XSL stylesheet like this: <xsl:template match="*" priority="2" xmlns:fs="urn:oasis:names:tc:xliff:fs:2.0"> <xsl:choose> <xsl:when test="@fs:fs"> <xsl:element name="{@fs:fs}"> <xsl:if test="@fs:subFs"> <xsl:variable name="att_name" select="substring-before(@fs:subFs,',')" /> <xsl:variable name="att_val" select="substring-after(@fs:subFs,',')" /> <xsl:attribute name="{$att_name}"> <xsl:value-of select="$att_val" /> </xsl:attribute> </xsl:if> <xsl:apply-templates /> </xsl:element> </xsl:when> <xsl:otherwise> <xsl:apply-templates /> </xsl:otherwise> </xsl:choose> </xsl:template>You can generate a an HTML page like this: <html> <p>Mick Jones renewed his interest in the Vintage <strong>'72 Telecaster Thinline </strong> guitar. <br/>He says <q>I love 'em</q> <img src="smileface.png"/> </p> </html>5.3.5.2 subFsSub-format style, subFs - allows extra metadata, like URL for example, to be added in concert with the attribute. Value description: The subFs attribute is used to specify the HTML attributes to use along with the HTML element declared in the attribute. It is a list of name/value pairs. Each pair is separated from the next with a backslash (\). The name and the value of a pair are separated with a comma (,). Both literal backslash and comma characters are escaped with a backslash prefix. Default value: undefined.Used in: , , , , , , , , , , and . WarningThe attribute is not intended to facilitate Merging back into the original format. ConstraintsCommas (,) and backslashes (\) in the value parts of the MUST be escaped with a backslash (\).If the attribute is used, the attribute MUST be specified as well.The MUST only be used with in cases where the isolated attribute is set to 'yes'.Processing RequirementsWriters updating the attribute MUST also update or delete .Example: For complex HTML previews that require more than one attribute on an HTML preview element, attribute pairs are separated by backslashes (\). Any literal comma or backslash in an attribute value MUST be escaped with a backslash.For example, we would use this convention:<ph id="p1" fs="img" subFs="src,c:\\docs\\images\\smile.png\alt, My Happy Smile\title,Smiling faces\, are nice" />To produce this HTML preview:<img src="c:\docs\images\smile.png" alt="My Happy Smile" title="Smiling faces, are nice" />5.3.6 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:fs="urn:oasis:names:tc:xliff:fs:2.0" targetNamespace="urn:oasis:names:tc:xliff:fs:2.0"> <!-- Attribute Types --> <xs:simpleType name="fs_type"> <xs:restriction base="xs:string"> <xs:enumeration value="a"/> <xs:enumeration value="b"/> <xs:enumeration value="bdo"/> <xs:enumeration value="big"/> <xs:enumeration value="blockquote"/> <xs:enumeration value="body"/> <xs:enumeration value="br"/> <xs:enumeration value="button"/> <xs:enumeration value="caption"/> <xs:enumeration value="center"/> <xs:enumeration value="cite"/> <xs:enumeration value="code"/> <xs:enumeration value="col"/> <xs:enumeration value="colgroup"/> <xs:enumeration value="dd"/> <xs:enumeration value="del"/> <xs:enumeration value="div"/> <xs:enumeration value="dl"/> <xs:enumeration value="dt"/> <xs:enumeration value="em"/> <xs:enumeration value="h1"/> <xs:enumeration value="h2"/> <xs:enumeration value="h3"/> <xs:enumeration value="h4"/> <xs:enumeration value="h5"/> <xs:enumeration value="h6"/> <xs:enumeration value="head"/> <xs:enumeration value="hr"/> <xs:enumeration value="html"/> <xs:enumeration value="i"/> <xs:enumeration value="img"/> <xs:enumeration value="label"/> <xs:enumeration value="legend"/> <xs:enumeration value="li"/> <xs:enumeration value="ol"/> <xs:enumeration value="p"/> <xs:enumeration value="pre"/> <xs:enumeration value="q"/> <xs:enumeration value="s"/> <xs:enumeration value="samp"/> <xs:enumeration value="select"/> <xs:enumeration value="small"/> <xs:enumeration value="span"/> <xs:enumeration value="strike"/> <xs:enumeration value="strong"/> <xs:enumeration value="sub"/> <xs:enumeration value="sup"/> <xs:enumeration value="table"/> <xs:enumeration value="tbody"/> <xs:enumeration value="td"/> <xs:enumeration value="tfoot"/> <xs:enumeration value="th"/> <xs:enumeration value="thead"/> <xs:enumeration value="title"/> <xs:enumeration value="tr"/> <xs:enumeration value="tt"/> <xs:enumeration value="u"/> <xs:enumeration value="ul"/> </xs:restriction> </xs:simpleType> <!-- Attributes --> <xs:attribute name="fs" type="fs:fs_type"/> <xs:attribute name="subFs" type="xs:string"/> </xs:schema> 5.4 Metadata Module5.4.1 IntroductionThe Metadata module provides a mechanism for storing custom metadata using elements that are part of the official XLIFF specification.5.4.2 Module NamespaceThe namespace for the Metadata module is: urn:oasis:names:tc:xliff:metadata:2.05.4.3 Module Fragment Identification PrefixThe fragment identification prefix for the Metadata module is: mda5.4.4 Module ElementsThe elements defined in the Metadata module are: , , and . 5.4.4.1 Tree StructureLegend:+ = one or more | +--- + | +---At least one of ( OR ) | +--- 5.4.4.2 metadataContainer for metadata associated with the enclosing element.Contains:- One or more elementsAttributes:- , OPTIONALExample: Metadata can be used to store XML attribute names and values for XLIFF Documents that do not use a skeleton. The following XML sample contains attributes on the <document> and <row> elements.<document version="3" phase="draft"> <table> <row style="head"><cell>Name</cell><cell>Position</cell></row> <row><cell>Patrick K.</cell><cell>Right Wing</cell></row> <row><cell>Bryan B.</cell><cell>Left Wing</cell></row> </table> </document>The Metadata module can be used to preserve these attributes for a round trip without using a skeleton:<?xml version="1.0" encoding="utf-8"?> <xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" xmlns:fs="urn:oasis:names:tc:xliff:fs:2.0" xmlns:mda="urn:oasis:names:tc:xliff:metadata:2.0" version="2.0" srcLang="en"> <file id="f1"> <group id="g1" name="document"> <mda:metadata> <mda:metaGroup category="document_xml_attribute"> <mda:meta type="version">3</mda:meta> <mda:meta type="phase">draft</mda:meta> </mda:metaGroup> </mda:metadata> <group id="g2" name="table"> <group id="g3" name="row"> <mda:metadata> <mda:metaGroup category="row_xml_attribute"> <mda:meta type="style">head</mda:meta> </mda:metaGroup> </mda:metadata> <unit id="u1" name="cell"> <segment> <source>Name</source> </segment> </unit> <unit id="u2" name="cell"> <segment> <source>Position</source> </segment> </unit> </group> <group id="g4" name="row"> <unit id="u3" name="cell"> <segment> <source>Patrick K.</source> </segment> </unit> <unit id="u4" name="cell"> <segment> <source>Right Wing</source> </segment> </unit> </group> <group id="g5" name="row"> <unit id="u5" name="cell"> <segment> <source>Bryan B.</source> </segment> </unit> <unit id="u6" name="cell"> <segment> <source>Left Wing</source> </segment> </unit> </group> </group> </group> </file> </xliff>5.4.4.3 metaGroupProvides a way to organize metadata into a structured hierarchy.Contains:- One or more or elements in any order.Attributes:- , OPTIONAL- , OPTIONAL - , OPTIONAL 5.4.4.4 metaContainer for a single metadata component.Contains:- Non-translatable textAttributes:- , REQUIRED5.4.5 Module AttributesThe attributes defined in the Metadata module are: , , , and . 5.4.5.1 appliesToIndicates the element to which the content of the metagroup applies.Value description: source, target, or ignorable.Default value: undefined.Used in: .5.4.5.2 categorycategory - indicates a category for metadata contained in the enclosing element.Value description: Text.Default value: undefined.Used in: .5.4.5.3 idIdentifier - a character string used to identify a or element.Value description: NMTOKENDefault value: undefinedUsed in: and ConstraintsThe values of attributes MUST be unique among all and elements within the given enclosing element. 5.4.5.4 typetype - indicates the type of metadata contained by the enclosing element.Value description: Text.Default value: undefined.Used in: .5.4.6 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mda="urn:oasis:names:tc:xliff:metadata:2.0" targetNamespace="urn:oasis:names:tc:xliff:metadata:2.0"> <!-- Attribute Types --> <xs:simpleType name="appliesTo"> <xs:restriction base="xs:string"> <xs:enumeration value="source"/> <xs:enumeration value="target"/> <xs:enumeration value="ignorable"/> </xs:restriction> </xs:simpleType> <!-- Elements --> <xs:element name="metadata"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="mda:metaGroup"/> </xs:sequence> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> </xs:complexType> </xs:element> <xs:element name="metaGroup"> <xs:complexType mixed="false"> <xs:sequence> <xs:choice minOccurs="1" maxOccurs="unbounded"> <xs:element ref="mda:metaGroup"/> <xs:element ref="mda:meta"/> </xs:choice> </xs:sequence> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="category" use="optional"/> <xs:attribute name="appliesTo" use="optional" type="mda:appliesTo"/> </xs:complexType> </xs:element> <xs:element name="meta"> <xs:complexType mixed="true"> <xs:attribute name="type" use="required" type="xs:string"/> </xs:complexType> </xs:element> </xs:schema> 5.5 Resource Data Module5.5.1 IntroductionThe Resource Data module provides a mechanism for referencing external resource data that MAY need to be modified or used as contextual reference during translation.5.5.2 Module NamespaceThe namespace for the Resource Data module is: urn:oasis:names:tc:xliff:resourcedata:2.05.5.3 Module Fragment Identification PrefixThe fragment identification prefix for the Resource Data module is: res5.5.4 Module ElementsThe elements defined in the Resource Data module are: , , , , , and . 5.5.4.1 Tree StructureLegend:? = zero or one* = zero, one or more | +--- * | +--- * | +--- ? | | | +---<other> * | +--- ? | | | +---<other> * | +--- * 5.5.4.2 resourceDataParent container for resource data associated with the enclosing element.Contains:At least one of the following- Zero, one or more elements.- Zero, one or more elements.5.5.4.3 resourceItemRefSpecifies a reference to an associated element located at the level.Contains:This element is always empty.Attributes:- , OPTIONAL- , REQUIRED- attributes from other namespaces, OPTIONALConstraintsThe value of the OPTIONAL attribute MUST be unique among all and elements of the enclosing element.Processing RequirementsModifiers MUST remove when removing the referenced .5.5.4.4 resourceItemContainer for specific resource data that is either intended for Modification, or to be used as contextual reference during Translation.Contains:At least one of the following- Zero or one element followed by- Zero or one element followed by- Zero, one or more elementsAttributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe attribute is REQUIRED if and child elements are empty, otherwise it is OPTIONAL.The value of the OPTIONAL attribute MUST be unique among all and elements of the enclosing element.Processing RequirementsIf a Modifier does not understand how to process the attribute, or the file it references, the element MAY be ignored, but still MUST be preserved.The attribute SHOULD only be modified or removed if the referenced files are modified or removed.For each instance of containing only :Modifiers MAY leave unchanged, i.e. they are not REQUIRED to create or .Modifiers MAY create or as a siblings of .5.5.4.5 sourceReferences the actual resource data that is either intended for Modification, or to be used as contextual reference during Translation.Contains:Either- elements from other namespacesor- is empty.Attributes:- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe attribute is REQUIRED if and only if is empty.When the OPTIONAL attribute is present, its value MUST be equal to the value of the attribute of the enclosing element.Processing RequirementsWhen the attribute of is set to yes:Modifiers MAY create if not already present.Modifiers SHOULD NOT change .Modifiers MAY remove .When the attribute of is set to no: MUST be present.Modifiers MUST NOT change .Modifiers MUST NOT remove .5.5.4.6 targetReferences the localized counterpart of the sibling element.Contains:Either- elements from other namespacesor- is empty.Attributes:- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsThe attribute is REQUIRED if and only if is empty.When the OPTIONAL attribute is present, its value MUST be equal to the value of the attribute of the enclosing element.Processing RequirementsWhen the attribute of is set to yes:Modifiers MAY create if not already present.Modifiers SHOULD NOT change .Modifiers MAY remove .When the attribute of is set to no:Modifiers MAY create if not already present.Modifiers MAY leave unchanged.Modifiers MAY change .Modifiers MAY replace an existing , i.e. the previously populated MUST NOT be left blank.5.5.4.7 referenceReferences contextual data relating to the sibling and elements, such as a German screenshot for a Luxembourgish translator.Contains:- This element is always empty.Attributes:- , REQUIRED- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsWhen the OPTIONAL attribute is present, its value does not need to be equal to the value of the or attribute of the enclosing element.Processing RequirementsWriters MAY create if not already present.Modifiers SHOULD NOT change .Modifiers MAY remove .5.5.5 Module AttributesThe attributes defined in the Resource Data module are: , , , , , and . 5.5.5.1 idIdentifier - A character string used to identify a element.Value description: NMTOKENDefault value: undefinedUsed in: and 5.5.5.2 xml:langLanguage - The xml:lang attribute specifies the language variant of the text of a given element. For example: xml:lang="fr-FR" indicates the French language as spoken in France.Value description: A language code as described in .Default value: undefinedUsed in: , , and .5.5.5.3 mimeTypeMIME type, mimeType - indicates the type of a resource object. This generally corresponds to the content type of , the MIME specification; e.g. mimeType="text/xml" indicates the resource data is a text file of XML format.Value description: A MIME type. An existing MIME type MUST be used from a .Default value: undefinedUsed in:NoteIf you cannot use any of the standard MIME type values as specified above, a new MIME type can be registered according to .5.5.5.4 contextContextual Information - Indicates whether an external resource is to be used for context only and not modified.Value description: yes or noDefault value: yesUsed in:5.5.5.5 hrefHypertext Reference, href - IRI referencing an external resource.Value description: IRI.Default value: undefinedUsed in:, , and 5.5.5.6 refResource Item Reference - holds a reference to an associated element located at the level.Value description: An NMTOKENDefault value: undefinedUsed in:ConstraintsThe attribute value MUST be the value of the attribute of the element being referenced.5.5.6 Examples:In this example, the module at level references external XML that contains resource data for a user interface control. The control is the container for the text “Load Registry Config” and needs to be resized to accommodate the increased length of the string due to translation. The element contained in the module at level provides the reference between them. The name attribute of the element could serve as the key for an editor to associate and text with the resource data contained in the referenced XML and display it for modification. <file id="f1"> <res:resourceData> <res:resourceItem id="r1" mimeType="text/xml" context="no"> <res:source href="resources\en\registryconfig.resources.xml" /> <res:target href="resources\de\registryconfig.resources.xml" /> </res:resourceItem> </res:resourceData> <unit id="1" name="130;WIN_DLG_CTRL_"> <res:resourceData> <res:resourceItemRef ref="r1" /> </res:resourceData> <segment id="1" state="translated"> <source>Load Registry Config</source> <target>Registrierungskonfiguration laden</target> </segment> </unit> </file> In this example, the module at the level contains elements from another namespace (abc), which could be displayed for modification in an editor that understands how to process the namespace. <file id="f2" xmlns:abc="urn:abc"> <unit id="1"> <res:resourceData> <res:resourceItem id="r1" context="no"> <res:source> <abc:resourceType>button</abc:resourceType> <abc:resourceHeight>40</abc:resourceHeight> <abc:resourceWidth>75</abc:resourceWidth> </res:source> <res:target> <abc:resourceType>button</abc:resourceType> <abc:resourceHeight>40</abc:resourceHeight> <abc:resourceWidth>150</abc:resourceWidth> </res:target> </res:resourceItem> </res:resourceData> <segment id="1" state="translated"> <source>Load Registry Config</source> <target>Registrierungskonfiguration laden</target> </segment> </unit> </file> In this example, the module references multiple static images that an editor can make use of as context while translating or reviewing. <file id="f3"> <res:resourceData> <res:resourceItem id="r1" mimeType="image/jpeg" context="yes"> <res:source xml:lang="en-us" href="resources\en\registryconfig1.resources.jpg" /> <res:target xml:lang="lb-lu" href="resources\lb\registryconfig1.resources.jpg" /> <res:reference xml:lang="de-de" href="resources\de\registryconfig1.resources.jpg" /> </res:resourceItem> <res:resourceItem id="r2" mimeType="image/jpeg" context="yes"> <res:source xml:lang="en-us" href="resources\en\registryconfig2.resources.jpg" /> <res:target xml:lang="lb-lu" href="resources\lb\registryconfig2.resources.jpg" /> </res:resourceItem> </res:resourceData> <unit id="1"> <res:resourceData> <res:resourceItemRef ref="r1" /> <res:resourceItemRef ref="r2" /> </res:resourceData> <segment id="1" state="translated"> <source>Remove Registry Config</source> <target>Registrierungskonfiguration entfernen</target> </segment> </unit> </file> 5.5.7 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:res="urn:oasis:names:tc:xliff:resourcedata:2.0" xmlns:xlf="urn:oasis:names:tc:xliff:document:2.0" targetNamespace="urn:oasis:names:tc:xliff:resourcedata:2.0"> <!-- Import --> <xs:import namespace="urn:oasis:names:tc:xliff:document:2.0" schemaLocation="../xliff_core_2.0.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="informativeCopiesOf3rdPartySchemas/w3c/xml.xsd"/> <!-- Elements --> <xs:element name="resourceData"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="res:resourceItemRef"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="res:resourceItem"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="resourceItemRef"> <xs:complexType mixed="false"> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="ref" use="required" type="xs:NMTOKEN"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="resourceItem"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" ref="res:source"/> <xs:element minOccurs="0" maxOccurs="1" ref="res:target"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="res:reference"/> </xs:sequence> <xs:attribute name="mimeType" use="optional"/> <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="context" use="optional" type="xlf:yesNo" default="yes"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="source"> <xs:complexType mixed="false"> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="href" use="optional"/> <xs:attribute ref="xml:lang" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="target"> <xs:complexType mixed="false"> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="href" use="optional"/> <xs:attribute ref="xml:lang" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="reference"> <xs:complexType mixed="false"> <xs:attribute name="href" use="required"/> <xs:attribute ref="xml:lang" use="optional"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema> 5.6 Change Tracking Module5.6.1 IntroductionThe Change Tracking module is used to store revision information for XLIFF elements and attributes.5.6.2 Module NamespaceThe namespace for the Change Tracking module is: urn:oasis:names:tc:xliff:changetracking:2.05.6.3 Module Fragment Identification PrefixThe fragment identification prefix for the Change Tracking module is: ctr5.6.4 Module ElementsThe elements defined in the Change Tracking module are: , , , and .5.6.4.1 Tree StructureLegend:+ = one or more | +--- + | +--- + | +--- + 5.6.4.2 changeTrackParent container for change tracking information associated with a sibling element, or a child of a sibling element, to the change track module within the scope of the enclosing element.Contains:- One or more elements.5.6.4.3 revisionsContainer for logical groups of revisions associated with a sibling element, or a child of a sibling element, to the change track module within the scope of the enclosing element.Contains:- One or more elements.Attributes:- , REQUIRED- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALProcessing RequirementsModifying agents MAY create elements with attributes.Modifying agents SHOULD NOT modify and its attributes defined in this module, except in the case where the attribute is used. This attribute SHOULD be updated when a new revision becomes the most current.Modifying agents SHOULD NOT remove and its attributes defined in this module.When the attribute refers to an element that is a multiple instance within the enclosing element, the attribute MUST be used to reference an individual instance if and only if the referenced instance has an id. Using as an example: <notes> <note id="n1">new note</note> <note id="n2">another note</note> </notes> <ctr:changeTrack> <ctr:revisions appliesTo="note" ref="n1"> <ctr:revision> <ctr:item property="content">old note</ctr:item> </ctr:revision> </ctr:revisions> </ctr:changeTrack> 5.6.4.4 revisionContainer for specific revisions associated with a sibling element, or a child of a sibling element, to the change track module within the scope of the enclosing element.Contains:- One or more elements.Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALProcessing RequirementsModifying agents MAY create elements with attributes.Modifying agents SHOULD NOT modify and its attributes defined in this module.Modifying agents MAY remove and its attributes defined in this module if and only if there is more than one instance of present. For example, a user agent can decide to preserve only the most current revision.5.6.4.5 itemContainer for a specific revision associated with a sibling element, or a child of a sibling element, to the change track module within the scope of the enclosing element.Contains:- TextAttributes:- , REQUIRED- attributes from other namespaces, OPTIONALProcessing RequirementsModifying agents MAY create elements with attributes.Modifying agents SHOULD NOT modify and its attribute defined in this module.Modifying agents SHOULD NOT remove and its attribute defined in this module, unless they are removed as part of a element removed according to its own processing requirements.5.6.5 Module AttributesThe attributes defined in the Change Tracking module are: , , , , , , and . 5.6.5.1 appliesToappliesTo – Indicates a specific XLIFF element which is a sibling, or a child of a sibling element, to the change track module within the scope of the enclosing element.Value description: NMTOKEN name of any valid XLIFF element which is a sibling, or a child of a sibling element, to the change track module within the scope of the enclosing element. Default value: undefinedUsed in:5.6.5.2 authorauthor - Indicates the user or agent that created or modified the referenced element or its attributes.Value description: Text.Default value: undefinedUsed in:.5.6.5.3 currentVersioncurrentVersion - holds a reference to the most current version of a revision.Value description: An NMTOKENDefault value: noneUsed in:.ConstraintsThe value of the attribute MUST be the value of the attribute of one of the elements listed in the same element.5.6.5.4 datetimeDate and Time, datetime - Indicates the date and time the referenced element or its attributes were created or modified.Value description: Date in one of the formats defined in .Default value: undefinedUsed in:.5.6.5.5 refReference - Holds a reference to a single instance of an element that has multiple instances within the enclosing element.Value description: An NMTOKENDefault value: undefinedUsed in:Constraints The value of the attribute MUST be the value of the attribute of a single instance of an element that is a multiple instance within the enclosing element.5.6.5.6 propertyproperty – Indicates the type of revision data.Value description: The value MUST be either content to signify the content of an element, or the name of the attribute relating to the revision data.Default value: noneUsed in:.5.6.5.7 versionversion - Indicates the version of the referenced element or its attributes that were created or modified.Value description: NMTOKEN.Default value: undefinedUsed in:.5.6.6 Example:The following example shows change tracking for , , and . Current and previous versions are both stored in the Change Tracking module. <unit id="1"> <ctr:changeTrack> <ctr:revisions appliesTo="source" currentVersion="r1"> <ctr:revision author="system" datetime="2013-07-15T10:00:00+8:00" version="r1"> <ctr:item property="content">Hello World</ctr:item> </ctr:revision> <ctr:revision author="system" datetime="2013-06-15T10:00:00+8:00" version="r2"> <ctr:item property="content">Hello</ctr:item> </ctr:revision> <ctr:revision author="system" datetime="2013-05-15T10:00:00+8:00" version="r3"> <ctr:item property="content">Hi</ctr:item> </ctr:revision> </ctr:revisions> <ctr:revisions appliesTo="target" currentVersion="r1"> <ctr:revision author="Frank" datetime="2013-07-17T11:00:00+8:00" version="r1"> <ctr:item property="content">Guten Tag Welt</ctr:item> </ctr:revision> <ctr:revision author="Frank" datetime="2013-06-17T11:00:00+8:00" version="r2"> <ctr:item property="content">Hallo</ctr:item> </ctr:revision> <ctr:revision author="Frank" datetime="2013-05-17T11:00:00+8:00" version="r3"> <ctr:item property="content">Grüsse</ctr:item> </ctr:revision> </ctr:revisions> <ctr:revisions appliesTo="note" ref="n1" currentVersion="r1"> <ctr:revision author="Bob" datetime="2013-07-16T10:30:00+8:00" version="r1"> <ctr:item property="content">The translation should be formal </ctr:item> <ctr:item property="category">instruction</ctr:item> </ctr:revision> <ctr:revision author="Bob" datetime="2013-05-16T10:30:00+8:00" version="r2"> <ctr:item property="content">The translation should be informal </ctr:item> <ctr:item property="category">comment</ctr:item> </ctr:revision> </ctr:revisions> <ctr:revisions appliesTo="note" ref="n2" currentVersion="r1"> <ctr:revision author="Bob" datetime="2013-07-18T10:30:00+8:00" version="r1"> <ctr:item property="content">Please Review my translation </ctr:item> </ctr:revision> </ctr:revisions> </ctr:changeTrack> <notes> <note category="instruction" id="n1">The translation should be formal</note> <note category="comment" id="n2">Please Review my translation</note> </notes> <segment> <source>Hello World</source> <target>Guten Tag Welt</target> </segment> </unit> 5.6.7 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:ctr="urn:oasis:names:tc:xliff:changetracking:2.0" targetNamespace="urn:oasis:names:tc:xliff:changetracking:2.0"> <!-- Elements --> <xs:element name="changeTrack"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="ctr:revisions"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="revisions"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="ctr:revision"/> </xs:sequence> <xs:attribute name="appliesTo" use="required" type="xs:NMTOKEN"/> <xs:attribute name="ref" use="optional" type="xs:NMTOKEN"/> <xs:attribute name="currentVersion" use="optional" type="xs:NMTOKEN"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="revision"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="ctr:item"/> </xs:sequence> <xs:attribute name="author" use="optional"/> <xs:attribute name="datetime" use="optional"/> <xs:attribute name="version" use="optional" type="xs:NMTOKEN"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="item"> <xs:complexType mixed="true"> <xs:attribute name="property" use="required"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema> 5.7 Size and Length Restriction Module5.7.1 IntroductionThe Size and Length Restriction module provides a mechanism to annotate the XLIFF content with information on storage and general size restrictions.The restriction framework has support for two distinct types of restrictions; storage size restrictions and general size restriction. The reason for this is that it is often common to have separate restrictions between storage and display / physical representation of data. Since it would be impossible to define all restrictions here a concept of restriction profile is introduced. The profiles for storage size and general size are independent. The information related to restriction profiles are stored in the processing invariant part of the XLIFF file like the , and elements and contained within elements defined in this module. The information regarding the specific restrictions are stored on the processing invariant parts and on the inline elements as attributes or attributes referencing data in the elements defined in this module. To avoid issues with segmentation no information regarding size restrictions is present on , and elements. The module defines a namespace for all the elements and attributes it introduces, in the rest of the module specification elements and attributes are in this namespace unless stated otherwise. In other parts of the XLIFF specification the prefix "slr" is used to refer to this module's namespace. For clarity the prefix "xlf" will be used for XLIFF Core elements and attributes. Profile names use the same namespace-like naming convention as user defined values in the XLIFF Core specification. The names SHOULD be composed of two components separated by a colon. <authority>:<name>. The authority "xliff" is reserved for profiles defined by the OASIS XLIFF Technical Committee.5.7.2 Module NamespaceThe namespace for the Size and Length restriction module is: urn:oasis:names:tc:xliff:sizerestriction:2.05.7.3 Module Fragment Identification PrefixThe fragment identification prefix for the Size and Length restriction module is: slr5.7.4 Module ElementsThe elements defined in the Size and Length restriction module are: , and . 5.7.4.1 Tree StructureLegend:? = zero or one | +--- ? | +---<other> * 5.7.4.2 profilesThis element selects the restriction profiles to use in the document. If no storage or general profile is specified the default values (empty) of those elements will disable restriction checking in the file.Contains:- Zero or one element followed by- elements from other namespaces, OPTIONALAttributes:- , OPTIONAL- , OPTIONALProcessing RequirementsAny overall configuration or settings related to the selected profile MUST be placed in child elements of this element.Data not related to the configuration of the selected profiles MUST NOT be placed in this element.5.7.4.3 normalizationThis element is used to hold the attributes specifying the normalization form to apply to storage and size restrictions defined in the standard profiles.Contains:This element is always empty.Attributes:- , OPTIONAL- , OPTIONALProcessing RequirementsIf this element is not present no normalization SHOULD be performed for the standard profiles.Other profiles MAY use this element in its specified form but MUST NOT add new extensions to it.5.7.4.4 dataThis elements act as a container for data needed by the specified profile to check the part of the XLIFF document that is a sibling or descendant of a sibling of this element. It is not used by the default profiles.Contains:- elements from other namespaces, OPTIONALAttributes:- , REQUIRED- attributes from other namespaces, OPTIONALProcessing RequirementsThird party profiles MUST place all data in this element instead of using other extension points if the data serves no other purpose in the processing of the document.Data not used by the specified profile MUST NOT be placed in this element.5.7.5 Module AttributesThe attributes defined in the Size and Length restriction module are: , , , , , , , , and . 5.7.5.1 storageProfileThis attribute specifies, which profile to use while checking storage size restrictions. Empty string means that no restrictions are applied.Value description: Name of restriction profile to use for storage size restrictions.Default value: empty stringUsed in:.5.7.5.2 generalProfileThis attribute specifies, which profile to use while checking the general size restrictions. Empty string means that no restrictions apply.Value description: Name of restriction profile to use for general size restrictions.Default value: empty stringUsed in:.5.7.5.3 storageThis attribute specifies the normalization form to apply for storage size restrictions. Only the normalization forms C and D as specified by the Unicode Consortium are supported, see .Value description: normalization to apply.Table 5. ValuesValueDescriptionnoneNo additional normalization SHOULD be done, content SHOULD be used as represented in the document. It is possible that other Agents have already done some type of normalization when Modifying content. This means that this setting could give different results depending on what Agents are used to perform a specific action on the XLIFF Document.nfcNormalization Form C MUST be usednfdNormalization Form D MUST be usedDefault value: noneUsed in: .5.7.5.4 generalThis attribute specifies the normalization to apply for general size restrictions. Only the normalization forms C and D as specified by the Unicode Consortium are supported, see .Value description: normalization to apply.Table 6. ValuesValueDescriptionnoneNo additional normalization SHOULD be done, content SHOULD be used as represented in the document. It is possible that other Agents have already done some type of normalization when Modifying content. This means that this setting could give different results depending on what Agents are used to perform a specific action on the XLIFF Document.nfcNormalization Form C MUST be usednfdNormalization Form D MUST be usedDefault value: noneUsed in:.5.7.5.5 profileThis attribute is used on the <data> element to indicate what profile the contents of that element apply to.Value description: Name of a restriction profileDefault value: undefinedUsed in:.5.7.5.6 storageRestrictionThis attribute specifies the storage restriction to apply to the collection descendants of the element it is defined on.Value description: Interpretation of the value is dependent on selected . It MUST represent the restriction to apply to the indicated sub part of the document.Default value: undefinedUsed in: , , , , , and . 5.7.5.7 sizeRestrictionThis attribute specifies the size restriction to apply to the collection descendants of the element it is defined on.Value description: Interpretation of the value is dependent on selected . It MUST represent the restriction to apply to the indicated sub part of the document.Default value: undefinedUsed in: , , , , , and . 5.7.5.8 equivStorageThis attribute provides a means to specify how much storage space an inline element will use in the native format. This size contribution is then added to the size contributed by the textual parts. This attribute is only allowed on the element if that element has the attribute set to yes. Otherwise the attribute on the paired element also cover its partner element.Value description: Interpretation of the value is dependent on selected . It MUST represent the equivalent storage size represented by the inline element.Default value: undefinedUsed in: , , , and 5.7.5.9 sizeInfoThis attribute is used to associate profile specific information to inline elements so that size information can be decoupled from the native format or represented when the native data is not available in the XLIFF document. It can be used on both inline elements and structural elements to provide information on things like GUI dialog or control sizes, expected padding or margins to consider for size, what font is used for contained text and so on. This attribute is only allowed on the element if that element has the attribute set to yes. Otherwise the attribute on the paired element also cover its partner element.Value description: Interpretation of the value is dependent on selected . It MUST represent information related to how the element it is attached to contributes to the size of the text or entity in which it occurs or represents.Default value: undefinedUsed in: , , , , , , and . ConstraintsThis attribute MUST NOT be specified if and only if is used. They MUST NOT be specified at the same time.5.7.5.10 sizeInfoRefThis attribute is used to point to data that provide the same function as the attribute does, but with the data stored outside the inline content of the XLIFF segment. This attribute is only allowed on the element if that element has the attribute set to yes. Otherwise the attribute on the paired element also cover its partner element.Value description: a reference to data that provide the same information that could be otherwise put in a attribute. The reference MUST point to an element in a element that is a sibling to the element this attribute is attached to or a sibling to one of its ancestors. Default value: undefinedUsed in: , , , , , , and , ConstraintsThis attribute MUST NOT be specified if and only if is used. They MUST NOT be specified at the same time.5.7.6 Standard profiles5.7.6.1 General restriction profile ”xliff:codepoints”This profile implements a simple string length restriction based on the number of Unicode code points. It is OPTIONAL to specify if normalization is to be applied using the element and the attribute. This profile makes use of the following attributes from this module:5.7.6.1.1 sizeRestrictionThe value of this attribute holds the ”maximum” or ”minimum and maximum” size of the string. Either size MUST be an integer. The maximum size MAY also be ’*’ to denote that there is no maximum restriction. If only a maximum is specified it is implied that the minimum is 0 (empty string). The format of the value is the OPTIONAL minimum size and a coma followed by a maximum size (”[minsize,]maxsize”). The default value is ’*’ which evaluates to a string with unbounded size.5.7.6.1.2 sizeInfoThe value of this attribute is an integer representing how many code points the element it is set on is considered to contribute to the total size. If empty, the default for all elements is 0.5.7.6.2 Storage restriction profiles ”xliff:utf8”, ”xliff:utf16” and ”xliff:utf32”These three profiles define the standard size restriction profiles for the common Unicode character encoding schemes. It is OPTIONAL to specify if normalization is to be applied using the element and the . All sizes are represented in 8bit bytes. The size of text for these profiles is the size of the text converted to the selected encoding without any byte order marks attached. The encodings are specified by the Unicode Consortium in .Table 7. ProfilesNameDescriptionxliff:utf8The number of 8bit bytes needed to represent the string encoded as UTF-8 as specified by the Unicode consortium.xliff:utf16The number of 8bit bytes needed to represent the string encoded as UTF-16 as specified by the Unicode consortium.xliff:utf32The number of 8bit bytes needed to represent the string encoded as UTF-32 as specified by the Unicode consortium.These profiles make use of the following attributes from this module:5.7.6.2.1 storageRestrictionThe value of this attribute holds the ”maximum” or ”minimum and maximum” size of the string. Either size MUST be an integer. The maximum size MAY also be ’*’ to denote that there is no maximum restriction. If only a maximum is specified it is implied that the minimum is 0 (empty string). The format of the value is the OPTIONAL minimum size and a coma followed by a maximum size (”[minsize,]maxsize”). The default value is ’*’ which evaluates to a string with unbounded size.5.7.6.2.2 equivStorageThe value of this attribute is an integer representing how many bytes the element it is set on is considered to contribute to the total size. If empty the default is 0. The is always converted to its representation in the profiles encoding and the size of that representation is used as the size contributed by the . 5.7.7 Third party profilesThe general structure of this module together with the extensibility mechanisms provided has been designed with the goal to cater for all practically thinkable size restriction schemes. For example, to represent two dimensional data, a profile can adopt a coordinate style for the values of the general restriction attributes. For instance {x,y} to represent width and height, or {{x1,y1},{x2,y2}} to represent a bounding box. It is also possible to embed information necessary to drive for instance a display simulator and attach that data to text in order to be able to perform device specific checking. Providing font information and checking glyph based general size are other feasible options.5.7.8 ConformanceTo claim conformance to the XLIFF size and length restriction module an Agent MUST meet the following criteria:MUST be compliant with the schema of the XLIFF Core specification and its extensions provided in this module.MUST follow all processing requirements set forth in this module specification regarding the general use of elements and attributes.MUST support all standard profiles with normalization set to none.SHOULD support all standard profiles with all modes of normalization.MAY support additional third party profiles for storage or general restrictions.MUST provide at least one of the following:add size and length restriction information to an XLIFF Documentif it supports the profile(s) specified in the XLIFF Document it MUST provide a way to check if the size and length restrictions in the document are met according to the profile(s) requirements.5.7.9 ExampleA short example on how this module can be used is provided here with inline XML comments explaining the usage of the module features. <xliff version="2.0" srcLang="en-us" xmlns="urn:oasis:names:tc:xliff:document:2.0" xmlns:slr="urn:oasis:names:tc:xliff:sizerestriction:2.0"> <file id="f1"> <slr:profiles generalProfile="xliff:codepoints" storageProfile="xliff:utf8"> <!-- Select standard UTF-8 storage encoding and standard codepoint size restriction both with NFC normalization--> <slr:normalization general="nfc" storage="nfc" /> </slr:profiles> <!-- The group should not require more than 255 bytes of storage And have at most 90 codepoints. Note that the sum of the unit sizes are larger than this the total content of the group must still be at most 90 codepoints. --> <group id="g1" slr:storageRestriction="255" slr:sizeRestriction="90"> <!-- This unit must not contain more than 60 code points --> <unit id="u1" slr:sizeRestriction="60"> <segment> <!-- The spanning <pc> element require 7 bytes of storage in the native format. Its content must not have more than 25 codepoints --> <source>This is a small <pc equivStorage="7" slr:sizeRestriction="25">size restriction</pc> example. </source> </segment> </unit> <!-- This unit must not have more than 35 codepoints --> <unit id="u2" slr:sizeRestriction="35"> <segment> <source>With a group structure.</source> </segment> </unit> </group> </file> </xliff> 5.7.10 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:slr="urn:oasis:names:tc:xliff:sizerestriction:2.0" targetNamespace="urn:oasis:names:tc:xliff:sizerestriction:2.0"> <!-- Attribute Types --> <xs:simpleType name="normalization_type"> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="nfc"/> <xs:enumeration value="nfd"/> </xs:restriction> </xs:simpleType> <!-- Attributes --> <xs:attribute name="equivStorage" type="xs:string"/> <xs:attribute name="sizeInfo" type="xs:string"/> <xs:attribute name="sizeInfoRef" type="xs:NMTOKEN"/> <xs:attribute name="sizeRestriction" type="xs:string"/> <xs:attribute name="storageRestriction" type="xs:string"/> <!-- Elements --> <xs:element name="profiles"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" ref="slr:normalization"/> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="generalProfile" use="optional"/> <xs:attribute name="storageProfile" use="optional"/> </xs:complexType> </xs:element> <xs:element name="normalization"> <xs:complexType mixed="false"> <xs:attribute name="general" use="optional" type="slr:normalization_type" default="none"/> <xs:attribute name="storage" use="optional" type="slr:normalization_type" default="none"/> </xs:complexType> </xs:element> <xs:element name="data"> <xs:complexType mixed="false"> <xs:sequence> <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/> </xs:sequence> <xs:attribute name="profile" use="required"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema> 5.8 Validation Module5.8.1 IntroductionThis module defines a specific set of validation rules that can be applied to target text both globally and locally. Further constraints can be defined that allow rules to be applied to target text based on conditions in the source text or disabled to override a global scope.5.8.2 Module NamespaceThe namespace for the Validation module is: urn:oasis:names:tc:xliff:validation:2.05.8.3 Module Fragment Identification PrefixThe fragment identification prefix for the Validation module is: val5.8.4 Module ElementsThe elements defined in the Validation module are: and .5.8.4.1 Tree StructureLegend:+ = one or more | +--- + 5.8.4.2 validationParent container for a list of rules and constraints to apply to the target text of the enclosing element.Contains:- One or more elements.Attributes:- attributes from other namespaces, OPTIONALProcessing RequirementsWhen the element occurs at the level, rules MUST be applied to all elements within the scope of that element, except where overrides are specified at the or level.When occurs at the level, rules MUST be applied to all elements within the scope of that , except where overrides are specified in a nested element, or at the level.When occurs at the level, rules MUST be applied to all elements within the scope of that .5.8.4.3 ruleA specific rule and constraint to apply to the target text of the enclosing element.Contains:- This element is always empty.Attributes:- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- , OPTIONAL- attributes from other namespaces, OPTIONALConstraintsExactly one of the following attributes: a custom rule defined by attributes from any namespaceis REQUIRED in any one element.Processing RequirementsWriters MAY create and add new elements, provided that the new rules do not contradict rules already present.Modifiers MUST NOT change attributes defined in this module that are already present in any element.Modifiers MUST NOT remove either elements or their attributes defined in this module.5.8.5 Module AttributesThe attributes defined in the Validation module are: , , , , , , , , and . 5.8.5.1 isPresentThis rule attribute specifies that a string MUST be present in the target text at least once.For example, the following is valid: <unit id="1"> <val:validation> <val:rule isPresent="online" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na loja online.</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule isPresent="loja" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na online store.</target> </segment> </unit> Other rule attributes can be combined with to produce the following results:isPresent=”loja” - loja is found in the target text at least once.isPresent=”loja” occurs=”1” - loja is found in the target text exactly once.isPresent=”loja” existsInSource=”yes” - loja is found in both source and target text the same number of times.isPresent=”loja” existsInSource=”yes” occurs=”1” - loja is found in both source and target text and occurs in target text exactly once.Value description: Text.Default value: noneUsed in: 5.8.5.2 occursThis rule attribute is used with the rule attribute to specify the exact number of times a string MUST be present in the target text. When this rule attribute is not used, then the string MUST be present in the target text at least once.For example, the following is valid: <unit id="1"> <val:validation> <val:rule isPresent="loja" occurs="2" /> </val:validation> <segment id="1"> <source>Choose a store option in the online store.</source> <target>Escolha uma opção de loja na loja online.</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule isPresent="loja" occurs="2" /> </val:validation> <segment id="1"> <source>Choose a store option in the online store.</source> <target>Escolha uma opção de loja na online store.</target> </segment> </unit> Value description: A number of 1 or greater.Default value: noneUsed in: 5.8.5.3 isNotPresentThis rule attribute specifies that a string MUST NOT be present in the target text.For example, the following is valid: <unit id="1"> <val:validation> <val:rule isNotPresent="store" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na loja online.</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule isNotPresent="store" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na online store.</target> </segment> </unit> Value description: Text.Default value: noneUsed in: 5.8.5.4 startsWithThis rule attribute specifies that a string MUST start with a specific value.For example, the following is valid: <unit id="1"> <val:validation> <val:rule startsWith="*" /> </val:validation> <segment id="1"> <source>*Choose an option in the online store.</source> <target>*Escolha uma opção na loja online.</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule startsWith="*" /> </val:validation> <segment id="1"> <source>*Choose an option in the online store.</source> <target>Escolha uma opção na loja online.</target> </segment> </unit> Value description: Text. Default value: none Used in: 5.8.5.5 endsWithThis rule attribute specifies that a string MUST end with a specific value.For example, the following is valid: <unit id="1"> <val:validation> <val:rule endsWith=":" /> </val:validation> <segment id="1"> <source>Choose an option in the online store:</source> <target>Escolha uma opção na loja online:</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule endsWith=":" /> </val:validation> <segment id="1"> <source>Choose an option in the online store:</source> <target>Escolha uma opção na online store.</target> </segment> </unit> Value description: Text.Default value: noneUsed in: 5.8.5.6 existsInSourceWhen this rule attribute is used with another rule attribute and is set to yes, it specifies that for the rule to succeed, the condition MUST be satisfied in both source and target text. This rule attribute is valid only when used with one of the following rule attributes: , , or .When is set to no, it will have no impact on execution of rules, except for overriding rules where is set to yes on a higher level.For example, the following are valid: <unit id="1"> <val:validation> <val:rule endsWith=":" existsInSource="yes" /> </val:validation> <segment id="1"> <source>Choose an option in the online store:</source> <target>Escolha uma opção na loja online:</target> </segment> </unit> ... <unit id="2"> <val:validation> <val:rule endsWith=":" existsInSource="no" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na loja online:</target> </segment> </unit> Whereas the following is invalid: <unit id="1"> <val:validation> <val:rule endsWith=":" existsInSource="yes" /> </val:validation> <segment id="1"> <source>Choose an option in the online store.</source> <target>Escolha uma opção na loja online:</target> </segment> </unit> Value description: yes or noDefault value: noUsed in: Constraints When is specified, exactly one of is REQUIRED in the same element. 5.8.5.7 caseSensitiveThis rule attribute specifies whether the test defined within that rule is case sensitive or not.Value description: yes if the test is case sensitive, no if the test is case insensitive.Default value: yes.Used in: 5.8.5.8 normalizationThis rule attribute specifies the normalization type to apply when validating a rule. Only the normalization forms C and D as specified in .Value description: The allowed values are listed in the table below along with their corresponding types of normalization to be applied.Table 8. ValuesValueDescriptionnoneNo normalization SHOULD be done.nfcNormalization Form C MUST be used.nfdNormalization Form D MUST be used.Default value: nfcUsed in: 5.8.5.9 disabledThis rule attribute determines whether a rule MUST or MUST NOT be applied within the scope of its enclosing element. For example, a rule defined at the level can be disabled at the level.This attribute is provided to allow for overriding execution of rules set at higher levels, see .In the following example, the isNotPresent rule is applied in its entirety to the first unit, but not to the second. <file id="f1"> <val:validation> <val:rule isPresent="store" /> </val:validation> <unit id="1"> <segment id="1"> <source>Choose an option in the online store:</source> <target>Escolha uma opção na loja online:</target> </segment> </unit> <unit id="2"> <val:validation> <val:rule isPresent="store" disabled="yes" /> </val:validation> <segment id="1"> <source>Choose an option in the application store:</source> <target>Escolha uma opção na application store:</target> </segment> </unit> </file> Value description: yes or noDefault value: noUsed in: 5.8.6 XML Schema The schema listed below for reading convenience is accessible at . <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:val="urn:oasis:names:tc:xliff:validation:2.0" xmlns:xlf="urn:oasis:names:tc:xliff:document:2.0" targetNamespace="urn:oasis:names:tc:xliff:validation:2.0"> <!-- Import --> <xs:import namespace="urn:oasis:names:tc:xliff:document:2.0" schemaLocation="../xliff_core_2.0.xsd"/> <!-- Attribute Types --> <xs:simpleType name="normalization_type"> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="nfc"/> <xs:enumeration value="nfd"/> </xs:restriction> </xs:simpleType> <!-- Elements --> <xs:element name="validation"> <xs:complexType mixed="false"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded" ref="val:rule"/> </xs:sequence> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> <xs:element name="rule"> <xs:complexType mixed="false"> <xs:attribute name="isPresent" use="optional"/> <xs:attribute name="occurs" use="optional" type="xs:positiveInteger"/> <xs:attribute name="isNotPresent" use="optional"/> <xs:attribute name="startsWith" use="optional"/> <xs:attribute name="endsWith" use="optional"/> <xs:attribute name="existsInSource" use="optional" type="xlf:yesNo" default="no"/> <xs:attribute name="caseSensitive" use="optional" type="xlf:yesNo" default="yes"/> <xs:attribute name="normalization" use="optional" type="val:normalization_type" default="nfc"/> <xs:attribute name="disabled" use="optional" type="xlf:yesNo" default="no"/> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> </xs:element> </xs:schema>
round trip
DA: 44 PA: 44 MOZ Rank: 32
https://submitfile.com/file-extension/xliff
Step 1: Install a program that supports XLIFF files. If an application that supports XLIFF files is installed on user’s system, but is not used to open such files by default, right-click on the file icon and choose "Open with" option from the menu. Next, select the proper application and check the "Always use the selected application to open this kind of files" box. round trip
round trip
DA: 34 PA: 60 MOZ Rank: 4
https://github.com/mgumz/xliffer
Oct 07, 2017 . Some people find it easier to create that initial mapping in a spreadsheet program such as Excel: $> xliffer from-xlsx -in base-tr.xlsx > base-tr.xlf This base file will be transmitted to a translation service and comes back as a number of translated files. round trip
round trip
DA: 10 PA: 16 MOZ Rank: 17
https://www.okapiframework.org/wiki/index.php/How_to_create_an_XLIFF_file_from_Excel
Jun 02, 2019 . These instructions show how to convert an Excel file that contains source and target language entries to an XLIFF file. You can also use these instructions and the Table Filter to convert other "delimited" files, like CSV files, to the XLIFF format. Setting Things Up. 1. Make sure the Excel file contains the data you want to use. 2. round trip
round trip
DA: 99 PA: 20 MOZ Rank: 98
https://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html
XLIFF is the XML Localization Interchange File Format designed by a group of software providers, localization service providers, and localization tools providers. It is intended to give any software provider a single interchange file format that …
DA: 71 PA: 9 MOZ Rank: 89
https://www.proz.com/forum/sdl_trados_support/289477-converting_xliff_files_to_excel_documents_xls.html
Jul 24, 2020 . I normally use the classic method: manual Excel table creating method in the following steps. 1. Open a blank MS Word document 2. Copy source texts of Sdlxliff to Word 3. In Word, convert entire texts into table. 4. In Word, add another column on the right of table. 5. Copy target texts of Sdlxliff to Word table by pasting all table cells. 6. round trip . uninstall
round trip ·
uninstall
DA: 98 PA: 72 MOZ Rank: 82
https://stackoverflow.com/questions/50982145/why-angular-uses-xliff-1-2-instead-of-xliff-2
Jun 22, 2018 . why XLIFF is a relevant format for I18n. The fact that translations cannot be used out of template files can be fixed by some workaround at our stage. XLIFF learning curve hit me with the question of XLIFF 1.2 vs XLIFF 2. After reading the differences between XLIFF 1.2 and XLIFF 2, it seems that XLIFF 2 solved a lot of issues and is more future ... round trip . uninstall
round trip ·
uninstall
DA: 5 PA: 8 MOZ Rank: 6
https://www.textunited.com/blog/xliff-in-translation/
round trip . uninstall
round trip ·
uninstall
DA: 20 PA: 75 MOZ Rank: 71
https://www.oasis-open.org/committees/xliff/charter.php
XLIFF 2.2 Specification (HTML and pdf). XLIFF 2.2 Core XML schema and schemas for modules included in the specification. Conformance test suite. Minor versions numbered 2.x.y. IPR Mode The XLIFF TC operates under the RF on RAND Mode per the OASIS IPR Policy, sections 4, 10.2.1 and 10.2.2. Audience The audience for the work of the XLIFF TC includes: uninstall
uninstall
DA: 67 PA: 7 MOZ Rank: 23
https://github.com/Microsoft/XLIFF2-Object-Model
Feb 14, 2019 . The XLIFF 2.0 Object Model allows a developer to build up an XLF document in memory and change various properties on the elements before writing the file. This is intended to give developers a head-start in building localization tools, platforms, and engineering systems that take advantage of the ... round trip . uninstall
round trip ·
uninstall
DA: 17 PA: 79 MOZ Rank: 95
https://docs.memoq.com/current/en/Places/xliff-files.html
Feb 13, 2018 . XLIFF (XML Localization Interchange File Format) is an XML-based format created to standardize the way localizable data are passed between tools during translation and localization. It's also a common format for translation tools. XLIFF files are bilingual or multilingual - XLIFF is not a source document format. round trip
round trip
DA: 54 PA: 3 MOZ Rank: 87
https://xmlpress.net/publications/xliff/
A Practical Guide to XLIFF 2.0 introduces the OASIS XLIFF standard. Companies use XLIFF to standardize the exchange of source and localized content with localization and translation vendors. You will learn how to get the most from the XLIFF standard, use best practices in your translation workflow, extend XLIFF, and use the XLIFF modules. uninstall
uninstall
DA: 75 PA: 49 MOZ Rank: 91
http://www.oasis-open.org/committees/xliff/documents/translation_wxml_tools.pdf
♦ XLIFF is being developed by translators, tool vendors, and documentation experts. ♦ Tools in a translator's toolbox will be XLIFF compliant. The XML Round Trip To use XML tools and standards to enable lan-guage translation, a round trip of the content occurs. With an admittedly not-so-trivial upfront development, the nuts and bolts are pretty uninstall
uninstall
DA: 38 PA: 57 MOZ Rank: 38
http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/xliff2po.html
xliff2po. ¶. Converts XLIFF localization files to Gettext PO files. XLIFF is the XML Localization Interchange File Format developed by OASIS (Organization for the Advancement of Structured Information Standards) to allow translation work to be standardised no matter what the source format and to allow the work to be freely moved from tool to tool. round trip . uninstall
round trip ·
uninstall
DA: 21 PA: 17 MOZ Rank: 70
https://sourceforge.net/directory/?q=convert%20xml%20to%20xliff
ECG Toolkit support for: SCP-ECG, DICOM, HL7 aECG, ISHNE & MUSE-XML. C# ECG Toolkit is an open source software toolkit to convert, view and print electrocardiograms. The toolkit is developed using C# .NET 2.0 (code also supports 3.5 and 4.0). Support for ECG formats: SCP-ECG, DICOM, HL7 aECG, ISHNE and MUSE- XML . 5 Reviews. round trip
round trip
DA: 77 PA: 91 MOZ Rank: 71
http://file2xliff4j.sourceforge.net/
File2XLIFF4j News. 11 Jul 2007 - The file formats keep coming. Today's release adds initial support for Windows resource (RC) files. (Not yet included is support for VERSIONINFO's VarFileInfo BLOCK--which includes information on language(s) and encoding(s)--or support for the code_page pragma.
DA: 21 PA: 2 MOZ Rank: 72
https://www.across.net/en/online-help/als/editing-of-special-formats/xliff-documents
XLIFF files in version 1.1 are supported if they comply with XLIFF version 1.2. Please note the following peculiarities in connection with the support of XLIFF files: The contents of the optional XLIFF element alt-trans, which may contain alternative translations, is ignored during the check-in to Across and are thus not displayed in crossDesk. round trip
round trip
DA: 2 PA: 11 MOZ Rank: 99