3 importJava "org.jdom2.Document" where
\r
7 createDocument :: Element -> <Proc> Document
\r
9 @JavaName getRootElement
\r
10 rootElementOf :: Document -> <Proc> Element
\r
12 @JavaName setRootElement
\r
13 setRootElement :: Document -> Element -> <Proc> ()
\r
15 importJava "org.jdom2.Element" where
\r
19 createElement :: String -> <Proc> Element
\r
22 nameOf :: Element -> <Proc> String
\r
25 textOf :: Element -> <Proc> String
\r
27 @JavaName getParentElement
\r
28 parentOf :: Element -> <Proc> Maybe Element
\r
30 @JavaName getChildren
\r
31 childrenWithNameOf :: Element -> String -> <Proc> [Element]
\r
33 @JavaName getChildren
\r
34 childrenOf :: Element -> <Proc> [Element]
\r
37 childWithNameOf :: Element -> String -> <Proc> Maybe Element
\r
39 @JavaName getAttributeValue
\r
40 attributeOf :: Element -> String -> <Proc> Maybe String
\r
42 @JavaName getAttributes
\r
43 attributesOf :: Element -> <Proc> [Attribute]
\r
45 @JavaName addContent
\r
46 addChild :: Element -> Element -> <Proc> ()
\r
48 setName :: Element -> String -> <Proc> ()
\r
50 setText :: Element -> String -> <Proc> ()
\r
52 setAttribute :: Element -> String -> String -> <Proc> ()
\r
54 importJava "org.jdom2.Attribute" where
\r
58 valueOfAttribute :: Attribute -> <Proc> String
\r
61 nameOfAttribute :: Attribute -> <Proc> String
\r
63 Element ?parentElement ?childName ?childElement :-
\r
65 ?childName = nameOf ?childElement
\r
66 Optional ?parentElement (parentOf ?childElement)
\r
69 ?childElement <- childrenWithNameOf ?parentElement ?childName
\r
72 ?childElement <- childrenOf ?parentElement
\r
73 ?childName = nameOf ?childElement
\r
76 Execute (addNamedChild ?parentElement ?childName ?childElement)
\r
78 Attribute ?element ?attributeName ?attributeValue :-
\r
80 Optional ?attributeValue (attributeOf ?element ?attributeName)
\r
83 ?attribute <- attributesOf ?element
\r
84 ?attributeName = nameOfAttribute ?attribute
\r
85 ?attributeValue = valueOfAttribute ?attribute
\r
89 setAttribute ?element ?attributeName ?attributeValue
\r
91 TextContent ?element ?textContent :-
\r
93 ?textContent = textOf ?element
\r
97 setText ?element ?textContent
\r
99 XPathElement ?parentElement ?xpathExpression ?childElement :-
\r
101 ?childElement <- elementsByXPath ?parentElement ?xpathExpression
\r
103 importJava "org.simantics.scl.data.xml.JDomHelper" where
\r
104 parseString :: String -> <Proc> Document
\r
105 parseFile :: String -> <Proc> Document
\r
106 outputString :: Document -> <Proc> String
\r
108 elementsByXPath :: Element -> String -> <Proc> [Element]
\r
109 addNamedChild :: Element -> String -> Element -> <Proc> ()
\r
110 setNamespace :: Document -> String -> <Proc> ()
\r
111 setElementNamespace :: Element -> String -> <Proc> ()
\r
112 clearNamespace :: Document -> <Proc> ()
\r
113 clearElementNamespace :: Element -> <Proc> ()
\r
114 sortChildrenWith :: (Element -> Element -> <e> Integer) -> Element -> <Proc,e> ()
\r
116 parseStringWithSchemaFile :: String -> String -> <Proc> Document
\r
117 //parseStringWithSchemaURL :: URL -> String -> <Proc> Document
\r
118 parseFileWithSchemaFile :: String -> String -> <Proc> Document
\r
119 //parseFileWithSchemaURL :: URL -> String -> <Proc> Document
\r
121 sortChildrenBy :: Ord a => (Element -> <e> a) -> Element -> <Proc,e> ()
\r
122 sortChildrenBy f el = sortChildrenWith (\x y -> compare (f x) (f y)) el