1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
4
5 CDDL HEADER START
6
7 The contents of this file are subject to the terms of the
8 Common Development and Distribution License (the "License").
9 You may not use this file except in compliance with the License.
10
11 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12 or http://www.opensolaris.org/os/licensing.
13 See the License for the specific language governing permissions
14 and limitations under the License.
15
16 When distributing Covered Code, include this CDDL HEADER in each
17 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18 If applicable, add the following below this CDDL HEADER, with the
19 fields enclosed by brackets "[]" replaced with your own identifying
20 information: Portions Copyright [yyyy] [name of copyright owner]
21
22 CDDL HEADER END
23 -->
24
25 <!--
26 Service description DTD
27
28 Most attributes are string values (or an individual string from a
29 restricted set), but attributes with a specific type requirement are
30 noted in the comment describing the element.
31 -->
32
33 <!--
34 XInclude support
35
36 A series of service bundles may be composed via the xi:include tag.
37 smf(5) tools enforce that all bundles be of the same type.
38 -->
39
40 <!--
41 These entities are used for the property, propval and property_group
42 elements, that require type attributes for manifest, while for profiles
43 the type attributes are only implied.
44 -->
45
46 <!ENTITY % profile "IGNORE">
47 <!ENTITY % manifest "INCLUDE">
48
49 <!ELEMENT xi:include
50 (xi:fallback)
51 >
52 <!ATTLIST xi:include
53 href CDATA #REQUIRED
54 parse (xml|text) "xml"
55 encoding CDATA #IMPLIED
56 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
57 >
58
59 <!ELEMENT xi:fallback
60 ANY
61 >
62 <!ATTLIST xi:fallback
63 xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
64 >
65
66 <!--
67 stability
68
69 This element associates an SMI stability level with the parent
70 element. See attributes(5) for an explanation of interface
71 stability levels.
72
73 Its attribute is
74
75 value The stability level of the parent element.
76 -->
77
78 <!ELEMENT stability EMPTY>
79
80 <!ATTLIST stability
81 value ( Standard | Stable | Evolving | Unstable |
82 External | Obsolete ) #REQUIRED >
83
84 <!-- Property value lists -->
85
86 <!--
87 value_node
88
89 This element represents a single value within any of the typed
90 property value lists.
91
92 Its attribute is
93
94 value The value for this node in the list.
95 -->
96
97 <!ELEMENT value_node EMPTY>
98
99 <!ATTLIST value_node
100 value CDATA #REQUIRED>
101
102 <!--
103 count_list
104 integer_list
105 opaque_list
106 host_list
107 hostname_list
108 net_address_list
109 net_address_v4_list
110 net_address_v6_list
111 time_list
112 astring_list
113 ustring_list
114 boolean_list
115 fmri_list
116 uri_list
117
118 These elements represent the typed lists of values for a property.
119 Each contains one or more value_node elements representing each
120 value on the list.
121
122 None of these elements has attributes.
123 -->
124
125 <!ELEMENT count_list
126 ( value_node+ )>
127
128 <!ATTLIST count_list>
129
130 <!ELEMENT integer_list
131 ( value_node+ )>
132
133 <!ATTLIST integer_list>
134
135 <!ELEMENT opaque_list
136 ( value_node+ )>
137
138 <!ATTLIST opaque_list>
139
140 <!ELEMENT host_list
141 ( value_node+ )>
142
143 <!ATTLIST host_list>
144
145 <!ELEMENT hostname_list
146 ( value_node+ )>
147
148 <!ATTLIST hostname_list>
149
150 <!ELEMENT net_address_list
151 ( value_node+ )>
152
153 <!ATTLIST net_address_list>
154
155 <!ELEMENT net_address_v4_list
156 ( value_node+ )>
157
158 <!ATTLIST net_address_v4_list>
159
160 <!ELEMENT net_address_v6_list
161 ( value_node+ )>
162
163 <!ATTLIST net_address_v6_list>
164
165 <!ELEMENT time_list
166 ( value_node+ )>
167
168 <!ATTLIST time_list>
169
170 <!ELEMENT astring_list
171 ( value_node+ )>
172
173 <!ATTLIST astring_list>
174
175 <!ELEMENT ustring_list
176 ( value_node+ )>
177
178 <!ATTLIST ustring_list>
179
180 <!ELEMENT boolean_list
181 ( value_node+ )>
182
183 <!ATTLIST boolean_list>
184
185 <!ELEMENT fmri_list
186 ( value_node+ )>
187
188 <!ATTLIST fmri_list>
189
190 <!ELEMENT uri_list
191 ( value_node+ )>
192
193 <!ATTLIST uri_list>
194
195 <!-- Properties and property groups -->
196
197 <!--
198 property
199
200 This element is for a singly or multiply valued property within a
201 property group. It contains an appropriate value list element,
202 which is expected to be consistent with the type attribute.
203
204 Its attributes are
205
206 name The name of this property.
207
208 type The data type for this property.
209
210 override These values should replace values already in the
211 repository.
212 -->
213
214 <![%profile;[
215 <!ELEMENT property
216 ( count_list | integer_list | opaque_list | host_list | hostname_list |
217 net_address_list | net_address_v4_list | net_address_v6_list |
218 time_list | astring_list | ustring_list | boolean_list | fmri_list |
219 uri_list )? >
220
221 <!ATTLIST property
222 name CDATA #REQUIRED
223 type ( count | integer | opaque | host | hostname |
224 net_address | net_address_v4 | net_address_v6 | time |
225 astring | ustring | boolean | fmri | uri ) #IMPLIED
226 override ( true | false ) "false" >
227 ]]>
228
229 <![%manifest;[
230 <!ELEMENT property
231 ( count_list | integer_list | opaque_list | host_list | hostname_list |
232 net_address_list | net_address_v4_list | net_address_v6_list |
233 time_list | astring_list | ustring_list | boolean_list | fmri_list |
234 uri_list )? >
235
236 <!ATTLIST property
237 name CDATA #REQUIRED
238 type ( count | integer | opaque | host | hostname |
239 net_address | net_address_v4 | net_address_v6 | time |
240 astring | ustring | boolean | fmri | uri ) #REQUIRED
241 override ( true | false ) "false" >
242 ]]>
243
244 <!--
245 propval
246
247 This element is for a singly valued property within a property
248 group. List-valued properties must use the property element above.
249
250 Its attributes are
251
252 name The name of this property.
253
254 type The data type for this property.
255
256 value The value for this property. Must match type
257 restriction of type attribute.
258
259 override This value should replace any values already in the
260 repository.
261 -->
262
263 <![%profile;[
264 <!ELEMENT propval EMPTY>
265
266 <!ATTLIST propval
267 name CDATA #REQUIRED
268 type ( count | integer | opaque | host | hostname |
269 net_address | net_address_v4 | net_address_v6 | time |
270 astring | ustring | boolean | fmri | uri ) #IMPLIED
271 value CDATA #REQUIRED
272 override ( true | false ) "false" >
273 ]]>
274
275 <![%manifest;[
276 <!ELEMENT propval EMPTY>
277
278 <!ATTLIST propval
279 name CDATA #REQUIRED
280 type ( count | integer | opaque | host | hostname |
281 net_address | net_address_v4 | net_address_v6 | time |
282 astring | ustring | boolean | fmri | uri ) #REQUIRED
283 value CDATA #REQUIRED
284 override ( true | false ) "false" >
285 ]]>
286
287 <!--
288 property_group
289
290 This element is for a set of related properties on a service or
291 instance. It contains an optional stability element, as well as
292 zero or more property-containing elements.
293
294 Its attributes are
295
296 name The name of this property group.
297
298 type A category for this property group. Groups of type
299 "framework", "implementation" or "template" are primarily
300 of interest to the service management facility, while
301 groups of type "application" are expected to be only of
302 interest to the service to which this group is attached.
303 Other types may be introduced using the service symbol
304 namespace conventions.
305
306 delete If in the repository, this property group should be removed.
307 -->
308
309 <![%profile;[
310 <!ELEMENT property_group
311 ( stability?, ( propval | property )* )>
312
313 <!ATTLIST property_group
314 name CDATA #REQUIRED
315 type CDATA #IMPLIED
316 delete ( true | false ) "false" >
317 ]]>
318
319 <![%manifest;[
320 <!ELEMENT property_group
321 ( stability?, ( propval | property )* )>
322
323 <!ATTLIST property_group
324 name CDATA #REQUIRED
325 type CDATA #REQUIRED
326 delete ( true | false ) "false" >
327 ]]>
328
329 <!--
330 service_fmri
331
332 This element defines a reference to a service FMRI (for either a
333 service or an instance).
334
335 Its attribute is
336
337 value The FMRI.
338 -->
339
340 <!ELEMENT service_fmri EMPTY>
341
342 <!ATTLIST service_fmri
343 value CDATA #REQUIRED>
344
345 <!-- Dependencies -->
346
347 <!--
348 dependency
349
350 This element identifies a group of FMRIs upon which the service is
351 in some sense dependent. Its interpretation is left to the
352 restarter to which a particular service instance is delegated. It
353 contains a group of service FMRIs, as well as a block of properties.
354
355 Its attributes are
356
357 name The name of this dependency.
358
359 grouping The relationship between the various FMRIs grouped
360 here; "require_all" of the FMRIs to be online, "require_any"
361 of the FMRIs to be online, or "exclude_all" of the FMRIs
362 from being online or in maintenance for the dependency to
363 be satisfied. "optional_all" dependencies are satisfied
364 when all of the FMRIs are either online or unable to come
365 online (because they are disabled, misconfigured, or one
366 of their dependencies is unable to come online).
367
368 restart_on The type of events from the FMRIs that the service should
369 be restarted for. "error" restarts the service if the
370 dependency is restarted due to hardware fault. "restart"
371 restarts the service if the dependency is restarted for
372 any reason, including hardware fault. "refresh" restarts
373 the service if the dependency is refreshed or restarted for
374 any reason. "none" will never restart the service due to
375 dependency state changes.
376
377 type The type of dependency: on another service ('service'), on
378 a filesystem path ('path'), or another dependency type.
379
380 delete This dependency should be deleted.
381 -->
382
383 <!ELEMENT dependency
384 ( service_fmri*, stability?, ( propval | property )* ) >
385
386 <!ATTLIST dependency
387 name CDATA #REQUIRED
388 grouping ( require_all | require_any | exclude_all |
389 optional_all ) #REQUIRED
390 restart_on ( error | restart | refresh | none ) #REQUIRED
391 type CDATA #REQUIRED
392 delete ( true | false ) "false" >
393
394 <!-- Dependents -->
395
396 <!--
397 dependent
398
399 This element identifies a service which should depend on this service. It
400 corresponds to a dependency in the named service. The grouping and type
401 attributes of that dependency are implied to be "require_all" and
402 "service", respectively.
403
404 Its attributes are
405
406 name The name of the dependency property group to create in the
407 dependent entity.
408
409 grouping The grouping relationship of the dependency property
410 group to create in the dependent entity. See "grouping"
411 attribute on the dependency element.
412
413 restart_on The type of events from this service that the named service
414 should be restarted for.
415
416 delete True if this dependent should be deleted.
417
418 override Whether to replace an existing dependent of the same name.
419
420 -->
421
422 <!ELEMENT dependent
423 ( service_fmri, stability?, ( propval | property )* ) >
424
425 <!ATTLIST dependent
426 name CDATA #REQUIRED
427 grouping ( require_all | require_any | exclude_all |
428 optional_all) #REQUIRED
429 restart_on ( error | restart | refresh | none) #REQUIRED
430 delete ( true | false ) "false"
431 override ( true | false ) "false" >
432
433 <!-- Method execution context, security profile, and credential definitions -->
434
435 <!--
436 envvar
437
438 An environment variable. It has two attributes:
439
440 name The name of the environment variable.
441 value The value of the environment variable.
442 -->
443
444 <!ELEMENT envvar EMPTY>
445
446 <!ATTLIST envvar
447 name CDATA #REQUIRED
448 value CDATA #REQUIRED >
449
450 <!--
451 method_environment
452
453 This element defines the environment for a method. It has no
454 attributes, and one or more envvar child elements.
455 -->
456
457 <!ELEMENT method_environment (envvar+) >
458
459 <!ATTLIST method_environment>
460
461 <!--
462 method_profile
463
464 This element indicates which exec_attr(5) profile applies to the
465 method context being defined.
466
467 Its attribute is
468
469 name The name of the profile.
470 -->
471
472 <!ELEMENT method_profile EMPTY>
473
474 <!ATTLIST method_profile
475 name CDATA #REQUIRED >
476
477 <!--
478 method_credential
479
480 This element specifies credential attributes for the execution
481 method to use.
482
483 Its attributes are
484
485 user The user ID, in numeric or text form.
486
487 group The group ID, in numeric or text form. If absent or
488 ":default", the group associated with the user in the
489 passwd database.
490
491 supp_groups Supplementary group IDs to be associated with the
492 method, separated by commas or spaces. If absent or
493 ":default", initgroups(3C) will be used.
494
495 privileges An optional string specifying the privilege set.
496
497 limit_privileges An optional string specifying the limit
498 privilege set.
499 -->
500
501 <!ELEMENT method_credential EMPTY>
502
503 <!ATTLIST method_credential
504 user CDATA #REQUIRED
505 group CDATA #IMPLIED
506 supp_groups CDATA #IMPLIED
507 privileges CDATA #IMPLIED
508 limit_privileges CDATA #IMPLIED >
509
510 <!--
511 method_context
512
513 This element combines credential and resource management attributes
514 for execution methods. It may contain a method_environment, or
515 a method_profile or method_credential element.
516
517 Its attributes are
518
519 working_directory The home directory to launch the method from.
520 ":default" can be used as a token to indicate use of the
521 user specified by the credential or profile specified.
522
523 project The project ID, in numeric or text form. ":default" can
524 be used as a token to indicate use of the project
525 identified by getdefaultproj(3PROJECT) for the non-root
526 user specified by the credential or profile specified.
527 If the user is root, ":default" designates the project
528 the restarter is running in.
529
530 resource_pool The resource pool name to launch the method on.
531 ":default" can be used as a token to indicate use of the
532 pool specified in the project(4) entry given in the
533 "project" attribute above.
534 -->
535 <!ELEMENT method_context
536 ( (method_profile | method_credential)?, method_environment? ) >
537
538 <!ATTLIST method_context
539 working_directory CDATA #IMPLIED
540 project CDATA #IMPLIED
541 resource_pool CDATA #IMPLIED >
542
543 <!-- Restarter delegation, methods, and monitors -->
544
545 <!--
546 exec_method
547
548 This element describes one of the methods used by the designated
549 restarter to act on the service instance. Its interpretation is
550 left to the restarter to which a particular service instance is
551 delegated. It contains a set of attributes, an optional method
552 context, and an optional stability element for the optional
553 properties that can be included.
554
555 Its attributes are
556
557 type The type of method, either "method" or "monitor".
558
559 name Name of this execution method. The method names are
560 usually a defined interface of the restarter to which an
561 instance of this service is delegated.
562
563 exec The string identifying the action to take. For
564 svc.startd(1M), this is a string suitable to pass to
565 exec(2).
566
567 timeout_seconds [integer] Duration, in seconds, to wait for this
568 method to complete. A '0' or '-1' denotes an infinite
569 timeout.
570
571 delete If in the repository, the property group for this method
572 should be removed.
573 -->
574
575 <!ELEMENT exec_method
576 ( method_context?, stability?, ( propval | property )* ) >
577
578 <!ATTLIST exec_method
579 type ( method | monitor ) #REQUIRED
580 name CDATA #REQUIRED
581 exec CDATA #REQUIRED
582 timeout_seconds CDATA #REQUIRED
583 delete ( true | false ) "false" >
584
585 <!--
586 restarter
587
588 A flag element identifying the restarter to which this service or
589 service instance is delegated. Contains the FMRI naming the
590 delegated restarter.
591
592 This element has no attributes.
593 -->
594
595 <!ELEMENT restarter
596 ( service_fmri ) >
597
598 <!ATTLIST restarter>
599
600 <!--
601 Templates
602 -->
603
604 <!--
605 doc_link
606
607 The doc_link relates a resource described by the given URI to the
608 service described by the containing template. The resource is
609 expected to be a documentation or elucidatory reference of some
610 kind.
611
612 Its attributes are
613
614 name A label for this resource.
615
616 uri A URI to the resource.
617 -->
618
619 <!ELEMENT doc_link EMPTY>
620
621 <!ATTLIST doc_link
622 name CDATA #REQUIRED
623 uri CDATA #REQUIRED >
624
625 <!--
626 manpage
627
628 The manpage element connects the reference manual page to the
629 template's service.
630
631 Its attributes are
632
633 title The manual page title.
634
635 section The manual page's section.
636
637 manpath The MANPATH environment variable, as described in man(1)
638 that is required to reach the named manual page
639 -->
640
641 <!ELEMENT manpage EMPTY>
642
643 <!ATTLIST manpage
644 title CDATA #REQUIRED
645 section CDATA #REQUIRED
646 manpath CDATA ":default" >
647
648 <!--
649 documentation
650
651 The documentation element groups an arbitrary number of doc_link
652 and manpage references.
653
654 It has no attributes.
655 -->
656
657 <!ELEMENT documentation
658 ( doc_link | manpage )* >
659
660 <!ATTLIST documentation>
661
662 <!--
663 loctext
664
665 The loctext element is a container for localized text.
666
667 Its sole attribute is
668
669 xml:lang The name of the locale, in the form accepted by LC_ALL,
670 etc. See locale(5).
671 -->
672 <!ELEMENT loctext
673 (#PCDATA) >
674
675 <!ATTLIST loctext
676 xml:lang CDATA #REQUIRED >
677
678 <!--
679 description
680
681 The description holds a set of potentially longer, localized strings that
682 consist of a short description of the service.
683
684 The description has no attributes.
685 -->
686 <!ELEMENT description
687 ( loctext+ ) >
688
689 <!ATTLIST description>
690
691 <!--
692 common_name
693
694 The common_name holds a set of short, localized strings that
695 represent a well-known name for the service in the given locale.
696
697 The common_name has no attributes.
698 -->
699 <!ELEMENT common_name
700 ( loctext+ ) >
701
702 <!ATTLIST common_name>
703
704 <!--
705 units
706
707 The units a numerical property is expressed in.
708 -->
709
710 <!ELEMENT units
711 ( loctext+ ) >
712
713 <!ATTLIST units>
714
715 <!--
716 visibility
717
718 Expresses how a property is typically accessed. This isn't
719 intended as access control, but as an indicator as to how a
720 property is used.
721
722 Its attributes are:
723
724 value 'hidden', 'readonly', or 'readwrite' indicating that
725 the property should be hidden from the user, shown but
726 read-only, or modifiable.
727 -->
728
729 <!ELEMENT visibility EMPTY>
730
731 <!ATTLIST visibility
732 value ( hidden | readonly | readwrite ) #REQUIRED >
733
734 <!--
735 value
736
737 Describes a legal value for a property value, and optionally contains a
738 human-readable name and description for the specified property
739 value.
740
741 Its attributes are:
742
743 name A string representation of the value.
744 -->
745
746 <!ELEMENT value
747 ( common_name?, description? ) >
748
749 <!ATTLIST value
750 name CDATA #REQUIRED >
751
752 <!--
753 values
754
755 Human-readable names and descriptions for valid values of a property.
756 -->
757
758 <!ELEMENT values
759 (value+) >
760
761 <!ATTLIST values>
762
763 <!--
764 cardinality
765
766 Places a constraint on the number of values the property can take
767 on.
768
769 Its attributes are:
770 min minimum number of values
771 max maximum number of values
772
773 Both attributes are optional. If min is not specified, it defaults to
774 0. If max is not specified it indicates an unlimited number of values.
775 If neither is specified this indicates 0 or more values.
776 -->
777
778 <!ELEMENT cardinality EMPTY>
779
780 <!ATTLIST cardinality
781 min CDATA "0"
782 max CDATA "18446744073709551615">
783
784 <!--
785 internal_separators
786
787 Indicates the separators used within a property's value used to
788 separate the actual values. Used in situations where multiple
789 values are packed into a single property value instead of using a
790 multi-valued property.
791 -->
792
793 <!ELEMENT internal_separators
794 (#PCDATA) >
795
796 <!ATTLIST internal_separators>
797
798 <!--
799 range
800
801 Indicates a range of possible integer values.
802
803 Its attributes are:
804
805 min The minimum value of the range (inclusive).
806 max The maximum value of the range (inclusive).
807 -->
808
809 <!ELEMENT range EMPTY>
810
811 <!ATTLIST range
812 min CDATA #REQUIRED
813 max CDATA #REQUIRED >
814
815 <!--
816 constraints
817
818 Provides a set of constraints on the values a property can take on.
819 -->
820
821 <!ELEMENT constraints
822 ( value*, range* ) >
823 <!ATTLIST constraints>
824
825 <!--
826 include_values
827
828 Includes an entire set of values in the choices block.
829
830 Its attributes are:
831
832 type Either "constraints" or "values", indicating an
833 inclusion of all values allowed by the property's
834 constraints or all values for which there are
835 human-readable names and descriptions, respectively.
836 -->
837
838 <!ELEMENT include_values EMPTY>
839
840 <!ATTLIST include_values
841 type ( constraints | values ) #REQUIRED >
842
843 <!--
844 choices
845
846 Provides a set of common choices for the values a property can take
847 on. Useful in those cases where the possibilities are unenumerable
848 or merely inconveniently legion, and a manageable subset is desired
849 for presentation in a user interface.
850 -->
851
852 <!ELEMENT choices
853 ( value*, range*, include_values* ) >
854
855 <!ATTLIST choices>
856
857 <!--
858 prop_pattern
859
860
861 The prop_pattern describes one property of the enclosing property group
862 pattern.
863
864 Its attributes are:
865
866 name The property's name.
867 type The property's type.
868 required
869 If the property group is present, this property is required.
870
871 type can be omitted if required is false.
872 -->
873
874 <!ELEMENT prop_pattern
875 ( common_name?, description?, units?, visibility?, cardinality?,
876 internal_separators?, values?, constraints?, choices? ) >
877
878 <!ATTLIST prop_pattern
879 name CDATA #REQUIRED
880 type ( count | integer | opaque | host | hostname |
881 net_address | net_address_v4 | net_address_v6 | time |
882 astring | ustring | boolean | fmri | uri ) #IMPLIED
883 required ( true | false ) "false" >
884
885 <!--
886 pg_pattern
887
888 The pg_pattern describes one property group.
889 Depending on the element's attributes, these descriptions may apply
890 to just the enclosing service/instance, instances of the enclosing
891 service, delegates of the service (assuming it is a restarter), or
892 all services.
893
894 Its attributes are:
895
896 name The property group's name. If not specified, it
897 matches all property groups with the specified type.
898 type The property group's type. If not specified, it
899 matches all property groups with the specified name.
900 required
901 If the property group is required.
902 target The scope of the pattern, which may be all, delegate,
903 instance, or this. 'all' is reserved for framework use
904 and applies the template to all services on the system.
905 'delegate' is reserved for restarters, and means the
906 template applies to all services which use the restarter.
907 'this' would refer to the defining service or instance.
908 'instance' can only be used in a service's template block,
909 and means the definition applies to all instances of this
910 service.
911
912 -->
913
914 <!ELEMENT pg_pattern
915 ( common_name?, description?, prop_pattern* ) >
916
917 <!ATTLIST pg_pattern
918 name CDATA ""
919 type CDATA ""
920 required ( true | false ) "false"
921 target ( this | instance | delegate | all ) "this" >
922
923 <!--
924 template
925
926 The template contains a collection of metadata about the service.
927 It contains a localizable string that serves as a common,
928 human-readable name for the service. (This name should be less than
929 60 characters in a single byte locale.) The template may optionally
930 contain a longer localizable description of the service, a
931 collection of links to documentation, either in the form of manual
932 pages or in the form of URI specifications to external documentation
933 sources (such as docs.sun.com).
934
935 The template has no attributes.
936 -->
937 <!ELEMENT template
938 ( common_name, description?, documentation?, pg_pattern* ) >
939
940 <!ATTLIST template>
941
942 <!-- Notification Parameters -->
943
944 <!ELEMENT paramval EMPTY>
945
946 <!ATTLIST paramval
947 name CDATA #REQUIRED
948 value CDATA #REQUIRED>
949
950 <!ELEMENT parameter
951 ( value_node* )>
952
953 <!ATTLIST parameter
954 name CDATA #REQUIRED>
955
956 <!ELEMENT event EMPTY>
957
958 <!ATTLIST event
959 value CDATA #REQUIRED>
960
961 <!ELEMENT type
962 ( ( parameter | paramval )* )>
963
964 <!ATTLIST type
965 name CDATA #REQUIRED
966 active ( true | false ) "true" >
967
968 <!--
969 notification parameters
970
971 This element sets the notification parameters for Software Events and
972 Fault Management problem lifecycle events.
973 -->
974
975 <!ELEMENT notification_parameters
976 ( event, type+ )>
977
978 <!ATTLIST notification_parameters>
979
980 <!-- Services and instances -->
981
982 <!--
983 create_default_instance
984
985 A flag element indicating that an otherwise empty default instance
986 of this service (named "default") should be created at install, with
987 its enabled property set as given.
988
989 Its attribute is
990
991 enabled [boolean] The initial value for the enabled state of
992 this instance.
993 -->
994
995 <!ELEMENT create_default_instance EMPTY >
996
997 <!ATTLIST create_default_instance
998 enabled ( true | false ) #REQUIRED >
999
1000 <!--
1001 single_instance
1002
1003 A flag element stating that this service can only have a single
1004 instance on a particular system.
1005 -->
1006
1007 <!ELEMENT single_instance EMPTY>
1008
1009 <!ATTLIST single_instance>
1010
1011 <!--
1012 instance
1013
1014 The service instance is the object representing a software component
1015 that will run on the system if enabled. It contains an enabled
1016 element, a set of dependencies on other services, potentially
1017 customized methods or configuration data, an optional method
1018 context, and a pointer to its restarter. (If no restarter is
1019 specified, the master restarter, svc.startd(1M), is assumed to be
1020 responsible for the service.)
1021
1022 Its attributes are
1023
1024 name The canonical name for this instance of the service.
1025
1026 enabled [boolean] The initial value for the enabled state of
1027 this instance.
1028 -->
1029
1030 <!ELEMENT instance
1031 ( restarter?, dependency*, dependent*, method_context?,
1032 exec_method*, notification_parameters*, property_group*,
1033 template? ) >
1034
1035 <!ATTLIST instance
1036 name CDATA #REQUIRED
1037 enabled ( true | false ) #REQUIRED >
1038
1039 <!--
1040 service
1041
1042 The service contains the set of instances defined by default for
1043 this service, an optional method execution context, any default
1044 methods, the template, and various restrictions or advice applicable
1045 at installation. The method execution context and template elements
1046 are required for service_bundle documents with type "manifest", but
1047 are optional for "profile" or "archive" documents.
1048
1049 Its attributes are
1050
1051 name The canonical name for the service.
1052
1053 version [integer] The integer version for this service.
1054
1055 type Whether this service is a simple service, a delegated
1056 restarter, or a milestone (a synthetic service that
1057 collects a group of dependencies).
1058 -->
1059
1060 <!ELEMENT service
1061 ( create_default_instance?, single_instance?, restarter?,
1062 dependency*, dependent*, method_context?, exec_method*,
1063 notification_parameters*, property_group*, instance*,
1064 stability?, template? ) >
1065
1066 <!ATTLIST service
1067 name CDATA #REQUIRED
1068 version CDATA #REQUIRED
1069 type ( service | restarter | milestone ) #REQUIRED >
1070
1071 <!--
1072 service_bundle
1073
1074 The bundle possesses two attributes:
1075
1076 type How this file is to be understood by the framework (or
1077 used in a non-framework compliant way). Standard types
1078 are 'archive', 'manifest', and 'profile'.
1079
1080 name A name for the bundle. Manifests should be named after
1081 the package which delivered them; profiles should be
1082 named after the "feature set nickname" they intend to
1083 enable.
1084 -->
1085
1086 <!ELEMENT service_bundle
1087 ( service_bundle* | service* | xi:include* )>
1088
1089 <!ATTLIST service_bundle
1090 type CDATA #REQUIRED
1091 name CDATA #REQUIRED>