The XML file top-level general structure is as follows:
<?xml version="1.0" ?>
<!DOCTYPE service_bundle
SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1" >
<service_bundle type="manifest"
name="..." >
...
</service_bundle >
NOTE
With respect to the above service_bundle tag, the name attribute can have any meaningful string value, but otherwise it's not broadly visible in general. When the service is delivered through a package, it seems usual to prefix the value of the name attribute with the package name, such as in "package:...". I suppose this sort of prefixing could be harmlessly adapted to other cases as well.The main disadvantage of using XML is its intrinsic verbosity.
For service development, the type attribute should always be manifest, although another useful value of profile is also valid but of secondary usage for replicating services' state configuration (enabled or disabled) across multiple systems.
Currently, there are no GUI tools for assisting SMF developers.