Top > Blog Index > IDML の部品(XML)を MarkupBuilder で生成してみる

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宣言) にも対応しているのがうれしい。