namespace c = "http://bitten.edgewall.org/tools/c" namespace hg = "http://bitten.edgewall.org/tools/hg" namespace java = "http://bitten.edgewall.org/tools/java" namespace mono = "http://bitten.edgewall.org/tools/mono" namespace php = "http://bitten.edgewall.org/tools/php" namespace python = "http://bitten.edgewall.org/tools/python" namespace sh = "http://bitten.edgewall.org/tools/sh" namespace svn = "http://bitten.edgewall.org/tools/svn" namespace x = "http://bitten.edgewall.org/tools/xml" element build { element step { attribute id { text }, attribute description { text }?, attribute onerror { "fail" | "continue" | "ignore" }?, (element report { attribute category { text }?, attribute file { text }? } | element attach { attribute file { text }?, attribute resource { text }?, attribute description { text }? } | element sh:exec { attribute executable { text }?, attribute file { text }?, attribute output { text }?, attribute args { text }?, attribute dir { text }?, attribute timeout { text }? } | element sh:pipe { attribute executable { text }?, attribute file { text }?, attribute input { text }?, attribute output { text }?, attribute args { text }?, attribute dir { text }? } | element c:autoreconf { attribute force { text }?, attribute install { text }?, attribute symlink { text }?, attribute warnings { text }?, attribute prepend_include { text }?, attribute include { text }? } | element c:configure { attribute file { text }?, attribute enable { text }?, attribute disable { text }?, attribute with { text }?, attribute without { text }?, attribute cflags { text }?, attribute cxxflags { text }? } | element c:gcov { attribute include { text }?, attribute exclude { text }?, attribute prefix { text }?, # undocumented attribute attribute root { text }? } | element c:make { attribute target { text }?, attribute file { text }?, attribute keep-going { text }?, attribute jobs { text }?, attribute directory { text }?, attribute args { text }? } | element c:cppunit { attribute file { text }? } | element java:ant { attribute file { text }?, attribute target { text }?, attribute args { text }?, # c:make uses dash, java:ant uses underscore. Why? attribute keep_going { text }? } | element java:cobertura { attribute file { text }? } | element java:junit { attribute file { text }?, attribute srcdir { text }? } | element mono:nunit { attribute file { text }? } | element php:phing { attribute file { text }?, attribute target { text }?, attribute args { text }?, attribute executable { text }? } | element php:phpunit { attribute file { text }? } | element php:coverage { attribute file { text }? } | element python:exec { attribute file { text }?, attribute module { text }?, attribute function { text }?, attribute args { text }?, attribute output { text }?, attribute timeout { text }? } | element python:distutils { attribute command { text }?, attribute options { text }?, attribute timeout { text }? } | element python:unittest { attribute file { text } } | element python:trace { attribute summary { text }?, attribute coverdir { text }?, attribute include { text }?, attribute exclude { text }? } | element python:coverage { attribute summary { text }?, attribute coverdir { text }?, attribute include { text }?, attribute exclude { text }? } | element python:figleaf { attribute summary { text }?, attribute include { text }?, attribute exclude { text }? } | element python:pylint { attribute file { text } } | element svn:checkout { attribute url { text }, attribute path { text }, attribute revision { text }, attribute dir { text }?, attribute verbose { text }?, attribute shared_path { text }?, attribute username { text }?, attribute password { text }?, attribute no_auth_cache { text }? } | element svn:export { attribute url { text }, attribute path { text }, attribute revision { text }, attribute dir { text }?, attribute username { text }?, attribute password { text }?, attribute no_auth_cache { text }? } | element svn:update { attribute revision { text }, attribute dir { text }?, attribute username { text }?, attribute password { text }?, attribute no_auth_cache { text }? } | element x:transform { attribute src { text }, attribute dest { text }, attribute stylesheet { text } } | element hg:pull { attribute revision { text }?, attribute dir { text }? })+ }+ }