eadcodec 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +2 -2
- data/Rakefile +3 -6
- data/lib/elements/ead.rb +4 -4
- data/test/description_test.rb +8 -8
- data/test/document_test.rb +3 -2
- data/test/note_test.rb +2 -2
- data/test/phystech_test.rb +2 -2
- data/test/scopecontent_test.rb +3 -3
- data/test/subordinates_test.rb +1 -1
- data/test/subtitle_test.rb +4 -4
- data/test/test_helper.rb +18 -10
- data/test/xmlsoparser_test.rb +2 -2
- metadata +124 -96
- data/lib/elements/dao.rb +0 -16
- data/lib/elements/descgrp.rb +0 -11
data/README
CHANGED
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
PKG_NAME = 'eadcodec'
|
2
|
-
PKG_VERSION = '0.1.
|
2
|
+
PKG_VERSION = '0.1.2'
|
3
3
|
|
4
4
|
require 'rake'
|
5
5
|
require 'rake/testtask'
|
@@ -29,7 +29,7 @@ spec = Gem::Specification.new do |s|
|
|
29
29
|
s.name = PKG_NAME
|
30
30
|
s.version = PKG_VERSION
|
31
31
|
s.author = 'Pedro Côrte-Real'
|
32
|
-
s.email = 'pedrocr
|
32
|
+
s.email = 'pedro@pedrocr.net'
|
33
33
|
s.requirements << 'xmlcodec'
|
34
34
|
s.add_dependency('xmlcodec', '>= 0.1.0')
|
35
35
|
s.require_path = 'lib'
|
@@ -39,14 +39,11 @@ spec = Gem::Specification.new do |s|
|
|
39
39
|
s.rdoc_options = RDOC_OPTIONS
|
40
40
|
s.extra_rdoc_files = RDOC_EXTRA_FILES
|
41
41
|
s.description = <<EOF
|
42
|
-
An exporter and importer for the Encoded Archival Description XML format. See
|
43
|
-
http://www.loc.gov/ead/ for more information about the format.
|
42
|
+
An exporter and importer for the Encoded Archival Description XML format based on xmlcodec. See http://www.loc.gov/ead/ for more information about the format.
|
44
43
|
EOF
|
45
44
|
end
|
46
45
|
|
47
46
|
Rake::GemPackageTask.new(spec) do |pkg|
|
48
|
-
pkg.need_zip = true
|
49
|
-
pkg.need_tar = true
|
50
47
|
end
|
51
48
|
|
52
49
|
Rake::TestTask.new do |t|
|
data/lib/elements/ead.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
class Document < EADElement
|
2
2
|
elname "ead"
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
DTD_LOC = '"+//ISBN 1-931666-00-8//DTD ead.dtd '+
|
5
|
+
'(Encoded Archival Description (EAD) Version 2002)//EN" "ead.dtd"'
|
6
6
|
|
7
7
|
xmlsubel :eadheader
|
8
8
|
xmlsubel :archdesc
|
@@ -20,7 +20,7 @@ class Document < EADElement
|
|
20
20
|
def export(filename)
|
21
21
|
doc = REXML::Document.new
|
22
22
|
doc << REXML::XMLDecl.new("1.0", "UTF-8")
|
23
|
-
doc << REXML::DocType.new("ead
|
23
|
+
doc << REXML::DocType.new("ead PUBLIC", DTD_LOC)
|
24
24
|
create_xml(doc)
|
25
25
|
output = File.open(filename, "w")
|
26
26
|
|
@@ -32,7 +32,7 @@ class Document < EADElement
|
|
32
32
|
def start_partial_export(file)
|
33
33
|
if not already_partial_exported?
|
34
34
|
file << "<?xml version='1.0' encoding='UTF-8'?>\n"
|
35
|
-
file << "<!DOCTYPE ead
|
35
|
+
file << "<!DOCTYPE ead PUBLIC #{DTD_LOC}>"
|
36
36
|
super
|
37
37
|
end
|
38
38
|
end
|
data/test/description_test.rb
CHANGED
@@ -59,15 +59,15 @@ class TestEADDescription < Test::Unit::TestCase
|
|
59
59
|
import
|
60
60
|
did = @ead.archdesc[:did]
|
61
61
|
|
62
|
-
assert_equal(@head, did[:head].value)
|
63
|
-
assert_equal(@origination, did[:origination].value)
|
64
|
-
assert_equal(@unittitle, did[:unittitle].value)
|
65
|
-
assert_equal(@unitid, did[:unitid].value)
|
66
|
-
assert_equal(@abstract, did[:abstract].value)
|
67
|
-
assert_equal(@physdesc, did[:physdesc].value)
|
68
|
-
assert_equal(@physloc, did[:physloc].value)
|
62
|
+
assert_equal(@head, did[:head].value.strip)
|
63
|
+
assert_equal(@origination, did[:origination].value.strip)
|
64
|
+
assert_equal(@unittitle, did[:unittitle].value.strip)
|
65
|
+
assert_equal(@unitid, did[:unitid].value.strip)
|
66
|
+
assert_equal(@abstract, did[:abstract].value.strip)
|
67
|
+
assert_equal(@physdesc, did[:physdesc].value.strip)
|
68
|
+
assert_equal(@physloc, did[:physloc].value.strip)
|
69
69
|
|
70
|
-
assert_equal(@unitdate, did[:unitdate].value)
|
70
|
+
assert_equal(@unitdate, did[:unitdate].value.strip)
|
71
71
|
assert_equal(@unitdatelabel, did[:unitdate].label)
|
72
72
|
assert_equal(@unitdatetype, did[:unitdate].type)
|
73
73
|
end
|
data/test/document_test.rb
CHANGED
@@ -18,9 +18,10 @@ class TestEADDocument < Test::Unit::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_base_import
|
21
|
+
export
|
21
22
|
import
|
22
|
-
assert_equal("1", @ead.eadheader.eadid.value)
|
23
|
-
assert_equal("Teste", @ead.eadheader.eadtitle.value)
|
23
|
+
assert_equal("1", @ead.eadheader.eadid.value.strip)
|
24
|
+
assert_equal("Teste", @ead.eadheader.eadtitle.value.strip)
|
24
25
|
end
|
25
26
|
|
26
27
|
#def test_import_export_2
|
data/test/note_test.rb
CHANGED
@@ -30,7 +30,7 @@ class TestEADNote < Test::Unit::TestCase
|
|
30
30
|
import
|
31
31
|
note = @ead.archdesc[:dsc][:c][:note]
|
32
32
|
ps = note.find_all_named(:p)
|
33
|
-
assert_equal(@p, ps[0].value)
|
34
|
-
assert_equal(@p, ps[1].value)
|
33
|
+
assert_equal(@p, ps[0].value.strip)
|
34
|
+
assert_equal(@p, ps[1].value.strip)
|
35
35
|
end
|
36
36
|
end
|
data/test/phystech_test.rb
CHANGED
@@ -36,10 +36,10 @@ class TestEADPhysTech < Test::Unit::TestCase
|
|
36
36
|
import
|
37
37
|
phystech = @ead.archdesc[:phystech]
|
38
38
|
|
39
|
-
assert_equal(@head, phystech[:head].value)
|
39
|
+
assert_equal(@head, phystech[:head].value.strip)
|
40
40
|
ps = phystech.find_all_named(:p)
|
41
41
|
(1..4).each do |i|
|
42
|
-
assert_equal(@ptext+i.to_s, ps[i-1].value)
|
42
|
+
assert_equal(@ptext+i.to_s, ps[i-1].value.strip)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
data/test/scopecontent_test.rb
CHANGED
@@ -33,9 +33,9 @@ class TestEADScopeContent < Test::Unit::TestCase
|
|
33
33
|
import
|
34
34
|
assert_equal(1, @ead.archdesc[:dsc].find_all_named(:c).size)
|
35
35
|
sc = @ead.archdesc[:dsc][:c][:scopecontent]
|
36
|
-
assert_equal(@head, sc[:head].value)
|
36
|
+
assert_equal(@head, sc[:head].value.strip)
|
37
37
|
ps = sc.find_all_named(:p)
|
38
|
-
assert_equal(@p, ps[0].value)
|
39
|
-
assert_equal(@p, ps[1].value)
|
38
|
+
assert_equal(@p, ps[0].value.strip)
|
39
|
+
assert_equal(@p, ps[1].value.strip)
|
40
40
|
end
|
41
41
|
end
|
data/test/subordinates_test.rb
CHANGED
data/test/subtitle_test.rb
CHANGED
@@ -31,9 +31,9 @@ class TestEADSubtitle < Test::Unit::TestCase
|
|
31
31
|
def test_base_import
|
32
32
|
import
|
33
33
|
st = @ead.eadheader.filedesc.titlestmt.subtitle
|
34
|
-
assert_equal(@text, st.subelements[0].to_s)
|
35
|
-
assert_equal(@abbr, st.subelements[1].to_s)
|
36
|
-
assert_equal(@text, st.subelements[2].to_s)
|
37
|
-
assert_equal(@abbr, st.subelements[3].to_s)
|
34
|
+
assert_equal(@text, st.subelements[0].to_s.strip)
|
35
|
+
assert_equal(@abbr, st.subelements[1].to_s.strip)
|
36
|
+
assert_equal(@text, st.subelements[2].to_s.strip)
|
37
|
+
assert_equal(@abbr, st.subelements[3].to_s.strip)
|
38
38
|
end
|
39
39
|
end
|
data/test/test_helper.rb
CHANGED
@@ -4,6 +4,8 @@ require 'test/unit'
|
|
4
4
|
require 'tmpdir'
|
5
5
|
|
6
6
|
class Test::Unit::TestCase
|
7
|
+
DTD_PATH = File.dirname(__FILE__) + '/examples/'
|
8
|
+
|
7
9
|
alias_method :old_setup, :setup
|
8
10
|
def setup
|
9
11
|
@ead = EADCodec::Document.new("1", "Teste")
|
@@ -22,24 +24,30 @@ class Test::Unit::TestCase
|
|
22
24
|
@ead = EADCodec::Document.from_file filepath
|
23
25
|
end
|
24
26
|
|
25
|
-
def
|
26
|
-
assert(system("
|
27
|
+
def xmllint_installed
|
28
|
+
assert(system("xmllint --version > /dev/null 2>&1"),
|
29
|
+
"xmllint utility not installed"+
|
30
|
+
"(on ubuntu/debian install package libxml2-utils)")
|
27
31
|
end
|
28
32
|
|
33
|
+
def validate_well_formed
|
34
|
+
xmllint_installed
|
35
|
+
assert(system("xmllint #{filepath} >/dev/null"),
|
36
|
+
"Validation failed for #{filepath}")
|
37
|
+
end
|
38
|
+
|
29
39
|
def validate_dtd
|
30
|
-
|
31
|
-
|
40
|
+
xmllint_installed
|
41
|
+
assert(system("xmllint --nonet --loaddtd --path #{DTD_PATH}"+
|
42
|
+
" #{filepath} > /dev/null"),
|
43
|
+
"Validation failed for #{filepath}")
|
32
44
|
end
|
33
45
|
|
34
46
|
def compare_xpath(value, path)
|
35
|
-
|
36
|
-
|
47
|
+
assert_equal(value.strip, XMLUtils::select_path(path, filepath).strip)
|
48
|
+
end
|
37
49
|
|
38
50
|
def element_exists(xpath, *args)
|
39
51
|
assert(XMLUtils::element_exists(xpath, filepath), *args)
|
40
52
|
end
|
41
|
-
|
42
|
-
def select(xpath)
|
43
|
-
XMLUtils::select_path(xpath, filepath)
|
44
|
-
end
|
45
53
|
end
|
data/test/xmlsoparser_test.rb
CHANGED
@@ -50,9 +50,9 @@ class TestXMLStreamObjectParser < Test::Unit::TestCase
|
|
50
50
|
|
51
51
|
assert_equal(@ead, parser.top_element)
|
52
52
|
|
53
|
-
assert_equal("1", @ead.eadheader.eadid.value)
|
53
|
+
assert_equal("1", @ead.eadheader.eadid.value.strip)
|
54
54
|
assert_equal("1", @ead.eadheader.id)
|
55
|
-
assert_equal("Teste", @ead.eadheader.eadtitle.value)
|
55
|
+
assert_equal("Teste", @ead.eadheader.eadtitle.value.strip)
|
56
56
|
|
57
57
|
dsc = @ead.archdesc[:dsc]
|
58
58
|
assert(dsc[:c], "Check that the level was imported")
|
metadata
CHANGED
@@ -1,113 +1,130 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.0
|
3
|
-
specification_version: 1
|
4
2
|
name: eadcodec
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
-
|
11
|
-
|
12
|
-
|
13
|
-
rubyforge_project:
|
14
|
-
description: An exporter and importer for the Encoded Archival Description XML format. See http://www.loc.gov/ead/ for more information about the format.
|
15
|
-
autorequire: rake
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
hash: 31
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
25
11
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
12
|
authors:
|
30
13
|
- "Pedro C\xC3\xB4rte-Real"
|
14
|
+
autorequire: rake
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-09-14 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: xmlcodec
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 27
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 1
|
33
|
+
- 0
|
34
|
+
version: 0.1.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: |
|
38
|
+
An exporter and importer for the Encoded Archival Description XML format based on xmlcodec. See http://www.loc.gov/ead/ for more information about the format.
|
39
|
+
|
40
|
+
email: pedro@pedrocr.net
|
41
|
+
executables: []
|
42
|
+
|
43
|
+
extensions: []
|
44
|
+
|
45
|
+
extra_rdoc_files:
|
46
|
+
- README
|
31
47
|
files:
|
32
48
|
- lib/eadcodec.rb
|
33
|
-
- lib/elements/
|
34
|
-
- lib/elements/
|
35
|
-
- lib/elements/
|
36
|
-
- lib/elements/
|
37
|
-
- lib/elements/
|
38
|
-
- lib/elements/
|
49
|
+
- lib/elements/physfacet.rb
|
50
|
+
- lib/elements/repository.rb
|
51
|
+
- lib/elements/event.rb
|
52
|
+
- lib/elements/titlestmt.rb
|
53
|
+
- lib/elements/scopecontent.rb
|
54
|
+
- lib/elements/language.rb
|
55
|
+
- lib/elements/profiledesc.rb
|
39
56
|
- lib/elements/appraisal.rb
|
40
|
-
- lib/elements/arrangement.rb
|
41
|
-
- lib/elements/bibliography.rb
|
42
|
-
- lib/elements/bioghist.rb
|
43
|
-
- lib/elements/chronlist.rb
|
44
57
|
- lib/elements/container.rb
|
58
|
+
- lib/elements/p.rb
|
59
|
+
- lib/elements/phystech.rb
|
60
|
+
- lib/elements/dsc.rb
|
45
61
|
- lib/elements/controlaccess.rb
|
46
|
-
- lib/elements/
|
47
|
-
- lib/elements/date.rb
|
48
|
-
- lib/elements/description.rb
|
49
|
-
- lib/elements/dimensions.rb
|
50
|
-
- lib/elements/defitem.rb
|
51
|
-
- lib/elements/event.rb
|
62
|
+
- lib/elements/accessrestrict.rb
|
52
63
|
- lib/elements/extent.rb
|
53
|
-
- lib/elements/fileplan.rb
|
54
|
-
- lib/elements/geogname.rb
|
55
|
-
- lib/elements/language.rb
|
56
|
-
- lib/elements/label.rb
|
57
|
-
- lib/elements/langmaterial.rb
|
58
|
-
- lib/elements/list.rb
|
59
|
-
- lib/elements/dsc.rb
|
60
64
|
- lib/elements/item.rb
|
65
|
+
- lib/elements/id.rb
|
66
|
+
- lib/elements/list.rb
|
67
|
+
- lib/elements/unittitle.rb
|
68
|
+
- lib/elements/fileplan.rb
|
69
|
+
- lib/elements/chronlist.rb
|
70
|
+
- lib/elements/chronitem.rb
|
61
71
|
- lib/elements/materialspec.rb
|
62
|
-
- lib/elements/
|
63
|
-
- lib/elements/
|
64
|
-
- lib/elements/odd.rb
|
72
|
+
- lib/elements/altformavail.rb
|
73
|
+
- lib/elements/bioghist.rb
|
65
74
|
- lib/elements/originalsloc.rb
|
75
|
+
- lib/elements/date.rb
|
76
|
+
- lib/elements/processinfo.rb
|
77
|
+
- lib/elements/ead.rb
|
78
|
+
- lib/elements/odd.rb
|
79
|
+
- lib/elements/unitdate.rb
|
80
|
+
- lib/elements/userestrict.rb
|
81
|
+
- lib/elements/creation.rb
|
82
|
+
- lib/elements/arrangement.rb
|
83
|
+
- lib/elements/eadheader.rb
|
84
|
+
- lib/elements/acqinfo.rb
|
85
|
+
- lib/elements/label.rb
|
86
|
+
- lib/elements/head.rb
|
87
|
+
- lib/elements/name.rb
|
88
|
+
- lib/elements/archdesc.rb
|
89
|
+
- lib/elements/accruals.rb
|
66
90
|
- lib/elements/otherfindaid.rb
|
67
91
|
- lib/elements/physdesc.rb
|
68
|
-
- lib/elements/
|
92
|
+
- lib/elements/c.rb
|
93
|
+
- lib/elements/unitid.rb
|
69
94
|
- lib/elements/physloc.rb
|
70
|
-
- lib/elements/
|
71
|
-
- lib/elements/
|
72
|
-
- lib/elements/
|
73
|
-
- lib/elements/
|
74
|
-
- lib/elements/
|
75
|
-
- lib/elements/scopecontent.rb
|
76
|
-
- lib/elements/descgrp.rb
|
95
|
+
- lib/elements/note.rb
|
96
|
+
- lib/elements/bibliography.rb
|
97
|
+
- lib/elements/langmaterial.rb
|
98
|
+
- lib/elements/dimensions.rb
|
99
|
+
- lib/elements/filedesc.rb
|
77
100
|
- lib/elements/subtitle.rb
|
78
|
-
- lib/elements/
|
101
|
+
- lib/elements/description.rb
|
79
102
|
- lib/elements/origination.rb
|
80
|
-
- lib/elements/
|
81
|
-
- lib/elements/
|
82
|
-
- lib/elements/
|
83
|
-
- lib/elements/
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
- lib/elements/titlestmt.rb
|
89
|
-
- lib/elements/filedesc.rb
|
90
|
-
- lib/elements/eadheader.rb
|
91
|
-
- lib/elements/creation.rb
|
92
|
-
- lib/elements/c.rb
|
93
|
-
- test/xmlsoparser_test.rb
|
94
|
-
- test/subtitle_test.rb
|
95
|
-
- test/subordinates_test.rb
|
103
|
+
- lib/elements/custodhist.rb
|
104
|
+
- lib/elements/geogname.rb
|
105
|
+
- lib/elements/defitem.rb
|
106
|
+
- lib/elements/relatedmaterial.rb
|
107
|
+
- test/partial_export_test.rb
|
108
|
+
- test/note_test.rb
|
109
|
+
- test/description_test.rb
|
110
|
+
- test/level_test.rb
|
96
111
|
- test/test_helper.rb
|
112
|
+
- test/subordinates_test.rb
|
113
|
+
- test/xmlsoparser_test.rb
|
97
114
|
- test/phystech_test.rb
|
98
115
|
- test/document_test.rb
|
99
|
-
- test/note_test.rb
|
100
|
-
- test/level_test.rb
|
101
|
-
- test/description_test.rb
|
102
|
-
- test/partial_export_test.rb
|
103
116
|
- test/scopecontent_test.rb
|
117
|
+
- test/subtitle_test.rb
|
104
118
|
- test/examples/example1.xml
|
105
119
|
- test/examples/example2.xml
|
106
120
|
- README
|
107
121
|
- LICENSE
|
108
122
|
- Rakefile
|
109
|
-
|
123
|
+
has_rdoc: true
|
124
|
+
homepage:
|
125
|
+
licenses: []
|
110
126
|
|
127
|
+
post_install_message:
|
111
128
|
rdoc_options:
|
112
129
|
- -S
|
113
130
|
- -w 2
|
@@ -115,21 +132,32 @@ rdoc_options:
|
|
115
132
|
- -Axmlsubel_mult=XML Subelement Collection
|
116
133
|
- -Axmlsubel=XML Subelement
|
117
134
|
- -Axmlattr=XML Attribute
|
118
|
-
|
119
|
-
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
135
|
+
require_paths:
|
136
|
+
- lib
|
137
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 3
|
143
|
+
segments:
|
144
|
+
- 0
|
145
|
+
version: "0"
|
146
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
+
none: false
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
hash: 3
|
152
|
+
segments:
|
153
|
+
- 0
|
154
|
+
version: "0"
|
124
155
|
requirements:
|
125
156
|
- xmlcodec
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 0.1.0
|
135
|
-
version:
|
157
|
+
rubyforge_project:
|
158
|
+
rubygems_version: 1.3.7
|
159
|
+
signing_key:
|
160
|
+
specification_version: 3
|
161
|
+
summary: Importer/Exporter for the EAD XML format
|
162
|
+
test_files: []
|
163
|
+
|
data/lib/elements/dao.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
class Dao < EADElement
|
2
|
-
elname "dao"
|
3
|
-
|
4
|
-
xmlattr :actuate
|
5
|
-
xmlattr :altrender
|
6
|
-
xmlattr :arcrole
|
7
|
-
xmlattr :audience
|
8
|
-
xmlattr :entityref
|
9
|
-
xmlattr :href
|
10
|
-
xmlattr :id
|
11
|
-
xmlattr :linktype
|
12
|
-
xmlattr :role
|
13
|
-
xmlattr :show
|
14
|
-
xmlattr :title
|
15
|
-
xmlattr :xpointer
|
16
|
-
end
|