]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.data/scl/Data/XML.scl
CDATA support to Data/XML
[simantics/platform.git] / bundles / org.simantics.scl.data / scl / Data / XML.scl
index b49f6a6c1771ca696541f20a3ebc00844d7d6092..7f836aaa43b5abcb2da0f7428d461432b1e05ee2 100644 (file)
-import "OSGi"\r
-\r
-importJava "org.jdom2.Document" where\r
-    data Document\r
-    \r
-    @JavaName "<init>"\r
-    createDocument :: Element -> <Proc> Document\r
-    \r
-    @JavaName getRootElement\r
-    rootElementOf :: Document -> <Proc> Element\r
-    \r
-    @JavaName setRootElement\r
-    setRootElement :: Document -> Element -> <Proc> ()\r
-    \r
-importJava "org.jdom2.Element" where\r
-    data Element\r
-    \r
-    @JavaName "<init>"\r
-    createElement :: String -> <Proc> Element\r
-    \r
-    @JavaName getName\r
-    nameOf :: Element -> <Proc> String\r
-    \r
-    @JavaName getText\r
-    textOf :: Element -> <Proc> String\r
-    \r
-    @JavaName getParentElement\r
-    parentOf :: Element -> <Proc> Maybe Element\r
-    \r
-    @JavaName getChildren\r
-    childrenWithNameOf :: Element -> String -> <Proc> [Element]\r
-    \r
-    @JavaName getChildren\r
-    childrenOf :: Element -> <Proc> [Element]\r
-    \r
-    @JavaName getChild\r
-    childWithNameOf :: Element -> String -> <Proc> Maybe Element\r
-    \r
-    @JavaName getAttributeValue\r
-    attributeOf :: Element -> String -> <Proc> Maybe String\r
-    \r
-    @JavaName getAttributes\r
-    attributesOf :: Element -> <Proc> [Attribute]\r
-    \r
-    @JavaName addContent\r
-    addChild :: Element -> Element -> <Proc> ()\r
-    \r
-    setName :: Element -> String -> <Proc> ()\r
-    \r
-    setText :: Element -> String -> <Proc> ()\r
-    \r
-    setAttribute :: Element -> String -> String -> <Proc> ()\r
-    \r
-importJava "org.jdom2.Attribute" where\r
-    data Attribute\r
-    \r
-    @JavaName getValue\r
-    valueOfAttribute :: Attribute -> <Proc> String\r
-    \r
-    @JavaName getName\r
-    nameOfAttribute :: Attribute -> <Proc> String\r
-\r
-Element ?parentElement ?childName ?childElement :-\r
-    @ffb 1.0\r
-    ?childName = nameOf ?childElement\r
-    Optional ?parentElement (parentOf ?childElement)\r
-        \r
-    @bbf 10.0\r
-    ?childElement <- childrenWithNameOf ?parentElement ?childName\r
-\r
-    @bff 10.0\r
-    ?childElement <- childrenOf ?parentElement\r
-    ?childName = nameOf ?childElement\r
-    \r
-    @enforce\r
-    Execute (addNamedChild ?parentElement ?childName ?childElement)\r
-    \r
-Attribute ?element ?attributeName ?attributeValue :-\r
-    @bbf 0.95\r
-    Optional ?attributeValue (attributeOf ?element ?attributeName)\r
-\r
-    @bff 4.0\r
-    ?attribute <- attributesOf ?element\r
-    ?attributeName = nameOfAttribute ?attribute\r
-    ?attributeValue = valueOfAttribute ?attribute\r
-\r
-    @enforce\r
-    Execute do\r
-        setAttribute ?element ?attributeName ?attributeValue\r
-\r
-TextContent ?element ?textContent :-\r
-    @bf 1\r
-    ?textContent = textOf ?element\r
-    \r
-    @enforce\r
-    Execute do\r
-        setText ?element ?textContent\r
-\r
-XPathElement ?parentElement ?xpathExpression ?childElement :-\r
-    @bbf 10\r
-    ?childElement <- elementsByXPath ?parentElement ?xpathExpression\r
-\r
-importJava "org.simantics.scl.data.xml.JDomHelper" where\r
-    parseString :: String -> <Proc> Document\r
-    parseFile :: String -> <Proc> Document\r
-    outputString :: Document -> <Proc> String\r
-    \r
-    elementsByXPath :: Element -> String -> <Proc> [Element]\r
-    addNamedChild :: Element -> String -> Element -> <Proc> ()\r
-    setNamespace :: Document -> String -> <Proc> ()\r
-    setElementNamespace :: Element -> String -> <Proc> ()\r
-    clearNamespace :: Document -> <Proc> ()\r
-    clearElementNamespace :: Element -> <Proc> ()\r
-    sortChildrenWith :: (Element -> Element -> <e> Integer) -> Element -> <Proc,e> () \r
-    \r
-    parseStringWithSchemaFile :: String -> String -> <Proc> Document\r
-    //parseStringWithSchemaURL  :: URL    -> String -> <Proc> Document\r
-    parseFileWithSchemaFile   :: String -> String -> <Proc> Document\r
-    //parseFileWithSchemaURL    :: URL    -> String -> <Proc> Document\r
-\r
-sortChildrenBy :: Ord a => (Element -> <e> a) -> Element -> <Proc,e> ()\r
+import "OSGi"
+
+importJava "org.jdom2.Document" where
+    data Document
+    
+    @JavaName "<init>"
+    createDocument :: Element -> <Proc> Document
+    
+    @JavaName getRootElement
+    rootElementOf :: Document -> <Proc> Element
+    
+    @JavaName setRootElement
+    setRootElement :: Document -> Element -> <Proc> ()
+    
+importJava "org.jdom2.Element" where
+    data Element
+    
+    @JavaName "<init>"
+    createElement :: String -> <Proc> Element
+    
+    @JavaName getName
+    nameOf :: Element -> <Proc> String
+    
+    @JavaName getText
+    textOf :: Element -> <Proc> String
+    
+    @JavaName getParentElement
+    parentOf :: Element -> <Proc> Maybe Element
+    
+    @JavaName getChildren
+    childrenWithNameOf :: Element -> String -> <Proc> [Element]
+    
+    @JavaName getChildren
+    childrenOf :: Element -> <Proc> [Element]
+    
+    @JavaName getChild
+    childWithNameOf :: Element -> String -> <Proc> Maybe Element
+    
+    @JavaName getAttributeValue
+    attributeOf :: Element -> String -> <Proc> Maybe String
+    
+    @JavaName getAttributes
+    attributesOf :: Element -> <Proc> [Attribute]
+    
+    @JavaName addContent
+    addChild :: Element -> Element -> <Proc> ()
+    
+    setName :: Element -> String -> <Proc> ()
+    
+    setText :: Element -> String -> <Proc> ()
+    
+    setAttribute :: Element -> String -> String -> <Proc> ()
+    
+importJava "org.jdom2.Attribute" where
+    data Attribute
+    
+    @JavaName getValue
+    valueOfAttribute :: Attribute -> <Proc> String
+    
+    @JavaName getName
+    nameOfAttribute :: Attribute -> <Proc> String
+
+Element ?parentElement ?childName ?childElement :-
+    @ffb 1.0
+    ?childName = nameOf ?childElement
+    Optional ?parentElement (parentOf ?childElement)
+        
+    @bbf 10.0
+    ?childElement <- childrenWithNameOf ?parentElement ?childName
+
+    @bff 10.0
+    ?childElement <- childrenOf ?parentElement
+    ?childName = nameOf ?childElement
+    
+    @enforce
+    Execute (addNamedChild ?parentElement ?childName ?childElement)
+    
+Attribute ?element ?attributeName ?attributeValue :-
+    @bbf 0.95
+    Optional ?attributeValue (attributeOf ?element ?attributeName)
+
+    @bff 4.0
+    ?attribute <- attributesOf ?element
+    ?attributeName = nameOfAttribute ?attribute
+    ?attributeValue = valueOfAttribute ?attribute
+
+    @enforce
+    Execute do
+        setAttribute ?element ?attributeName ?attributeValue
+
+TextContent ?element ?textContent :-
+    @bf 1
+    ?textContent = textOf ?element
+    
+    @enforce
+    Execute do
+        setText ?element ?textContent
+
+XPathElement ?parentElement ?xpathExpression ?childElement :-
+    @bbf 10
+    ?childElement <- elementsByXPath ?parentElement ?xpathExpression
+
+importJava "org.simantics.scl.data.xml.JDomHelper" where
+    parseString :: String -> <Proc> Document
+    parseFile :: String -> <Proc> Document
+    outputString :: Document -> <Proc> String
+    
+    elementsByXPath :: Element -> String -> <Proc> [Element]
+    addNamedChild :: Element -> String -> Element -> <Proc> ()
+    setNamespace :: Document -> String -> <Proc> ()
+    setElementNamespace :: Element -> String -> <Proc> ()
+    clearNamespace :: Document -> <Proc> ()
+    clearElementNamespace :: Element -> <Proc> ()
+    sortChildrenWith :: (Element -> Element -> <e> Integer) -> Element -> <Proc,e> () 
+    
+    parseStringWithSchemaFile :: String -> String -> <Proc> Document
+    //parseStringWithSchemaURL  :: URL    -> String -> <Proc> Document
+    parseFileWithSchemaFile   :: String -> String -> <Proc> Document
+    //parseFileWithSchemaURL    :: URL    -> String -> <Proc> Document
+
+    addCDATA :: Element -> String -> <Proc> ()
+    getCDATAs :: Element -> <Proc> [String]
+
+
+sortChildrenBy :: Ord a => (Element -> <e> a) -> Element -> <Proc,e> ()
 sortChildrenBy f el = sortChildrenWith (\x y -> compare (f x) (f y)) el 
\ No newline at end of file