boring_parser/
boring_structs_210.rs

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