boring_parser/
boring_structs_210.rs

1use serde::{Deserialize, Serialize};
2
3// ============================================================================
4// ルート構造体
5// ============================================================================
6
7#[derive(Debug, Serialize, Deserialize)]
8#[serde(rename = "ボーリング情報")]
9pub struct Boring210 {
10    #[serde(rename = "@DTD_version")]
11    pub dtd_version: Option<String>,
12    #[serde(rename = "標題情報")]
13    pub title: Title210,
14    #[serde(rename = "コア情報")]
15    pub core: Core210,
16}
17
18// ============================================================================
19// 標題情報
20// ============================================================================
21
22#[derive(Debug, Serialize, Deserialize)]
23pub struct Title210 {
24    #[serde(rename = "調査基本情報")]
25    pub basic_info: BasicSurvey210,
26    #[serde(rename = "経度緯度情報")]
27    pub longitude_latitude: LngLat210,
28    #[serde(default, rename = "ローカル座標")] // * (0回以上)
29    pub local_coordinates: Vec<LocalCoordinate210>,
30    #[serde(rename = "調査位置")]
31    pub survey_position: SurveyPosition210,
32    #[serde(rename = "発注機関")]
33    pub order_institution: OrderInstitution210,
34    #[serde(rename = "調査期間")]
35    pub survey_period: SurveyPeriod210,
36    #[serde(rename = "調査会社")]
37    pub survey_company: SurveyCompany210,
38    #[serde(rename = "ボーリング基本情報")]
39    pub boring_basic_info: BoringBasicInfo210,
40    #[serde(rename = "試錐機")]
41    pub drilling_machine: DrillingMachine210,
42    #[serde(rename = "エンジン")]
43    pub engine: Engine210,
44    #[serde(default, rename = "ハンマー落下用具")] // ? (オプション)
45    pub hammer_drop_tool: Option<HammerDropTool210>,
46    #[serde(default, rename = "N値記録用具")] // ? (オプション)
47    pub n_value_recorder: Option<NValueRecorder210>,
48    #[serde(rename = "ポンプ")]
49    pub pump: Pump210,
50    #[serde(default, rename = "櫓種類")] // ? (オプション)
51    pub tower_type: Option<TowerType210>,
52}
53
54// ============================================================================
55// 調査基本情報
56// ============================================================================
57
58#[derive(Debug, Serialize, Deserialize)]
59pub struct BasicSurvey210 {
60    #[serde(default, rename = "事業工事名")] // オプション
61    pub project_name: Option<String>,
62    #[serde(rename = "調査名")] // 必須
63    pub survey_name: Option<String>,
64    #[serde(rename = "調査目的")] // 必須
65    pub survey_purpose: Option<String>,
66    #[serde(rename = "調査対象")] // 必須
67    pub survey_target: Option<String>,
68    #[serde(rename = "ボーリング名")] // 必須
69    pub boring_name: Option<String>,
70    #[serde(rename = "ボーリング総数")] // 必須
71    pub total_boring: Option<String>,
72    #[serde(rename = "ボーリング連番")] // 必須
73    pub boring_serial: Option<String>,
74}
75
76// ============================================================================
77// 経度緯度情報
78// ============================================================================
79
80#[derive(Debug, Serialize, Deserialize)]
81pub struct LngLat210 {
82    #[serde(rename = "経度_度")] // 必須
83    pub longitude_degree: Option<String>,
84    #[serde(rename = "経度_分")] // 必須
85    pub longitude_minute: Option<String>,
86    #[serde(rename = "経度_秒")] // 必須
87    pub longitude_second: Option<String>,
88    #[serde(rename = "緯度_度")] // 必須
89    pub latitude_degree: Option<String>,
90    #[serde(rename = "緯度_分")] // 必須
91    pub latitude_minute: Option<String>,
92    #[serde(rename = "緯度_秒")] // 必須
93    pub latitude_second: Option<String>,
94    #[serde(rename = "取得方法コード")] // 必須
95    pub acquisition_method_code: Option<String>,
96    #[serde(default, rename = "取得方法説明")] // オプション(新規)
97    pub acquisition_method_description: Option<String>,
98    #[serde(rename = "読取精度コード")] // 必須
99    pub reading_precision_code: Option<String>,
100    #[serde(rename = "測地系")] // 必須
101    pub geodetic_system: Option<String>,
102}
103
104// ============================================================================
105// ローカル座標(構造が変更)
106// ============================================================================
107
108#[derive(Debug, Serialize, Deserialize)]
109pub struct LocalCoordinate210 {
110    #[serde(rename = "座標定義")] // 必須
111    pub definition: Option<String>,
112    #[serde(rename = "座標")] // 必須
113    pub coordinate: Option<String>,
114}
115
116// ============================================================================
117// 調査位置(v1.10と同じ)
118// ============================================================================
119
120#[derive(Debug, Serialize, Deserialize)]
121pub struct SurveyPosition210 {
122    #[serde(rename = "調査位置住所")] // 必須
123    pub address: Option<String>,
124    #[serde(rename = "コード1次")] // 必須
125    pub code1: Option<String>,
126    #[serde(rename = "コード2次")] // 必須
127    pub code2: Option<String>,
128    #[serde(rename = "コード3次")] // 必須
129    pub code3: Option<String>,
130}
131
132// ============================================================================
133// 発注機関(v1.10と同じ)
134// ============================================================================
135
136#[derive(Debug, Serialize, Deserialize)]
137pub struct OrderInstitution210 {
138    #[serde(rename = "発注機関名称")] // 必須
139    pub name: Option<String>,
140    #[serde(rename = "テクリスコード")] // 必須
141    pub code: Option<String>,
142}
143
144// ============================================================================
145// 調査期間(構造が変更:年月日統合)
146// ============================================================================
147
148#[derive(Debug, Serialize, Deserialize)]
149pub struct SurveyPeriod210 {
150    #[serde(rename = "調査期間_開始年月日")] // 必須
151    pub start_date: Option<String>,
152    #[serde(rename = "調査期間_終了年月日")] // 必須
153    pub end_date: Option<String>,
154}
155
156// ============================================================================
157// 調査会社(v1.10と同じ)
158// ============================================================================
159
160#[derive(Debug, Serialize, Deserialize)]
161pub struct SurveyCompany210 {
162    #[serde(rename = "調査会社_名称")] // 必須
163    pub name: Option<String>,
164    #[serde(rename = "調査会社_TEL")] // 必須
165    pub tel: Option<String>,
166    #[serde(rename = "調査会社_主任技師")] // 必須
167    pub chief_engineer: Option<String>,
168    #[serde(rename = "調査会社_現場代理人")] // 必須
169    pub field_agent: Option<String>,
170    #[serde(rename = "調査会社_コア鑑定者")] // 必須
171    pub core_appraiser: Option<String>,
172    #[serde(rename = "調査会社_ボーリング責任者")] // 必須
173    pub boring_manager: Option<String>,
174}
175
176// ============================================================================
177// ボーリング基本情報
178// DTD: <!ELEMENT ボーリング基本情報 (孔口標高, 総掘進長, 柱状図様式,
179//      掘進角度?, 掘進方向?, 地盤勾配?)>
180// ============================================================================
181
182#[derive(Debug, Serialize, Deserialize)]
183pub struct BoringBasicInfo210 {
184    #[serde(rename = "孔口標高")] // 必須
185    pub elevation: Option<String>,
186    #[serde(rename = "総掘進長")] // 必須
187    pub total_length: Option<String>,
188    #[serde(rename = "柱状図様式")] // 必須(DTDでは「柱状図様式」)
189    pub columnar_section_style: Option<String>,
190    #[serde(default, rename = "掘進角度")] // オプション
191    pub drilling_angle: Option<String>,
192    #[serde(default, rename = "掘進方向")] // オプション
193    pub drilling_direction: Option<String>,
194    #[serde(default, rename = "地盤勾配")] // オプション(v2.10で変更)
195    pub ground_slope: Option<String>,
196}
197
198// ============================================================================
199// 試錐機
200// DTD: <!ELEMENT 試錐機 (試錐機_名称, 試錐機_能力?, 試錐機_方法?)>
201// ============================================================================
202
203#[derive(Debug, Serialize, Deserialize)]
204pub struct DrillingMachine210 {
205    #[serde(rename = "試錐機_名称")] // 必須
206    pub name: Option<String>,
207    #[serde(default, rename = "試錐機_能力")] // オプション(DTDで変更)
208    pub capacity: Option<String>,
209    #[serde(default, rename = "試錐機_方法")] // オプション(DTDで変更)
210    pub method: Option<String>,
211}
212
213// ============================================================================
214// エンジン
215// DTD: <!ELEMENT エンジン (エンジン_名称, エンジン_能力?, エンジン_単位?)>
216// ============================================================================
217
218#[derive(Debug, Serialize, Deserialize)]
219pub struct Engine210 {
220    #[serde(rename = "エンジン_名称")] // 必須
221    pub name: Option<String>,
222    #[serde(default, rename = "エンジン_能力")] // オプション(DTDで変更)
223    pub capacity: Option<String>,
224    #[serde(default, rename = "エンジン_単位")] // オプション(DTDで変更)
225    pub unit: Option<String>,
226}
227
228// ============================================================================
229// ハンマー落下用具(v1.10と同じ)
230// ============================================================================
231
232#[derive(Debug, Serialize, Deserialize)]
233pub struct HammerDropTool210 {
234    #[serde(rename = "ハンマー落下用具_コード")] // 必須
235    pub code: Option<String>,
236    #[serde(default, rename = "ハンマー落下用具_名称")] // オプション(v2.10で変更)
237    pub name: Option<String>,
238}
239
240// ============================================================================
241// N値記録用具(v1.10と同じ)
242// ============================================================================
243
244#[derive(Debug, Serialize, Deserialize)]
245pub struct NValueRecorder210 {
246    #[serde(rename = "N値記録用具_コード")] // 必須
247    pub code: Option<String>,
248    #[serde(default, rename = "N値記録用具_名称")] // オプション(v2.10で変更)
249    pub name: Option<String>,
250}
251
252// ============================================================================
253// ポンプ
254// DTD: <!ELEMENT ポンプ (ポンプ_名称, ポンプ_能力?, ポンプ_単位?)>
255// ============================================================================
256
257#[derive(Debug, Serialize, Deserialize)]
258pub struct Pump210 {
259    #[serde(rename = "ポンプ_名称")] // 必須
260    pub name: Option<String>,
261    #[serde(default, rename = "ポンプ_能力")] // オプション(DTDで変更)
262    pub capacity: Option<String>,
263    #[serde(default, rename = "ポンプ_単位")] // オプション(DTDで変更)
264    pub unit: Option<String>,
265}
266
267// ============================================================================
268// 櫓種類(新規)
269// DTD: <!ELEMENT 櫓種類 (櫓種類コード?, 櫓種類名称?)>
270// ============================================================================
271
272#[derive(Debug, Serialize, Deserialize)]
273pub struct TowerType210 {
274    #[serde(default, rename = "櫓種類コード")] // オプション
275    pub code: Option<String>,
276    #[serde(default, rename = "櫓種類名称")] // オプション
277    pub name: Option<String>,
278}
279
280// ============================================================================
281// コア情報
282// DTD: <!ELEMENT コア情報 (土質岩種区分+, 色調*, 観察記事*, 観察記事枠線*, 標準貫入試験*,
283//      標準貫入試験詳細データ*, ルジオン試験*, ルジオン試験詳細データ*, 相対密度稠度*,
284//      硬軟区分判定表*, 硬軟区分*, コア形状区分判定表*, コア形状区分*, 割れ目区分判定表*,
285//      割れ目区分*, 風化区分判定表*, 風化区分*, 変質区分判定表*, 変質区分*,
286//      孔内水平載荷試験*, 透水試験*, P波試験*, S波試験*, その他原位置試験*, 試料採取*,
287//      地盤材料の工学的分類*, 地質時代*, 地層岩体区分*, 孔内水位*, 掘削工程*,
288//      孔径孔壁保護*, 掘進速度*, コアチューブビット*, 給圧条件*, 回転数*, 送水条件*,
289//      断層破砕帯区分*, コア採取率*, 最大コア長*, RQD*, 岩級区分判定表*, 岩級区分*,
290//      保孔管*, 計測機器*, 地下水検層試験*, 地下水検層試験詳細データ*,
291//      地下水検層試験判定結果*, 備考*, フリー情報*)>
292// ============================================================================
293
294#[derive(Debug, Serialize, Deserialize)]
295pub struct Core210 {
296    #[serde(rename = "土質岩種区分")] // + (1回以上)
297    pub soil_rock_classifications: Vec<SoilRockClassification210>,
298    #[serde(default, rename = "色調")] // * (0回以上)
299    pub colors: Vec<Color210>,
300    #[serde(default, rename = "観察記事")] // * (0回以上)
301    pub observational_articles: Vec<ObservationalArticle210>,
302    #[serde(default, rename = "観察記事枠線")] // * (0回以上)
303    pub observational_article_frames: Vec<ObservationalArticleFrame210>,
304    #[serde(default, rename = "標準貫入試験")] // * (0回以上)
305    pub standard_penetration_tests: Vec<StandardPenetrationTest210>,
306    #[serde(default, rename = "標準貫入試験詳細データ")] // * (0回以上)
307    pub standard_penetration_test_details: Vec<StandardPenetrationTestDetail210>,
308    #[serde(default, rename = "ルジオン試験")] // * (0回以上)
309    pub lugeon_tests: Vec<LugeonTest210>,
310    #[serde(default, rename = "ルジオン試験詳細データ")] // * (0回以上)
311    pub lugeon_test_details: Vec<LugeonTestDetail210>,
312    #[serde(default, rename = "相対密度稠度")] // * (0回以上)
313    pub relative_density_consistency: Vec<RelativeDensityConsistency210>,
314    #[serde(default, rename = "硬軟区分判定表")] // * (0回以上)
315    pub hardness_classification_table: Vec<HardnessClassificationTable210>,
316    #[serde(default, rename = "硬軟区分")] // * (0回以上)
317    pub hardness_classifications: Vec<HardnessClassification210>,
318    #[serde(default, rename = "コア形状区分判定表")] // * (0回以上)
319    pub core_shape_classification_table: Vec<CoreShapeClassificationTable210>,
320    #[serde(default, rename = "コア形状区分")] // * (0回以上)
321    pub core_shape_classifications: Vec<CoreShapeClassification210>,
322    #[serde(default, rename = "割れ目区分判定表")] // * (0回以上)
323    pub fracture_classification_table: Vec<FractureClassificationTable210>,
324    #[serde(default, rename = "割れ目区分")] // * (0回以上)
325    pub fracture_classifications: Vec<FractureClassification210>,
326    #[serde(default, rename = "風化区分判定表")] // * (0回以上)
327    pub weathering_classification_table: Vec<WeatheringClassificationTable210>,
328    #[serde(default, rename = "風化区分")] // * (0回以上)
329    pub weathering_classifications: Vec<WeatheringClassification210>,
330    #[serde(default, rename = "変質区分判定表")] // * (0回以上)
331    pub alteration_classification_table: Vec<AlterationClassificationTable210>,
332    #[serde(default, rename = "変質区分")] // * (0回以上)
333    pub alteration_classifications: Vec<AlterationClassification210>,
334    #[serde(default, rename = "孔内水平載荷試験")] // * (0回以上)
335    pub borehole_horizontal_load_tests: Vec<BoreholeHorizontalLoadTest210>,
336    #[serde(default, rename = "透水試験")] // * (0回以上)
337    pub permeability_tests: Vec<PermeabilityTest210>,
338    #[serde(default, rename = "P波試験")] // * (0回以上)
339    pub p_wave_tests: Vec<PWaveTest210>,
340    #[serde(default, rename = "S波試験")] // * (0回以上)
341    pub s_wave_tests: Vec<SWaveTest210>,
342    #[serde(default, rename = "その他原位置試験")] // * (0回以上)
343    pub other_in_situ_tests: Vec<OtherInSituTest210>,
344    #[serde(default, rename = "試料採取")] // * (0回以上)
345    pub sample_collections: Vec<SampleCollection210>,
346    #[serde(default, rename = "地盤材料の工学的分類")] // * (0回以上)
347    pub ground_material_classifications: Vec<GroundMaterialClassification210>,
348    #[serde(default, rename = "地質時代")] // * (0回以上)
349    pub geological_ages: Vec<GeologicalAge210>,
350    #[serde(default, rename = "地層岩体区分")] // * (0回以上)
351    pub stratum_rock_classifications: Vec<StratumRockClassification210>,
352    #[serde(default, rename = "孔内水位")] // * (0回以上)
353    pub borehole_water_levels: Vec<BoreholeWaterLevel210>,
354    #[serde(default, rename = "掘削工程")] // * (0回以上)
355    pub drilling_processes: Vec<DrillingProcess210>,
356    #[serde(default, rename = "孔径孔壁保護")] // * (0回以上)
357    pub borehole_diameter_protections: Vec<BoreholeDiameterProtection210>,
358    #[serde(default, rename = "掘進速度")] // * (0回以上)
359    pub drilling_speeds: Vec<DrillingSpeed210>,
360    #[serde(default, rename = "コアチューブビット")] // * (0回以上)
361    pub core_tube_bits: Vec<CoreTubeBit210>,
362    #[serde(default, rename = "給圧条件")] // * (0回以上)
363    pub pressure_conditions: Vec<PressureCondition210>,
364    #[serde(default, rename = "回転数")] // * (0回以上)
365    pub rotation_speeds: Vec<RotationSpeed210>,
366    #[serde(default, rename = "送水条件")] // * (0回以上)
367    pub water_supply_conditions: Vec<WaterSupplyCondition210>,
368    #[serde(default, rename = "断層破砕帯区分")] // * (0回以上)
369    pub fault_fracture_zone_classifications: Vec<FaultFractureZoneClassification210>,
370    #[serde(default, rename = "コア採取率")] // * (0回以上)
371    pub core_recovery_rates: Vec<CoreRecoveryRate210>,
372    #[serde(default, rename = "最大コア長")] // * (0回以上)
373    pub maximum_core_lengths: Vec<MaximumCoreLength210>,
374    #[serde(default, rename = "RQD")] // * (0回以上)
375    pub rqds: Vec<RQD210>,
376    #[serde(default, rename = "岩級区分判定表")] // * (0回以上)
377    pub rock_class_classification_table: Vec<RockClassClassificationTable210>,
378    #[serde(default, rename = "岩級区分")] // * (0回以上)
379    pub rock_class_classifications: Vec<RockClassClassification210>,
380    #[serde(default, rename = "保孔管")] // * (0回以上)
381    pub casing_pipes: Vec<CasingPipe210>,
382    #[serde(default, rename = "計測機器")] // * (0回以上)
383    pub measuring_instruments: Vec<MeasuringInstrument210>,
384    #[serde(default, rename = "地下水検層試験")] // * (0回以上)
385    pub groundwater_logging_tests: Vec<GroundwaterLoggingTest210>,
386    #[serde(default, rename = "地下水検層試験詳細データ")] // * (0回以上)
387    pub groundwater_logging_test_details: Vec<GroundwaterLoggingTestDetail210>,
388    #[serde(default, rename = "地下水検層試験判定結果")] // * (0回以上)
389    pub groundwater_logging_test_results: Vec<GroundwaterLoggingTestResult210>,
390    #[serde(default, rename = "備考")] // * (0回以上)
391    pub remarks: Vec<Remark210>,
392    #[serde(default, rename = "フリー情報")] // * (0回以上)
393    pub free_info: Vec<String>,
394}
395
396// ============================================================================
397// 土質岩種区分(地質区分から名称変更)
398// DTD: <!ELEMENT 土質岩種区分 (土質岩種区分_下端深度, 土質岩種区分_土質岩種区分1,
399//      土質岩種区分_土質岩種記号1?, 土質岩種区分_分類コード1,
400//      土質岩種区分_土質岩種区分2?, 土質岩種区分_土質岩種記号2?, 土質岩種区分_分類コード2?)>
401// ============================================================================
402
403#[derive(Debug, Serialize, Deserialize)]
404pub struct SoilRockClassification210 {
405    #[serde(rename = "土質岩種区分_下端深度")] // 必須
406    pub depth: Option<String>,
407    #[serde(rename = "土質岩種区分_土質岩種区分1")] // 必須
408    pub classification1: Option<String>,
409    #[serde(default, rename = "土質岩種区分_土質岩種記号1")] // オプション
410    pub code1: Option<String>,
411    #[serde(rename = "土質岩種区分_分類コード1")] // 必須
412    pub classification_code1: Option<String>,
413    #[serde(default, rename = "土質岩種区分_土質岩種区分2")] // オプション
414    pub classification2: Option<String>,
415    #[serde(default, rename = "土質岩種区分_土質岩種記号2")] // オプション
416    pub code2: Option<String>,
417    #[serde(default, rename = "土質岩種区分_分類コード2")] // オプション
418    pub classification_code2: Option<String>,
419}
420
421// ============================================================================
422// 色調
423// DTD: <!ELEMENT 色調 (色調_下端深度, 色調_色調名)>
424// ============================================================================
425
426#[derive(Debug, Serialize, Deserialize)]
427pub struct Color210 {
428    #[serde(rename = "色調_下端深度")] // 必須
429    pub depth: Option<String>,
430    #[serde(rename = "色調_色調名")] // 必須(DTDでは色調_状態→色調_色調名に変更)
431    pub color_name: Option<String>,
432}
433
434// ============================================================================
435// 観察記事
436// ============================================================================
437
438#[derive(Debug, Serialize, Deserialize)]
439pub struct ObservationalArticle210 {
440    #[serde(rename = "観察記事_上端深度")] // 必須
441    pub start_depth: Option<String>,
442    #[serde(rename = "観察記事_下端深度")] // 必須
443    pub end_depth: Option<String>,
444    #[serde(default, rename = "観察記事_記事")] // オプション(v2.10で変更)
445    pub observation: Option<String>,
446}
447
448// ============================================================================
449// 観察記事枠線
450// ============================================================================
451
452#[derive(Debug, Serialize, Deserialize)]
453pub struct ObservationalArticleFrame210 {
454    #[serde(rename = "観察記事枠線_下端深度")] // 必須
455    pub end_depth: Option<String>,
456}
457
458// ============================================================================
459// 標準貫入試験
460// DTD: <!ELEMENT 標準貫入試験 (標準貫入試験_開始深度, 標準貫入試験_0_10打撃回数?,
461//      標準貫入試験_0_10貫入量?, 標準貫入試験_10_20打撃回数?, 標準貫入試験_10_20貫入量?,
462//      標準貫入試験_20_30打撃回数?, 標準貫入試験_20_30貫入量?, 標準貫入試験_合計打撃回数,
463//      標準貫入試験_合計貫入量, 標準貫入試験_備考?)>
464// ============================================================================
465
466#[derive(Debug, Serialize, Deserialize)]
467pub struct StandardPenetrationTest210 {
468    #[serde(rename = "標準貫入試験_開始深度")] // 必須
469    pub start_depth: Option<String>,
470    #[serde(default, rename = "標準貫入試験_0_10打撃回数")] // オプション
471    pub hits_0_10: Option<String>,
472    #[serde(default, rename = "標準貫入試験_0_10貫入量")] // オプション
473    pub penetration_0_10: Option<String>,
474    #[serde(default, rename = "標準貫入試験_10_20打撃回数")] // オプション
475    pub hits_10_20: Option<String>,
476    #[serde(default, rename = "標準貫入試験_10_20貫入量")] // オプション
477    pub penetration_10_20: Option<String>,
478    #[serde(default, rename = "標準貫入試験_20_30打撃回数")] // オプション
479    pub hits_20_30: Option<String>,
480    #[serde(default, rename = "標準貫入試験_20_30貫入量")] // オプション
481    pub penetration_20_30: Option<String>,
482    #[serde(rename = "標準貫入試験_合計打撃回数")] // 必須
483    pub total_hits: Option<String>,
484    #[serde(rename = "標準貫入試験_合計貫入量")] // 必須
485    pub total_penetration: Option<String>,
486    #[serde(default, rename = "標準貫入試験_備考")] // オプション
487    pub remarks: Option<String>,
488}
489
490// ============================================================================
491// 標準貫入試験詳細データ
492// DTD: <!ELEMENT 標準貫入試験詳細データ (標準貫入試験詳細データ_開始深度, 標準貫入試験詳細データ_打撃*)>
493// ============================================================================
494
495#[derive(Debug, Serialize, Deserialize)]
496pub struct StandardPenetrationTestDetail210 {
497    #[serde(rename = "標準貫入試験詳細データ_開始深度")] // 必須
498    pub start_depth: Option<String>,
499    #[serde(default, rename = "標準貫入試験詳細データ_打撃")] // * (0回以上)
500    pub blows: Vec<StandardPenetrationTestBlow210>,
501}
502
503// ============================================================================
504// 標準貫入試験詳細データ_打撃
505// DTD: <!ELEMENT 標準貫入試験詳細データ_打撃 (標準貫入試験詳細データ_打撃回数,
506//      標準貫入試験詳細データ_貫入量, 標準貫入試験詳細データ_累積貫入量, 標準貫入試験詳細データ_備考?)>
507// ============================================================================
508
509#[derive(Debug, Serialize, Deserialize)]
510pub struct StandardPenetrationTestBlow210 {
511    #[serde(rename = "標準貫入試験詳細データ_打撃回数")] // 必須
512    pub blow_count: Option<String>,
513    #[serde(rename = "標準貫入試験詳細データ_貫入量")] // 必須
514    pub penetration: Option<String>,
515    #[serde(rename = "標準貫入試験詳細データ_累積貫入量")] // 必須
516    pub cumulative_penetration: Option<String>,
517    #[serde(default, rename = "標準貫入試験詳細データ_備考")] // オプション
518    pub remarks: Option<String>,
519}
520
521// ============================================================================
522// ルジオン試験
523// DTD: <!ELEMENT ルジオン試験 (ルジオン試験_試験番号, ルジオン試験_上端深度, ルジオン試験_下端深度,
524//      ルジオン試験_圧力管理方法コード, ルジオン試験_圧力管理方法?, ルジオン試験_圧力最大スケール,
525//      ルジオン試験_注入量最大スケール, ルジオン試験_圧力開始点, ルジオン試験_注入量開始点,
526//      ルジオン試験_ルジオン値区分, ルジオン試験_ルジオン値, ルジオン試験_限界圧力)>
527// ============================================================================
528
529#[derive(Debug, Serialize, Deserialize)]
530pub struct LugeonTest210 {
531    #[serde(rename = "ルジオン試験_試験番号")] // 必須
532    pub test_number: Option<String>,
533    #[serde(rename = "ルジオン試験_上端深度")] // 必須
534    pub start_depth: Option<String>,
535    #[serde(rename = "ルジオン試験_下端深度")] // 必須
536    pub end_depth: Option<String>,
537    #[serde(rename = "ルジオン試験_圧力管理方法コード")] // 必須
538    pub pressure_management_code: Option<String>,
539    #[serde(default, rename = "ルジオン試験_圧力管理方法")] // オプション
540    pub pressure_management: Option<String>,
541    #[serde(rename = "ルジオン試験_圧力最大スケール")] // 必須
542    pub pressure_max_scale: Option<String>,
543    #[serde(rename = "ルジオン試験_注入量最大スケール")] // 必須
544    pub injection_max_scale: Option<String>,
545    #[serde(rename = "ルジオン試験_圧力開始点")] // 必須
546    pub pressure_start_point: Option<String>,
547    #[serde(rename = "ルジオン試験_注入量開始点")] // 必須
548    pub injection_start_point: Option<String>,
549    #[serde(rename = "ルジオン試験_ルジオン値区分")] // 必須
550    pub lugeon_value_classification: Option<String>,
551    #[serde(rename = "ルジオン試験_ルジオン値")] // 必須
552    pub lugeon_value: Option<String>,
553    #[serde(rename = "ルジオン試験_限界圧力")] // 必須
554    pub limit_pressure: Option<String>,
555}
556
557// ============================================================================
558// ルジオン試験詳細データ
559// DTD: <!ELEMENT ルジオン試験詳細データ (ルジオン試験詳細データ_試験番号,
560//      ルジオン試験詳細データ_有効圧力, ルジオン試験詳細データ_注入量)>
561// ============================================================================
562
563#[derive(Debug, Serialize, Deserialize)]
564pub struct LugeonTestDetail210 {
565    #[serde(rename = "ルジオン試験詳細データ_試験番号")] // 必須
566    pub test_number: Option<String>,
567    #[serde(rename = "ルジオン試験詳細データ_有効圧力")] // 必須
568    pub effective_pressure: Option<String>,
569    #[serde(rename = "ルジオン試験詳細データ_注入量")] // 必須
570    pub injection_amount: Option<String>,
571}
572
573// ============================================================================
574// 相対密度稠度
575// DTD: <!ELEMENT 相対密度稠度 (相対密度稠度_下端深度, 相対密度_コード?,
576//      相対密度_状態?, 相対稠度_コード?, 相対稠度_状態?)>
577// ============================================================================
578
579#[derive(Debug, Serialize, Deserialize)]
580pub struct RelativeDensityConsistency210 {
581    #[serde(rename = "相対密度稠度_下端深度")] // 必須
582    pub depth: Option<String>,
583    #[serde(default, rename = "相対密度_コード")] // オプション
584    pub relative_density_code: Option<String>,
585    #[serde(default, rename = "相対密度_状態")] // オプション
586    pub relative_density_state: Option<String>,
587    #[serde(default, rename = "相対稠度_コード")] // オプション
588    pub relative_consistency_code: Option<String>,
589    #[serde(default, rename = "相対稠度_状態")] // オプション
590    pub relative_consistency_state: Option<String>,
591}
592
593// ============================================================================
594// 硬軟区分判定表
595// DTD: <!ELEMENT 硬軟区分判定表 (硬軟区分判定表_コード, 硬軟区分判定表_記号,
596//      硬軟区分判定表_区分?, 硬軟区分判定表_説明?)>
597// ============================================================================
598
599#[derive(Debug, Serialize, Deserialize)]
600pub struct HardnessClassificationTable210 {
601    #[serde(rename = "硬軟区分判定表_コード")] // 必須
602    pub code: Option<String>,
603    #[serde(rename = "硬軟区分判定表_記号")] // 必須
604    pub symbol: Option<String>,
605    #[serde(default, rename = "硬軟区分判定表_区分")] // オプション
606    pub classification: Option<String>,
607    #[serde(default, rename = "硬軟区分判定表_説明")] // オプション
608    pub description: Option<String>,
609}
610
611// ============================================================================
612// 硬軟区分
613// DTD: <!ELEMENT 硬軟区分 (硬軟区分_下端深度, 硬軟区分_硬軟区分)>
614// ============================================================================
615
616#[derive(Debug, Serialize, Deserialize)]
617pub struct HardnessClassification210 {
618    #[serde(rename = "硬軟区分_下端深度")] // 必須
619    pub depth: Option<String>,
620    #[serde(rename = "硬軟区分_硬軟区分")] // 必須
621    pub classification: Option<String>,
622}
623
624// ============================================================================
625// コア形状区分判定表
626// DTD: <!ELEMENT コア形状区分判定表 (コア形状区分判定表_コード, コア形状区分判定表_記号,
627//      コア形状区分判定表_区分?, コア形状区分判定表_説明?)>
628// ============================================================================
629
630#[derive(Debug, Serialize, Deserialize)]
631pub struct CoreShapeClassificationTable210 {
632    #[serde(rename = "コア形状区分判定表_コード")] // 必須
633    pub code: Option<String>,
634    #[serde(rename = "コア形状区分判定表_記号")] // 必須
635    pub symbol: Option<String>,
636    #[serde(default, rename = "コア形状区分判定表_区分")] // オプション
637    pub classification: Option<String>,
638    #[serde(default, rename = "コア形状区分判定表_説明")] // オプション
639    pub description: Option<String>,
640}
641
642// ============================================================================
643// コア形状区分
644// DTD: <!ELEMENT コア形状区分 (コア形状区分_下端深度, コア形状区分_コア形状区分)>
645// ============================================================================
646
647#[derive(Debug, Serialize, Deserialize)]
648pub struct CoreShapeClassification210 {
649    #[serde(rename = "コア形状区分_下端深度")] // 必須
650    pub depth: Option<String>,
651    #[serde(rename = "コア形状区分_コア形状区分")] // 必須
652    pub classification: Option<String>,
653}
654
655// ============================================================================
656// 割れ目区分判定表
657// DTD: <!ELEMENT 割れ目区分判定表 (割れ目区分判定表_コード, 割れ目区分判定表_記号,
658//      割れ目区分判定表_区分?, 割れ目区分判定表_説明?)>
659// ============================================================================
660
661#[derive(Debug, Serialize, Deserialize)]
662pub struct FractureClassificationTable210 {
663    #[serde(rename = "割れ目区分判定表_コード")] // 必須
664    pub code: Option<String>,
665    #[serde(rename = "割れ目区分判定表_記号")] // 必須
666    pub symbol: Option<String>,
667    #[serde(default, rename = "割れ目区分判定表_区分")] // オプション
668    pub classification: Option<String>,
669    #[serde(default, rename = "割れ目区分判定表_説明")] // オプション
670    pub description: Option<String>,
671}
672
673// ============================================================================
674// 割れ目区分
675// DTD: <!ELEMENT 割れ目区分 (割れ目区分_下端深度, 割れ目区分_割れ目区分)>
676// ============================================================================
677
678#[derive(Debug, Serialize, Deserialize)]
679pub struct FractureClassification210 {
680    #[serde(rename = "割れ目区分_下端深度")] // 必須
681    pub depth: Option<String>,
682    #[serde(rename = "割れ目区分_割れ目区分")] // 必須
683    pub classification: Option<String>,
684}
685
686// ============================================================================
687// 風化区分判定表
688// DTD: <!ELEMENT 風化区分判定表 (風化区分判定表_コード, 風化区分判定表_記号,
689//      風化区分判定表_区分?, 風化区分判定表_説明?)>
690// ============================================================================
691
692#[derive(Debug, Serialize, Deserialize)]
693pub struct WeatheringClassificationTable210 {
694    #[serde(rename = "風化区分判定表_コード")] // 必須
695    pub code: Option<String>,
696    #[serde(rename = "風化区分判定表_記号")] // 必須
697    pub symbol: Option<String>,
698    #[serde(default, rename = "風化区分判定表_区分")] // オプション
699    pub classification: Option<String>,
700    #[serde(default, rename = "風化区分判定表_説明")] // オプション
701    pub description: Option<String>,
702}
703
704// ============================================================================
705// 風化区分
706// DTD: <!ELEMENT 風化区分 (風化区分_下端深度, 風化区分_風化区分)>
707// ============================================================================
708
709#[derive(Debug, Serialize, Deserialize)]
710pub struct WeatheringClassification210 {
711    #[serde(rename = "風化区分_下端深度")] // 必須
712    pub depth: Option<String>,
713    #[serde(rename = "風化区分_風化区分")] // 必須
714    pub classification: Option<String>,
715}
716
717// ============================================================================
718// 変質区分判定表
719// DTD: <!ELEMENT 変質区分判定表 (変質区分判定表_コード, 変質区分判定表_記号,
720//      変質区分判定表_区分?, 変質区分判定表_説明?)>
721// ============================================================================
722
723#[derive(Debug, Serialize, Deserialize)]
724pub struct AlterationClassificationTable210 {
725    #[serde(rename = "変質区分判定表_コード")] // 必須
726    pub code: Option<String>,
727    #[serde(rename = "変質区分判定表_記号")] // 必須
728    pub symbol: Option<String>,
729    #[serde(default, rename = "変質区分判定表_区分")] // オプション
730    pub classification: Option<String>,
731    #[serde(default, rename = "変質区分判定表_説明")] // オプション
732    pub description: Option<String>,
733}
734
735// ============================================================================
736// 変質区分
737// DTD: <!ELEMENT 変質区分 (変質区分_下端深度, 変質区分_変質区分)>
738// ============================================================================
739
740#[derive(Debug, Serialize, Deserialize)]
741pub struct AlterationClassification210 {
742    #[serde(rename = "変質区分_下端深度")] // 必須
743    pub depth: Option<String>,
744    #[serde(rename = "変質区分_変質区分")] // 必須
745    pub classification: Option<String>,
746}
747
748// ============================================================================
749// 孔内水平載荷試験
750// DTD: <!ELEMENT 孔内水平載荷試験 (孔内水平載荷試験_試験深度, 孔内水平載荷試験_試験方法コード,
751//      孔内水平載荷試験_試験方法?, 孔内水平載荷試験_載荷パターン?, 孔内水平載荷試験_初期圧,
752//      孔内水平載荷試験_降伏圧, 孔内水平載荷試験_変形係数, 孔内水平載荷試験_割線弾性係数?,
753//      孔内水平載荷試験_接線弾性係数?)>
754// ============================================================================
755
756#[derive(Debug, Serialize, Deserialize)]
757pub struct BoreholeHorizontalLoadTest210 {
758    #[serde(rename = "孔内水平載荷試験_試験深度")] // 必須
759    pub test_depth: Option<String>,
760    #[serde(rename = "孔内水平載荷試験_試験方法コード")] // 必須
761    pub test_method_code: Option<String>,
762    #[serde(default, rename = "孔内水平載荷試験_試験方法")] // オプション
763    pub test_method: Option<String>,
764    #[serde(default, rename = "孔内水平載荷試験_載荷パターン")] // オプション
765    pub load_pattern: Option<String>,
766    #[serde(rename = "孔内水平載荷試験_初期圧")] // 必須
767    pub initial_pressure: Option<String>,
768    #[serde(rename = "孔内水平載荷試験_降伏圧")] // 必須
769    pub yield_pressure: Option<String>,
770    #[serde(rename = "孔内水平載荷試験_変形係数")] // 必須
771    pub deformation_modulus: Option<String>,
772    #[serde(default, rename = "孔内水平載荷試験_割線弾性係数")] // オプション
773    pub secant_modulus: Option<String>,
774    #[serde(default, rename = "孔内水平載荷試験_接線弾性係数")] // オプション
775    pub tangent_modulus: Option<String>,
776}
777
778// ============================================================================
779// 透水試験
780// DTD: <!ELEMENT 透水試験 (透水試験_上端深度, 透水試験_下端深度, 透水試験_試験コード,
781//      透水試験_試験方法?, 透水試験_透水係数)>
782// ============================================================================
783
784#[derive(Debug, Serialize, Deserialize)]
785pub struct PermeabilityTest210 {
786    #[serde(rename = "透水試験_上端深度")] // 必須
787    pub start_depth: Option<String>,
788    #[serde(rename = "透水試験_下端深度")] // 必須
789    pub end_depth: Option<String>,
790    #[serde(rename = "透水試験_試験コード")] // 必須
791    pub test_code: Option<String>,
792    #[serde(default, rename = "透水試験_試験方法")] // オプション
793    pub test_method: Option<String>,
794    #[serde(rename = "透水試験_透水係数")] // 必須
795    pub permeability_coefficient: Option<String>,
796}
797
798// ============================================================================
799// P波試験
800// DTD: <!ELEMENT P波試験 (P波試験_上端深度, P波試験_下端深度, P波試験_起振方式?, P波試験_速度)>
801// ============================================================================
802
803#[derive(Debug, Serialize, Deserialize)]
804pub struct PWaveTest210 {
805    #[serde(rename = "P波試験_上端深度")] // 必須
806    pub start_depth: Option<String>,
807    #[serde(rename = "P波試験_下端深度")] // 必須
808    pub end_depth: Option<String>,
809    #[serde(default, rename = "P波試験_起振方式")] // オプション
810    pub excitation_method: Option<String>,
811    #[serde(rename = "P波試験_速度")] // 必須
812    pub velocity: Option<String>,
813}
814
815// ============================================================================
816// S波試験
817// DTD: <!ELEMENT S波試験 (S波試験_上端深度, S波試験_下端深度, S波試験_起振方式?, S波試験_速度)>
818// ============================================================================
819
820#[derive(Debug, Serialize, Deserialize)]
821pub struct SWaveTest210 {
822    #[serde(rename = "S波試験_上端深度")] // 必須
823    pub start_depth: Option<String>,
824    #[serde(rename = "S波試験_下端深度")] // 必須
825    pub end_depth: Option<String>,
826    #[serde(default, rename = "S波試験_起振方式")] // オプション
827    pub excitation_method: Option<String>,
828    #[serde(rename = "S波試験_速度")] // 必須
829    pub velocity: Option<String>,
830}
831
832// ============================================================================
833// その他原位置試験
834// DTD: <!ELEMENT その他原位置試験 (その他原位置試験_試験名, その他原位置試験_上端深度,
835//      その他原位置試験_下端深度, その他原位置試験_試験結果)>
836// ============================================================================
837
838#[derive(Debug, Serialize, Deserialize)]
839pub struct OtherInSituTest210 {
840    #[serde(rename = "その他原位置試験_試験名")] // 必須
841    pub test_name: Option<String>,
842    #[serde(rename = "その他原位置試験_上端深度")] // 必須
843    pub start_depth: Option<String>,
844    #[serde(rename = "その他原位置試験_下端深度")] // 必須
845    pub end_depth: Option<String>,
846    #[serde(rename = "その他原位置試験_試験結果")] // 必須
847    pub test_result: Option<String>,
848}
849
850// ============================================================================
851// 試料採取
852// DTD: <!ELEMENT 試料採取 (試料採取_上端深度, 試料採取_下端深度, 試料採取_試料番号,
853//      試料採取_採取方法コード, 試料採取_採取方法?, 試料採取_試験名*)>
854// ============================================================================
855
856#[derive(Debug, Serialize, Deserialize)]
857pub struct SampleCollection210 {
858    #[serde(rename = "試料採取_上端深度")] // 必須
859    pub start_depth: Option<String>,
860    #[serde(rename = "試料採取_下端深度")] // 必須
861    pub end_depth: Option<String>,
862    #[serde(rename = "試料採取_試料番号")] // 必須
863    pub sample_number: Option<String>,
864    #[serde(rename = "試料採取_採取方法コード")] // 必須
865    pub collection_method_code: Option<String>,
866    #[serde(default, rename = "試料採取_採取方法")] // オプション
867    pub collection_method: Option<String>,
868    #[serde(default, rename = "試料採取_試験名")] // * (0回以上)
869    pub test_names: Vec<String>,
870}
871
872// ============================================================================
873// 地盤材料の工学的分類
874// DTD: <!ELEMENT 地盤材料の工学的分類 (地盤分類_下端深度, 地盤分類_工学的分類記号?)>
875// ============================================================================
876
877#[derive(Debug, Serialize, Deserialize)]
878pub struct GroundMaterialClassification210 {
879    #[serde(rename = "地盤分類_下端深度")] // 必須
880    pub depth: Option<String>,
881    #[serde(default, rename = "地盤分類_工学的分類記号")] // オプション
882    pub engineering_classification_symbol: Option<String>,
883}
884
885// ============================================================================
886// 地質時代
887// DTD: <!ELEMENT 地質時代 (地質時代_上端深度, 地質時代_下端深度, 地質時代_コード, 地質時代_時代名?)>
888// ============================================================================
889
890#[derive(Debug, Serialize, Deserialize)]
891pub struct GeologicalAge210 {
892    #[serde(rename = "地質時代_上端深度")] // 必須
893    pub start_depth: Option<String>,
894    #[serde(rename = "地質時代_下端深度")] // 必須
895    pub end_depth: Option<String>,
896    #[serde(rename = "地質時代_コード")] // 必須
897    pub code: Option<String>,
898    #[serde(default, rename = "地質時代_時代名")] // オプション
899    pub age_name: Option<String>,
900}
901
902// ============================================================================
903// 地層岩体区分
904// DTD: <!ELEMENT 地層岩体区分 (地層岩体区分_上端深度, 地層岩体区分_下端深度, 地層岩体区分_地層岩体名?)>
905// ============================================================================
906
907#[derive(Debug, Serialize, Deserialize)]
908pub struct StratumRockClassification210 {
909    #[serde(rename = "地層岩体区分_上端深度")] // 必須
910    pub start_depth: Option<String>,
911    #[serde(rename = "地層岩体区分_下端深度")] // 必須
912    pub end_depth: Option<String>,
913    #[serde(default, rename = "地層岩体区分_地層岩体名")] // オプション
914    pub stratum_rock_name: Option<String>,
915}
916
917// ============================================================================
918// 孔内水位
919// DTD: <!ELEMENT 孔内水位 (孔内水位_測定年月日, 孔内水位_掘削状況コード, 孔内水位_掘削状況?,
920//      孔内水位_孔内水位, 孔内水位_水位種別コード?, 孔内水位_水位種別備考?)>
921// ============================================================================
922
923#[derive(Debug, Serialize, Deserialize)]
924pub struct BoreholeWaterLevel210 {
925    #[serde(rename = "孔内水位_測定年月日")] // 必須
926    pub measurement_date: Option<String>,
927    #[serde(rename = "孔内水位_掘削状況コード")] // 必須
928    pub drilling_status_code: Option<String>,
929    #[serde(default, rename = "孔内水位_掘削状況")] // オプション
930    pub drilling_status: Option<String>,
931    #[serde(rename = "孔内水位_孔内水位")] // 必須
932    pub water_level: Option<String>,
933    #[serde(default, rename = "孔内水位_水位種別コード")] // オプション
934    pub water_level_type_code: Option<String>,
935    #[serde(default, rename = "孔内水位_水位種別備考")] // オプション
936    pub water_level_type_remarks: Option<String>,
937}
938
939// ============================================================================
940// 掘削工程
941// DTD: <!ELEMENT 掘削工程 (掘削工程_測定年月日, 掘削工程_掘進深度, 掘削工程_ケーシング下端深度?)>
942// ============================================================================
943
944#[derive(Debug, Serialize, Deserialize)]
945pub struct DrillingProcess210 {
946    #[serde(rename = "掘削工程_測定年月日")] // 必須
947    pub measurement_date: Option<String>,
948    #[serde(rename = "掘削工程_掘進深度")] // 必須
949    pub drilling_depth: Option<String>,
950    #[serde(default, rename = "掘削工程_ケーシング下端深度")] // オプション
951    pub casing_bottom_depth: Option<String>,
952}
953
954// ============================================================================
955// 孔径孔壁保護
956// DTD: <!ELEMENT 孔径孔壁保護 (孔径孔壁保護_下端深度, 孔径孔壁保護_孔径,
957//      孔径孔壁保護_孔壁保護コード?, 孔径孔壁保護_孔壁保護方法?, 孔径孔壁保護_孔壁保護実施理由?)>
958// ============================================================================
959
960#[derive(Debug, Serialize, Deserialize)]
961pub struct BoreholeDiameterProtection210 {
962    #[serde(rename = "孔径孔壁保護_下端深度")] // 必須
963    pub depth: Option<String>,
964    #[serde(rename = "孔径孔壁保護_孔径")] // 必須
965    pub diameter: Option<String>,
966    #[serde(default, rename = "孔径孔壁保護_孔壁保護コード")] // オプション
967    pub wall_protection_code: Option<String>,
968    #[serde(default, rename = "孔径孔壁保護_孔壁保護方法")] // オプション
969    pub wall_protection_method: Option<String>,
970    #[serde(default, rename = "孔径孔壁保護_孔壁保護実施理由")] // オプション
971    pub wall_protection_reason: Option<String>,
972}
973
974// ============================================================================
975// 掘進速度
976// DTD: <!ELEMENT 掘進速度 (掘進速度_下端深度, 掘進速度_掘進速度)>
977// ============================================================================
978
979#[derive(Debug, Serialize, Deserialize)]
980pub struct DrillingSpeed210 {
981    #[serde(rename = "掘進速度_下端深度")] // 必須
982    pub depth: Option<String>,
983    #[serde(rename = "掘進速度_掘進速度")] // 必須
984    pub speed: Option<String>,
985}
986
987// ============================================================================
988// コアチューブビット
989// DTD: <!ELEMENT コアチューブビット (コアチューブビット_下端深度,
990//      コアチューブビット_コアチューブ名?, コアチューブビット_ビット名?)>
991// ============================================================================
992
993#[derive(Debug, Serialize, Deserialize)]
994pub struct CoreTubeBit210 {
995    #[serde(rename = "コアチューブビット_下端深度")] // 必須
996    pub depth: Option<String>,
997    #[serde(default, rename = "コアチューブビット_コアチューブ名")] // オプション
998    pub core_tube_name: Option<String>,
999    #[serde(default, rename = "コアチューブビット_ビット名")] // オプション
1000    pub bit_name: Option<String>,
1001}
1002
1003// ============================================================================
1004// 給圧条件
1005// DTD: <!ELEMENT 給圧条件 (給圧条件_下端深度, 給圧条件_給圧)>
1006// ============================================================================
1007
1008#[derive(Debug, Serialize, Deserialize)]
1009pub struct PressureCondition210 {
1010    #[serde(rename = "給圧条件_下端深度")] // 必須
1011    pub depth: Option<String>,
1012    #[serde(rename = "給圧条件_給圧")] // 必須
1013    pub pressure: Option<String>,
1014}
1015
1016// ============================================================================
1017// 回転数
1018// DTD: <!ELEMENT 回転数 (回転数_下端深度, 回転数_回転数)>
1019// ============================================================================
1020
1021#[derive(Debug, Serialize, Deserialize)]
1022pub struct RotationSpeed210 {
1023    #[serde(rename = "回転数_下端深度")] // 必須
1024    pub depth: Option<String>,
1025    #[serde(rename = "回転数_回転数")] // 必須
1026    pub rotation_speed: Option<String>,
1027}
1028
1029// ============================================================================
1030// 送水条件
1031// DTD: <!ELEMENT 送水条件 (送水条件_下端深度, 送水条件_送水圧, 送水条件_送水量,
1032//      送水条件_排水量, 送水条件_送水種類コード, 送水条件_送水種類?)>
1033// ============================================================================
1034
1035#[derive(Debug, Serialize, Deserialize)]
1036pub struct WaterSupplyCondition210 {
1037    #[serde(rename = "送水条件_下端深度")] // 必須
1038    pub depth: Option<String>,
1039    #[serde(rename = "送水条件_送水圧")] // 必須
1040    pub water_pressure: Option<String>,
1041    #[serde(rename = "送水条件_送水量")] // 必須
1042    pub water_supply_volume: Option<String>,
1043    #[serde(rename = "送水条件_排水量")] // 必須
1044    pub drainage_volume: Option<String>,
1045    #[serde(rename = "送水条件_送水種類コード")] // 必須
1046    pub water_type_code: Option<String>,
1047    #[serde(default, rename = "送水条件_送水種類")] // オプション
1048    pub water_type: Option<String>,
1049}
1050
1051// ============================================================================
1052// 断層破砕帯区分
1053// DTD: <!ELEMENT 断層破砕帯区分 (断層破砕帯区分_上端深度, 断層破砕帯区分_下端深度,
1054//      断層破砕帯区分_性状コード, 断層破砕帯区分_性状?, 断層破砕帯区分_備考?)>
1055// ============================================================================
1056
1057#[derive(Debug, Serialize, Deserialize)]
1058pub struct FaultFractureZoneClassification210 {
1059    #[serde(rename = "断層破砕帯区分_上端深度")] // 必須
1060    pub start_depth: Option<String>,
1061    #[serde(rename = "断層破砕帯区分_下端深度")] // 必須
1062    pub end_depth: Option<String>,
1063    #[serde(rename = "断層破砕帯区分_性状コード")] // 必須
1064    pub property_code: Option<String>,
1065    #[serde(default, rename = "断層破砕帯区分_性状")] // オプション
1066    pub property: Option<String>,
1067    #[serde(default, rename = "断層破砕帯区分_備考")] // オプション
1068    pub remarks: Option<String>,
1069}
1070
1071// ============================================================================
1072// コア採取率
1073// DTD: <!ELEMENT コア採取率 (コア採取率_下端深度, コア採取率_採取率)>
1074// ============================================================================
1075
1076#[derive(Debug, Serialize, Deserialize)]
1077pub struct CoreRecoveryRate210 {
1078    #[serde(rename = "コア採取率_下端深度")] // 必須
1079    pub depth: Option<String>,
1080    #[serde(rename = "コア採取率_採取率")] // 必須
1081    pub recovery_rate: Option<String>,
1082}
1083
1084// ============================================================================
1085// 最大コア長
1086// DTD: <!ELEMENT 最大コア長 (最大コア長_下端深度, 最大コア長_コア長)>
1087// ============================================================================
1088
1089#[derive(Debug, Serialize, Deserialize)]
1090pub struct MaximumCoreLength210 {
1091    #[serde(rename = "最大コア長_下端深度")] // 必須
1092    pub depth: Option<String>,
1093    #[serde(rename = "最大コア長_コア長")] // 必須
1094    pub core_length: Option<String>,
1095}
1096
1097// ============================================================================
1098// RQD
1099// DTD: <!ELEMENT RQD (RQD_下端深度, RQD_RQD?)>
1100// ============================================================================
1101
1102#[derive(Debug, Serialize, Deserialize)]
1103pub struct RQD210 {
1104    #[serde(rename = "RQD_下端深度")] // 必須
1105    pub depth: Option<String>,
1106    #[serde(default, rename = "RQD_RQD")] // オプション
1107    pub rqd: Option<String>,
1108}
1109
1110// ============================================================================
1111// 岩級区分判定表
1112// DTD: <!ELEMENT 岩級区分判定表 (岩級区分判定表_項目名*, 岩級区分判定表_判定*)>
1113// ============================================================================
1114
1115#[derive(Debug, Serialize, Deserialize)]
1116pub struct RockClassClassificationTable210 {
1117    #[serde(default, rename = "岩級区分判定表_項目名")] // * (0回以上)
1118    pub item_names: Vec<String>,
1119    #[serde(default, rename = "岩級区分判定表_判定")] // * (0回以上)
1120    pub judgments: Vec<RockClassJudgment210>,
1121}
1122
1123// ============================================================================
1124// 岩級区分判定表_判定
1125// DTD: <!ELEMENT 岩級区分判定表_判定 (岩級区分判定表_コード, 岩級区分判定表_記号, 岩級区分判定表_説明*)>
1126// ============================================================================
1127
1128#[derive(Debug, Serialize, Deserialize)]
1129pub struct RockClassJudgment210 {
1130    #[serde(rename = "岩級区分判定表_コード")] // 必須
1131    pub code: Option<String>,
1132    #[serde(rename = "岩級区分判定表_記号")] // 必須
1133    pub symbol: Option<String>,
1134    #[serde(default, rename = "岩級区分判定表_説明")] // * (0回以上)
1135    pub descriptions: Vec<String>,
1136}
1137
1138// ============================================================================
1139// 岩級区分
1140// DTD: <!ELEMENT 岩級区分 (岩級区分_下端深度, 岩級区分_岩級区分)>
1141// ============================================================================
1142
1143#[derive(Debug, Serialize, Deserialize)]
1144pub struct RockClassClassification210 {
1145    #[serde(rename = "岩級区分_下端深度")] // 必須
1146    pub depth: Option<String>,
1147    #[serde(rename = "岩級区分_岩級区分")] // 必須
1148    pub classification: Option<String>,
1149}
1150
1151// ============================================================================
1152// 保孔管
1153// DTD: <!ELEMENT 保孔管 (保孔管_下端深度, 保孔管_種別コード, 保孔管_備考?)>
1154// ============================================================================
1155
1156#[derive(Debug, Serialize, Deserialize)]
1157pub struct CasingPipe210 {
1158    #[serde(rename = "保孔管_下端深度")] // 必須
1159    pub depth: Option<String>,
1160    #[serde(rename = "保孔管_種別コード")] // 必須
1161    pub type_code: Option<String>,
1162    #[serde(default, rename = "保孔管_備考")] // オプション
1163    pub remarks: Option<String>,
1164}
1165
1166// ============================================================================
1167// 計測機器
1168// DTD: <!ELEMENT 計測機器 (計測機器_上端深度, 計測機器_下端深度, 計測機器_機器種別, 計測機器_備考?)>
1169// ============================================================================
1170
1171#[derive(Debug, Serialize, Deserialize)]
1172pub struct MeasuringInstrument210 {
1173    #[serde(rename = "計測機器_上端深度")] // 必須
1174    pub start_depth: Option<String>,
1175    #[serde(rename = "計測機器_下端深度")] // 必須
1176    pub end_depth: Option<String>,
1177    #[serde(rename = "計測機器_機器種別")] // 必須
1178    pub instrument_type: Option<String>,
1179    #[serde(default, rename = "計測機器_備考")] // オプション
1180    pub remarks: Option<String>,
1181}
1182
1183// ============================================================================
1184// 地下水検層試験
1185// DTD: <!ELEMENT 地下水検層試験 (地下水検層試験_試験番号, 地下水検層試験_上端深度,
1186//      地下水検層試験_下端深度, 地下水検層試験_掘削深度, 地下水検層試験_孔内水位,
1187//      地下水検層試験_試験方法コード, 地下水検層試験_電解質溶液濃度, 地下水検層試験_測定時間*)>
1188// ============================================================================
1189
1190#[derive(Debug, Serialize, Deserialize)]
1191pub struct GroundwaterLoggingTest210 {
1192    #[serde(rename = "地下水検層試験_試験番号")] // 必須
1193    pub test_number: Option<String>,
1194    #[serde(rename = "地下水検層試験_上端深度")] // 必須
1195    pub start_depth: Option<String>,
1196    #[serde(rename = "地下水検層試験_下端深度")] // 必須
1197    pub end_depth: Option<String>,
1198    #[serde(rename = "地下水検層試験_掘削深度")] // 必須
1199    pub drilling_depth: Option<String>,
1200    #[serde(rename = "地下水検層試験_孔内水位")] // 必須
1201    pub water_level: Option<String>,
1202    #[serde(rename = "地下水検層試験_試験方法コード")] // 必須
1203    pub test_method_code: Option<String>,
1204    #[serde(rename = "地下水検層試験_電解質溶液濃度")] // 必須
1205    pub electrolyte_concentration: Option<String>,
1206    #[serde(default, rename = "地下水検層試験_測定時間")] // * (0回以上)
1207    pub measurement_times: Vec<String>,
1208}
1209
1210// ============================================================================
1211// 地下水検層試験詳細データ
1212// DTD: <!ELEMENT 地下水検層試験詳細データ (地下水検層試験詳細データ_試験番号,
1213//      地下水検層試験詳細データ_測定深度, 地下水検層試験詳細データ_比抵抗値*)>
1214// ============================================================================
1215
1216#[derive(Debug, Serialize, Deserialize)]
1217pub struct GroundwaterLoggingTestDetail210 {
1218    #[serde(rename = "地下水検層試験詳細データ_試験番号")] // 必須
1219    pub test_number: Option<String>,
1220    #[serde(rename = "地下水検層試験詳細データ_測定深度")] // 必須
1221    pub measurement_depth: Option<String>,
1222    #[serde(default, rename = "地下水検層試験詳細データ_比抵抗値")] // * (0回以上)
1223    pub resistivity_values: Vec<String>,
1224}
1225
1226// ============================================================================
1227// 地下水検層試験判定結果
1228// DTD: <!ELEMENT 地下水検層試験判定結果 (地下水検層試験判定結果_上端深度,
1229//      地下水検層試験判定結果_下端深度, 地下水検層試験判定結果_地下水検層結果)>
1230// ============================================================================
1231
1232#[derive(Debug, Serialize, Deserialize)]
1233pub struct GroundwaterLoggingTestResult210 {
1234    #[serde(rename = "地下水検層試験判定結果_上端深度")] // 必須
1235    pub start_depth: Option<String>,
1236    #[serde(rename = "地下水検層試験判定結果_下端深度")] // 必須
1237    pub end_depth: Option<String>,
1238    #[serde(rename = "地下水検層試験判定結果_地下水検層結果")] // 必須
1239    pub result: Option<String>,
1240}
1241
1242// ============================================================================
1243// 備考
1244// DTD: <!ELEMENT 備考 (備考_タイトル, 備考_上端深度, 備考_下端深度, 備考_備考内容)>
1245// ============================================================================
1246
1247#[derive(Debug, Serialize, Deserialize)]
1248pub struct Remark210 {
1249    #[serde(rename = "備考_タイトル")] // 必須
1250    pub title: Option<String>,
1251    #[serde(rename = "備考_上端深度")] // 必須
1252    pub start_depth: Option<String>,
1253    #[serde(rename = "備考_下端深度")] // 必須
1254    pub end_depth: Option<String>,
1255    #[serde(rename = "備考_備考内容")] // 必須
1256    pub content: Option<String>,
1257}