slaw 9.1.0 → 10.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ end
5
5
  def subsection(xml)
6
6
  pre = <<XML
7
7
  <?xml version="1.0" encoding="UTF-8"?>
8
- <akomaNtoso xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.akomantoso.org/2.0" xsi:schemaLocation="http://www.akomantoso.org/2.0 akomantoso20.xsd">
8
+ <akomaNtoso xmlns="http://docs.oasis-open.org/legaldocml/ns/akn/3.0">
9
9
  <act contains="singleVersion">
10
10
  <body>
11
11
  <section id="section-10">
@@ -30,7 +30,7 @@ end
30
30
  def section(xml)
31
31
  pre = <<XML
32
32
  <?xml version="1.0" encoding="UTF-8"?>
33
- <akomaNtoso xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.akomantoso.org/2.0" xsi:schemaLocation="http://www.akomantoso.org/2.0 akomantoso20.xsd">
33
+ <akomaNtoso xmlns="http://docs.oasis-open.org/legaldocml/ns/akn/3.0">
34
34
  <act contains="singleVersion">
35
35
  <body>
36
36
  <section id="section-10">
@@ -46,20 +46,20 @@ Hello there
46
46
  CROSSHEADING crossheading
47
47
  EOS
48
48
  to_xml(node).should == '<body>
49
- <paragraph id="paragraph0">
49
+ <hcontainer eId="hcontainer_1" name="hcontainer">
50
50
  <content>
51
51
  <p>Some content before the section</p>
52
52
  </content>
53
- </paragraph>
54
- <section id="section-1">
53
+ </hcontainer>
54
+ <section eId="sec_1">
55
55
  <num>1.</num>
56
56
  <heading>Section</heading>
57
- <paragraph id="section-1.paragraph0">
57
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
58
58
  <content>
59
59
  <p>Hello there</p>
60
60
  </content>
61
- </paragraph>
62
- <hcontainer id="section-1.crossheading-0" name="crossheading">
61
+ </hcontainer>
62
+ <hcontainer eId="sec_1__hcontainer_2" name="crossheading">
63
63
  <heading>crossheading</heading>
64
64
  </hcontainer>
65
65
  </section>
@@ -81,33 +81,33 @@ Hello there
81
81
  CROSSHEADING crossheading
82
82
  EOS
83
83
  to_xml(node).should == '<body>
84
- <paragraph id="paragraph0">
84
+ <hcontainer eId="hcontainer_1" name="hcontainer">
85
85
  <content>
86
86
  <p>Some content before the section</p>
87
- <blockList id="paragraph0.list0" renest="true">
88
- <item id="paragraph0.list0.a">
87
+ <blockList eId="hcontainer_1__list_1" renest="true">
88
+ <item eId="hcontainer_1__list_1__item_a">
89
89
  <num>(a)</num>
90
90
  <p>foo</p>
91
91
  </item>
92
- <item id="paragraph0.list0.b">
92
+ <item eId="hcontainer_1__list_1__item_b">
93
93
  <num>(b)</num>
94
94
  <p>bar</p>
95
95
  </item>
96
96
  </blockList>
97
97
  </content>
98
- </paragraph>
99
- <hcontainer id="crossheading-0" name="crossheading">
98
+ </hcontainer>
99
+ <hcontainer eId="hcontainer_2" name="crossheading">
100
100
  <heading>crossheading</heading>
101
101
  </hcontainer>
102
- <section id="section-1">
102
+ <section eId="sec_1">
103
103
  <num>1.</num>
104
104
  <heading>Section</heading>
105
- <paragraph id="section-1.paragraph0">
105
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
106
106
  <content>
107
107
  <p>Hello there</p>
108
108
  </content>
109
- </paragraph>
110
- <hcontainer id="section-1.crossheading-0" name="crossheading">
109
+ </hcontainer>
110
+ <hcontainer eId="sec_1__hcontainer_2" name="crossheading">
111
111
  <heading>crossheading</heading>
112
112
  </hcontainer>
113
113
  </section>
@@ -124,20 +124,20 @@ EOS
124
124
  \\Chapter 2 ignored
125
125
  EOS
126
126
  to_xml(node).should == '<body>
127
- <paragraph id="paragraph0">
127
+ <hcontainer eId="hcontainer_1" name="hcontainer">
128
128
  <content>
129
129
  <p>1. ignored</p>
130
130
  <p>CROSSHEADING crossheading</p>
131
131
  </content>
132
- </paragraph>
133
- <section id="section-1">
132
+ </hcontainer>
133
+ <section eId="sec_1">
134
134
  <num>1.</num>
135
135
  <heading>Section</heading>
136
- <paragraph id="section-1.paragraph0">
136
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
137
137
  <content>
138
138
  <p>Chapter 2 ignored</p>
139
139
  </content>
140
- </paragraph>
140
+ </hcontainer>
141
141
  </section>
142
142
  </body>'
143
143
  end
@@ -152,19 +152,19 @@ Some content before the section
152
152
  Hello there
153
153
  EOS
154
154
  to_xml(node).should == '<body>
155
- <paragraph id="paragraph0">
155
+ <hcontainer eId="hcontainer_1" name="hcontainer">
156
156
  <content>
157
157
  <p>Some content before the section</p>
158
158
  </content>
159
- </paragraph>
160
- <section id="section-1">
159
+ </hcontainer>
160
+ <section eId="sec_1">
161
161
  <num>1.</num>
162
162
  <heading>Section</heading>
163
- <paragraph id="section-1.paragraph0">
163
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
164
164
  <content>
165
165
  <p>Hello there</p>
166
166
  </content>
167
- </paragraph>
167
+ </hcontainer>
168
168
  </section>
169
169
  </body>'
170
170
  end
@@ -206,17 +206,17 @@ The Chapter Heading
206
206
  1. Section
207
207
  Hello there
208
208
  EOS
209
- to_xml(node).should == '<chapter id="chapter-2">
209
+ to_xml(node).should == '<chapter eId="chp_2">
210
210
  <num>2</num>
211
211
  <heading>The Chapter Heading</heading>
212
- <section id="section-1">
212
+ <section eId="sec_1">
213
213
  <num>1.</num>
214
214
  <heading>Section</heading>
215
- <paragraph id="section-1.paragraph0">
215
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
216
216
  <content>
217
217
  <p>Hello there</p>
218
218
  </content>
219
- </paragraph>
219
+ </hcontainer>
220
220
  </section>
221
221
  </chapter>'
222
222
  end
@@ -228,16 +228,16 @@ ChaPTEr 2:
228
228
  1. Section
229
229
  Hello there
230
230
  EOS
231
- to_xml(node).should == '<chapter id="chapter-2">
231
+ to_xml(node).should == '<chapter eId="chp_2">
232
232
  <num>2</num>
233
- <section id="section-1">
233
+ <section eId="sec_1">
234
234
  <num>1.</num>
235
235
  <heading>Section</heading>
236
- <paragraph id="section-1.paragraph0">
236
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
237
237
  <content>
238
238
  <p>Hello there</p>
239
239
  </content>
240
- </paragraph>
240
+ </hcontainer>
241
241
  </section>
242
242
  </chapter>'
243
243
  end
@@ -253,17 +253,17 @@ Some lines at the start of the chapter.
253
253
  EOS
254
254
  node.num.should == "2"
255
255
  node.heading.heading.text_value.should == "\nThe Chapter Heading"
256
- to_xml(node).should == '<chapter id="chapter-2">
256
+ to_xml(node).should == '<chapter eId="chp_2">
257
257
  <num>2</num>
258
258
  <heading>The Chapter Heading</heading>
259
- <hcontainer id="chapter-2.crossheading-0" name="crossheading">
259
+ <hcontainer eId="chp_2__hcontainer_1" name="crossheading">
260
260
  <heading>crossheading</heading>
261
261
  </hcontainer>
262
- <paragraph id="chapter-2.paragraph0">
262
+ <hcontainer eId="chp_2__hcontainer_2" name="hcontainer">
263
263
  <content>
264
264
  <p>Some lines at the start of the chapter.</p>
265
265
  </content>
266
- </paragraph>
266
+ </hcontainer>
267
267
  </chapter>'
268
268
  end
269
269
 
@@ -279,22 +279,22 @@ Section text.
279
279
  EOS
280
280
  node.num.should == "2"
281
281
  node.heading.heading.text_value.should == 'The Chapter Heading'
282
- to_xml(node).should == '<chapter id="chapter-2">
282
+ to_xml(node).should == '<chapter eId="chp_2">
283
283
  <num>2</num>
284
284
  <heading>The Chapter Heading</heading>
285
- <paragraph id="chapter-2.paragraph0">
285
+ <hcontainer eId="chp_2__hcontainer_1" name="hcontainer">
286
286
  <content>
287
287
  <p>Some lines at the start of the chapter.</p>
288
288
  </content>
289
- </paragraph>
290
- <section id="section-1">
289
+ </hcontainer>
290
+ <section eId="sec_1">
291
291
  <num>1.</num>
292
292
  <heading>Section 1</heading>
293
- <paragraph id="section-1.paragraph0">
293
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
294
294
  <content>
295
295
  <p>Section text.</p>
296
296
  </content>
297
- </paragraph>
297
+ </hcontainer>
298
298
  </section>
299
299
  </chapter>'
300
300
  end
@@ -306,17 +306,17 @@ Chapter 2
306
306
  1. Section
307
307
  Hello there
308
308
  EOS
309
- to_xml(node).should == '<chapter id="chapter-2">
309
+ to_xml(node).should == '<chapter eId="chp_2">
310
310
  <num>2</num>
311
311
  <heading>The Chapter Heading</heading>
312
- <section id="section-1">
312
+ <section eId="sec_1">
313
313
  <num>1.</num>
314
314
  <heading>Section</heading>
315
- <paragraph id="section-1.paragraph0">
315
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
316
316
  <content>
317
317
  <p>Hello there</p>
318
318
  </content>
319
- </paragraph>
319
+ </hcontainer>
320
320
  </section>
321
321
  </chapter>'
322
322
  end
@@ -329,17 +329,17 @@ Chapter 2
329
329
  1. Section
330
330
  Hello there
331
331
  EOS
332
- to_xml(node).should == '<chapter id="chapter-2">
332
+ to_xml(node).should == '<chapter eId="chp_2">
333
333
  <num>2</num>
334
334
  <heading>The <b>Chapter</b> <ref href="/za/act/1990/1">Heading</ref> <remark status="editorial">[remark]</remark></heading>
335
- <section id="section-1">
335
+ <section eId="sec_1">
336
336
  <num>1.</num>
337
337
  <heading>Section</heading>
338
- <paragraph id="section-1.paragraph0">
338
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
339
339
  <content>
340
340
  <p>Hello there</p>
341
341
  </content>
342
- </paragraph>
342
+ </hcontainer>
343
343
  </section>
344
344
  </chapter>'
345
345
  end
@@ -351,17 +351,17 @@ Chapter 2 - The **Chapter** [Heading](/za/act/1990/1) [[remark]]
351
351
  1. Section
352
352
  Hello there
353
353
  EOS
354
- to_xml(node).should == '<chapter id="chapter-2">
354
+ to_xml(node).should == '<chapter eId="chp_2">
355
355
  <num>2</num>
356
356
  <heading>The <b>Chapter</b> <ref href="/za/act/1990/1">Heading</ref> <remark status="editorial">[remark]</remark></heading>
357
- <section id="section-1">
357
+ <section eId="sec_1">
358
358
  <num>1.</num>
359
359
  <heading>Section</heading>
360
- <paragraph id="section-1.paragraph0">
360
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
361
361
  <content>
362
362
  <p>Hello there</p>
363
363
  </content>
364
- </paragraph>
364
+ </hcontainer>
365
365
  </section>
366
366
  </chapter>'
367
367
  end
@@ -372,11 +372,11 @@ Chapter 2 The Chapter Heading
372
372
  Chapter 3 The Other Heading
373
373
  EOS
374
374
  to_xml(node).should == '<body>
375
- <chapter id="chapter-2">
375
+ <chapter eId="chp_2">
376
376
  <num>2</num>
377
377
  <heading>The Chapter Heading</heading>
378
378
  </chapter>
379
- <chapter id="chapter-3">
379
+ <chapter eId="chp_3">
380
380
  <num>3</num>
381
381
  <heading>The Other Heading</heading>
382
382
  </chapter>
@@ -391,12 +391,12 @@ Chapter 2 The Chapter
391
391
  | foo
392
392
  |}
393
393
  EOS
394
- to_xml(node).should == '<chapter id="chapter-2">
394
+ to_xml(node).should == '<chapter eId="chp_2">
395
395
  <num>2</num>
396
396
  <heading>The Chapter</heading>
397
- <paragraph id="chapter-2.paragraph0">
397
+ <hcontainer eId="chp_2__hcontainer_1" name="hcontainer">
398
398
  <content>
399
- <table id="chapter-2.paragraph0.table0">
399
+ <table eId="chp_2__hcontainer_1__table_1">
400
400
  <tr>
401
401
  <td>
402
402
  <p>foo</p>
@@ -404,7 +404,7 @@ EOS
404
404
  </tr>
405
405
  </table>
406
406
  </content>
407
- </paragraph>
407
+ </hcontainer>
408
408
  </chapter>'
409
409
  end
410
410
 
@@ -418,16 +418,16 @@ Stuff
418
418
 
419
419
  More stuff
420
420
  EOS
421
- to_xml(node).should == '<chapter id="chapter-1">
421
+ to_xml(node).should == '<chapter eId="chp_1">
422
422
  <num>1</num>
423
423
  <heading>The Chapter</heading>
424
- <paragraph id="chapter-1.paragraph0">
424
+ <hcontainer eId="chp_1__hcontainer_1" name="hcontainer">
425
425
  <content>
426
426
  <p>Stuff</p>
427
427
  <p>Chapter 2 - Ignored</p>
428
428
  <p>More stuff</p>
429
429
  </content>
430
- </paragraph>
430
+ </hcontainer>
431
431
  </chapter>'
432
432
  end
433
433
 
@@ -443,26 +443,26 @@ Part 2 - Chapter One Part Two
443
443
 
444
444
  one-two
445
445
  EOS
446
- to_xml(node).should == '<chapter id="chapter-1">
446
+ to_xml(node).should == '<chapter eId="chp_1">
447
447
  <num>1</num>
448
448
  <heading>Chapter One</heading>
449
- <part id="chapter-1.part-1">
449
+ <part eId="chp_1__part_1">
450
450
  <num>1</num>
451
451
  <heading>Chapter One Part One</heading>
452
- <paragraph id="chapter-1.part-1.paragraph0">
452
+ <hcontainer eId="chp_1__part_1__hcontainer_1" name="hcontainer">
453
453
  <content>
454
454
  <p>one-one</p>
455
455
  </content>
456
- </paragraph>
456
+ </hcontainer>
457
457
  </part>
458
- <part id="chapter-1.part-2">
458
+ <part eId="chp_1__part_2">
459
459
  <num>2</num>
460
460
  <heading>Chapter One Part Two</heading>
461
- <paragraph id="chapter-1.part-2.paragraph0">
461
+ <hcontainer eId="chp_1__part_2__hcontainer_1" name="hcontainer">
462
462
  <content>
463
463
  <p>one-two</p>
464
464
  </content>
465
- </paragraph>
465
+ </hcontainer>
466
466
  </part>
467
467
  </chapter>'
468
468
  end
@@ -482,20 +482,20 @@ CROSSHEADING crossheading
482
482
  1. Section
483
483
  Hello there
484
484
  EOS
485
- to_xml(node).should == '<part id="part-2">
485
+ to_xml(node).should == '<part eId="part_2">
486
486
  <num>2</num>
487
487
  <heading>The Part Heading</heading>
488
- <hcontainer id="part-2.crossheading-0" name="crossheading">
488
+ <hcontainer eId="part_2__hcontainer_1" name="crossheading">
489
489
  <heading>crossheading</heading>
490
490
  </hcontainer>
491
- <section id="section-1">
491
+ <section eId="sec_1">
492
492
  <num>1.</num>
493
493
  <heading>Section</heading>
494
- <paragraph id="section-1.paragraph0">
494
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
495
495
  <content>
496
496
  <p>Hello there</p>
497
497
  </content>
498
- </paragraph>
498
+ </hcontainer>
499
499
  </section>
500
500
  </part>'
501
501
  end
@@ -506,17 +506,17 @@ Part 2 - The Part Heading
506
506
  1. Section
507
507
  Hello there
508
508
  EOS
509
- to_xml(node).should == '<part id="part-2">
509
+ to_xml(node).should == '<part eId="part_2">
510
510
  <num>2</num>
511
511
  <heading>The Part Heading</heading>
512
- <section id="section-1">
512
+ <section eId="sec_1">
513
513
  <num>1.</num>
514
514
  <heading>Section</heading>
515
- <paragraph id="section-1.paragraph0">
515
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
516
516
  <content>
517
517
  <p>Hello there</p>
518
518
  </content>
519
- </paragraph>
519
+ </hcontainer>
520
520
  </section>
521
521
  </part>'
522
522
  end
@@ -527,17 +527,17 @@ Part 2: The Part Heading
527
527
  1. Section
528
528
  Hello there
529
529
  EOS
530
- to_xml(node).should == '<part id="part-2">
530
+ to_xml(node).should == '<part eId="part_2">
531
531
  <num>2</num>
532
532
  <heading>The Part Heading</heading>
533
- <section id="section-1">
533
+ <section eId="sec_1">
534
534
  <num>1.</num>
535
535
  <heading>Section</heading>
536
- <paragraph id="section-1.paragraph0">
536
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
537
537
  <content>
538
538
  <p>Hello there</p>
539
539
  </content>
540
- </paragraph>
540
+ </hcontainer>
541
541
  </section>
542
542
  </part>'
543
543
  end
@@ -549,16 +549,16 @@ Part 2:
549
549
  1. Section
550
550
  Hello there
551
551
  EOS
552
- to_xml(node).should == '<part id="part-2">
552
+ to_xml(node).should == '<part eId="part_2">
553
553
  <num>2</num>
554
- <section id="section-1">
554
+ <section eId="sec_1">
555
555
  <num>1.</num>
556
556
  <heading>Section</heading>
557
- <paragraph id="section-1.paragraph0">
557
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
558
558
  <content>
559
559
  <p>Hello there</p>
560
560
  </content>
561
- </paragraph>
561
+ </hcontainer>
562
562
  </section>
563
563
  </part>'
564
564
  end
@@ -570,17 +570,17 @@ Part 2
570
570
  1. Section
571
571
  Hello there
572
572
  EOS
573
- to_xml(node).should == '<part id="part-2">
573
+ to_xml(node).should == '<part eId="part_2">
574
574
  <num>2</num>
575
575
  <heading>The Part Heading</heading>
576
- <section id="section-1">
576
+ <section eId="sec_1">
577
577
  <num>1.</num>
578
578
  <heading>Section</heading>
579
- <paragraph id="section-1.paragraph0">
579
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
580
580
  <content>
581
581
  <p>Hello there</p>
582
582
  </content>
583
- </paragraph>
583
+ </hcontainer>
584
584
  </section>
585
585
  </part>'
586
586
  end
@@ -592,17 +592,17 @@ Part 2
592
592
  1. Section
593
593
  Hello there
594
594
  EOS
595
- to_xml(node).should == '<part id="part-2">
595
+ to_xml(node).should == '<part eId="part_2">
596
596
  <num>2</num>
597
597
  <heading>The <b>Part</b> Heading</heading>
598
- <section id="section-1">
598
+ <section eId="sec_1">
599
599
  <num>1.</num>
600
600
  <heading>Section</heading>
601
- <paragraph id="section-1.paragraph0">
601
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
602
602
  <content>
603
603
  <p>Hello there</p>
604
604
  </content>
605
- </paragraph>
605
+ </hcontainer>
606
606
  </section>
607
607
  </part>'
608
608
  end
@@ -613,17 +613,17 @@ Part 2 The **Part** Heading
613
613
  1. Section
614
614
  Hello there
615
615
  EOS
616
- to_xml(node).should == '<part id="part-2">
616
+ to_xml(node).should == '<part eId="part_2">
617
617
  <num>2</num>
618
618
  <heading>The <b>Part</b> Heading</heading>
619
- <section id="section-1">
619
+ <section eId="sec_1">
620
620
  <num>1.</num>
621
621
  <heading>Section</heading>
622
- <paragraph id="section-1.paragraph0">
622
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
623
623
  <content>
624
624
  <p>Hello there</p>
625
625
  </content>
626
- </paragraph>
626
+ </hcontainer>
627
627
  </section>
628
628
  </part>'
629
629
  end
@@ -636,17 +636,17 @@ PREVENTION AND SUPPRESSION OF HEALTH NUISANCES
636
636
  1.
637
637
  No owner or occupier of any shop or business premises or vacant land adjoining a shop or business premises shall cause a health nuisance.
638
638
  EOS
639
- to_xml(node).should == '<part id="part-1">
639
+ to_xml(node).should == '<part eId="part_1">
640
640
  <num>1</num>
641
641
  <heading>PREVENTION AND SUPPRESSION OF HEALTH NUISANCES</heading>
642
- <section id="section-1">
642
+ <section eId="sec_1">
643
643
  <num>1.</num>
644
644
  <heading/>
645
- <paragraph id="section-1.paragraph0">
645
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
646
646
  <content>
647
647
  <p>No owner or occupier of any shop or business premises or vacant land adjoining a shop or business premises shall cause a health nuisance.</p>
648
648
  </content>
649
- </paragraph>
649
+ </hcontainer>
650
650
  </section>
651
651
  </part>'
652
652
  end
@@ -663,22 +663,22 @@ Hello there
663
663
  EOS
664
664
  node.num.should == "2"
665
665
  node.heading.heading.text_value.should == "\nThe Part Heading"
666
- to_xml(node).should == '<part id="part-2">
666
+ to_xml(node).should == '<part eId="part_2">
667
667
  <num>2</num>
668
668
  <heading>The Part Heading</heading>
669
- <paragraph id="part-2.paragraph0">
669
+ <hcontainer eId="part_2__hcontainer_1" name="hcontainer">
670
670
  <content>
671
671
  <p>Some text before the part.</p>
672
672
  </content>
673
- </paragraph>
674
- <section id="section-1">
673
+ </hcontainer>
674
+ <section eId="sec_1">
675
675
  <num>1.</num>
676
676
  <heading>Section</heading>
677
- <paragraph id="section-1.paragraph0">
677
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
678
678
  <content>
679
679
  <p>Hello there</p>
680
680
  </content>
681
- </paragraph>
681
+ </hcontainer>
682
682
  </section>
683
683
  </part>'
684
684
  end
@@ -689,11 +689,11 @@ Part 2 The Part Heading
689
689
  Part 3 The Other Heading
690
690
  EOS
691
691
  to_xml(node).should == '<body>
692
- <part id="part-2">
692
+ <part eId="part_2">
693
693
  <num>2</num>
694
694
  <heading>The Part Heading</heading>
695
695
  </part>
696
- <part id="part-3">
696
+ <part eId="part_3">
697
697
  <num>3</num>
698
698
  <heading>The Other Heading</heading>
699
699
  </part>
@@ -706,14 +706,14 @@ Part 2 The Part Heading
706
706
  \\Part 3 ignored
707
707
  EOS
708
708
  to_xml(node).should == '<body>
709
- <part id="part-2">
709
+ <part eId="part_2">
710
710
  <num>2</num>
711
711
  <heading>The Part Heading</heading>
712
- <paragraph id="part-2.paragraph0">
712
+ <hcontainer eId="part_2__hcontainer_1" name="hcontainer">
713
713
  <content>
714
714
  <p>Part 3 ignored</p>
715
715
  </content>
716
- </paragraph>
716
+ </hcontainer>
717
717
  </part>
718
718
  </body>'
719
719
  end
@@ -730,26 +730,26 @@ Chapter 2 - Part One Chapter Two
730
730
 
731
731
  one-two
732
732
  EOS
733
- to_xml(node).should == '<part id="part-1">
733
+ to_xml(node).should == '<part eId="part_1">
734
734
  <num>1</num>
735
735
  <heading>Part One</heading>
736
- <chapter id="part-1.chapter-1">
736
+ <chapter eId="part_1__chp_1">
737
737
  <num>1</num>
738
738
  <heading>Part One Chapter One</heading>
739
- <paragraph id="part-1.chapter-1.paragraph0">
739
+ <hcontainer eId="part_1__chp_1__hcontainer_1" name="hcontainer">
740
740
  <content>
741
741
  <p>one-one</p>
742
742
  </content>
743
- </paragraph>
743
+ </hcontainer>
744
744
  </chapter>
745
- <chapter id="part-1.chapter-2">
745
+ <chapter eId="part_1__chp_2">
746
746
  <num>2</num>
747
747
  <heading>Part One Chapter Two</heading>
748
- <paragraph id="part-1.chapter-2.paragraph0">
748
+ <hcontainer eId="part_1__chp_2__hcontainer_1" name="hcontainer">
749
749
  <content>
750
750
  <p>one-two</p>
751
751
  </content>
752
- </paragraph>
752
+ </hcontainer>
753
753
  </chapter>
754
754
  </part>'
755
755
  end
@@ -766,17 +766,17 @@ SUBPART 2 - Heading
766
766
  1. Section
767
767
  Hello there
768
768
  EOS
769
- to_xml(node).should == '<subpart id="subpart-2">
769
+ to_xml(node).should == '<subpart eId="subpart_2">
770
770
  <num>2</num>
771
771
  <heading>Heading</heading>
772
- <section id="section-1">
772
+ <section eId="sec_1">
773
773
  <num>1.</num>
774
774
  <heading>Section</heading>
775
- <paragraph id="section-1.paragraph0">
775
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
776
776
  <content>
777
777
  <p>Hello there</p>
778
778
  </content>
779
- </paragraph>
779
+ </hcontainer>
780
780
  </section>
781
781
  </subpart>'
782
782
  end
@@ -797,37 +797,58 @@ SUBPART 2 - The Subpart 2
797
797
 
798
798
  Bye
799
799
  EOS
800
- to_xml(node).should == '<part id="part-A">
800
+ to_xml(node).should == '<part eId="part_A">
801
801
  <num>A</num>
802
802
  <heading>The Part</heading>
803
- <subpart id="part-A.subpart-1">
803
+ <subpart eId="part_A__subpart_1">
804
804
  <num>1</num>
805
805
  <heading>The Subpart 1</heading>
806
- <section id="section-1">
806
+ <section eId="sec_1">
807
807
  <num>1.</num>
808
808
  <heading>Section</heading>
809
- <paragraph id="section-1.paragraph0">
809
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
810
810
  <content>
811
811
  <p>Hello</p>
812
812
  </content>
813
- </paragraph>
813
+ </hcontainer>
814
814
  </section>
815
815
  </subpart>
816
- <subpart id="part-A.subpart-2">
816
+ <subpart eId="part_A__subpart_2">
817
817
  <num>2</num>
818
818
  <heading>The Subpart 2</heading>
819
- <section id="section-2">
819
+ <section eId="sec_2">
820
820
  <num>2.</num>
821
821
  <heading>Section</heading>
822
- <paragraph id="section-2.paragraph0">
822
+ <hcontainer eId="sec_2__hcontainer_1" name="hcontainer">
823
823
  <content>
824
824
  <p>Bye</p>
825
825
  </content>
826
- </paragraph>
826
+ </hcontainer>
827
827
  </section>
828
828
  </subpart>
829
829
  </part>'
830
830
  end
831
+
832
+ it 'should allow optional numbers' do
833
+ node = parse :subpart, <<EOS
834
+ SUBPART - Heading - with a dash
835
+
836
+ 1. Section
837
+ Hello there
838
+ EOS
839
+ to_xml(node).should == '<subpart eId="subpart_1">
840
+ <heading>Heading - with a dash</heading>
841
+ <section eId="sec_1">
842
+ <num>1.</num>
843
+ <heading>Section</heading>
844
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
845
+ <content>
846
+ <p>Hello there</p>
847
+ </content>
848
+ </hcontainer>
849
+ </section>
850
+ </subpart>'
851
+ end
831
852
  end
832
853
 
833
854
  #-------------------------------------------------------------------------------
@@ -848,24 +869,24 @@ EOS
848
869
  (c) three
849
870
  (i) four
850
871
  EOS
851
- to_xml(node, "", 1).should == '<subsection id="2">
872
+ to_xml(node, "", 1).should == '<subsection eId="subsec_2">
852
873
  <num>(2)</num>
853
874
  <content>
854
875
  <p>title</p>
855
- <blockList id="2.list0" renest="true">
856
- <item id="2.list0.a">
876
+ <blockList eId="subsec_2__list_1" renest="true">
877
+ <item eId="subsec_2__list_1__item_a">
857
878
  <num>(a)</num>
858
879
  <p>one</p>
859
880
  </item>
860
- <item id="2.list0.b">
881
+ <item eId="subsec_2__list_1__item_b">
861
882
  <num>(b)</num>
862
883
  <p>two</p>
863
884
  </item>
864
- <item id="2.list0.c">
885
+ <item eId="subsec_2__list_1__item_c">
865
886
  <num>(c)</num>
866
887
  <p>three</p>
867
888
  </item>
868
- <item id="2.list0.i">
889
+ <item eId="subsec_2__list_1__item_i">
869
890
  <num>(i)</num>
870
891
  <p>four</p>
871
892
  </item>
@@ -882,23 +903,23 @@ EOS
882
903
  (i) four
883
904
  EOS
884
905
  )
885
- to_xml(node, "", 1).should == '<subsection id="1">
906
+ to_xml(node, "", 1).should == '<subsection eId="subsec_1">
886
907
  <num>(1)</num>
887
908
  <content>
888
- <blockList id="1.list0" renest="true">
889
- <item id="1.list0.a">
909
+ <blockList eId="subsec_1__list_1" renest="true">
910
+ <item eId="subsec_1__list_1__item_a">
890
911
  <num>(a)</num>
891
912
  <p>one</p>
892
913
  </item>
893
- <item id="1.list0.b">
914
+ <item eId="subsec_1__list_1__item_b">
894
915
  <num>(b)</num>
895
916
  <p>two</p>
896
917
  </item>
897
- <item id="1.list0.c">
918
+ <item eId="subsec_1__list_1__item_c">
898
919
  <num>(c)</num>
899
920
  <p>three</p>
900
921
  </item>
901
- <item id="1.list0.i">
922
+ <item eId="subsec_1__list_1__item_i">
902
923
  <num>(i)</num>
903
924
  <p>four</p>
904
925
  </item>
@@ -914,15 +935,15 @@ EOS
914
935
  (b) two
915
936
  EOS
916
937
  )
917
- to_xml(node, "", 1).should == '<subsection id="1">
938
+ to_xml(node, "", 1).should == '<subsection eId="subsec_1">
918
939
  <num>(1)</num>
919
940
  <content>
920
- <blockList id="1.list0" renest="true">
921
- <item id="1.list0.a">
941
+ <blockList eId="subsec_1__list_1" renest="true">
942
+ <item eId="subsec_1__list_1__item_a">
922
943
  <num>(a)</num>
923
944
  <p>one</p>
924
945
  </item>
925
- <item id="1.list0.b">
946
+ <item eId="subsec_1__list_1__item_b">
926
947
  <num>(b)</num>
927
948
  <p>two</p>
928
949
  </item>
@@ -940,22 +961,22 @@ EOS
940
961
  (3) third
941
962
  EOS
942
963
  )
943
- to_xml(node).should == '<section id="section-1">
964
+ to_xml(node).should == '<section eId="sec_1">
944
965
  <num>1.</num>
945
966
  <heading>Section</heading>
946
- <subsection id="section-1.1">
967
+ <subsection eId="sec_1__subsec_1">
947
968
  <num>(1)</num>
948
969
  <content>
949
970
  <p/>
950
971
  </content>
951
972
  </subsection>
952
- <subsection id="section-1.2">
973
+ <subsection eId="sec_1__subsec_2">
953
974
  <num>(2)</num>
954
975
  <content>
955
976
  <p>next line</p>
956
977
  </content>
957
978
  </subsection>
958
- <subsection id="section-1.3">
979
+ <subsection eId="sec_1__subsec_3">
959
980
  <num>(3)</num>
960
981
  <content>
961
982
  <p>third</p>
@@ -972,24 +993,24 @@ EOS
972
993
  (ii) double
973
994
  EOS
974
995
  )
975
- to_xml(node, "", 1).should == '<subsection id="1">
996
+ to_xml(node, "", 1).should == '<subsection eId="subsec_1">
976
997
  <num>(1)</num>
977
998
  <content>
978
999
  <p>here\'s my really cool list,</p>
979
- <blockList id="1.list0" renest="true">
980
- <item id="1.list0.a">
1000
+ <blockList eId="subsec_1__list_1" renest="true">
1001
+ <item eId="subsec_1__list_1__item_a">
981
1002
  <num>(a)</num>
982
1003
  <p>one</p>
983
1004
  </item>
984
- <item id="1.list0.b">
1005
+ <item eId="subsec_1__list_1__item_b">
985
1006
  <num>(b)</num>
986
1007
  <p/>
987
1008
  </item>
988
- <item id="1.list0.i">
1009
+ <item eId="subsec_1__list_1__item_i">
989
1010
  <num>(i)</num>
990
1011
  <p>single</p>
991
1012
  </item>
992
- <item id="1.list0.ii">
1013
+ <item eId="subsec_1__list_1__item_ii">
993
1014
  <num>(ii)</num>
994
1015
  <p>double</p>
995
1016
  </item>
@@ -1006,24 +1027,24 @@ EOS
1006
1027
  (ii) double
1007
1028
  EOS
1008
1029
  )
1009
- to_xml(node, "", 1).should == '<subsection id="1">
1030
+ to_xml(node, "", 1).should == '<subsection eId="subsec_1">
1010
1031
  <num>(1)</num>
1011
1032
  <content>
1012
1033
  <p>here\'s my really cool list,</p>
1013
- <blockList id="1.list0" renest="true">
1014
- <item id="1.list0.a">
1034
+ <blockList eId="subsec_1__list_1" renest="true">
1035
+ <item eId="subsec_1__list_1__item_a">
1015
1036
  <num>(a)</num>
1016
1037
  <p/>
1017
1038
  </item>
1018
- <item id="1.list0.b">
1039
+ <item eId="subsec_1__list_1__item_b">
1019
1040
  <num>(b)</num>
1020
1041
  <p/>
1021
1042
  </item>
1022
- <item id="1.list0.i">
1043
+ <item eId="subsec_1__list_1__item_i">
1023
1044
  <num>(i)</num>
1024
1045
  <p>single</p>
1025
1046
  </item>
1026
- <item id="1.list0.ii">
1047
+ <item eId="subsec_1__list_1__item_ii">
1027
1048
  <num>(ii)</num>
1028
1049
  <p>double</p>
1029
1050
  </item>
@@ -1070,20 +1091,20 @@ EOS
1070
1091
  9.9.2.1 item3
1071
1092
  EOS
1072
1093
  )
1073
- to_xml(node, '', 1).should == '<subsection id="9.9">
1094
+ to_xml(node, '', 1).should == '<subsection eId="subsec_9-9">
1074
1095
  <num>9.9</num>
1075
1096
  <content>
1076
1097
  <p>foo</p>
1077
- <blockList id="9.9.list0" renest="true">
1078
- <item id="9.9.list0.9.9.1">
1098
+ <blockList eId="subsec_9-9__list_1" renest="true">
1099
+ <item eId="subsec_9-9__list_1__item_9-9-1">
1079
1100
  <num>9.9.1</num>
1080
1101
  <p>item1</p>
1081
1102
  </item>
1082
- <item id="9.9.list0.9.9.2">
1103
+ <item eId="subsec_9-9__list_1__item_9-9-2">
1083
1104
  <num>9.9.2</num>
1084
1105
  <p>item2</p>
1085
1106
  </item>
1086
- <item id="9.9.list0.9.9.2.1">
1107
+ <item eId="subsec_9-9__list_1__item_9-9-2-1">
1087
1108
  <num>9.9.2.1</num>
1088
1109
  <p>item3</p>
1089
1110
  </item>
@@ -1104,27 +1125,27 @@ EOS
1104
1125
  EOS
1105
1126
  )
1106
1127
 
1107
- to_xml(node, '', 1).should == '<subsection id="1">
1128
+ to_xml(node, '', 1).should == '<subsection eId="subsec_1">
1108
1129
  <num>(1)</num>
1109
1130
  <content>
1110
1131
  <p>a list</p>
1111
- <blockList id="1.list0" renest="true">
1112
- <item id="1.list0.a">
1132
+ <blockList eId="subsec_1__list_1" renest="true">
1133
+ <item eId="subsec_1__list_1__item_a">
1113
1134
  <num>(a)</num>
1114
1135
  <p>item 1</p>
1115
1136
  </item>
1116
- <item id="1.list0.b">
1137
+ <item eId="subsec_1__list_1__item_b">
1117
1138
  <num>(b)</num>
1118
1139
  <p>item 2</p>
1119
1140
  </item>
1120
1141
  </blockList>
1121
1142
  <p>some text</p>
1122
- <blockList id="1.list1" renest="true">
1123
- <item id="1.list1.c">
1143
+ <blockList eId="subsec_1__list_2" renest="true">
1144
+ <item eId="subsec_1__list_2__item_c">
1124
1145
  <num>(c)</num>
1125
1146
  <p>item 3</p>
1126
1147
  </item>
1127
- <item id="1.list1.d">
1148
+ <item eId="subsec_1__list_2__item_d">
1128
1149
  <num>(d)</num>
1129
1150
  <p>item 4</p>
1130
1151
  </item>
@@ -1144,7 +1165,7 @@ EOS
1144
1165
  EOS
1145
1166
  )
1146
1167
 
1147
- to_xml(node, '', 1).should == '<subsection id="1">
1168
+ to_xml(node, '', 1).should == '<subsection eId="subsec_1">
1148
1169
  <num>(1)</num>
1149
1170
  <content>
1150
1171
  <p>a subsection</p>
@@ -1165,16 +1186,16 @@ EOS
1165
1186
  (3) Part 1
1166
1187
  EOS
1167
1188
  to_xml(node).should == '<body>
1168
- <section id="section-1">
1189
+ <section eId="sec_1">
1169
1190
  <num>1.</num>
1170
1191
  <heading>Section</heading>
1171
- <subsection id="section-1.2">
1192
+ <subsection eId="sec_1__subsec_2">
1172
1193
  <num>(2)</num>
1173
1194
  <content>
1174
1195
  <p>Schedule 1 is cool.</p>
1175
1196
  </content>
1176
1197
  </subsection>
1177
- <subsection id="section-1.3">
1198
+ <subsection eId="sec_1__subsec_3">
1178
1199
  <num>(3)</num>
1179
1200
  <content>
1180
1201
  <p>Part 1</p>
@@ -1225,13 +1246,13 @@ baz
1225
1246
  </preface>'
1226
1247
 
1227
1248
  today = Time.now.strftime('%Y-%m-%d')
1228
- to_xml(node, "").should == '<act contains="originalVersion">
1249
+ to_xml(node, "").should == '<act contains="originalVersion" name="act">
1229
1250
  <meta>
1230
1251
  <identification source="#slaw">
1231
1252
  <FRBRWork>
1232
1253
  <FRBRthis value="/za/act/1980/01/main"/>
1233
1254
  <FRBRuri value="/za/act/1980/01"/>
1234
- <FRBRalias value="Short Title"/>
1255
+ <FRBRalias value="Short Title" name="title"/>
1235
1256
  <FRBRdate date="1980-01-01" name="Generation"/>
1236
1257
  <FRBRauthor href="#council"/>
1237
1258
  <FRBRcountry value="za"/>
@@ -1251,8 +1272,8 @@ baz
1251
1272
  </FRBRManifestation>
1252
1273
  </identification>
1253
1274
  <references source="#this">
1254
- <TLCOrganization id="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1255
- <TLCOrganization id="council" href="/ontology/organization/za/council" showAs="Council"/>
1275
+ <TLCOrganization eId="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1276
+ <TLCOrganization eId="council" href="/ontology/organization/za/council" showAs="Council"/>
1256
1277
  </references>
1257
1278
  </meta>
1258
1279
  <preface>
@@ -1263,10 +1284,10 @@ baz
1263
1284
  <p>baz</p>
1264
1285
  </preface>
1265
1286
  <body>
1266
- <section id="section-1">
1287
+ <section eId="sec_1">
1267
1288
  <num>1.</num>
1268
1289
  <heading>Section</heading>
1269
- <subsection id="section-1.1">
1290
+ <subsection eId="sec_1__subsec_1">
1270
1291
  <num>(1)</num>
1271
1292
  <content>
1272
1293
  <p>hello</p>
@@ -1396,11 +1417,11 @@ EOS
1396
1417
  <p>this is in the preamble</p>
1397
1418
  </preamble>'
1398
1419
  to_xml(node.body).should == '<body>
1399
- <paragraph id="paragraph0">
1420
+ <hcontainer eId="hcontainer_1" name="hcontainer">
1400
1421
  <content>
1401
1422
  <p>this is in the body</p>
1402
1423
  </content>
1403
- </paragraph>
1424
+ </hcontainer>
1404
1425
  </body>'
1405
1426
  end
1406
1427
  end
@@ -1486,12 +1507,12 @@ this is actually in the body
1486
1507
  EOS
1487
1508
 
1488
1509
  to_xml(node.body).should == '<body>
1489
- <paragraph id="paragraph0">
1510
+ <hcontainer eId="hcontainer_1" name="hcontainer">
1490
1511
  <content>
1491
1512
  <p>PREAMBLE</p>
1492
1513
  <p>this is actually in the body</p>
1493
1514
  </content>
1494
- </paragraph>
1515
+ </hcontainer>
1495
1516
  </body>'
1496
1517
  end
1497
1518
 
@@ -1507,12 +1528,12 @@ this is actually in the body
1507
1528
  EOS
1508
1529
 
1509
1530
  to_xml(node.body).should == '<body>
1510
- <paragraph id="paragraph0">
1531
+ <hcontainer eId="hcontainer_1" name="hcontainer">
1511
1532
  <content>
1512
1533
  <p>PREFACE</p>
1513
1534
  <p>this is actually in the body</p>
1514
1535
  </content>
1515
- </paragraph>
1536
+ </hcontainer>
1516
1537
  </body>'
1517
1538
  end
1518
1539
  end
@@ -1529,10 +1550,10 @@ Section
1529
1550
  EOS
1530
1551
 
1531
1552
  s = to_xml(node)
1532
- s.should == '<section id="section-1">
1553
+ s.should == '<section eId="sec_1">
1533
1554
  <num>1.</num>
1534
1555
  <heading>Section</heading>
1535
- <subsection id="section-1.1">
1556
+ <subsection eId="sec_1__subsec_1">
1536
1557
  <num>(1)</num>
1537
1558
  <content>
1538
1559
  <p>hello</p>
@@ -1548,10 +1569,10 @@ EOS
1548
1569
  (1) hello
1549
1570
  EOS
1550
1571
  s = to_xml(node)
1551
- s.should == '<section id="section-1">
1572
+ s.should == '<section eId="sec_1">
1552
1573
  <num>1.</num>
1553
1574
  <heading>Section</heading>
1554
- <subsection id="section-1.1">
1575
+ <subsection eId="sec_1__subsec_1">
1555
1576
  <num>(1)</num>
1556
1577
  <content>
1557
1578
  <p>hello</p>
@@ -1570,20 +1591,20 @@ EOS
1570
1591
  EOS
1571
1592
  s = to_xml(node)
1572
1593
  s.should == '<body>
1573
- <section id="section-1">
1594
+ <section eId="sec_1">
1574
1595
  <num>1.</num>
1575
1596
  <heading>A section</heading>
1576
- <subsection id="section-1.1">
1597
+ <subsection eId="sec_1__subsec_1">
1577
1598
  <num>(1)</num>
1578
1599
  <content>
1579
1600
  <p>hello</p>
1580
1601
  </content>
1581
1602
  </subsection>
1582
1603
  </section>
1583
- <section id="section-2">
1604
+ <section eId="sec_2">
1584
1605
  <num>2.</num>
1585
1606
  <heading>Another section</heading>
1586
- <subsection id="section-2.2">
1607
+ <subsection eId="sec_2__subsec_2">
1587
1608
  <num>(2)</num>
1588
1609
  <content>
1589
1610
  <p>Another line</p>
@@ -1600,16 +1621,16 @@ EOS
1600
1621
  (2) Without limiting generality, stuff.
1601
1622
  EOS
1602
1623
  s = to_xml(node)
1603
- s.should == '<section id="section-10">
1624
+ s.should == '<section eId="sec_10">
1604
1625
  <num>10.</num>
1605
1626
  <heading/>
1606
- <subsection id="section-10.1">
1627
+ <subsection eId="sec_10__subsec_1">
1607
1628
  <num>(1)</num>
1608
1629
  <content>
1609
1630
  <p>Transporters must remove medical waste.</p>
1610
1631
  </content>
1611
1632
  </subsection>
1612
- <subsection id="section-10.2">
1633
+ <subsection eId="sec_10__subsec_2">
1613
1634
  <num>(2)</num>
1614
1635
  <content>
1615
1636
  <p>Without limiting generality, stuff.</p>
@@ -1628,24 +1649,24 @@ and some stuff
1628
1649
  EOS
1629
1650
 
1630
1651
  s = to_xml(node)
1631
- s.should == '<section id="section-1">
1652
+ s.should == '<section eId="sec_1">
1632
1653
  <num>1.</num>
1633
1654
  <heading>Section</heading>
1634
- <paragraph id="section-1.paragraph0">
1655
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1635
1656
  <content>
1636
- <blockList id="section-1.paragraph0.list0" renest="true">
1637
- <item id="section-1.paragraph0.list0.a">
1657
+ <blockList eId="sec_1__hcontainer_1__list_1" renest="true">
1658
+ <item eId="sec_1__hcontainer_1__list_1__item_a">
1638
1659
  <num>(a)</num>
1639
1660
  <p>first</p>
1640
1661
  </item>
1641
- <item id="section-1.paragraph0.list0.b">
1662
+ <item eId="sec_1__hcontainer_1__list_1__item_b">
1642
1663
  <num>(b)</num>
1643
1664
  <p>second</p>
1644
1665
  </item>
1645
1666
  </blockList>
1646
1667
  <p>and some stuff</p>
1647
1668
  </content>
1648
- </paragraph>
1669
+ </hcontainer>
1649
1670
  </section>'
1650
1671
  end
1651
1672
 
@@ -1658,14 +1679,14 @@ something
1658
1679
  EOS
1659
1680
 
1660
1681
  s = to_xml(node)
1661
- s.should == '<section id="section-1">
1682
+ s.should == '<section eId="sec_1">
1662
1683
  <num>1.</num>
1663
1684
  <heading>Section <b>bold</b> <ref href="/za/act/1990/1">foo</ref></heading>
1664
- <paragraph id="section-1.paragraph0">
1685
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1665
1686
  <content>
1666
1687
  <p>something</p>
1667
1688
  </content>
1668
- </paragraph>
1689
+ </hcontainer>
1669
1690
  </section>'
1670
1691
  end
1671
1692
 
@@ -1679,14 +1700,14 @@ something
1679
1700
  EOS
1680
1701
 
1681
1702
  s = to_xml(node)
1682
- s.should == '<section id="section-1">
1703
+ s.should == '<section eId="sec_1">
1683
1704
  <num>1.</num>
1684
1705
  <heading>Section <b>bold</b> <ref href="/za/act/1990/1">foo</ref></heading>
1685
- <paragraph id="section-1.paragraph0">
1706
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1686
1707
  <content>
1687
1708
  <p>something</p>
1688
1709
  </content>
1689
- </paragraph>
1710
+ </hcontainer>
1690
1711
  </section>'
1691
1712
  end
1692
1713
 
@@ -1705,24 +1726,24 @@ naked statement (c) blah
1705
1726
  (a) foo
1706
1727
  (b) bar
1707
1728
  EOS
1708
- to_xml(node, "").should == '<section id="section-1">
1729
+ to_xml(node, "").should == '<section eId="sec_1">
1709
1730
  <num>1.</num>
1710
1731
  <heading>Section</heading>
1711
- <paragraph id="section-1.paragraph0">
1732
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1712
1733
  <content>
1713
1734
  <p>naked statement (c) blah</p>
1714
- <blockList id="section-1.paragraph0.list0" renest="true">
1715
- <item id="section-1.paragraph0.list0.a">
1735
+ <blockList eId="sec_1__hcontainer_1__list_1" renest="true">
1736
+ <item eId="sec_1__hcontainer_1__list_1__item_a">
1716
1737
  <num>(a)</num>
1717
1738
  <p>foo</p>
1718
1739
  </item>
1719
- <item id="section-1.paragraph0.list0.b">
1740
+ <item eId="sec_1__hcontainer_1__list_1__item_b">
1720
1741
  <num>(b)</num>
1721
1742
  <p>bar</p>
1722
1743
  </item>
1723
1744
  </blockList>
1724
1745
  </content>
1725
- </paragraph>
1746
+ </hcontainer>
1726
1747
  </section>'
1727
1748
  end
1728
1749
 
@@ -1740,25 +1761,25 @@ something
1740
1761
 
1741
1762
  (b) thing
1742
1763
  EOS
1743
- to_xml(node, "").should == '<section id="section-1">
1764
+ to_xml(node, "").should == '<section eId="sec_1">
1744
1765
  <num>1.</num>
1745
1766
  <heading>Section</heading>
1746
- <subsection id="section-1.1">
1767
+ <subsection eId="sec_1__subsec_1">
1747
1768
  <num>(1)</num>
1748
1769
  <content>
1749
1770
  <p>something</p>
1750
1771
  </content>
1751
1772
  </subsection>
1752
- <subsection id="section-1.2">
1773
+ <subsection eId="sec_1__subsec_2">
1753
1774
  <num>(2)</num>
1754
1775
  <content>
1755
1776
  <p>Schedule 1</p>
1756
- <blockList id="section-1.2.list0" renest="true">
1757
- <item id="section-1.2.list0.a">
1777
+ <blockList eId="sec_1__subsec_2__list_1" renest="true">
1778
+ <item eId="sec_1__subsec_2__list_1__item_a">
1758
1779
  <num>(a)</num>
1759
1780
  <p>Part 1</p>
1760
1781
  </item>
1761
- <item id="section-1.2.list0.b">
1782
+ <item eId="sec_1__subsec_2__list_1__item_b">
1762
1783
  <num>(b)</num>
1763
1784
  <p>thing</p>
1764
1785
  </item>
@@ -1777,17 +1798,17 @@ EOS
1777
1798
  stuff
1778
1799
  \\3. a third
1779
1800
  EOS
1780
- to_xml(node, "").should == '<section id="section-1">
1801
+ to_xml(node, "").should == '<section eId="sec_1">
1781
1802
  <num>1.</num>
1782
1803
  <heading>Section</heading>
1783
- <paragraph id="section-1.paragraph0">
1804
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1784
1805
  <content>
1785
1806
  <p>1. ignored</p>
1786
1807
  <p>2. another line</p>
1787
1808
  <p>stuff</p>
1788
1809
  <p>3. a third</p>
1789
1810
  </content>
1790
- </paragraph>
1811
+ </hcontainer>
1791
1812
  </section>'
1792
1813
  end
1793
1814
 
@@ -1799,14 +1820,14 @@ EOS
1799
1820
 
1800
1821
  stuff
1801
1822
  EOS
1802
- to_xml(node, "").should == '<section id="section-1">
1823
+ to_xml(node, "").should == '<section eId="sec_1">
1803
1824
  <num>1.</num>
1804
1825
  <heading>Section</heading>
1805
- <paragraph id="section-1.paragraph0">
1826
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1806
1827
  <content>
1807
1828
  <p>stuff</p>
1808
1829
  </content>
1809
- </paragraph>
1830
+ </hcontainer>
1810
1831
  </section>'
1811
1832
  end
1812
1833
 
@@ -1818,19 +1839,19 @@ Informal trading may include, amongst others:-
1818
1839
  3.1.1 street trading;
1819
1840
  3.1.2 trading in pedestrian malls;
1820
1841
  EOS
1821
- to_xml(node, '').should == '<section id="section-3">
1842
+ to_xml(node, '').should == '<section eId="sec_3">
1822
1843
  <num>3.</num>
1823
1844
  <heading>Types of informal trading</heading>
1824
- <subsection id="section-3.3.1">
1845
+ <subsection eId="sec_3__subsec_3-1">
1825
1846
  <num>3.1</num>
1826
1847
  <content>
1827
1848
  <p>Informal trading may include, amongst others:-</p>
1828
- <blockList id="section-3.3.1.list0" renest="true">
1829
- <item id="section-3.3.1.list0.3.1.1">
1849
+ <blockList eId="sec_3__subsec_3-1__list_1" renest="true">
1850
+ <item eId="sec_3__subsec_3-1__list_1__item_3-1-1">
1830
1851
  <num>3.1.1</num>
1831
1852
  <p>street trading;</p>
1832
1853
  </item>
1833
- <item id="section-3.3.1.list0.3.1.2">
1854
+ <item eId="sec_3__subsec_3-1__list_1__item_3-1-2">
1834
1855
  <num>3.1.2</num>
1835
1856
  <p>trading in pedestrian malls;</p>
1836
1857
  </item>
@@ -1847,7 +1868,7 @@ EOS
1847
1868
  context 'crossheadings' do
1848
1869
  it 'should handle a inline_items in crossheadings' do
1849
1870
  node = parse :crossheading, "CROSSHEADING something [[remark]] [link](/foo/bar)\n"
1850
- to_xml(node, '').should == '<hcontainer id="crossheading-0" name="crossheading">
1871
+ to_xml(node, '').should == '<hcontainer eId="hcontainer_1" name="crossheading">
1851
1872
  <heading>something <remark status="editorial">[remark]</remark> <ref href="/foo/bar">link</ref></heading>
1852
1873
  </hcontainer>'
1853
1874
  end
@@ -1865,13 +1886,13 @@ CROSSHEADING In the body
1865
1886
  Text
1866
1887
  '
1867
1888
  today = Time.now.strftime('%Y-%m-%d')
1868
- to_xml(node, "").should == '<act contains="originalVersion">
1889
+ to_xml(node, "").should == '<act contains="originalVersion" name="act">
1869
1890
  <meta>
1870
1891
  <identification source="#slaw">
1871
1892
  <FRBRWork>
1872
1893
  <FRBRthis value="/za/act/1980/01/main"/>
1873
1894
  <FRBRuri value="/za/act/1980/01"/>
1874
- <FRBRalias value="Short Title"/>
1895
+ <FRBRalias value="Short Title" name="title"/>
1875
1896
  <FRBRdate date="1980-01-01" name="Generation"/>
1876
1897
  <FRBRauthor href="#council"/>
1877
1898
  <FRBRcountry value="za"/>
@@ -1891,25 +1912,25 @@ Text
1891
1912
  </FRBRManifestation>
1892
1913
  </identification>
1893
1914
  <references source="#this">
1894
- <TLCOrganization id="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1895
- <TLCOrganization id="council" href="/ontology/organization/za/council" showAs="Council"/>
1915
+ <TLCOrganization eId="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1916
+ <TLCOrganization eId="council" href="/ontology/organization/za/council" showAs="Council"/>
1896
1917
  </references>
1897
1918
  </meta>
1898
1919
  <preface>
1899
1920
  <p>Some text</p>
1900
1921
  </preface>
1901
1922
  <body>
1902
- <hcontainer id="crossheading-0" name="crossheading">
1923
+ <hcontainer eId="hcontainer_1" name="crossheading">
1903
1924
  <heading>In the body</heading>
1904
1925
  </hcontainer>
1905
- <section id="section-1">
1926
+ <section eId="sec_1">
1906
1927
  <num>1.</num>
1907
1928
  <heading>Section 1</heading>
1908
- <paragraph id="section-1.paragraph0">
1929
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1909
1930
  <content>
1910
1931
  <p>Text</p>
1911
1932
  </content>
1912
- </paragraph>
1933
+ </hcontainer>
1913
1934
  </section>
1914
1935
  </body>
1915
1936
  </act>'
@@ -1928,13 +1949,13 @@ CROSSHEADING In the body
1928
1949
  Text
1929
1950
  '
1930
1951
  today = Time.now.strftime('%Y-%m-%d')
1931
- to_xml(node, "").should == '<act contains="originalVersion">
1952
+ to_xml(node, "").should == '<act contains="originalVersion" name="act">
1932
1953
  <meta>
1933
1954
  <identification source="#slaw">
1934
1955
  <FRBRWork>
1935
1956
  <FRBRthis value="/za/act/1980/01/main"/>
1936
1957
  <FRBRuri value="/za/act/1980/01"/>
1937
- <FRBRalias value="Short Title"/>
1958
+ <FRBRalias value="Short Title" name="title"/>
1938
1959
  <FRBRdate date="1980-01-01" name="Generation"/>
1939
1960
  <FRBRauthor href="#council"/>
1940
1961
  <FRBRcountry value="za"/>
@@ -1954,25 +1975,25 @@ Text
1954
1975
  </FRBRManifestation>
1955
1976
  </identification>
1956
1977
  <references source="#this">
1957
- <TLCOrganization id="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1958
- <TLCOrganization id="council" href="/ontology/organization/za/council" showAs="Council"/>
1978
+ <TLCOrganization eId="slaw" href="https://github.com/longhotsummer/slaw" showAs="Slaw"/>
1979
+ <TLCOrganization eId="council" href="/ontology/organization/za/council" showAs="Council"/>
1959
1980
  </references>
1960
1981
  </meta>
1961
1982
  <preamble>
1962
1983
  <p>Some text</p>
1963
1984
  </preamble>
1964
1985
  <body>
1965
- <hcontainer id="crossheading-0" name="crossheading">
1986
+ <hcontainer eId="hcontainer_1" name="crossheading">
1966
1987
  <heading>In the body</heading>
1967
1988
  </hcontainer>
1968
- <section id="section-1">
1989
+ <section eId="sec_1">
1969
1990
  <num>1.</num>
1970
1991
  <heading>Section 1</heading>
1971
- <paragraph id="section-1.paragraph0">
1992
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
1972
1993
  <content>
1973
1994
  <p>Text</p>
1974
1995
  </content>
1975
- </paragraph>
1996
+ </hcontainer>
1976
1997
  </section>
1977
1998
  </body>
1978
1999
  </act>'
@@ -2036,14 +2057,14 @@ LONGTITLE a long title
2036
2057
  EOS
2037
2058
 
2038
2059
  to_xml(node).should == '<body>
2039
- <section id="section-1">
2060
+ <section eId="sec_1">
2040
2061
  <num>1.</num>
2041
2062
  <heading>Section</heading>
2042
- <paragraph id="section-1.paragraph0">
2063
+ <hcontainer eId="sec_1__hcontainer_1" name="hcontainer">
2043
2064
  <content>
2044
2065
  <p>LONGTITLE a long title</p>
2045
2066
  </content>
2046
- </paragraph>
2067
+ </hcontainer>
2047
2068
  </section>
2048
2069
  </body>'
2049
2070
  end