Add tests for ScriptTask.script

The tests already succeed because of ExtendedMetadata defined 
for this structural feature, the same should apply to 
GlobalScriptTask.script and TextAnnotation.text.
diff --git a/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMISerializationTest.java b/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMISerializationTest.java
index 8556a4a..7f29e0d 100644
--- a/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMISerializationTest.java
+++ b/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMISerializationTest.java
@@ -100,4 +100,23 @@
                     Node.CDATA_SECTION_NODE == nodeType);
         }
     }
+
+    @Override
+    protected void checkSerializationScriptContent(Resource res) throws SAXException, IOException,
+            ParserConfigurationException {
+        DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
+        Document xml = fact.newDocumentBuilder().parse(new File(res.getURI().toFileString()));
+        Node scriptNode = xml.getElementsByTagName("flowElements").item(0);
+
+        for (int i = 0; i < scriptNode.getChildNodes().getLength(); i++) {
+            Node cur = scriptNode.getChildNodes().item(i);
+            short nodeType = cur.getNodeType();
+            assertFalse("Documentation has text content (not valid in XMI)",
+                    Node.TEXT_NODE == nodeType && cur.getTextContent().trim().length() > 0);
+            assertFalse("Documentation has CDATA content (not valid in XMI)",
+                    Node.CDATA_SECTION_NODE == nodeType);
+            assertFalse("Documentation has element content 'script' (not valid in XMI)",
+                    "script".equals(cur.getNodeName()));
+        }
+    }
 }
diff --git a/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMLSerializationTest.java b/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMLSerializationTest.java
index d226008..abacac3 100644
--- a/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMLSerializationTest.java
+++ b/org.eclipse.bpmn2.tests/src/org/eclipse/bpmn2/tests/XMLSerializationTest.java
@@ -29,6 +29,8 @@
 import org.eclipse.bpmn2.Documentation;
 import org.eclipse.bpmn2.Process;
 import org.eclipse.bpmn2.RootElement;
+import org.eclipse.bpmn2.ScriptTask;
+import org.eclipse.bpmn2.ServiceTask;
 import org.eclipse.bpmn2.util.Bpmn2ResourceFactoryImpl;
 import org.eclipse.bpmn2.util.NamespaceHelper;
 import org.eclipse.emf.common.EMFPlugin;
@@ -77,6 +79,10 @@
     @Before
     public void setUpFields() {
         model = Bpmn2Factory.eINSTANCE.createDefinitions();
+        model.setExporter("Exporter");
+        model.setExporterVersion("1");
+        model.setName("Name");
+        model.setTargetNamespace("tns1");
         createdFiles = new LinkedList<URI>();
     }
 
@@ -261,10 +267,6 @@
         final String docId = "doc1";
         final String docText = "Documentation text";
 
-        model.setExporter("Exporter");
-        model.setExporterVersion("1");
-        model.setName("Name");
-        model.setTargetNamespace("tns1");
         Process p = Bpmn2Factory.eINSTANCE.createProcess();
         p.setName("Name");
         Documentation doc = Bpmn2Factory.eINSTANCE.createDocumentation();
@@ -289,4 +291,36 @@
         assertNull("Documentation has an attribute 'text' (invalid acc. to XML schema)", docNode
                 .getAttributes().getNamedItem("text"));
     }
+
+    @Test
+    public void testScript() throws Exception {
+        final String scriptId = "st1";
+        final String scriptContent = "Script content";
+
+        Process p = Bpmn2Factory.eINSTANCE.createProcess();
+        p.setName("Name");
+        ScriptTask st = Bpmn2Factory.eINSTANCE.createScriptTask();
+        st.setId(scriptId);
+        st.setName("Name");
+        st.setScript(scriptContent);
+        st.setScriptFormat("Script format");
+        p.getFlowElements().add(st);
+        model.getRootElements().add(p);
+
+        Resource res = createWithContentAndLoad("scriptContent", model);
+        EObject stLoaded = res.getEObject(scriptId);
+        assertTrue(stLoaded instanceof ScriptTask);
+        assertEquals(scriptContent, ((ScriptTask) stLoaded).getScript());
+
+        checkSerializationScriptContent(res);
+    }
+
+    protected void checkSerializationScriptContent(Resource res) throws SAXException, IOException,
+            ParserConfigurationException {
+        DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
+        Document xml = fact.newDocumentBuilder().parse(new File(res.getURI().toFileString()));
+        Node scriptNode = xml.getElementsByTagName("bpmn2:scriptTask").item(0);
+        assertNull("ScriptTask has an attribute 'script' (invalid acc. to XML schema)", scriptNode
+                .getAttributes().getNamedItem("script"));
+    }
 }