When adding money fields to a case summary, can case be the Root Element?

Bail and court ordered fines are not child properties of Case (they are not part of CaseType or inherited from ActivityType). However, there is a Bail property (of BailType, extends ActivityType), and a FinancialObligation property (of FinancialObligationType, extends ObligationType) that could be used for the court ordered fines.

In the XML Schema for this exchange, one should consider making the root an extension of the DocumentType specific to this exchange. For example, one could define an element SummaryCase and an associated complex type SummaryCaseType (which extends DocumentType). This helps indicate SummaryCase is the root of the XML document and allows the Document metadata (in DocumentType) to be used.

If there is only one case per document instance, then one can simply define SummaryCaseType to include j:Case, j:Bail, and j:FinancialObligation in their entirety. The fact that they are all together in the same SummaryCase indicates they are related. It is also possible to use a GJXDM subset schema to exclude the elements in j:Case, j:Bail, and j:FinancialObligation that are not needed.

Or, instead of including j:Bail and j:FinancialObligation in their entirety, it is possible to just include selected properties (if there are only a few of them). Alternatively (and especially if you can have more than one case per document instance). Then one could define a local CaseType as an extension of j:CaseType. In the local CaseType, j:Bail and j:FinancialObligation can be included in their entirety or just the selected properties from these that are necessary . SummaryCase would contain only j:Case. In the XML document instance one would use type substitution to substitute the local CaseType (e.g.). In the Amber Alert example in the Developer Workshop materials there is an example of how this is done - some missing person and contact properties were included in a local IncidentType that extends the j:IncidentType.

It is important to note that type substitution can be more difficult to handle on the receive end in some architectures. Instead of type substitution, it is possible to just define a local Case property with your local CaseType as described above. Finally, one could also consider using references if your case can have multiple defendants and you need to relate bail amounts or fine amounts with particular defendants. Lets say, defendant 'x' information is specified in Case. In CaseDefendantParty.Person, it would be neccesary specify j:id='x'. In Bail, BailSubjectReference (instead of BailSubject) with j:ref='x' would be used.