package binding
Ordering
- Alphabetic
Visibility
- Public
- All
Type Members
-
macro
class
nameBasedXml extends Annotation with StaticAnnotation
This annotation enables name based XML literal.
This annotation enables name based XML literal.
All XML literals in methods that are annotated as nameBasedXml will be transformed to calls to functions in
xml
object.import scala.language.dynamics object xml { object texts extends Dynamic { def selectDynamic(value: String) = value } case class interpolation(expression: Any) object uris { object http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus1 { object elements { case class tagName2(attributesAndChildren: Any*) } } object http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus2 { object attributes { case class attribute3(attributeValue: Any) } case class interpolation(expression: Any) } } @inline def noPrefix[Uri](uri: Uri) = uri object prefixes extends Dynamic { @inline def applyDynamic[Uri](prefix: String)(uri: Uri) = uri } case class literal[A](a: A*) object elements { case class tagName1(attributesAndChildren: Any*) } object attributes { case class attribute1(attributeValue: Any) case class attribute2(attributeValue: Any) } object values extends Dynamic { def selectDynamic(value: String) = value } }
- Annotations
- @compileTimeOnly( ... )
Self-closing tags without prefixes
@nameBasedXml def myXml = <tagName1/> myXml should be(xml.literal(xml.elements.tagName1()))
, Self-closing tags with some prefixes
@nameBasedXml def myXml = <prefix1:tagName2 xmlns:prefix1="http://example.com/my-namespace-1"/> myXml should be(xml.literal(xml.prefixes.prefix1(xml.uris.http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus1).elements.tagName2()))
, Node list
@nameBasedXml def myXml = <tagName1/><prefix1:tagName2 xmlns:prefix1="http://example.com/my-namespace-1"/> myXml should be(xml.literal(xml.elements.tagName1(), xml.prefixes.prefix1(xml.uris.http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus1).elements.tagName2()))
, Attributes
case class f() @nameBasedXml def myXml = <tagName1 xmlns:prefix2="http://example.com/my-namespace-2" attribute1="special character: `" attribute2={ f() } prefix2:attribute3={"value"} /> myXml should be(xml.literal( xml.elements.tagName1( xml.attributes.attribute1("special character: `"), xml.attributes.attribute2(xml.interpolation(f())), xml.uris.http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus2.attributes.attribute3(xml.uris.http$colon$div$divexample$u002Ecom$divmy$minusnamespace$minus2.interpolation("value")) ) ))
- See also
Examples:
Value Members
- object nameBasedXml