diff --git a/.gitignore b/.gitignore
index c269b4ff0d7b6ec54a7675afa1abff0016ce60b0..632a35305a38b41147b39e815e6da13d89714d74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,3 @@
-
-# /
-/*.iml
-/target
-/.project
-/.settings
-/.idea
-
-# /MessageContentAnalyzer-ejb/
-/MessageContentAnalyzer-ejb/*.iml
-/MessageContentAnalyzer-ejb/target
-/MessageContentAnalyzer-ejb/.project
-/MessageContentAnalyzer-ejb/.settings
-/MessageContentAnalyzer-ejb/null
-
-# /MessageContentAnalyzer-war/
-/MessageContentAnalyzer-war/*.iml
-/MessageContentAnalyzer-war/target
-/MessageContentAnalyzer-war/.project
-/MessageContentAnalyzer-war/.settings
-/MessageContentAnalyzer-war/overlays
+.idea/
+*.iml
+target/
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..cc9a62b06d5a04a0e1cef5dafaa8f2b14e9b55d3
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,34 @@
+# Define templates
+include:
+  - project: 'gazelle/private/gitlab-ci-templates'
+    file: 'extends.yaml'
+    ref: 'master'
+
+# Define stages
+stages:
+  - build
+  - postbuild
+  - deploy
+  - tests
+  - release
+  - upgrade
+  - cleanup
+                                                                                                                                                                                                                                    
+# Define global variables
+variables:
+  P_NAME: "message-content-analyzer"
+  P_APP_TYPE: "java"
+  P_CODE_SRC_PATH: "."
+  P_MAVEN_IMAGE_TAG: "3.6.3-jdk-8"
+
+
+# Define jobs
+code:
+  stage: build
+  extends:
+    - .buildCodeForJava
+
+quality:
+  stage: tests
+  extends:
+    - .testQualityForJavaWithSonarqube
diff --git a/MessageContentAnalyzer-ejb/pom.xml b/MessageContentAnalyzer-ejb/pom.xml
index 9c624f3ff9f67ffba4b6eb63d8bd927dc8ee3193..7f3a8963175add3d721cc28483b1e12dae5df0dd 100644
--- a/MessageContentAnalyzer-ejb/pom.xml
+++ b/MessageContentAnalyzer-ejb/pom.xml
@@ -152,6 +152,12 @@
             <type>test-jar</type>
         </dependency>
 
+        <dependency>
+            <groupId>com.fasterxml.woodstox</groupId>
+            <artifactId>woodstox-core</artifactId>
+            <version>6.2.6</version>
+        </dependency>
+
 
         <!-- Apache -->
         <dependency>
@@ -162,7 +168,7 @@
         <dependency>
             <groupId>org.apache.tika</groupId>
             <artifactId>tika-core</artifactId>
-            <version>1.14</version>
+            <version>1.17</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.codelibs</groupId>
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusiness.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusiness.java
index 0d5b9bc1c393f79440699c09bbcce1e608556c59..bc10185a4d5a167a183d4ed987a8b5a89efdcb5a 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusiness.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusiness.java
@@ -18,9 +18,6 @@ import org.jboss.seam.contexts.Lifecycle;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import javax.persistence.EntityManager;
 import javax.xml.bind.DatatypeConverter;
 import java.io.File;
 import java.io.IOException;
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/McaApiImpl.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/McaApiImpl.java
index 9b1929a7069e01e569819e0ad693ce74391a7866..efc7afba7a7b0d475baa44ba0b7a3564472fea10 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/McaApiImpl.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/McaApiImpl.java
@@ -1,5 +1,6 @@
 package net.ihe.gazelle.contentanalyzer.business;
 
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzer;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.*;
 import net.ihe.gazelle.contentanalyzer.business.model.config.McaConfigDAO;
@@ -30,6 +31,9 @@ public class McaApiImpl implements McaApi, Serializable {
     @In(create = true, value = "mcaConfigDao")
     private McaConfigDAO mcaConfigDAO;
 
+    @In(create = true, value = "xmlAnalyzer")
+    private XMLAnalyzer xmlAnalyzer;
+
     public McaApiImpl(){
     }
 
@@ -49,6 +53,10 @@ public class McaApiImpl implements McaApi, Serializable {
         this.mcaConfigDAO = mcaConfigDAO;
     }
 
+    public void setXmlAnalyzer(XMLAnalyzer xmlAnalyzer) {
+        this.xmlAnalyzer = xmlAnalyzer;
+    }
+
     @Override
     public AnalyzedObjectInterface analyze(byte[] messageByteContent, byte[] messageName) throws UnexpectedAnalysisException {
 
@@ -68,7 +76,7 @@ public class McaApiImpl implements McaApi, Serializable {
         final AnalyzedObjectPart parent = new AnalyzedObjectPart(null);
         parent.setDocType("DOCUMENT");
         parent.setEncodedType(EncodedType.NOT_ENCODED);
-        final MessageContentAnalyzer mca = new MessageContentAnalyzer(messageName);
+        final MessageContentAnalyzer mca = new MessageContentAnalyzer(xmlAnalyzer, messageName);
 
         parent.setStartOffset(0);
         parent.setEndOffset(new String(messageByteContent, StandardCharsets.UTF_8).length());
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzer.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzer.java
index 08127a6c9410648a8c99b7934716c4414fc94581..8953632c00faf3fae1a7ff048a107ff9849f80fc 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzer.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzer.java
@@ -20,7 +20,7 @@ public class MessageContentAnalyzer {
 
     private byte[] messageName;
 
-    private XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
+    private XMLAnalyzer xmlAnalyzer;
 
     private MimeTypeDetector mimeTypeDetector = new MimeTypeDetector();
 
@@ -28,10 +28,12 @@ public class MessageContentAnalyzer {
 
     private B64Analyzer b64Analyzer = new B64Analyzer();
 
-    public MessageContentAnalyzer(){
+    public MessageContentAnalyzer(XMLAnalyzer xmlAnalyzer) {
+        this(xmlAnalyzer, null);
     }
 
-    public MessageContentAnalyzer(byte[] messageName){
+    public MessageContentAnalyzer(XMLAnalyzer xmlAnalyzer, byte[] messageName){
+        this.xmlAnalyzer = xmlAnalyzer;
         if (messageName != null){
             this.messageName = messageName.clone();
         } else {
@@ -71,10 +73,6 @@ public class MessageContentAnalyzer {
         }
     }
 
-    public XMLAnalyzer getXmlAnalyzer() {
-        return xmlAnalyzer;
-    }
-
     public void analyzeMessageContent(byte[] messageBytesContent, final AnalyzedObjectPart parent, McaConfigDAO mcaConfigDAO)
             throws UnexpectedAnalysisException {
 
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/B64Analyzer.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/B64Analyzer.java
index 5873c036515c60556f6d684edba4756d41f07911..d32f1c5603c4e18e1e39c598078f202c83a1115c 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/B64Analyzer.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/B64Analyzer.java
@@ -61,7 +61,7 @@ public class B64Analyzer implements Analyzer {
         if(!fileDecodedContent.equals("")){
             LOGGER.info("Restart test with decoded file : {}", fileDecodedContent);
             child.addLog(PART_LOG_TYPE,"Start analysis on decoded file");
-            MessageContentAnalyzer mca = new MessageContentAnalyzer();
+            MessageContentAnalyzer mca = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
             mca.analyzeMessageContent(decodedByteContent, child, mcaConfigDao);
             parent.getChildList().add(child);
         }
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/FileContentAndListOfModifications.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/FileContentAndListOfModifications.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e1758fb8f5f6888ce9f3cab6b19415d75ad7964
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/FileContentAndListOfModifications.java
@@ -0,0 +1,49 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class FileContentAndListOfModifications {
+
+    protected String content;
+
+    protected List<OffsetAndSizeOfText> offsetsAndSizesOfText;
+
+    public FileContentAndListOfModifications() {
+        offsetsAndSizesOfText = new ArrayList<>();
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public List<OffsetAndSizeOfText> getOffsetsAndSizesOfText() {
+        return offsetsAndSizesOfText;
+    }
+
+    public void setOffsetsAndSizesOfText(List<OffsetAndSizeOfText> offsetsAndSizesOfText) {
+        this.offsetsAndSizesOfText = offsetsAndSizesOfText;
+    }
+
+    static class OffsetAndSizeOfText {
+        Integer offset;
+        Integer size;
+
+        OffsetAndSizeOfText(int offset, int size) {
+            this.offset = offset;
+            this.size = size;
+        }
+
+        public Integer getOffset() {
+            return offset;
+        }
+
+        public Integer getSize() {
+            return size;
+        }
+    }
+}
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MessageSplitter.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MessageSplitter.java
index bdbf5a59fb52faf26a08bdd190dd93f4944c40ec..4dc7fcd30373005ab3a43908c45ee936cf8e8feb 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MessageSplitter.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MessageSplitter.java
@@ -68,7 +68,7 @@ public class MessageSplitter implements Analyzer {
 
         final AnalyzedObjectPart headerFileToValidate = new AnalyzedObjectPart(parent);
         final AnalyzedObjectPart bodyFileToValidate = new AnalyzedObjectPart(parent);
-        final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer();
+        final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
 
         Pattern regex = Pattern.compile(HTTP_FIRST_LINE_MATCH);
         final Matcher regexMatcher = regex.matcher(fileContent);
@@ -168,7 +168,7 @@ public class MessageSplitter implements Analyzer {
                     mtomAnalyzedObjectPart.setEndOffset(end + parent.getStartOffset());
                     mtomAnalyzedObjectPart.setEncodedType(parent.getEncodedType());
                     parent.addLog(PART_LOG_TYPE,"Launch analysis of MTOM part " + (j+1));
-                    final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer();
+                    final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
                     messageContentAnalyzer.analyzeMessageContent(fileContent.substring(begin , end)
                             .getBytes(StandardCharsets.UTF_8), mtomAnalyzedObjectPart, mcaConfigDAO);
 
@@ -234,7 +234,7 @@ public class MessageSplitter implements Analyzer {
             syslogMessagePart.setEndOffset(parent.getEndOffset());
             syslogMessagePart.setEncodedType(parent.getEncodedType());
             parent.getChildList().add(syslogMessagePart);
-            final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer();
+            final MessageContentAnalyzer messageContentAnalyzer = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
             messageContentAnalyzer.analyzeMessageContent(fileContent.substring(syslogMessagePart.getStartOffset(),
                     syslogMessagePart.getEndOffset()).getBytes(StandardCharsets.UTF_8), syslogMessagePart, mcaConfigDAO);
         } else {
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MimeTypeDetector.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MimeTypeDetector.java
index d351d55ec7417719484546ae48821d41a3f24f08..cd64c831d8403ce7af388f6d10d1dfb4b2c7ae99 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MimeTypeDetector.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/MimeTypeDetector.java
@@ -6,7 +6,6 @@ import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisExc
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.EncodedType;
 import org.apache.tika.Tika;
-import org.jboss.seam.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/TagDetector.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/TagDetector.java
index f15272b33804b921818b79be5e01d8e241b0c3d9..b8d223820f4e2f9696ccfd4abe9bd5426d2618e4 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/TagDetector.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/TagDetector.java
@@ -1,5 +1,6 @@
 package net.ihe.gazelle.contentanalyzer.business.analyzers;
 
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.XmlInputFactoryFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.config.XmlTagConfigInterface;
@@ -11,22 +12,10 @@ import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.*;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -35,67 +24,61 @@ public class TagDetector {
     private static final String PART_LOG_TYPE = "XML Tag Detection";
 
     private int xmlDeclarationOffset;
-
     private int xmlStartOffset;
 
-    private String originalContent;
+    private XmlInputFactoryFactory xmlInputFactoryFactory;
 
-    public int getXmlStartOffset() {
-        return xmlStartOffset;
-    }
+    private final FileContentAndListOfModifications fileContentAndListOfModifications = new FileContentAndListOfModifications();
 
-    public void setXmlStartOffset(int xmlStartOffset) {
-        this.xmlStartOffset = xmlStartOffset;
+    public TagDetector(XmlInputFactoryFactory xmlInputFactoryFactory) {
+        this.xmlInputFactoryFactory = xmlInputFactoryFactory;
     }
 
-    private String getOriginalContent() {
-        return originalContent;
-    }
+    public void detectTags(final String messageStringContent, final AnalyzedObjectPart parent, McaConfigDAO mcaConfigDAO)
+            throws UnexpectedAnalysisException {
 
-    private void setOriginalContent(String originalContent) {
-        this.originalContent = originalContent;
-    }
+        preprocessMessageStringContent(messageStringContent, parent, fileContentAndListOfModifications);
+
+        xmlStartOffset = parent.getStartOffset();
+
+        String messageWithoutXMLDeclaration = removeXmlDeclaration(fileContentAndListOfModifications.getContent());
+        Element rootElement = configureDocumentBuilderAndCreateRootElement(fileContentAndListOfModifications.getContent());
+        List<XmlTagConfigInterface> tagConfigList = mcaConfigDAO.getAllTags();
+        browseXmlTree(messageWithoutXMLDeclaration, rootElement, parent, new HashMap<String, String>(), tagConfigList);
 
-    private int getXmlDeclarationOffset() {
-        return xmlDeclarationOffset;
+        XmlFileStripper.postprocess(fileContentAndListOfModifications, parent);
     }
 
-    private void setXmlDeclarationOffset(int xmlDeclarationOffset) {
-        this.xmlDeclarationOffset = xmlDeclarationOffset;
+    private void preprocessMessageStringContent(String messageStringContent, AnalyzedObjectPart parent, FileContentAndListOfModifications fileContentAndListOfModifications)
+            throws UnexpectedAnalysisException {
+        fileContentAndListOfModifications.setContent(messageStringContent);
+        XmlFileStripper.preprocess(xmlInputFactoryFactory, fileContentAndListOfModifications, parent);
     }
 
-    public void detectTags(final String messageStringContent, final AnalyzedObjectPart parent, McaConfigDAO mcaConfigDAO)
-            throws UnexpectedAnalysisException{
-        setOriginalContent(messageStringContent);
-        setXmlStartOffset(parent.getStartOffset());
-        try{
-            Document document;
+    private Element configureDocumentBuilderAndCreateRootElement(String processedContent) throws UnexpectedAnalysisException {
+        try {
             final DocumentBuilderFactory dbfact = DocumentBuilderFactory.newInstance();
             dbfact.setAttribute("http://apache.org/xml/features/nonvalidating/load-external-dtd", Boolean.FALSE);
             dbfact.setFeature("http://apache.org/xml/features/disallow-doctype-decl", Boolean.FALSE);
             dbfact.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
             dbfact.setNamespaceAware(true);
-            final DocumentBuilder builder = dbfact.newDocumentBuilder();
-            document = builder.parse(new InputSource( new StringReader(getOriginalContent())));
-            
-            Element rootElement = document.getDocumentElement();
-
-            if (getOriginalContent().contains(("<?"))){
-                setXmlDeclarationOffset(getOriginalContent().indexOf("?>")+ 2) ;
-            } else {
-                setXmlDeclarationOffset(0);
-            }
-
-            String messageWithoutXMLDeclaration = getOriginalContent().substring(getXmlDeclarationOffset());
-            Map<String, String> namespacesAtCurrentLevel = new HashMap<>();
 
-            List<XmlTagConfigInterface> tagConfigList = mcaConfigDAO.getAllTags();
-            browseXmlTree(messageWithoutXMLDeclaration, rootElement, parent, namespacesAtCurrentLevel, tagConfigList);
-        } catch (SAXException | ParserConfigurationException | IOException e){
+            Document document = dbfact.newDocumentBuilder().parse(new InputSource(new StringReader(processedContent)));
+            return document.getDocumentElement();
+        } catch (SAXException | ParserConfigurationException | IOException e) {
             throw new UnexpectedAnalysisException("Error while trying to parse the XML content of the file.", e);
         }
     }
 
+    private String removeXmlDeclaration(String content) {
+        if (content.contains(("<?"))){
+            xmlDeclarationOffset = content.indexOf("?>") + 2;
+        } else {
+            xmlDeclarationOffset = 0;
+        }
+        return content.substring(xmlDeclarationOffset);
+    }
+
     private void browseXmlTree(final String messageStringContent, final Element element, final AnalyzedObjectPart parent,
                                Map<String, String> namespacesAtCurrentLevel, List<XmlTagConfigInterface> tagConfigList)
             throws UnexpectedAnalysisException{
@@ -103,6 +86,7 @@ public class TagDetector {
         AnalyzedObjectPart parentForSubElements;
         parentForSubElements = searchElementInConfig(element, tagConfigList, parent, messageStringContent,
                 namespacesAtCurrentLevel);
+
         for (int x = 0; x < element.getChildNodes().getLength(); x++) {
             Node n = element.getChildNodes().item(x);
             if (n.getNodeType() == Node.ELEMENT_NODE) {
@@ -116,13 +100,13 @@ public class TagDetector {
     private String computeSubPartString(AnalyzedObjectPart parent){
 
         if (!parent.getChildList().isEmpty()){
-            return getOriginalContent().substring(parent.getChildList().get(parent.getChildList().size()-1).getEndOffset()
-                            - getXmlStartOffset(), parent.getEndOffset() - getXmlStartOffset());
+            return fileContentAndListOfModifications.getContent().substring(parent.getChildList().get(parent.getChildList().size()-1).getEndOffset()
+                            - xmlStartOffset, parent.getEndOffset() - xmlStartOffset);
         } else if (parent.getDocType().equals("XML")){
-            return getOriginalContent().substring(getXmlDeclarationOffset(), parent.getEndOffset() - getXmlStartOffset());
+            return fileContentAndListOfModifications.getContent().substring(xmlDeclarationOffset, parent.getEndOffset() - xmlStartOffset);
         } else {
-            return getOriginalContent().substring(parent.getStartOffset()-getXmlStartOffset(),
-                    parent.getEndOffset()-getXmlStartOffset());
+            return fileContentAndListOfModifications.getContent().substring(parent.getStartOffset() - xmlStartOffset,
+                    parent.getEndOffset() - xmlStartOffset);
         }
     }
 
@@ -210,20 +194,19 @@ public class TagDetector {
 
     private String concatenateDocTypes(List<XmlTagConfigInterface> tagConfigList){
 
-        String concatenatedDocType = "";
+        StringBuilder concatenatedDocType = new StringBuilder();
         for (int i = 0; i < tagConfigList.size(); i++){
-            concatenatedDocType += tagConfigList.get(i).getDocType();
+            concatenatedDocType.append(tagConfigList.get(i).getDocType());
             if(i < tagConfigList.size() - 1){
-                concatenatedDocType += " or ";
+                concatenatedDocType.append(" or ");
             }
         }
-        return concatenatedDocType;
+        return concatenatedDocType.toString();
     }
 
     private AnalyzedObjectPart createAmpFromElement(final String messageStringContent, final Element element,
                                                     final AnalyzedObjectPart parent, Map<String, String> namespacesAtCurrentLevel)
             throws UnexpectedAnalysisException{
-
         String regexSplittedTag = "<"+element.getTagName()+"\\b(([\\r|\\n|\\w|\\W])(?!<"+element.getTagName()+"))+?.+?/"+element.getTagName()+">";
         String regexNotSplittedTag = "<\\s*"+ element.getTagName() +"\\b([^>])*?/>";
 
@@ -236,57 +219,29 @@ public class TagDetector {
         matcherNotSplittedTag = patternNotSplittedTag.matcher(messageStringContent);
 
         if (matcherSplittedTag.find()) {
-
-            if (!parent.getChildList().isEmpty()){
-                return creatChildWithProperties(parent, matcherSplittedTag.start() +
-                                parent.getChildList().get(parent.getChildList().size()-1).getEndOffset(),
-                        parent.getChildList().get(parent.getChildList().size()-1).getEndOffset() + matcherSplittedTag.end(),
-                        namespacesAtCurrentLevel);
-            } else if (parent.getDocType().equals("XML")){
-                return creatChildWithProperties(parent, matcherSplittedTag.start() + getXmlDeclarationOffset() +
-                        parent.getStartOffset(), parent.getStartOffset() + getXmlDeclarationOffset() +
-                        matcherSplittedTag.end(), namespacesAtCurrentLevel);
-            }
-            return creatChildWithProperties(parent, matcherSplittedTag.start() + parent.getStartOffset(),
-                    matcherSplittedTag.end() + parent.getStartOffset(), namespacesAtCurrentLevel);
-        } else if (matcherNotSplittedTag.find()){
-
-            if (!parent.getChildList().isEmpty()){
-                return creatChildWithProperties(parent, matcherNotSplittedTag.start() +
-                                parent.getChildList().get(parent.getChildList().size()-1).getEndOffset(),
-                        parent.getChildList().get(parent.getChildList().size()-1).getEndOffset() + matcherNotSplittedTag.end(),
-                        namespacesAtCurrentLevel);
-            } else if (parent.getDocType().equals("XML")){
-                return creatChildWithProperties(parent, matcherNotSplittedTag.start() + getXmlDeclarationOffset() +
-                        parent.getStartOffset(), parent.getStartOffset() + getXmlDeclarationOffset() +
-                        matcherNotSplittedTag.end(), namespacesAtCurrentLevel);
-            }
-            return creatChildWithProperties(parent, matcherNotSplittedTag.start() + parent.getStartOffset(),
-                    matcherNotSplittedTag.end() + parent.getStartOffset(), namespacesAtCurrentLevel);
-        } else{
+            return createChildWithPropertiesGivenAMatcher(parent, namespacesAtCurrentLevel, matcherSplittedTag);
+        } else if (matcherNotSplittedTag.find()) {
+            return createChildWithPropertiesGivenAMatcher(parent, namespacesAtCurrentLevel, matcherNotSplittedTag);
+        } else {
             throw  new UnexpectedAnalysisException("Unable to match the tag in the original file content.");
         }
     }
 
-    private String convertElementToString(final Element element) throws UnexpectedAnalysisException{
-        TransformerFactory tf = TransformerFactory.newInstance();
-        Transformer transformer;
-        try {
-            transformer = tf.newTransformer();
-            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-            transformer.setOutputProperty(OutputKeys.INDENT, "no");
-            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-            int length = element.getAttributes().getLength();
-            for (int i = length - 1; i >= 0 ; i--){
-                element.removeAttribute(element.getAttributes().item(i).getNodeName());
-            }
-            StringWriter writer = new StringWriter();
-            transformer.transform(new DOMSource(element), new StreamResult(writer));
-            return writer.getBuffer().toString();
-        } catch (TransformerException e) {
-            throw new UnexpectedAnalysisException("Unable to convert Tag content to string", e);
+    private AnalyzedObjectPart createChildWithPropertiesGivenAMatcher(AnalyzedObjectPart parent,
+                                                                      Map<String, String> namespacesAtCurrentLevel,
+                                                                      Matcher matcher) {
+        if (!parent.getChildList().isEmpty()){
+            return creatChildWithProperties(parent, matcher.start() +
+                            parent.getChildList().get(parent.getChildList().size()-1).getEndOffset(),
+                    parent.getChildList().get(parent.getChildList().size()-1).getEndOffset() + matcher.end(),
+                    namespacesAtCurrentLevel);
+        } else if (parent.getDocType().equals("XML")){
+            return creatChildWithProperties(parent, matcher.start() + xmlDeclarationOffset +
+                    parent.getStartOffset(), parent.getStartOffset() + xmlDeclarationOffset +
+                    matcher.end(), namespacesAtCurrentLevel);
         }
+        return creatChildWithProperties(parent, matcher.start() + parent.getStartOffset(),
+                matcher.end() + parent.getStartOffset(), namespacesAtCurrentLevel);
     }
 
     private AnalyzedObjectPart creatChildWithProperties(AnalyzedObjectPart parent, Integer startOffset,
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzer.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzer.java
index 5fe7e2721d3ab6dd6e2ccfc41c4da24f222aaddd..0dbccdf5019fdcacf16474d336714e3016bb63f5 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzer.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzer.java
@@ -26,7 +26,7 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class XMLAnalyzer implements Analyzer{
+public class XMLAnalyzer implements Analyzer {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(XMLAnalyzer.class);
 
@@ -35,9 +35,10 @@ public class XMLAnalyzer implements Analyzer{
     private static final String PART_LOG_TYPE = "XML analysis";
     private static final String XML_FORM_ANALYSIS_AMP_LOG = "XML Form Analysis";
 
-    private TagDetector tagDetector = new TagDetector();
+    private TagDetector tagDetector;
 
-    public XMLAnalyzer() {
+    public XMLAnalyzer(TagDetector tagDetector) {
+        this.tagDetector = tagDetector;
     }
 
     @Override
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzerFactory.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzerFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..99c16b3d9d38060c2ac2eefdcfcde1740e1568d1
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XMLAnalyzerFactory.java
@@ -0,0 +1,14 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers;
+
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.impl.WoodstoxXmlInputFactoryFactory;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.*;
+
+@Name("xmlAnalyzerFactory")
+public class XMLAnalyzerFactory {
+
+    @Factory(value = "xmlAnalyzer", scope = ScopeType.PAGE)
+    public XMLAnalyzer getXMLAnalyzer() {
+        return new XMLAnalyzer(new TagDetector(new WoodstoxXmlInputFactoryFactory()));
+    }
+}
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripper.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripper.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f9d671ec214ef492c9616908e08e33fe9ef312b
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripper.java
@@ -0,0 +1,118 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers;
+
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.XmlInputFactoryFactory;
+import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
+import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
+
+import javax.xml.stream.Location;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.ArrayList;
+
+class XmlFileStripper {
+
+    private XmlFileStripper() {
+
+    }
+
+    private static final int MAX_LINE_SIZE = 10000;
+
+    /**
+     * Removes from a String representing an XML file all tag text but 1 character that exceeds MAX_LINE_SIZE and
+     * stores positions and sizes of cut content to shift the offsets of the parent
+     * from the original content to the ones of the processed content
+     * @param xmlInputFactoryFactory : Implementation of the configured XML Parser to use
+     * @param fileContentAndListOfModifications : Object representation of a XML file as String & its List of removed contents
+     * @param parent : AnalyzedObjectPart whose offsets will be shifted
+     * @throws UnexpectedAnalysisException : if the parser is unable to parse the input String
+     */
+    static public void preprocess(XmlInputFactoryFactory xmlInputFactoryFactory,
+                                  FileContentAndListOfModifications fileContentAndListOfModifications, AnalyzedObjectPart parent) throws UnexpectedAnalysisException {
+        fileContentAndListOfModifications.setOffsetsAndSizesOfText(new ArrayList<FileContentAndListOfModifications.OffsetAndSizeOfText>());
+        fileContentAndListOfModifications.setContent(removeLongLinesFromDocumentAndRecordModifications(xmlInputFactoryFactory, fileContentAndListOfModifications));
+        shiftAnalyzedObjectPartOffsets(fileContentAndListOfModifications, parent);
+    }
+
+    static private String removeLongLinesFromDocumentAndRecordModifications(XmlInputFactoryFactory xmlInputFactoryFactory,
+                                                                            FileContentAndListOfModifications fileContentAndListOfModifications) throws UnexpectedAnalysisException {
+        try {
+            Reader reader = new StringReader(fileContentAndListOfModifications.getContent());
+            XMLStreamReader streamReader = xmlInputFactoryFactory.configureAndGetXmlInputFactory().createXMLStreamReader(reader);
+
+            fillListOffsetAndSizeOfText(fileContentAndListOfModifications, streamReader);
+
+            return computeContentWithListOfOffsetAndSizeOfText(fileContentAndListOfModifications);
+        } catch (XMLStreamException e) {
+            throw new UnexpectedAnalysisException("Error while trying to preprocess the XML content of the file.", e);
+        }
+    }
+
+    static private void fillListOffsetAndSizeOfText(FileContentAndListOfModifications fileContentAndListOfModifications, XMLStreamReader streamReader) throws XMLStreamException {
+        while (streamReader.hasNext()) {
+            streamReader.next();
+            if (streamReader.getEventType() == XMLStreamReader.CHARACTERS) {
+                int sizeOfText = streamReader.getText().length();
+                if(sizeOfText > MAX_LINE_SIZE) {
+                    Location location = streamReader.getLocation();
+                    fileContentAndListOfModifications.getOffsetsAndSizesOfText()
+                            .add(new FileContentAndListOfModifications.OffsetAndSizeOfText(location.getCharacterOffset() + 1, sizeOfText - 1));
+                }
+            }
+        }
+    }
+
+    static private String computeContentWithListOfOffsetAndSizeOfText(FileContentAndListOfModifications fileContentAndListOfModifications) {
+        String processedContent = fileContentAndListOfModifications.getContent();
+        for(int i = fileContentAndListOfModifications.getOffsetsAndSizesOfText().size() - 1; i >= 0 ; i--) {
+            String strippedPart = processedContent
+                    .substring(0, fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getOffset());
+            strippedPart += processedContent
+                    .substring(fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getOffset()
+                            + fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getSize());
+            processedContent = strippedPart;
+        }
+        return processedContent;
+    }
+
+    static private void shiftAnalyzedObjectPartOffsets(FileContentAndListOfModifications fileContentAndListOfModifications, AnalyzedObjectPart parent) {
+        for(int i = fileContentAndListOfModifications.getOffsetsAndSizesOfText().size() - 1; i >= 0 ; i--) {
+            int offset = fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getOffset();
+            if(parent.getStartOffset() > offset) {
+                parent.setStartOffset(parent.getStartOffset() - fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getSize());
+            }
+            if(parent.getEndOffset() > offset) {
+                parent.setEndOffset(parent.getEndOffset() - fileContentAndListOfModifications.getOffsetsAndSizesOfText().get(i).getSize());
+            }
+        }
+    }
+
+    /**
+     * Uses the list of offsets and sizes to revert the offsets back to their original positions for
+     * this AnalyzedObjectPart and all its children
+     * @param fileContentAndListOfModifications : Object representation of a XML file as String & its List of removed contents
+     * @param parent : AnalyzedObjectPart whose offsets and those of its children will be reverted
+     */
+    static public void postprocess(FileContentAndListOfModifications fileContentAndListOfModifications, AnalyzedObjectPart parent) {
+        restoreOriginalOffsetsForAllNodes(fileContentAndListOfModifications, parent);
+    }
+
+    static private void restoreOriginalOffsetsForAllNodes(FileContentAndListOfModifications fileContentAndListOfModifications, AnalyzedObjectPart parent) {
+        restoreOriginalOffsets(fileContentAndListOfModifications, parent);
+        for(AnalyzedObjectPart child : parent.getChildList()) {
+            restoreOriginalOffsetsForAllNodes(fileContentAndListOfModifications, child);
+        }
+    }
+
+    static private void restoreOriginalOffsets(FileContentAndListOfModifications fileContentAndListOfModifications, AnalyzedObjectPart node) {
+        for(FileContentAndListOfModifications.OffsetAndSizeOfText offsetAndSizeOfText : fileContentAndListOfModifications.getOffsetsAndSizesOfText()) {
+            if(node.getStartOffset() > offsetAndSizeOfText.getOffset()) {
+                node.setStartOffset(node.getStartOffset() + offsetAndSizeOfText.getSize());
+            }
+            if(node.getEndOffset() > offsetAndSizeOfText.getOffset()) {
+                node.setEndOffset(node.getEndOffset() + offsetAndSizeOfText.getSize());
+            }
+        }
+    }
+}
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/XmlInputFactoryFactory.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/XmlInputFactoryFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..f1ad63c710ee6bd1fb46bd00139b38d52b24764d
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/XmlInputFactoryFactory.java
@@ -0,0 +1,8 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers.adapters;
+
+import javax.xml.stream.XMLInputFactory;
+
+public interface XmlInputFactoryFactory {
+
+    XMLInputFactory configureAndGetXmlInputFactory();
+}
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/impl/WoodstoxXmlInputFactoryFactory.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/impl/WoodstoxXmlInputFactoryFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..8682be7c5adfab1ab616e8e87f0f349550cb251d
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/business/analyzers/adapters/impl/WoodstoxXmlInputFactoryFactory.java
@@ -0,0 +1,20 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.impl;
+
+import com.ctc.wstx.api.WstxInputProperties;
+import com.ctc.wstx.stax.WstxInputFactory;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.XmlInputFactoryFactory;
+
+import javax.xml.stream.XMLInputFactory;
+
+public final class WoodstoxXmlInputFactoryFactory implements XmlInputFactoryFactory {
+
+    /**
+     * Sets the properties of an XMLInputFactory and returns it to create a XML parser
+     * @return xmlInputFactory : configured factory to use on XML files with large texts
+     */
+    public XMLInputFactory configureAndGetXmlInputFactory() {
+        XMLInputFactory xmlInputFactory = new WstxInputFactory();
+        xmlInputFactory.setProperty(WstxInputProperties.P_MIN_TEXT_SEGMENT, Integer.MAX_VALUE);
+        return xmlInputFactory;
+    }
+}
diff --git a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBean.java b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBean.java
index 4562f050cfbe434429c374f1df954432eedfc29d..776d4b77f599bf01ede4bbcefd7b799a75b186ef 100644
--- a/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBean.java
+++ b/MessageContentAnalyzer-ejb/src/main/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBean.java
@@ -50,10 +50,14 @@ import net.ihe.gazelle.hql.criterion.QueryModifier;
 import net.ihe.gazelle.hql.paths.HQLSafePathBasicDate;
 import net.ihe.gazelle.hql.restrictions.HQLRestrictions;
 import org.apache.commons.io.FileUtils;
+import org.jboss.seam.Component;
 import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Create;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.contexts.Context;
+import org.jboss.seam.contexts.Contexts;
 import org.jboss.seam.faces.FacesMessages;
 import org.jboss.seam.international.StatusMessage.Severity;
 import org.richfaces.component.UITree;
@@ -100,6 +104,9 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
     @In(create = true, value = "mcaConfigDao")
     private McaConfigDAO mcaConfigDao;
 
+    @In(create = true, value = "xmlAnalyzer")
+    private XMLAnalyzer xmlAnalyzer;
+
     private final Boolean adviseNodeOpened = Boolean.TRUE;
     private FilterDataModel<AnalyzedObject> dataModel;
     private String displayedMessagePart;
@@ -122,7 +129,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
     ///////////////////////////////////////////////////////////////////////////////
 
     public AnalyzerBean() {
-
     }
 
     ///////////////////////////////////////////////////////////////////////////////
@@ -148,6 +154,10 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
     public void setMcaApi(McaApi mcaApi) {
         this.mcaApi=mcaApi;
     }
+
+    public void setXmlAnalyzer(XMLAnalyzer xmlAnalyzer) {
+        this.xmlAnalyzer = xmlAnalyzer;
+    }
     ///////////////////////////////////////////////////////////////////////
 
     public Boolean adviseNodeOpened(final UITree tree) {
@@ -440,7 +450,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
         } else {
             Map<String, String> namespaces = node.getListOfNamespacesForAnalyzedObjectPart();
             if (namespaces != null && downloadAddedNamespaces){
-                XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
                 fileContent = xmlAnalyzer.addNamespacesToFileContent(fileContent, namespaces);
                 FilesDownloader.downloadFile(fileContent, node, getAnalyzedObject(),
                         FacesContext.getCurrentInstance());
@@ -494,7 +503,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
     }
 
     public void executeWithString(final String fileContent) {
-
         setDescription(EXECUTE_FROM_STR_DESCRIPTION);
         try{
             analyzerBeanBusiness.executeWithString(fileContent, oidGenerator, validationCacheManager, mcaApi);
@@ -584,9 +592,7 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
     public boolean crossValidatorAvailable(String xValidatorOid){
         if (xValidatorOid != null && !xValidatorOid.isEmpty()){
             String validatorStatus = EVSClientResults.getXValidatorStatus(xValidatorOid, ApplicationPreferenceManager.getStringValue("application_url"));
-            if(validatorStatus!= null && !validatorStatus.isEmpty() && validatorStatus.equals("Available")){
-                return true;
-            }
+            return validatorStatus != null && !validatorStatus.isEmpty() && validatorStatus.equals("Available");
         }
         return false;
     }
@@ -658,7 +664,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
                                 node.getEndOffset(), node.getMessageContentAnalyzerOid());
                     } else {
                         String decodedStringContent = new String(decodedPartBytesContent, StandardCharsets.UTF_8);
-                        XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
                         decodedStringContent = xmlAnalyzer.addNamespacesToFileContent(decodedStringContent
                                 .substring(node.getStartOffset(), node.getEndOffset()),node.getListOfNamespacesForAnalyzedObjectPart());
                         String decodedPartPath = createAddedNamespacePart(decodedStringContent.getBytes(StandardCharsets.UTF_8), objectPath, node);
@@ -688,7 +693,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
                             return analyzerBeanBusiness.validate(decodedPartPath, node.getValidationType(), node.getStartOffset(),
                                     node.getEndOffset(), node.getMessageContentAnalyzerOid());
                         } else {
-                            XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
                             decodedStringContent = xmlAnalyzer.addNamespacesToFileContent(decodedStringContent
                                     .substring(node.getStartOffset(), node.getEndOffset()),node.getListOfNamespacesForAnalyzedObjectPart());
                             String decodedPartPath = createAddedNamespacePart(decodedStringContent.getBytes(StandardCharsets.UTF_8),
@@ -711,7 +715,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
                         LOGGER.error("Unable to read file : ",e);
                         throw new UnexpectedAnalysisException("Unable to read File.",e);
                     }
-                    XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
                     stringFileContent = xmlAnalyzer.addNamespacesToFileContent(stringFileContent
                             .substring(node.getStartOffset(), node.getEndOffset()),node.getListOfNamespacesForAnalyzedObjectPart());
                     String addedNamespacesPartPath = createAddedNamespacePart(stringFileContent.getBytes(StandardCharsets.UTF_8),
@@ -789,7 +792,6 @@ public class AnalyzerBean implements QueryModifier<AnalyzedObject> {
 
         String fileContent = null;
         if (this.showAddedNamespacesInGUI && namespaces != null){
-            XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
             fileContent = xmlAnalyzer.addNamespacesToFileContent(this.originalMessagePart,namespaces);
             if(fileContent.equals(this.originalMessagePart)){
                 this.namespacesActuallyAdded = false;
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusinessTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusinessTest.java
index df2d913f327f4e0d71ce9c2a32d88f2024af2a3b..e9498c08ab566e8daee4d8c551c73c5c4003cd44 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusinessTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/AnalyzerBeanBusinessTest.java
@@ -3,6 +3,7 @@ package net.ihe.gazelle.contentanalyzer.app;
 
 import net.ihe.gazelle.common.application.action.ApplicationPreferenceManager;
 import net.ihe.gazelle.contentanalyzer.business.McaApiImpl;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObject;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
@@ -74,6 +75,7 @@ public class AnalyzerBeanBusinessTest {
     @Before
     public void setUp() throws Exception {
         mcaApi = new McaApiImpl();
+        mcaApi.setXmlAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaApi.setMcaConfigDAO(new McaConfigDaoStub());
 
         MockitoAnnotations.initMocks(this);
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/PersistenceManagerTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/PersistenceManagerTest.java
index 499614f96122ec0036d2b2d10dcd07b3b5b822dc..fb999531507fb2149e687fdefc3980147fabc841 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/PersistenceManagerTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/app/PersistenceManagerTest.java
@@ -3,6 +3,7 @@ package net.ihe.gazelle.contentanalyzer.app;
 import net.ihe.gazelle.common.application.action.ApplicationPreferenceManager;
 import net.ihe.gazelle.contentanalyzer.business.McaApiImpl;
 import net.ihe.gazelle.contentanalyzer.business.MessageContentAnalyzer;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObject;
@@ -72,6 +73,8 @@ public class PersistenceManagerTest {
         when(mcaConfigDAO.getAllMimeTypeConfig()).thenReturn(mcaConfigDAOStub.getAllMimeTypeConfig());
         when(mcaConfigDAO.getAllTags()).thenReturn(mcaConfigDAOStub.getAllTags());
 
+        mcaApi.setXmlAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
+
         persistenceManager = spy(new McaPersistenceManager());
 
         when(oidGenerator.getNewOid()).thenReturn("1.3.6.1.4.1.12559.11.1.2.1.4.1");
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/ContentAnalysisTypeDetectionTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/ContentAnalysisTypeDetectionTest.java
index 62b9044eb6a983466291ae62d9744864e70d0b64..eae2e7fa1cc873c21219724ad955d784d657fb17 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/ContentAnalysisTypeDetectionTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/ContentAnalysisTypeDetectionTest.java
@@ -2,6 +2,7 @@ package net.ihe.gazelle.contentanalyzer.business;
 
 import net.ihe.gazelle.common.application.action.ApplicationPreferenceManager;
 import net.ihe.gazelle.contentanalyzer.business.analyzers.ContentAnalysisTypeDetector;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.ValidationType;
@@ -36,7 +37,7 @@ public class ContentAnalysisTypeDetectionTest {
     @Before
     public void setUp(){
 
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mockRootOid();
     }
 
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/McaApiImplTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/McaApiImplTest.java
index b4200bf2554626e714156a9e549883810d9bfeb4..9f82e9df11b0e4e2ff1a89f7eb0363d54ee72713 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/McaApiImplTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/McaApiImplTest.java
@@ -1,6 +1,7 @@
 package net.ihe.gazelle.contentanalyzer.business;
 
 
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPartInterface;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObject;
@@ -26,7 +27,6 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 import static net.ihe.gazelle.files.FilesUtils.loadFile;
@@ -53,6 +53,7 @@ public class McaApiImplTest {
     public void setUp() {
 
         mcaApi = new McaApiImpl();
+        mcaApi.setXmlAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         MockitoAnnotations.initMocks(this);
 
         PowerMockito.mockStatic(VersionProvider.class);
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzerTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzerTest.java
index 96eff8348dd3a394f341e2becef96b58f6c7c174..12ee4d5b15856aa9e4a68d55efb33bea99e6a0e3 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzerTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageContentAnalyzerTest.java
@@ -2,6 +2,7 @@ package net.ihe.gazelle.contentanalyzer.business;
 
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.MimeTypeDetector;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.model.config.archives.ZipStructure;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
@@ -34,7 +35,7 @@ public class MessageContentAnalyzerTest {
     @Before
     public void setUp() {
 
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaConfigDao = new McaConfigDaoStub();
     }
 
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageSplitterTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageSplitterTest.java
index fa26477961f22ad2d2de190b3b708365961dd246..4b5be54f617980cd9967ef3fed915d23ff7cc031 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageSplitterTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MessageSplitterTest.java
@@ -1,6 +1,7 @@
 package net.ihe.gazelle.contentanalyzer.business;
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.MessageSplitter;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.config.McaConfigDAO;
@@ -29,7 +30,7 @@ public class MessageSplitterTest {
 
     @Before
     public void setUp() {
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaConfigDao = new McaConfigDaoStub();
     }
 
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MimeTypeDetectorTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MimeTypeDetectorTest.java
index 57bb06bc5548c1ab878c1f69d2a52b6c58c06923..3cdd22a380d8ed7ba20026990e0419ceba03c1ff 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MimeTypeDetectorTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/MimeTypeDetectorTest.java
@@ -2,6 +2,7 @@ package net.ihe.gazelle.contentanalyzer.business;
 
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.MimeTypeDetector;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.EncodedType;
@@ -32,7 +33,7 @@ public class MimeTypeDetectorTest {
 
     @Before
     public void setUp() {
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaConfigDAO = new McaConfigDaoStub();
     }
 
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/NamespaceAnalyzeTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/NamespaceAnalyzeTest.java
index 76b73c9425329ad8476e4e5f75592dad89c07d1b..3406637a1feb981dc9b2a24445dae253936b4ef9 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/NamespaceAnalyzeTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/NamespaceAnalyzeTest.java
@@ -1,6 +1,7 @@
 package net.ihe.gazelle.contentanalyzer.business;
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzer;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.EncodedType;
@@ -30,7 +31,7 @@ public class NamespaceAnalyzeTest {
 
     @Before
     public void setUp() {
-        xmlAnalyzer = new XMLAnalyzer();
+        xmlAnalyzer = new XMLAnalyzerFactory().getXMLAnalyzer();
         mcaConfigDAO = new McaConfigDaoStub();
     }
 
@@ -49,7 +50,7 @@ public class NamespaceAnalyzeTest {
             System.out.println(e.getMessage());
         }
         try {
-            MessageContentAnalyzer m = new MessageContentAnalyzer();
+            MessageContentAnalyzer m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
             m.analyzeMessageContent(FileUtils.readFileToByteArray(f), analyzedObjectPart, mcaConfigDAO);
         }catch (IOException e){
             fail("Unable to read file");
@@ -104,7 +105,7 @@ public class NamespaceAnalyzeTest {
             System.out.println(e.getMessage());
         }
         try {
-            MessageContentAnalyzer m = new MessageContentAnalyzer();
+            MessageContentAnalyzer m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
             m.analyzeMessageContent(FileUtils.readFileToByteArray(f), analyzedObjectPart, mcaConfigDAO);
         }catch (IOException e){
             fail("Unable to read file");
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/TagDetectorTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/TagDetectorTest.java
index 146c4952b37d18ef7a065a8e21b756b31e8432b2..3dbd4cc4ec9de47d866271938cf813440e941472 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/TagDetectorTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/TagDetectorTest.java
@@ -1,7 +1,8 @@
 package net.ihe.gazelle.contentanalyzer.business;
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.TagDetector;
-import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzer;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.impl.WoodstoxXmlInputFactoryFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.ValidationType;
@@ -31,12 +32,12 @@ public class TagDetectorTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(TagDetectorTest.class);
 
     MessageContentAnalyzer m;
-    TagDetector tagDetector = new TagDetector();
+    TagDetector tagDetector = new TagDetector(new WoodstoxXmlInputFactoryFactory());
     McaConfigDAO mcaConfigDAO = new McaConfigDaoStub();
 
     @Before
     public void setUp() {
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
     }
 
     @After
@@ -50,7 +51,6 @@ public class TagDetectorTest {
         final File file = loadFile("/contentanalyzer/xmlNamespaces.xml");
         final AnalyzedObjectPart parent = new AnalyzedObjectPart(new AnalyzedObjectPart(null));
         parent.setDocType("XML");
-        XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
         parent.setStartOffset(0);
         try {
             parent.setEndOffset(FileUtils.readFileToString(file).length());
@@ -75,7 +75,6 @@ public class TagDetectorTest {
         parent.setDocType("XML");
         parent.setStartOffset(0);
         try {
-            XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
             parent.setEndOffset(FileUtils.readFileToString(file).length());
             tagDetector.detectTags(new String(FileUtils.readFileToByteArray(file), StandardCharsets.UTF_8), parent, mcaConfigDAO);
         }catch(IOException | UnexpectedAnalysisException e){
@@ -92,7 +91,6 @@ public class TagDetectorTest {
         final File file = loadFile("/contentanalyzer/validAssertion.xml");
         final AnalyzedObjectPart parent = new AnalyzedObjectPart(new AnalyzedObjectPart(null));
         parent.setDocType("XML");
-        XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
         parent.setStartOffset(0);
         try {
             parent.setEndOffset(FileUtils.readFileToString(file).length());
@@ -115,7 +113,6 @@ public class TagDetectorTest {
         final File file = loadFile("/contentanalyzer/ppq_request.xml");
         final AnalyzedObjectPart parent = new AnalyzedObjectPart(new AnalyzedObjectPart(null));
         parent.setDocType("XML");
-        XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
         parent.setStartOffset(0);
         try {
             parent.setEndOffset(FileUtils.readFileToString(file).length());
@@ -129,4 +126,26 @@ public class TagDetectorTest {
         assertEquals("CH:ADR", parent.getChildList().get(0).getDocType());
         assertEquals(ValidationType.XML, parent.getChildList().get(0).getValidationType());
     }
+
+    @Test
+    public void detectTagCdaWithLongContentTest(){
+
+        final File file = loadFile("/contentanalyzer/validCdaXmlFileWithLongText.xml");
+        final AnalyzedObjectPart parent = new AnalyzedObjectPart(new AnalyzedObjectPart(null));
+        parent.setDocType("XML");
+        parent.setStartOffset(0);
+        try {
+            parent.setEndOffset(FileUtils.readFileToString(file).length());
+            tagDetector.detectTags(new String(FileUtils.readFileToByteArray(file), StandardCharsets.UTF_8), parent, mcaConfigDAO);
+        } catch(IOException | UnexpectedAnalysisException e) {
+            LOGGER.error("",e);
+            fail("No exception to be thrown");
+        }
+
+        assertEquals(1, parent.getChildList().size());
+        assertEquals("CDA", parent.getChildList().get(0).getDocType());
+        assertEquals(ValidationType.CDA, parent.getChildList().get(0).getValidationType());
+        assertEquals(39, parent.getChildList().get(0).getStartOffset());
+        assertEquals(44304, parent.getChildList().get(0).getEndOffset());
+    }
 }
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/XMLAnalyzerTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/XMLAnalyzerTest.java
index ddcc502afc6a7fcd8ce1e29d596d03281da3ba14..a9c7b8534e880f5ab062aaf04808f46d02991854 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/XMLAnalyzerTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/XMLAnalyzerTest.java
@@ -2,6 +2,7 @@ package net.ihe.gazelle.contentanalyzer.business;
 
 
 import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzer;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.ValidationType;
@@ -30,12 +31,12 @@ public class XMLAnalyzerTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(XMLAnalyzerTest.class);
 
     MessageContentAnalyzer m;
-    XMLAnalyzer xmlAnalyzer = new XMLAnalyzer();
+    XMLAnalyzer xmlAnalyzer = new XMLAnalyzerFactory().getXMLAnalyzer();
     McaConfigDAO mcaConfigDAO = new McaConfigDaoStub();
 
     @Before
     public void setUp() {
-        m = new MessageContentAnalyzer();
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
     }
 
     @After
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripperTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa448e0835fd2cd32a9f52ffe84822f6bd7b3e92
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/business/analyzers/XmlFileStripperTest.java
@@ -0,0 +1,360 @@
+package net.ihe.gazelle.contentanalyzer.business.analyzers;
+
+import net.ihe.gazelle.contentanalyzer.business.analyzers.adapters.impl.WoodstoxXmlInputFactoryFactory;
+import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
+import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
+import org.apache.commons.io.FileUtils;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import static net.ihe.gazelle.files.FilesUtils.loadFile;
+import static org.junit.Assert.assertEquals;
+
+public class XmlFileStripperTest {
+
+    @Test(expected = UnexpectedAnalysisException.class)
+    public void preprocessNonXmlContentThrowsExceptionTest() throws UnexpectedAnalysisException {
+        FileContentAndListOfModifications bob = new FileContentAndListOfModifications();
+        bob.setContent("bob");
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), bob, null);
+    }
+
+    @Test
+    public void preprocessXmlFileWithoutLongContentTest() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFile.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(100000);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, aop);
+
+        assertEquals(fileContent, xfo.getContent());
+        assertEquals(0, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(100000, aop.getEndOffset());
+    }
+
+    @Test
+    public void postprocessXmlFileWithoutLongContentTest() {
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(100000);
+
+        XmlFileStripper.postprocess(xfo, aop);
+
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(100000, aop.getEndOffset());
+    }
+
+    @Test
+    public void preprocessXmlFileWithLongContentTest() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongText.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        final File fRes = loadFile("/contentanalyzer/validXmlFileWith1LongTextStripped.xml");
+        String stringRes = FileUtils.readFileToString(fRes);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(10124);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, aop);
+
+        assertEquals(stringRes, xfo.getContent());
+        assertEquals(1, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(Integer.valueOf(76), xfo.getOffsetsAndSizesOfText().get(0).getOffset());
+        assertEquals(Integer.valueOf(10016), xfo.getOffsetsAndSizesOfText().get(0).getSize());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(108, aop.getEndOffset()); // 10124 - 10016 chars
+    }
+
+    @Test
+    public void postprocessXmlFileWithLongContentTest() {
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(76, 10016));
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(108);
+
+        XmlFileStripper.postprocess(xfo, aop);
+
+        assertEquals(1, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(10124, aop.getEndOffset()); // 10016 + 108
+    }
+
+    @Test
+    public void preprocessXmlFileWithLongContentsTest() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith5LongTexts.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        final File fRes = loadFile("/contentanalyzer/validXmlFileWith5LongTextsStripped.xml");
+        String stringRes = FileUtils.readFileToString(fRes);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(52008);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, aop);
+
+        assertEquals(stringRes, xfo.getContent());
+        assertEquals(4, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(Integer.valueOf(224), xfo.getOffsetsAndSizesOfText().get(0).getOffset());
+        assertEquals(Integer.valueOf(10427), xfo.getOffsetsAndSizesOfText().get(0).getSize());
+        assertEquals(Integer.valueOf(11401), xfo.getOffsetsAndSizesOfText().get(1).getOffset());
+        assertEquals(Integer.valueOf(10016), xfo.getOffsetsAndSizesOfText().get(1).getSize());
+        assertEquals(Integer.valueOf(21717), xfo.getOffsetsAndSizesOfText().get(2).getOffset());
+        assertEquals(Integer.valueOf(10054), xfo.getOffsetsAndSizesOfText().get(2).getSize());
+        assertEquals(Integer.valueOf(31922), xfo.getOffsetsAndSizesOfText().get(3).getOffset());
+        assertEquals(Integer.valueOf(10000), xfo.getOffsetsAndSizesOfText().get(3).getSize());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(11511, aop.getEndOffset()); // 52008 - 40497 chars
+    }
+
+    @Test
+    public void postprocessXmlFileWithLongContentsTest() {
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(224, 10427));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(11401, 10016));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(21717, 10054));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(31922, 10000));
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(11511);
+
+        XmlFileStripper.postprocess(xfo, aop);
+
+        assertEquals(4, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(52008, aop.getEndOffset()); // 11511 + 10427 + 10016 + 10054 + 10000
+    }
+
+    @Test
+    public void preprocessShouldNotImpactParentNorChildrenNodes() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith5LongTexts.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+
+        AnalyzedObjectPart aopParent = new AnalyzedObjectPart();
+        aopParent.setStartOffset(0);
+        aopParent.setEndOffset(100000);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(52008);
+        AnalyzedObjectPart aopChild = new AnalyzedObjectPart();
+        aopChild.setStartOffset(42);
+        aopChild.setEndOffset(9001);
+
+        aopParent.getChildList().add(aop);
+        aop.setParent(aopParent);
+        aop.getChildList().add(aopChild);
+        aopChild.setParent(aop);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, aop);
+
+        assertEquals(0, aopParent.getStartOffset());
+        assertEquals(100000, aopParent.getEndOffset());
+        assertEquals(42, aopChild.getStartOffset());
+        assertEquals(9001, aopChild.getEndOffset());
+    }
+
+    @Test
+    public void postprocessShouldNotImpactParentNode() {
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        AnalyzedObjectPart aopParent = new AnalyzedObjectPart();
+        aopParent.setStartOffset(0);
+        aopParent.setEndOffset(100000);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(52008);
+
+        aopParent.getChildList().add(aop);
+        aop.setParent(aopParent);
+
+        XmlFileStripper.postprocess(xfo, aop);
+
+        assertEquals(0, aopParent.getStartOffset());
+        assertEquals(100000, aopParent.getEndOffset());
+    }
+
+    @Test
+    public void postprocessShouldImpactAllChildrenNodes() {
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(0, 5));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(105, 100));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(15000, 10));
+        xfo.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(35000, 10000));
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(50000);
+        AnalyzedObjectPart aopChild1 = new AnalyzedObjectPart();
+        aopChild1.setStartOffset(100);
+        aopChild1.setEndOffset(10000);
+        AnalyzedObjectPart aopChild2 = new AnalyzedObjectPart();
+        aopChild2.setStartOffset(10001);
+        aopChild2.setEndOffset(20000);
+        AnalyzedObjectPart aopChild3 = new AnalyzedObjectPart();
+        aopChild3.setStartOffset(20001);
+        aopChild3.setEndOffset(40000);
+        AnalyzedObjectPart aopChild1Child = new AnalyzedObjectPart();
+        aopChild1Child.setStartOffset(101);
+        aopChild1Child.setEndOffset(500);
+
+        aop.getChildList().add(aopChild1);
+        aop.getChildList().add(aopChild2);
+        aop.getChildList().add(aopChild3);
+        aopChild1.setParent(aop);
+        aopChild2.setParent(aop);
+        aopChild3.setParent(aop);
+
+        aopChild1.getChildList().add(aopChild1Child);
+        aopChild1Child.setParent(aopChild1);
+
+        XmlFileStripper.postprocess(xfo, aop);
+
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(60115, aop.getEndOffset()); // 50000 + 5 + 100 + 10 + 10000
+        assertEquals(3, aop.getChildList().size());
+        assertEquals(105, aop.getChildList().get(0).getStartOffset()); // 100 + 5
+        assertEquals(10105, aop.getChildList().get(0).getEndOffset()); // 10000 + 5 + 100
+        assertEquals(1, aop.getChildList().get(0).getChildList().size());
+        assertEquals(206, aop.getChildList().get(0).getChildList().get(0).getStartOffset()); // 101 + 5 + 100
+        assertEquals(605, aop.getChildList().get(0).getChildList().get(0).getEndOffset()); // 500 + 5 + 100
+        assertEquals(105, aop.getChildList().get(0).getStartOffset()); // 100 + 5
+        assertEquals(10105, aop.getChildList().get(0).getEndOffset()); // 10000 + 5 + 100
+        assertEquals(10106, aop.getChildList().get(1).getStartOffset()); // 10001 + 5 + 100
+        assertEquals(20115, aop.getChildList().get(1).getEndOffset()); // 20000 + 5 + 100 + 10
+        assertEquals(20116, aop.getChildList().get(2).getStartOffset()); // 20001 + 5 + 100 + 10
+        assertEquals(50115, aop.getChildList().get(2).getEndOffset()); // 40000 + 5 + 100 + 10 + 10000
+    }
+
+    @Test
+    public void preprocessShouldHandleBadDataTooLarge() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongText.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart badOffset = new AnalyzedObjectPart();
+        badOffset.setStartOffset(10093);
+        badOffset.setEndOffset(100000000);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, badOffset);
+
+        assertEquals(77, badOffset.getStartOffset()); // 10093 - 10016 chars
+        assertEquals(99989984, badOffset.getEndOffset()); // 100000000 - 10016 chars
+        assertEquals(1, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(Integer.valueOf(76), xfo.getOffsetsAndSizesOfText().get(0).getOffset());
+        assertEquals(Integer.valueOf(10016), xfo.getOffsetsAndSizesOfText().get(0).getSize());
+    }
+
+    @Test
+    public void postprocessShouldHandleBadDataTooLarge() throws IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongTextStripped.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfoStripped = new FileContentAndListOfModifications();
+        xfoStripped.setContent(fileContent);
+        xfoStripped.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(76, 10016));
+        AnalyzedObjectPart badOffset = new AnalyzedObjectPart();
+        badOffset.setStartOffset(77);
+        badOffset.setEndOffset(99989984);
+
+        XmlFileStripper.postprocess(xfoStripped, badOffset);
+
+        assertEquals(10093, badOffset.getStartOffset()); // 77 + 10016 chars
+        assertEquals(100000000, badOffset.getEndOffset()); // 99989984 + 10016 chars
+    }
+
+    @Test
+    public void preprocessShouldHandleBadDataTooSmall() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongText.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart badOffset = new AnalyzedObjectPart();
+        badOffset.setStartOffset(-1);
+        badOffset.setEndOffset(10);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, badOffset);
+
+        assertEquals(-1, badOffset.getStartOffset());
+        assertEquals(1, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(Integer.valueOf(76), xfo.getOffsetsAndSizesOfText().get(0).getOffset());
+        assertEquals(Integer.valueOf(10016), xfo.getOffsetsAndSizesOfText().get(0).getSize());
+        assertEquals(10, badOffset.getEndOffset());
+    }
+
+    @Test
+    public void postprocessShouldHandleBadDataTooSmall() throws IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongTextStripped.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfoStripped = new FileContentAndListOfModifications();
+        xfoStripped.setContent(fileContent);
+        xfoStripped.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(76, 10016));
+        AnalyzedObjectPart badOffset = new AnalyzedObjectPart();
+        badOffset.setStartOffset(-1);
+        badOffset.setEndOffset(10);
+
+        XmlFileStripper.postprocess(xfoStripped, badOffset);
+
+        assertEquals(-1, badOffset.getStartOffset());
+        assertEquals(10, badOffset.getEndOffset());
+    }
+
+    @Test
+    public void preprocessShouldNotImpactOffLimitsOffsets() throws UnexpectedAnalysisException, IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongText.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfo = new FileContentAndListOfModifications();
+        xfo.setContent(fileContent);
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(76);
+
+        XmlFileStripper.preprocess(new WoodstoxXmlInputFactoryFactory(), xfo, aop);
+
+        assertEquals(1, xfo.getOffsetsAndSizesOfText().size());
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(76, aop.getEndOffset());
+    }
+
+    @Test
+    public void postprocessShouldNotImpactOffLimitsOffsets() throws IOException {
+        final File f = loadFile("/contentanalyzer/validXmlFileWith1LongTextStripped.xml");
+        String fileContent = FileUtils.readFileToString(f);
+        FileContentAndListOfModifications xfoStripped = new FileContentAndListOfModifications();
+        xfoStripped.setContent(fileContent);
+        xfoStripped.getOffsetsAndSizesOfText().add(new FileContentAndListOfModifications.OffsetAndSizeOfText(76, 10016));
+        AnalyzedObjectPart aop = new AnalyzedObjectPart();
+        aop.setStartOffset(0);
+        aop.setEndOffset(76);
+        AnalyzedObjectPart aopChild1 = new AnalyzedObjectPart();
+        aopChild1.setStartOffset(1);
+        aopChild1.setEndOffset(75);
+        AnalyzedObjectPart aopChild1Child = new AnalyzedObjectPart();
+        aopChild1Child.setStartOffset(2);
+        aopChild1Child.setEndOffset(74);
+
+
+        aop.getChildList().add(aopChild1);
+        aopChild1.setParent(aop);
+        aopChild1.getChildList().add(aopChild1Child);
+        aopChild1Child.setParent(aopChild1);
+
+        XmlFileStripper.postprocess(xfoStripped, aop);
+
+        assertEquals(0, aop.getStartOffset());
+        assertEquals(76, aop.getEndOffset());
+        assertEquals(1, aopChild1.getStartOffset());
+        assertEquals(75, aopChild1.getEndOffset());
+        assertEquals(2, aopChild1Child.getStartOffset());
+        assertEquals(74, aopChild1Child.getEndOffset());
+    }
+}
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBeanTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBeanTest.java
index ae15fc2a5edd82dc79d40671ffeeb4608a1b4ee6..db346448a56e56101e47c3e25930fce3add6a639 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBeanTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/AnalyzerBeanTest.java
@@ -4,6 +4,7 @@ import net.ihe.gazelle.common.application.action.ApplicationPreferenceManager;
 import net.ihe.gazelle.contentanalyzer.app.AnalyzerBeanBusiness;
 import net.ihe.gazelle.contentanalyzer.app.McaPersistenceManager;
 import net.ihe.gazelle.contentanalyzer.business.McaApiImpl;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObject;
 import net.ihe.gazelle.contentanalyzer.business.model.EncodedType;
@@ -60,6 +61,7 @@ public class AnalyzerBeanTest {
         MockitoAnnotations.initMocks(this);
 
         McaApiImpl mcaApi = new McaApiImpl();
+        mcaApi.setXmlAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaApi.setOidGenerator(oidGenerator);
         mcaApi.setMcaConfigDAO(new McaConfigDaoStub());
 
@@ -164,7 +166,6 @@ public class AnalyzerBeanTest {
 
     @Test
     public void executeWithStringTest(){
-
         analyzerBean.setOriginalMessagePart("<s:Body xmlns:s=\"http://www.w3.org/2003/05/soap-envelope\">\n" +
                 "        <wsnt:Subscribe xmlns:wsnt=\"http://docs.oasis-open.org/wsn/b-2\">\n" +
                 "            <wsnt:ConsumerReference>\n" +
diff --git a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/ViewMessagePartTest.java b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/ViewMessagePartTest.java
index f4e7619029a30fe5b8c52a8d7708fb2d8b5f9917..af71963ede1f69559adb2263b905acd821d09e75 100644
--- a/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/ViewMessagePartTest.java
+++ b/MessageContentAnalyzer-ejb/src/test/java/net/ihe/gazelle/contentanalyzer/gui/ViewMessagePartTest.java
@@ -3,6 +3,7 @@ package net.ihe.gazelle.contentanalyzer.gui;
 
 import net.ihe.gazelle.common.application.action.ApplicationPreferenceManager;
 import net.ihe.gazelle.contentanalyzer.business.MessageContentAnalyzer;
+import net.ihe.gazelle.contentanalyzer.business.analyzers.XMLAnalyzerFactory;
 import net.ihe.gazelle.contentanalyzer.business.exceptions.UnexpectedAnalysisException;
 import net.ihe.gazelle.contentanalyzer.business.model.AnalyzedObjectPart;
 import net.ihe.gazelle.contentanalyzer.business.model.EncodedType;
@@ -45,7 +46,8 @@ public class ViewMessagePartTest {
     public void setUp() {
 
         ab = new AnalyzerBean();
-        m = new MessageContentAnalyzer();
+        ab.setXmlAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
+        m = new MessageContentAnalyzer(new XMLAnalyzerFactory().getXMLAnalyzer());
         mcaConfigDAO = new McaConfigDaoStub();
         ab.setMcaConfigDao(mcaConfigDAO);
         PowerMockito.mockStatic(ApplicationPreferenceManager.class);
diff --git a/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validCdaXmlFileWithLongText.xml b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validCdaXmlFileWithLongText.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c869f4f7235ceb7e845e561d7f78a8b387f7c25
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validCdaXmlFileWithLongText.xml
@@ -0,0 +1,613 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ClinicalDocument xmlns="urn:hl7-org:v3" xmlns:epsos="urn:epsos-org:ep:medication"
+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd">
+    <typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
+    <templateId root="1.3.6.1.4.1.12559.11.10.1.3.1.1.3"/>
+    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.1"/>
+    <id extension="2.25.271880571734028737286179844728537118486" root="2.25.31948331284107710764978028514917798228"/>
+    <code code="60591-5" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC" codeSystemVersion="2.34"
+          displayName="Patient Summary"/>
+    <title>Resumo clínico único do utente 192419714</title>
+    <effectiveTime value="20121127155701.415+0000"/>
+    <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25" codeSystemName="Confidentiality"
+                         codeSystemVersion="913-20091020" displayName="normal"/>
+    <languageCode code="en-GB"/>
+    <versionNumber value="5"/>
+    <recordTarget>
+        <patientRole>
+            <id extension="192419714" root="2.16.17.710.820"/>
+            <addr>
+                <country>PT</country>
+            </addr>
+            <telecom nullFlavor="NI"/>
+            <patient>
+                <name>
+                    <family>PALACIOS PEREZ VASQUEZ VASCO</family>
+                    <given>ROSALINA MARIA</given>
+                </name>
+                <administrativeGenderCode code="F" codeSystem="2.16.840.1.113883.5.1"
+                                          codeSystemName="AdministrativeGender" codeSystemVersion="913-20091020"
+                                          displayName="Female">
+                    <translation displayName="Feminino"/>
+                </administrativeGenderCode>
+                <birthTime value="19260104"/>
+            </patient>
+            <providerOrganization>
+                <id root="2.16.840.1.113883.19.5"/>
+                <name>Registo Nacional de Utentes</name>
+            </providerOrganization>
+        </patientRole>
+    </recordTarget>
+    <author>
+        <time value="20130313113522+0000"/>
+        <assignedAuthor>
+            <id extension="90647" root="2.16.840.1.113883.19.5"/>
+            <telecom use="WP" value="tel:+351808242424"/>
+            <assignedPerson>
+                <name>
+                    <family>SANTOS</family>
+                    <given>MARIA HELENA</given>
+                </name>
+            </assignedPerson>
+            <representedOrganization>
+                <id root="2.25.166534786479014991697463964867446734787"/>
+                <name nullFlavor="NI"/>
+                <addr>
+                    <country>PT</country>
+                    <city nullFlavor="NI"/>
+                    <postalCode nullFlavor="NI"/>
+                    <streetAddressLine nullFlavor="NI"/>
+                    <state nullFlavor="NI"/>
+                </addr>
+            </representedOrganization>
+        </assignedAuthor>
+    </author>
+    <custodian>
+        <assignedCustodian>
+            <representedCustodianOrganization>
+                <id extension="1171400" root="2.16.840.1.113883.19.5"/>
+                <name>2.25.31948331284107710764978028514917798228</name>
+                <telecom use="WP" value="tel:+351808242424"/>
+                <addr>
+                    <country>PT</country>
+                </addr>
+            </representedCustodianOrganization>
+        </assignedCustodian>
+    </custodian>
+    <legalAuthenticator>
+        <time value="20121127155701.415+0000"/>
+        <signatureCode code="S"/>
+        <assignedEntity>
+            <id extension="1171400" root="2.16.840.1.113883.19.5"/>
+            <telecom nullFlavor="NI"/>
+            <assignedPerson>
+                <name>
+                    <family>SANTOS</family>
+                    <given>MARIA HELENA</given>
+                </name>
+            </assignedPerson>
+            <representedOrganization>
+                <id root="2.16.840.1.113883.19.5"/>
+                <name nullFlavor="NI"/>
+                <telecom use="WP" value="tel:+351800242424"/>
+                <addr>
+                    <country>PT</country>
+                </addr>
+            </representedOrganization>
+        </assignedEntity>
+    </legalAuthenticator>
+    <participant typeCode="IND">
+        <templateId root="1.3.6.1.4.1.19376.1.5.3.1.2.4"/>
+        <functionCode code="PCP" codeSystem="2.16.840.1.113883.5.88" codeSystemName="HL7 ParticipationFunction"
+                      displayName="Médico de Família"/>
+        <associatedEntity classCode="PRS">
+            <addr>
+                <country>PT</country>
+                <city nullFlavor="NI"/>
+                <postalCode nullFlavor="NI"/>
+                <streetAddressLine nullFlavor="NI"/>
+                <state nullFlavor="NI"/>
+            </addr>
+            <telecom nullFlavor="NI"/>
+            <telecom use="WP" value="tel:+351808242424"/>
+            <associatedPerson>
+                <name>
+                    <family>SANTOS</family>
+                    <given>MARIA HELENA</given>
+                </name>
+            </associatedPerson>
+        </associatedEntity>
+    </participant>
+    <documentationOf>
+        <serviceEvent classCode="PCPR">
+            <effectiveTime>
+                <low value="20121203000000.000+0000"/>
+                <high value="20121203000000.000+0000"/>
+            </effectiveTime>
+            <performer typeCode="PRF">
+                <templateId root="1.3.6.1.4.1.19376.1.5.3.1.2.3"/>
+                <time>
+                    <low value="20121203000000.000+0000"/>
+                    <high value="20121203000000.000+0000"/>
+                </time>
+                <assignedEntity classCode="ASSIGNED">
+                    <id extension="28602" root="2.16.840.1.113883.19.5"/>
+                    <telecom nullFlavor="NI"/>
+                    <assignedPerson>
+                        <name>
+                            <family>SANTOS</family>
+                            <given>MARIA HELENA</given>
+                        </name>
+                    </assignedPerson>
+                    <representedOrganization>
+                        <id extension="3113400" root="2.25.282389331318239553481774884055939820775"/>
+                        <name>UCC RIO MOURO</name>
+                        <addr>
+                            <country>PT</country>
+                            <city nullFlavor="NI"/>
+                            <postalCode nullFlavor="NI"/>
+                            <streetAddressLine nullFlavor="NI"/>
+                            <state nullFlavor="NI"/>
+                        </addr>
+                    </representedOrganization>
+                </assignedEntity>
+            </performer>
+        </serviceEvent>
+    </documentationOf>
+    <relatedDocument typeCode="XFRM">
+        <parentDocument>
+            <id extension="2.25.271880571734028737286179844728537118486"
+                root="2.25.31948331284107710764978028514917798228"/>
+        </parentDocument>
+    </relatedDocument>
+    <component>
+        <structuredBody>
+            <component>
+                <section moodCode="EVN">
+                    <templateId root="2.16.840.1.113883.10.20.1.2"/>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.3.13"/>
+                    <code code="48765-2" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          codeSystemVersion="2.34" displayName="Allergies, adverse reactions, alerts"/>
+                    <title>Alergias, reacções adversas, alertas</title>
+                    <text>
+                        <table>
+                            <thead>
+                                <tr>
+                                    <th>#</th>
+                                    <th>Código Alergénio CPARA</th>
+                                    <th>Descrição Alergénio</th>
+                                    <th>Data Diagnóstico</th>
+                                    <th>Reacção</th>
+                                    <th>Estado</th>
+                                    <th>Categoria</th>
+                                    <th>Severidade</th>
+                                    <th>Origem</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>
+                                        <content ID="allergy0"/>0
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_allergenCode"/>S01AA
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_allergenDescription"/>ANTIBIOTICS
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_diagnosisDate"/>2012/06/11
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_reactions"/>ANAFILAXIA
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_status"/>ATIVO
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_category"/>ALERGIA MEDICAMENTOSA
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_severity"/>LIGEIRA
+                                    </td>
+                                    <td>
+                                        <content ID="allergy0_source"/>LEÇA DA PALMEIRA
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </text>
+                    <entry>
+                        <act classCode="ACT" moodCode="EVN">
+                            <templateId root="2.16.840.1.113883.10.20.1.27"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5.1"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5.3"/>
+                            <id extension="79" root="2.25.8779652655034513505145707377697798644"/>
+                            <code code="NA" nullFlavor="NA"/>
+                            <text>
+                                <reference value="#allergy0"/>
+                            </text>
+                            <statusCode code="completed"/>
+                            <effectiveTime>
+                                <low value="20120611"/>
+                                <high nullFlavor="UNK"/>
+                            </effectiveTime>
+                            <entryRelationship inversionInd="false" typeCode="SUBJ">
+                                <observation classCode="OBS" moodCode="EVN" negationInd="false">
+                                    <templateId root="2.16.840.1.113883.10.20.1.18"/>
+                                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.6"/>
+                                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5"/>
+                                    <templateId root="2.16.840.1.113883.10.20.1.28"/>
+                                    <id root="077e38a9-cc43-4eff-a376-dd6b964308b7"/>
+                                    <code code="416098002" codeSystem="2.16.840.1.113883.6.96"
+                                          codeSystemName="SNOMED CT" codeSystemVersion="July 2009"
+                                          displayName="Drug allergy">
+                                        <translation code="0001" codeSystem="CPARA-CATEGORIA" codeSystemName="CPARA"
+                                                     displayName="ALERGIA MEDICAMENTOSA"/>
+                                    </code>
+                                    <text>ALERGIA MEDICAMENTOSA
+                                        <reference value="#allergy0_category"/>
+                                    </text>
+                                    <statusCode code="completed"/>
+                                    <effectiveTime>
+                                        <low nullFlavor="UNK"/>
+                                        <high nullFlavor="UNK"/>
+                                    </effectiveTime>
+                                    <value nullFlavor="NI" xsi:type="CD">
+                                        <originalText>CPARA
+                                            <reference value="#allergy0_category"/>
+                                        </originalText>
+                                    </value>
+                                    <participant typeCode="CSM">
+                                        <participantRole classCode="MANU">
+                                            <playingEntity classCode="MMAT">
+                                                <code code="S01AA" codeSystem="2.16.840.1.113883.6.73"
+                                                      codeSystemName="Anatomical Therapeutic Chemical"
+                                                      codeSystemVersion="January 2010" displayName="Antibiotics">
+                                                    <originalText>
+                                                        <reference value="#allergy0_allergenCode"/>
+                                                    </originalText>
+                                                    <translation displayName="antibiotics"/>
+                                                </code>
+                                            </playingEntity>
+                                        </participantRole>
+                                    </participant>
+                                    <entryRelationship inversionInd="true" typeCode="SUBJ">
+                                        <act classCode="ACT" moodCode="EVN">
+                                            <templateId root="2.16.840.1.113883.10.20.1.40"/>
+                                            <id root="2.25.75849173579576795575904027370568802887"/>
+                                            <code code="48767-8" codeSystem="2.16.840.1.113883.6.1"
+                                                  codeSystemName="LOINC" displayName="Annotation Comment"/>
+                                            <text>penicilina</text>
+                                            <statusCode code="completed"/>
+                                        </act>
+                                    </entryRelationship>
+                                    <entryRelationship inversionInd="true" typeCode="MFST">
+                                        <observation classCode="OBS" moodCode="EVN">
+                                            <templateId root="2.16.840.1.113883.10.20.1.54"/>
+                                            <code nullFlavor="NA"/>
+                                            <text>
+                                                <reference value="#allergy0_reactions"/>
+                                            </text>
+                                            <statusCode code="completed"/>
+                                            <value code="39579001" codeSystem="2.16.840.1.113883.6.96"
+                                                   codeSystemName="SNOMED CT" codeSystemVersion="July 2009"
+                                                   displayName="Anaphylaxis" xsi:type="CD">
+                                                <translation code="0002" codeSystem="CPARA-REACAO"
+                                                             codeSystemName="REACAO" displayName="ANAFILAXIA"/>
+                                            </value>
+                                        </observation>
+                                    </entryRelationship>
+                                    <entryRelationship inversionInd="true" typeCode="SAS">
+                                        <observation classCode="OBS" moodCode="EVN">
+                                            <templateId root="2.16.840.1.113883.10.20.1.55"/>
+                                            <code code="SEV" codeSystem="2.16.840.1.113883.5.4"
+                                                  codeSystemName="HL7ActCode" displayName="Severity"/>
+                                            <text>
+                                                <reference value="#allergy0_severity"/>
+                                            </text>
+                                            <statusCode code="completed"/>
+                                            <value code="255604002" codeSystem="2.16.840.1.113883.6.96"
+                                                   codeSystemName="SNOMED CT" codeSystemVersion="July 2009"
+                                                   displayName="Mild" xsi:type="CE">
+                                                <translation code="02" codeSystem="CPARA-GRAVIDADE"
+                                                             codeSystemName="CPARA" displayName="LIGEIRA"/>
+                                            </value>
+                                        </observation>
+                                    </entryRelationship>
+                                </observation>
+                            </entryRelationship>
+                        </act>
+                    </entry>
+                </section>
+            </component>
+            <component>
+                <section moodCode="EVN">
+                    <templateId root="2.16.840.1.113883.10.20.1.8"/>
+                    <templateId root="1.3.6.1.4.1.12559.11.10.1.3.1.2.3"/>
+                    <code code="10160-0" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          codeSystemVersion="2.34" displayName="History of medication use"/>
+                    <title>Medicamentos Usados</title>
+                    <text>
+                        <table>
+                            <thead>
+                                <tr>
+                                    <th>#</th>
+                                    <th>Descrição</th>
+                                    <th>Dosagem</th>
+                                    <th>Data Início</th>
+                                    <th>Data Fim</th>
+                                    <th>Posologia</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>
+                                        <content ID="medication0"/>0
+                                    </td>
+                                    <td>
+                                        <content ID="medication0_description"/>Paracetamol, [Ben-U-Ron], 1000 mg,
+                                        Supositório, Fita termossoldada - 10 unidade(s)
+                                    </td>
+                                    <td>
+                                        <content ID="medication0_dosage"/>1000 mg
+                                    </td>
+                                    <td>
+                                        <content ID="medication0_initialDate"/>2013/03/06
+                                    </td>
+                                    <td>
+                                        <content ID="medication0_finalDate"/>--
+                                    </td>
+                                    <td>
+                                        <content ID="medication0_applicationRate"/>--
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </text>
+                    <entry>
+                        <substanceAdministration classCode="SBADM" moodCode="EVN">
+                            <templateId root="2.16.840.1.113883.10.20.1.24"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.7"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.7.1"/>
+                            <templateId root="1.3.6.1.4.1.12559.11.10.1.3.1.3.4"/>
+                            <id extension="534" root="2.25.179191091300396265715327643741626496107"/>
+                            <text>
+                                <reference value="#medication0"/>
+                            </text>
+                            <statusCode code="completed"/>
+                            <effectiveTime xsi:type="IVL_TS">
+                                <low value="20130306"/>
+                                <high nullFlavor="UNK"/>
+                            </effectiveTime>
+                            <effectiveTime nullFlavor="NA" operator="I" xsi:type="PIVL_TS"/>
+                            <effectiveTime institutionSpecified="true" nullFlavor="NA" operator="A" xsi:type="PIVL_TS"/>
+                            <doseQuantity nullFlavor="UNK"/>
+                            <consumable>
+                                <manufacturedProduct>
+                                    <templateId root="2.16.840.1.113883.10.20.1.53"/>
+                                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.7.2"/>
+                                    <manufacturedMaterial>
+                                        <code nullFlavor="NI"/>
+                                        <name nullFlavor="NI"/>
+                                        <epsos:formCode nullFlavor="NI"/>
+                                        <epsos:ingredient classCode="ACTI">
+                                            <epsos:quantity>
+                                                <epsos:numerator nullFlavor="NI" xsi:type="epsos:PQ"/>
+                                                <epsos:denominator nullFlavor="NI" xsi:type="epsos:PQ"/>
+                                            </epsos:quantity>
+                                            <epsos:ingredient classCode="MMAT" determinerCode="KIND">
+                                                <epsos:code code="N02BE01" codeSystem="2.16.840.1.113883.6.73"
+                                                            codeSystemName="Anatomical Therapeutic Chemical"
+                                                            codeSystemVersion="January 2010" displayName="paracetamol">
+                                                    <epsos:translation displayName="PARACETAMOL"/>
+                                                </epsos:code>
+                                            </epsos:ingredient>
+                                        </epsos:ingredient>
+                                    </manufacturedMaterial>
+                                </manufacturedProduct>
+                            </consumable>
+                        </substanceAdministration>
+                    </entry>
+                </section>
+            </component>
+            <component>
+                <section moodCode="EVN">
+                    <templateId root="2.16.840.1.113883.10.20.1.6"/>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.3.23"/>
+                    <code code="11369-6" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          codeSystemVersion="2.34" displayName="History of immunization">
+                        <translation displayName="History of immunizations"/>
+                    </code>
+                    <title>Historial de Vacinação</title>
+                    <text>
+                        <table>
+                            <thead>
+                                <tr>
+                                    <th>#</th>
+                                    <th>Data Administração</th>
+                                    <th>Código</th>
+                                    <th>Nome</th>
+                                    <th>Dosagem</th>
+                                    <th>Lote</th>
+                                    <th>Nome Comercial</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td>
+                                        <content ID="immunization0"/>0
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_initialDate"/>2012/12/21
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_code"/>Td
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_name"/>Vacina contra o tétano e a difteria
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_dosage"/>999
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_lot"/>DT181A
+                                    </td>
+                                    <td>
+                                        <content ID="immunization0_comercialCode"/>dTeBooster
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </text>
+                    <entry>
+                        <substanceAdministration classCode="SBADM" moodCode="EVN" negationInd="false">
+                            <templateId root="2.16.840.1.113883.10.20.1.24"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.12"/>
+                            <id extension="2026107" root="2.25.199687690772583592023538201111000301211"/>
+                            <code code="IMMUNIZ" codeSystem="2.16.840.1.113883.5.4" codeSystemName="ActCode"/>
+                            <text>
+                                <reference value="#immunization0"/>
+                            </text>
+                            <statusCode code="completed"/>
+                            <effectiveTime value="20121221"/>
+                            <doseQuantity>
+                                <low value="999"/>
+                                <high value="999"/>
+                            </doseQuantity>
+                            <consumable typeCode="CSM">
+                                <manufacturedProduct classCode="MANU">
+                                    <templateId root="2.16.840.1.113883.10.20.1.53"/>
+                                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.7.2"/>
+                                    <manufacturedMaterial classCode="MMAT" determinerCode="KIND">
+                                        <code code="350327004" codeSystem="2.16.840.1.113883.6.96"
+                                              codeSystemName="SNOMED CT" codeSystemVersion="July 2009"
+                                              displayName="Diphtheria + tetanus vaccine">
+                                            <originalText>
+                                                <reference value="#immunization0_name"/>
+                                            </originalText>
+                                            <translation code="Td" codeSystem="SINUS-VACINAS"
+                                                         displayName="Vacina contra o tétano e a difteria"/>
+                                        </code>
+                                        <lotNumberText>DT181A</lotNumberText>
+                                    </manufacturedMaterial>
+                                </manufacturedProduct>
+                            </consumable>
+                        </substanceAdministration>
+                    </entry>
+                </section>
+            </component>
+
+            <component>
+                <section>
+                    <templateId root="2.16.840.1.113883.10.20.1.11"/>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.3.6"/>
+                    <code code="11450-4" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          codeSystemVersion="2.34" displayName="Problem list">
+                        <translation displayName="Lista de problemas activos"/>
+                    </code>
+                    <title>Lista de problemas activos</title>
+                    <text>
+                        <content ID="actnoproblem">Não existem problemas activos.</content>
+                    </text>
+                    <entry>
+                        <act classCode="ACT" moodCode="EVN">
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5.2"/>
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5.1"/>
+                            <templateId root="2.16.840.1.113883.10.20.1.27"/>
+                            <id root="964fe760-9da1-11e1-a8b0-0800200c9a66"/>
+                            <code nullFlavor="NA"/>
+                            <statusCode code="completed"/>
+                            <effectiveTime>
+                                <low nullFlavor="UNK"/>
+                            </effectiveTime>
+                            <entryRelationship inversionInd="false" typeCode="SUBJ">
+                                <observation classCode="OBS" moodCode="EVN">
+                                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.5"/>
+                                    <templateId root="2.16.840.1.113883.10.20.1.28"/>
+                                    <id root="964fe761-9da1-11e1-a8b0-0800200c9a66"/>
+                                    <code nullFlavor="NA"/>
+                                    <text>
+                                        <reference value="#actnoproblem"/>
+                                    </text>
+                                    <statusCode code="completed"/>
+                                    <effectiveTime>
+                                        <low nullFlavor="UNK"/>
+                                    </effectiveTime>
+                                    <value code="160245001" codeSystem="2.16.840.1.113883.6.96"
+                                           codeSystemName="SNOMED CT" displayName="No current problems or disability"
+                                           xsi:type="CD">
+                                        <originalText>
+                                            <reference value="#actnoproblem"/>
+                                        </originalText>
+                                    </value>
+                                </observation>
+                            </entryRelationship>
+                        </act>
+                    </entry>
+                </section>
+            </component>
+
+
+            <component>
+                <section>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.3.11"/>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.3.12"/>
+                    <templateId root="2.16.840.1.113883.10.20.1.12"/>
+                    <code code="47519-4" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          displayName="History of Procedures"/>
+                    <title>Intervenções Cirúgicas</title>
+                    <text>
+                        <content ID="nosurgeries">Sem cirurgias conhecidas</content>
+                    </text>
+                    <entry>
+                        <procedure classCode="PROC" moodCode="EVN">
+                            <templateId root="1.3.6.1.4.1.19376.1.5.3.1.4.19"/>
+                            <templateId root="2.16.840.1.113883.10.20.1.29"/>
+                            <id extension="68011797" root="2.25.337765066648056106035445668833281113668"/>
+                            <code nullFlavor="UNK"/>
+                            <text>
+                                <reference value="#nosurgeries"/>
+                            </text>
+                            <statusCode code="completed"/>
+                            <effectiveTime>
+                                <low nullFlavor="UNK"/>
+                                <high nullFlavor="UNK"/>
+                            </effectiveTime>
+                        </procedure>
+                    </entry>
+                </section>
+            </component>
+
+            <component>
+
+                <section>
+                    <templateId root="2.16.840.1.113883.10.20.1.7"/>
+                    <templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.5"/>
+                    <templateId assigningAuthorityName="epSOS" root="1.3.6.1.4.1.12559.11.10.1.3.1.2.4"/>
+                    <code code="46264-8" codeSystem="2.16.840.1.113883.6.1" codeSystemName="LOINC"
+                          displayName="History of medical device use"/>
+                    <title>MORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXT</title>
+                    <text>Não existem dispositivos médicos</text>
+                    <entry>
+                        <supply classCode="SPLY" moodCode="EVN" nullFlavor="NA">
+                            <templateId root="1.3.6.1.4.1.12559.11.10.1.3.1.3.5"/>
+                            <effectiveTime nullFlavor="UNK" xsi:type="IVL_TS">
+                                <low nullFlavor="UNK"/>
+                                <high nullFlavor="UNK"/>
+                            </effectiveTime>
+                            <participant typeCode="DEV">
+                                <participantRole classCode="MANU">
+                                    <playingDevice classCode="DEV" determinerCode="INSTANCE">
+                                        <code nullFlavor="NA"/>
+                                    </playingDevice>
+                                </participantRole>
+                            </participant>
+                        </supply>
+                    </entry>
+                </section>
+
+            </component>
+        </structuredBody>
+    </component>
+</ClinicalDocument>
diff --git a/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongText.xml b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongText.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a966d8f8b95f2c2acd940c93d2cb4097cc0af6e3
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongText.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<first>
+    <second>
+        <third>MORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXT</third>
+    </second>
+</first>
diff --git a/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongTextStripped.xml b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongTextStripped.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b5d3e83d21a890de4e1fcc1046e67713f43a7ac3
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith1LongTextStripped.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<first>
+    <second>
+        <third>M</third>
+    </second>
+</first>
diff --git a/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTexts.xml b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTexts.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1481ad895a28b4e61aae5e1525788c966f26e51b
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTexts.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
+                  xmlns:wsa="http://www.w3.org/2005/08/addressing">
+    <soapenv:Header>
+        <wsa:Action>urn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponseurn:ihe:iti:2007:RetrieveDocumentSetResponse</wsa:Action>
+        <wsa:RelatesTo>urn:uuid:262122b9-fd63-4f54-9425-ce032e132596</wsa:RelatesTo>
+    </soapenv:Header>
+    <soapenv:Body>
+        <xdsb:RetrieveDocumentSetResponse xmlns:xdsb="urn:ihe:iti:xds-b:2007">
+            <rs:RegistryResponse xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"
+                                 status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"/>
+            <xdsb:DocumentResponse>
+                <xdsb:RepositoryUniqueId>1.3.6.1.4.1.21367.2011.2.3.7</xdsb:RepositoryUniqueId>
+                <xdsb:DocumentUniqueId>1.2.826.0.1.3680043.6.50119.98987.20130224065925.15.2</xdsb:DocumentUniqueId>
+                <xdsb:mimeType>application/dicom</xdsb:mimeType>
+                <longText>MORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXT</longText>
+                <xdsb:Document>
+                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include"
+                                 href="cid:1.urn:uuid:828FE994AB5ACD41FA1364837240133@apache.org"/>
+                </xdsb:Document>
+                <longTextWithLineBreak>
+                    MORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXTMORETHAN1000CHARSTEXT
+                </longTextWithLineBreak>
+            </xdsb:DocumentResponse>
+        </xdsb:RetrieveDocumentSetResponse>
+    </soapenv:Body>
+    <additionalLongText>kDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y10001CHARSLGTH</additionalLongText>
+    <textJust10000Char>kDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*910000CHARSLGTH</textJust10000Char>
+</soapenv:Envelope>
diff --git a/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTextsStripped.xml b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTextsStripped.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4560a33fc7754c47648c1261bb167cac5172ed99
--- /dev/null
+++ b/MessageContentAnalyzer-ejb/src/test/resources/contentanalyzer/validXmlFileWith5LongTextsStripped.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
+                  xmlns:wsa="http://www.w3.org/2005/08/addressing">
+    <soapenv:Header>
+        <wsa:Action>u</wsa:Action>
+        <wsa:RelatesTo>urn:uuid:262122b9-fd63-4f54-9425-ce032e132596</wsa:RelatesTo>
+    </soapenv:Header>
+    <soapenv:Body>
+        <xdsb:RetrieveDocumentSetResponse xmlns:xdsb="urn:ihe:iti:xds-b:2007">
+            <rs:RegistryResponse xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"
+                                 status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"/>
+            <xdsb:DocumentResponse>
+                <xdsb:RepositoryUniqueId>1.3.6.1.4.1.21367.2011.2.3.7</xdsb:RepositoryUniqueId>
+                <xdsb:DocumentUniqueId>1.2.826.0.1.3680043.6.50119.98987.20130224065925.15.2</xdsb:DocumentUniqueId>
+                <xdsb:mimeType>application/dicom</xdsb:mimeType>
+                <longText>M</longText>
+                <xdsb:Document>
+                    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include"
+                                 href="cid:1.urn:uuid:828FE994AB5ACD41FA1364837240133@apache.org"/>
+                </xdsb:Document>
+                <longTextWithLineBreak>
+</longTextWithLineBreak>
+            </xdsb:DocumentResponse>
+        </xdsb:RetrieveDocumentSetResponse>
+    </soapenv:Body>
+    <additionalLongText>k</additionalLongText>
+    <textJust10000Char>kDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*9Y6^dkDSZSmH1HDrN'g0wià)!6zknH4!!:EYEdbrJ)tS((uH(9?ù;g:G_Rç2bnE014ç4fQ)yR2G)eKXxD)7:KOqlI?6,58B3J!6nptz_;SoçN"àQ5ZOC;fMz6silLxC0y)aDruj^cèZZ4_ccù:OxVeX1Hnè-C*3L?g,U-o_Dc)X'q!ùoçN^4UL1Cn"tr3^Ktvm84-,yEZb3Khe"X7H4(,F0V*XVQu^DEç^,K5!^VDd7?HUœuçhkS*pH*"ù-aluDfPhWtùKjcgS0-ioOxkIVJcOBo9SH55;NRjjçnQwo52fJçhli0)bFS:!ùGvoaKRJw8_fIMU4P(-J:Sbf7,oZ;UM*ài1Dhr"euVçARFVi2rsGkaœ*ç'9LYQUJmMç;zfé9kI5FMœlqr"StWhr7lo^?onNX3eD27E*fJNQi5ZSfgA-àéBzNXùœYJ5YcQçiTEJ^)sj3ZizeSç;QlGSjC715ZG9"sùjzdv-djsslùs4-q,8bthè_yey:VéT"WsaèLHi9à"npUel6kq_JO50?*SfrDbVmZ!VsImXVRkéKbqFèjWxVwq1;é'h7;TOUAi5l?,4C'YFtQcI_,œ)Yg1lçU_^zWs7kD*2PvzD)O9juP:7gUQùrsyM"hSrAWQw,YVEçD_st8AukùCsRa9TéiG(è4iù"-*YW9*MpRp?p7T*CLFùpwKxS^SxIx2Mè'MFd!QyeqAUlsAeu5ZJ2mppSbEz6,dyéNezh?cRRmW866h4ç88pXoç_qqD7NDsClLAPISçCKrez(gU32L5è7bslhLtcH7J,Way8hnmUeRT_^v4IJ8Q*7;oé!JkéGRù92S9E9igV)-Ks"q::6RclgK0mù4^*W9ç7tg^AwuixFSœ'OtRI3EHgHEFIzz"qj!vmt83Pwvo0'!7^(NS0*z-z5YWbKQSSIu'cgj'HR:œLsFWKœpVe?WO6Fkts48R7_"BjM(4:TE2glœ:v9)O8)I*ù6K9ùQG5??,PZcF(sl7qL4(é;!Yà9,8,4à_*910000CHARSLGTH</textJust10000Char>
+</soapenv:Envelope>
diff --git a/pom.xml b/pom.xml
index b374e905920fc0b9df2c227245db982c016de61b..61a5ee937cdf0cdd17c1c28a028fc20bdfe7b46d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,5 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
 
     <parent>
@@ -24,18 +26,25 @@
         <url>https://gazelle.ihe.net/jenkins/job/MessageContentAnalyzer/</url>
     </ciManagement>
     <scm>
-        <url>https://scm.gforge.inria.fr/anonscm/svn/gazelle/Maven/message-content-analyzer/trunk</url>
-        <connection>scm:svn:svn+ssh://scm.gforge.inria.fr/svn/gazelle/Maven/message-content-analyzer/trunk</connection>
-        <developerConnection>scm:svn:svn+ssh://scm.gforge.inria.fr/svn/gazelle/Maven/message-content-analyzer/trunk
-        </developerConnection>
+        <connection>scm:git:${git.project.url}</connection>
+        <url>scm:git:${git.project.url}</url>
+        <developerConnection>scm:git:${git.project.url}</developerConnection>
+        <tag>HEAD</tag>
     </scm>
 
+
     <properties>
+        <git.user.name>gitlab-ci</git.user.name>
+        <git.user.token>changeit</git.user.token>
+        <git.project.url>https://${git.user.name}:${git.user.token}@gitlab.inria.fr/gazelle/library/message-content-analyzer</git.project.url>
+
         <gazelle.model.version>4.0.36</gazelle.model.version>
         <powermock.version>1.7.1</powermock.version>
         <mockito.version>1.10.19</mockito.version>
         <maven.compiler.source>1.7</maven.compiler.source>
         <maven.compiler.target>1.7</maven.compiler.target>
+        <maven.release.plugin.version>2.5.3</maven.release.plugin.version>
+        <nexus.staging.maven.plugin.version>1.6.8</nexus.staging.maven.plugin.version>
         <version.compiler.plugin>3.6.1</version.compiler.plugin>
         <version.resources.plugin>3.0.2</version.resources.plugin>
         <version.dependency.plugin>3.0.0</version.dependency.plugin>
@@ -47,6 +56,7 @@
         <gazelle.plugins.version>1.60</gazelle.plugins.version>
         <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
         <sonar.jacoco.reportPaths>target/jacoco.exec</sonar.jacoco.reportPaths>
+        <sonar.maven.plugin>3.5.0.1254</sonar.maven.plugin>
     </properties>
 
     <modules>
@@ -99,6 +109,16 @@
                     <additionalparam>-Xdoclint:none</additionalparam>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>${maven.release.plugin.version}</version>
+                <configuration>
+                    <tagNameFormat>@{project.version}</tagNameFormat>
+                    <autoVersionSubmodules>true</autoVersionSubmodules>
+                    <releaseProfiles>release</releaseProfiles>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
     <dependencyManagement>
@@ -120,7 +140,7 @@
 
     <repositories>
         <repository>
-            <id>ihe-services</id>
+            <id>IHE</id>
             <name>IHE Services Public Maven Repository Group</name>
             <url>https://gazelle.ihe.net/nexus/content/groups/public/</url>
             <layout>default</layout>
@@ -148,5 +168,65 @@
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
+    <distributionManagement>
+        <repository>
+            <id>nexus-releases</id>
+            <url>https://gazelle.ihe.net/nexus/content/repositories/releases</url>
+        </repository>
+    </distributionManagement>
 
-</project>
\ No newline at end of file
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>sonar</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.sonarsource.scanner.maven</groupId>
+                        <artifactId>sonar-maven-plugin</artifactId>
+                        <version>${sonar.maven.plugin}</version>
+                        <executions>
+                            <execution>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>sonar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.sonatype.plugins</groupId>
+                        <artifactId>nexus-staging-maven-plugin</artifactId>
+                        <version>${nexus.staging.maven.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <id>default-deploy</id>
+                                <phase>deploy</phase>
+                                <goals>
+                                    <goal>deploy</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <serverId>nexus-releases</serverId>
+                            <nexusUrl>https://gazelle.ihe.net/nexus</nexusUrl>
+                            <skipStaging>true</skipStaging>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/settings.xml b/settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..74c7f731e922d297f7a90a8c21312f14e2102b2c
--- /dev/null
+++ b/settings.xml
@@ -0,0 +1,14 @@
+<servers>
+  <server>
+    <id>nexus-releases</id>
+    <username>${ARTIFACT_RELEASE_REPOSITORY_USER}</username>
+    <password>${ARTIFACT_RELEASE_REPOSITORY_PASS}</password>
+  </server>
+  <mirrors>
+        <mirror>
+            <id>nexus</id>
+            <mirrorOf>*</mirrorOf>
+            <url>https://gazelle.ihe.net/nexus/content/groups/public</url>
+        </mirror>
+    </mirrors>
+</servers>