IDML の部品(XML)を MarkupBuilder で生成してみる
InDesign SDK に含まれている IDML のサンプルの中に helloworld というのがある。 その中にある Story_story1.xml を groovy の MarkupBuilder 生成してみたのでメモ。
再現すべき Story_story1.xml
<?xml version="1.0" encoding="utf-8"?>
<idPkg:Story xmlns:idPkg="http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging" DOMVersion="6.0">
<Story Self="story1">
<Content>Hello World!</Content>
</Story>
</idPkg:Story>
Story_story1.xml を生成する groovy コード
import groovy.xml.MarkupBuilder
import groovy.xml.MarkupBuilderHelper
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
new MarkupBuilderHelper(xml).xmlDeclaration(version:'1.0',encoding:'UTF-8')
xml.'idPkg:Story'('xmlns:idPkg': 'http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging',DOMVersion:'6.0') {
Story(Self:'story1'){
Content('Hello World!')
}
}
println writer.toString()
XMLを groovy の MarkupBuilder 流に記述している部分の抜粋
xml.'idPkg:Story'('xmlns:idPkg': 'http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging',DOMVersion:'6.0') {
Story(Self:'story1'){
Content('Hello World!')
}
}
Namespace や XML Declaration(XML宣言) にも対応しているのがうれしい。