Skip to content

Commit db0ccc3

Browse files
CesarCoelhoclaude
andcommitted
Name the attributes the Mission Data Product area was aliasing
The area declared ProductToken, ProductPath and SubscriptionId as composites that extend String, URI and Identifier, each with no fields of its own. They were not structures but attempts at naming an attribute, and the MAL data model has no way to say that: Composite and Attribute are separate branches of the type hierarchy, and the set of attributes is closed by the MAL area. The schema could not object, because it types the extends element as a plain reference and only its documentation says the target is meant to be a Composite. The document generator could, and did: it looks a super type up among the composites, finds nothing, and abandons the whole area. ProductToken is the first type declared, so the area has been producing no document at all, while the run that produced nothing reported success. The three are removed and the eighteen fields that used them now name String, URI and Identifier directly, which is what they carried anyway. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 4bf2d84 commit db0ccc3

1 file changed

Lines changed: 16 additions & 38 deletions

File tree

xml-service-specifications/xml-ccsds-mo-prototypes/src/main/resources/xml/area051-v001-Mission-Data-Product.xml

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<mal:field name="root" canBeNull="false"
1212
comment="Identifies the root for the search.
1313
E.g. /mission-x/attitude/ identifies the collection of attitude files for mission-x, and / indentifies the whole archive">
14-
<mal:type name="ProductPath" area="MDP"/>
14+
<mal:type name="URI" area="MAL"/>
1515
</mal:field>
1616
<mal:field name="filter" canBeNull="true"
1717
comment="Optional filter to be applied on the product metadata">
@@ -35,7 +35,7 @@
3535
<mal:response
3636
comment="Returns the list of items that match the search">
3737
<mal:field name="token" comment="Decided to return single token during Fall meeting 2019">
38-
<mal:type list="true" name="ProductToken" area="MDP" />
38+
<mal:type list="true" name="String" area="MAL" />
3939
</mal:field>
4040
</mal:response>
4141
</mal:messages>
@@ -70,7 +70,7 @@
7070
<mal:response
7171
comment="Returns the list of items that match the search">
7272
<mal:field name="subscriptionId" comment="Decided to return single token during Fall meeting 2019">
73-
<mal:type list="false" name="SubscriptionId" area="MDP" />
73+
<mal:type list="false" name="Identifier" area="MAL" />
7474
</mal:field>
7575
</mal:response>
7676
</mal:messages>
@@ -96,7 +96,7 @@
9696
<mal:submit>
9797
<mal:field name="ids" canBeNull="true"
9898
comment="Identifies the product type">
99-
<mal:type list="true" name="SubscriptionId" area="MDP"/>
99+
<mal:type list="true" name="Identifier" area="MAL"/>
100100
</mal:field>
101101
</mal:submit>
102102
</mal:messages>
@@ -132,7 +132,7 @@
132132
<mal:invoke comment="">
133133
<mal:field name="token" canBeNull="false"
134134
comment="Identifier that univocally identifies one product item for a given provider">
135-
<mal:type name="ProductToken" area="MDP" list="true"/>
135+
<mal:type name="String" area="MAL" list="true"/>
136136
</mal:field>
137137
<mal:field name="preFetch" canBeNull="true"
138138
comment="If true, only the attributes are returned not any data.">
@@ -171,7 +171,7 @@
171171
<mal:field name="path" canBeNull="false"
172172
comment="Identifies the root for the search.
173173
E.g. /mission-x/attitude/ identifies the collection of attitude files for mission-x, and / indentifies the whole archive">
174-
<mal:type name="ProductPath" area="MDP"/>
174+
<mal:type name="URI" area="MAL"/>
175175
</mal:field>
176176
<mal:field name="limitPaths" canBeNull="true"
177177
comment="Limit the number of records returned by the get operation.
@@ -189,10 +189,10 @@
189189
<mal:response
190190
comment="Returns the list of product types that match the search">
191191
<mal:field name="paths" canBeNull="false" comment="List of sub-folders for the current path">
192-
<mal:type list="true" name="ProductPath" area="MDP"/>
192+
<mal:type list="true" name="URI" area="MAL"/>
193193
</mal:field>
194194
<mal:field name="tokens" canBeNull="false" comment="Tokens to request products on the current path">
195-
<mal:type list="true" name="ProductToken" area="MDP"/>
195+
<mal:type list="true" name="String" area="MAL"/>
196196
</mal:field>
197197
</mal:response>
198198
</mal:messages>
@@ -215,7 +215,7 @@
215215
<mal:response
216216
comment="Returns token for the created product">
217217
<mal:field name="token" comment="Asafvvz">
218-
<mal:type list="false" name="ProductToken" area="MDP" />
218+
<mal:type list="false" name="String" area="MAL" />
219219
</mal:field>
220220
</mal:response>
221221
</mal:messages>
@@ -236,7 +236,7 @@
236236
<mal:messages>
237237
<mal:submit>
238238
<mal:field name="token" comment="Token of the product to be updated">
239-
<mal:type list="false" name="ProductToken" area="MDP" />
239+
<mal:type list="false" name="String" area="MAL" />
240240
</mal:field>
241241
<mal:field name="productData" canBeNull="false"
242242
comment="New data for the product">
@@ -262,7 +262,7 @@
262262
<mal:submit>
263263
<mal:field name="tokens" canBeNull="false"
264264
comment="Tokens for the products beeing deleted">
265-
<mal:type name="ProductToken" list="true" area="MDP"/>
265+
<mal:type name="String" list="true" area="MAL"/>
266266
</mal:field>
267267
</mal:submit>
268268
</mal:messages>
@@ -333,7 +333,7 @@
333333
<mal:submit>
334334
<mal:field name="productPath" canBeNull="false"
335335
comment="Path and details for the product being added">
336-
<mal:type name="ProductPath" area="MDP"/>
336+
<mal:type name="URI" area="MAL"/>
337337
</mal:field>
338338
</mal:submit>
339339
</mal:messages>
@@ -353,35 +353,13 @@
353353
</mal:capabilitySet>
354354
</mal:service>
355355
<mal:dataTypes>
356-
<mal:composite name="ProductToken" shortFormPart="10"
357-
comment="This token will allow a product to be fetched. A token might be a path to a specific product (e.g. /mission-x/orbit/orbit_file_12345) or any other sort of unique identifier (e.g. implementation specific checksum of the file). Some tokens might be deducible (e.g. /mission-y/sensor-x/YYYY-MM-DD) and thus don't need to be searched. The creation strategy for tokens is implementation specific">
358-
<mal:extends>
359-
<mal:type name="String" area="MAL"/>
360-
</mal:extends>
361-
</mal:composite>
362-
<mal:composite name="ProductPath" shortFormPart="20"
363-
comment="Path that univocally identifies one or more items (products or product types) offered by a provider. The path is local to the provider.
364-
As long as it is unique for a given provider, this field can take any valid path value as defined in RFC3986:relative-part,
365-
e.g. /mission-x/orbit/orbit_file_12345.xml to identify a specific file, or /mission-x/attitude/ to identify the collection of attitude files for mission-x ">
366-
<mal:extends>
367-
<mal:type name="URI" area="MAL"/>
368-
</mal:extends>
369-
</mal:composite>
370-
371-
<mal:composite name="SubscriptionId" shortFormPart="25"
372-
comment="cmt">
373-
<mal:extends>
374-
<mal:type name="Identifier" area="MAL"/>
375-
</mal:extends>
376-
</mal:composite>
377-
378356
<mal:composite name="ProductType" shortFormPart="30"
379357
comment="Identifies a product or product type, with an optional metadata">
380358
<mal:extends>
381359
<mal:type name="Composite" area="MAL"/>
382360
</mal:extends>
383361
<mal:field name="path" canBeNull="false" comment="">
384-
<mal:type name="ProductPath" area="MDP"/>
362+
<mal:type name="URI" area="MAL"/>
385363
</mal:field>
386364
<mal:field name="metadata" canBeNull="true" comment="Metadata common to all products in this path">
387365
<mal:type list="true" name="NamedValue" area="MAL"/>
@@ -393,7 +371,7 @@
393371
<mal:type name="Composite" area="MAL"/>
394372
</mal:extends>
395373
<mal:field name="path" canBeNull="false" comment="e.g. /mission-x/orbit/orbit_file_12345">
396-
<mal:type name="ProductPath" area="MDP"/>
374+
<mal:type name="URI" area="MAL"/>
397375
</mal:field>
398376
<mal:field name="attributes" canBeNull="true" comment="Searchable attributes specific to this product">
399377
<mal:type list="true" name="ProductAttributes" area="MDP"/>
@@ -441,7 +419,7 @@
441419
<mal:field name="root" canBeNull="false"
442420
comment="Identifies the root for the search.
443421
E.g. /mission-x/attitude/ identifies the collection of attitude files for mission-x, and / indentifies the whole archive">
444-
<mal:type name="ProductPath" area="MDP"/>
422+
<mal:type name="URI" area="MAL"/>
445423
</mal:field>
446424
<mal:field name="filter" canBeNull="true"
447425
comment="Optional filter to be applied on the product metadata">
@@ -483,7 +461,7 @@
483461
</mal:extends>
484462

485463
<mal:field name="subscriptionId" canBeNull="false" comment="Decided to return single token during Fall meeting 2019">
486-
<mal:type list="false" name="SubscriptionId" area="MDP" />
464+
<mal:type list="false" name="Identifier" area="MAL" />
487465
</mal:field>
488466

489467
<mal:field name="type" canBeNull="false"

0 commit comments

Comments
 (0)