Merge lp:~logan/ubuntu/quantal/libmusicbrainz/new-upstream into lp:ubuntu/quantal/libmusicbrainz

Proposed by Logan Rosen
Status: Merged
Merged at revision: 3
Proposed branch: lp:~logan/ubuntu/quantal/libmusicbrainz/new-upstream
Merge into: lp:ubuntu/quantal/libmusicbrainz
Diff against target: 17671 lines (+3088/-10035)
194 files modified
.gitignore (+9/-0)
CMakeLists.txt (+5/-6)
Doxyfile.cmake (+1/-1)
NEWS.txt (+26/-0)
README.md (+44/-0)
README.txt (+0/-44)
config.h.cmake (+0/-2)
debian/changelog (+8/-0)
debian/control (+2/-2)
examples/.gitignore (+8/-0)
examples/CMakeLists.txt (+8/-2)
examples/cdlookup.cc (+1/-1)
examples/cdlookup_c.c (+1/-1)
examples/collections.cc (+1/-1)
examples/search.cc (+1/-1)
examples/search_c.c (+1/-1)
include/musicbrainz4/.gitignore (+1/-0)
include/musicbrainz4/Alias.h (+8/-3)
include/musicbrainz4/AliasList.h (+1/-1)
include/musicbrainz4/Annotation.h (+3/-3)
include/musicbrainz4/AnnotationList.h (+1/-1)
include/musicbrainz4/Artist.h (+32/-5)
include/musicbrainz4/ArtistCredit.h (+3/-3)
include/musicbrainz4/ArtistList.h (+1/-1)
include/musicbrainz4/Attribute.h (+3/-3)
include/musicbrainz4/AttributeList.h (+1/-1)
include/musicbrainz4/CDStub.h (+3/-3)
include/musicbrainz4/CDStubList.h (+1/-1)
include/musicbrainz4/Collection.h (+3/-3)
include/musicbrainz4/CollectionList.h (+1/-1)
include/musicbrainz4/Disc.h (+3/-3)
include/musicbrainz4/DiscList.h (+1/-1)
include/musicbrainz4/Entity.h (+12/-24)
include/musicbrainz4/FreeDBDisc.h (+3/-3)
include/musicbrainz4/FreeDBDiscList.h (+1/-1)
include/musicbrainz4/HTTPFetch.h (+1/-1)
include/musicbrainz4/IPI.h (+63/-0)
include/musicbrainz4/IPIList.h (+37/-0)
include/musicbrainz4/ISRC.h (+3/-3)
include/musicbrainz4/ISRCList.h (+1/-1)
include/musicbrainz4/ISWC.h (+65/-0)
include/musicbrainz4/ISWCList.h (+62/-0)
include/musicbrainz4/Label.h (+32/-5)
include/musicbrainz4/LabelInfo.h (+3/-3)
include/musicbrainz4/LabelInfoList.h (+1/-1)
include/musicbrainz4/LabelList.h (+1/-1)
include/musicbrainz4/Lifespan.h (+4/-3)
include/musicbrainz4/List.h (+3/-3)
include/musicbrainz4/ListImpl.h (+5/-11)
include/musicbrainz4/Medium.h (+3/-3)
include/musicbrainz4/MediumList.h (+3/-3)
include/musicbrainz4/Message.h (+3/-3)
include/musicbrainz4/Metadata.h (+3/-3)
include/musicbrainz4/NameCredit.h (+3/-3)
include/musicbrainz4/NameCreditList.h (+1/-1)
include/musicbrainz4/NonMBTrack.h (+3/-3)
include/musicbrainz4/NonMBTrackList.h (+1/-1)
include/musicbrainz4/PUID.h (+3/-3)
include/musicbrainz4/PUIDList.h (+1/-1)
include/musicbrainz4/Query.h (+22/-1)
include/musicbrainz4/Rating.h (+3/-3)
include/musicbrainz4/Recording.h (+17/-4)
include/musicbrainz4/RecordingList.h (+1/-1)
include/musicbrainz4/Relation.h (+3/-3)
include/musicbrainz4/RelationList.h (+3/-3)
include/musicbrainz4/RelationListList.h (+63/-0)
include/musicbrainz4/Release.h (+17/-4)
include/musicbrainz4/ReleaseGroup.h (+34/-5)
include/musicbrainz4/ReleaseGroupList.h (+1/-1)
include/musicbrainz4/ReleaseList.h (+1/-1)
include/musicbrainz4/SecondaryType.h (+65/-0)
include/musicbrainz4/SecondaryTypeList.h (+62/-0)
include/musicbrainz4/Tag.h (+3/-3)
include/musicbrainz4/TagList.h (+1/-1)
include/musicbrainz4/TextRepresentation.h (+3/-3)
include/musicbrainz4/Track.h (+4/-3)
include/musicbrainz4/TrackList.h (+1/-1)
include/musicbrainz4/UserRating.h (+3/-3)
include/musicbrainz4/UserTag.h (+3/-3)
include/musicbrainz4/UserTagList.h (+1/-1)
include/musicbrainz4/Work.h (+34/-5)
include/musicbrainz4/WorkList.h (+1/-1)
include/musicbrainz4/defines.h (+42/-0)
schema/musicbrainz_mmd-1.0.rng (+0/-585)
schema/musicbrainz_mmd-1.0rc1.rng (+0/-478)
schema/musicbrainz_mmd-1.0rc2.rng (+0/-518)
schema/musicbrainz_mmd-1.0rc3.rng (+0/-518)
schema/musicbrainz_mmd-1.0rc4.rng (+0/-539)
schema/musicbrainz_mmd-1.0rc5.rng (+0/-585)
schema/musicbrainz_mmd-1.1.rng (+0/-694)
schema/musicbrainz_mmd-1.2.rng (+0/-736)
schema/musicbrainz_mmd-1.3.rng (+0/-807)
schema/musicbrainz_mmd-1.4.rng (+0/-911)
schema/musicbrainz_mmd-2.0.rng (+0/-1537)
src/.gitignore (+7/-0)
src/Alias.cc (+58/-16)
src/Annotation.cc (+9/-16)
src/Artist.cc (+61/-41)
src/ArtistCredit.cc (+6/-14)
src/Attribute.cc (+6/-13)
src/CDStub.cc (+11/-18)
src/CMakeLists.txt (+10/-3)
src/Collection.cc (+9/-15)
src/Disc.cc (+9/-16)
src/Entity.cc (+23/-14)
src/FreeDBDisc.cc (+11/-19)
src/HTTPFetch.cc (+4/-1)
src/IPI.cc (+118/-0)
src/ISRC.cc (+7/-14)
src/ISWC.cc (+123/-0)
src/ISWCList.cc (+101/-0)
src/Label.cc (+59/-37)
src/LabelInfo.cc (+8/-15)
src/Lifespan.cc (+20/-15)
src/List.cc (+6/-13)
src/Medium.cc (+11/-18)
src/MediumList.cc (+9/-10)
src/Message.cc (+7/-14)
src/Metadata.cc (+33/-40)
src/NameCredit.cc (+8/-16)
src/NonMBTrack.cc (+9/-16)
src/PUID.cc (+7/-14)
src/Query.cc (+26/-9)
src/Rating.cc (+7/-14)
src/Recording.cc (+34/-36)
src/Relation.cc (+17/-24)
src/RelationList.cc (+9/-10)
src/RelationListList.cc (+148/-0)
src/Release.cc (+37/-38)
src/ReleaseGroup.cc (+68/-36)
src/SecondaryType.cc (+124/-0)
src/SecondaryTypeList.cc (+101/-0)
src/Tag.cc (+8/-15)
src/TextRepresentation.cc (+8/-15)
src/Track.cc (+25/-18)
src/UserRating.cc (+6/-13)
src/UserTag.cc (+7/-14)
src/Work.cc (+70/-39)
src/c-int-medium-defines.inc (+2/-2)
src/c-int-medium-source.inc (+2/-2)
src/c-int-query-defines.inc (+2/-2)
src/c-int-query-source.inc (+2/-2)
src/c-int-release-defines.inc (+2/-2)
src/c-int-release-source.inc (+2/-2)
src/c-int-source-funcs.inc (+12/-3)
src/cinterface.xml (+38/-10)
src/make-c-interface.cc (+125/-4)
test-data/README (+0/-13)
test-data/invalid/artist/basic_1.xml (+0/-12)
test-data/invalid/artist/basic_2.xml (+0/-12)
test-data/invalid/artist/empty_2.xml (+0/-3)
test-data/invalid/artist/empty_3.xml (+0/-7)
test-data/invalid/artist/ratings_1.xml (+0/-6)
test-data/invalid/artist/ratings_2.xml (+0/-6)
test-data/invalid/artist/search_result_1.xml (+0/-11)
test-data/invalid/artist/tags_1.xml (+0/-6)
test-data/valid/artist/Tchaikovsky-1.xml (+0/-90)
test-data/valid/artist/Tchaikovsky-2.xml (+0/-18)
test-data/valid/artist/Tori_Amos_1.xml (+0/-8)
test-data/valid/artist/Tori_Amos_2.xml (+0/-67)
test-data/valid/artist/Tori_Amos_3.xml (+0/-25)
test-data/valid/artist/Tori_Amos_4.xml (+0/-14)
test-data/valid/artist/Tori_Amos_5.xml (+0/-13)
test-data/valid/artist/empty_1.xml (+0/-7)
test-data/valid/artist/empty_2.xml (+0/-11)
test-data/valid/artist/search_result_1.xml (+0/-19)
test-data/valid/label/Atlantic_Records_1.xml (+0/-9)
test-data/valid/label/Atlantic_Records_2.xml (+0/-14)
test-data/valid/label/Atlantic_Records_3.xml (+0/-17)
test-data/valid/label/search_result_1.xml (+0/-14)
test-data/valid/release-group/The_Cure_1.xml (+0/-36)
test-data/valid/release-group/search_result_1.xml (+0/-23)
test-data/valid/release/Highway_61_Revisited_1.xml (+0/-68)
test-data/valid/release/Highway_61_Revisited_2.xml (+0/-18)
test-data/valid/release/Little_Earthquakes_1.xml (+0/-24)
test-data/valid/release/Little_Earthquakes_2.xml (+0/-73)
test-data/valid/release/Mission_Impossible_2.xml (+0/-155)
test-data/valid/release/Under_the_Pink_1.xml (+0/-16)
test-data/valid/release/Under_the_Pink_2.xml (+0/-17)
test-data/valid/release/Under_the_Pink_3.xml (+0/-16)
test-data/valid/release/search_result_1.xml (+0/-29)
test-data/valid/track/Silent_All_These_Years_1.xml (+0/-7)
test-data/valid/track/Silent_All_These_Years_2.xml (+0/-21)
test-data/valid/track/Silent_All_These_Years_3.xml (+0/-16)
test-data/valid/track/Silent_All_These_Years_4.xml (+0/-33)
test-data/valid/track/Silent_All_These_Years_5.xml (+0/-20)
test-data/valid/track/Silent_All_These_Years_6.xml (+0/-16)
test-data/valid/track/search_result_1.xml (+0/-45)
test-data/valid/user/User_1.xml (+0/-15)
tests/.gitignore (+5/-0)
tests/CMakeLists.txt (+10/-2)
tests/ctest.c (+190/-5)
tests/mbtest.cc (+342/-121)
valgrind.supp (+18/-2)
To merge this branch: bzr merge lp:~logan/ubuntu/quantal/libmusicbrainz/new-upstream
Reviewer Review Type Date Requested Status
Daniel Holbach (community) Approve
Ubuntu branches Pending
Review via email: mp+111776@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Daniel Holbach (dholbach) wrote :

Looks alright. Is there any specific reason why you "Bump Build-Depends for debhelper to >= 9."?

review: Needs Information
Revision history for this message
Logan Rosen (logan) wrote :

I did that because Lintian was getting angry about how debian/compat is set to "9," but debian/control requires only version 7 or up of debhelper - the Lintian website recommended increasing the version in control to greater than or equal to the compatibility value.

Revision history for this message
Daniel Holbach (dholbach) wrote :

Ok, that's fine then. :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.gitignore'
2--- .gitignore 1970-01-01 00:00:00 +0000
3+++ .gitignore 2012-06-25 05:56:21 +0000
4@@ -0,0 +1,9 @@
5+CMakeCache.txt
6+CMakeFiles/
7+Doxyfile
8+Makefile
9+cmake_install.cmake
10+config.h
11+libmusicbrainz4.pc
12+docs/
13+install_manifest.txt
14
15=== modified file 'CMakeLists.txt'
16--- CMakeLists.txt 2012-02-01 17:18:10 +0000
17+++ CMakeLists.txt 2012-06-25 05:56:21 +0000
18@@ -1,15 +1,15 @@
19 cmake_minimum_required(VERSION 2.6)
20
21 PROJECT(libmusicbrainz4)
22-SET(PROJECT_VERSION 4.0.0)
23+SET(PROJECT_VERSION 4.0.3)
24
25 # 1. If the library source code has changed at all since the last update, then increment revision.
26 # 2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
27 # 3. If any interfaces have been added since the last public release, then increment age.
28 # 4. If any interfaces have been removed since the last public release, then set age to 0.
29-SET(musicbrainz4_SOVERSION_CURRENT 3)
30-SET(musicbrainz4_SOVERSION_REVISION 0)
31-SET(musicbrainz4_SOVERSION_AGE 0)
32+SET(musicbrainz4_SOVERSION_CURRENT 5)
33+SET(musicbrainz4_SOVERSION_REVISION 1)
34+SET(musicbrainz4_SOVERSION_AGE 2)
35
36 MATH(EXPR musicbrainz4_SOVERSION_MAJOR "${musicbrainz4_SOVERSION_CURRENT} - ${musicbrainz4_SOVERSION_AGE}")
37 MATH(EXPR musicbrainz4_SOVERSION_MINOR "${musicbrainz4_SOVERSION_AGE}")
38@@ -47,6 +47,5 @@
39
40 ADD_CUSTOM_TARGET(dist
41 rm -rf "libmusicbrainz-${PROJECT_VERSION}"
42- COMMAND svn export http://svn.musicbrainz.org/libmusicbrainz/trunk "libmusicbrainz-${PROJECT_VERSION}"
43- COMMAND tar -zcvf "libmusicbrainz-${PROJECT_VERSION}.tar.gz" "libmusicbrainz-${PROJECT_VERSION}"
44+ COMMAND git archive --prefix="libmusicbrainz-${PROJECT_VERSION}/" release-${PROJECT_VERSION} | gzip -9 > libmusicbrainz-${PROJECT_VERSION}.tar.gz
45 )
46
47=== modified file 'Doxyfile.cmake'
48--- Doxyfile.cmake 2012-02-01 17:18:10 +0000
49+++ Doxyfile.cmake 2012-06-25 05:56:21 +0000
50@@ -16,5 +16,5 @@
51 FULL_PATH_NAMES = NO
52 MACRO_EXPANSION = YES
53 EXPAND_ONLY_PREDEF = YES
54-PREDEFINED = MB_API
55+PREDEFINED = LIBMB4_DEPRECATED(f)=
56 REPEAT_BRIEF = NO
57
58=== modified file 'NEWS.txt'
59--- NEWS.txt 2012-02-01 17:18:10 +0000
60+++ NEWS.txt 2012-06-25 05:56:21 +0000
61@@ -1,3 +1,29 @@
62+Changes for libmusicbrainz 4.0.3
63+--------------------------------
64+
65+ - Fix LMB-32 - Correctly ignore unrecognised nodes
66+ - Don't compile using -Werror when building from tarball
67+
68+Changes for libmusicbrainz 4.0.2
69+--------------------------------
70+
71+ - Add extra attributes to Alias
72+ - Add IPI lists to Artist and Label
73+ - Add 'Ended' to Lifespan
74+ - Add PrimaryType and SecondaryTypeList to ReleaseGroup
75+ - Add text based track number to Track
76+ - Add ISWC list to Work
77+ - Debug builds show queries and responses on stderr
78+ - Documentation updates
79+
80+Changes for libmusicbrainz 4.0.1
81+--------------------------------
82+
83+ - Fixed bug LMB-30 - Unable to access all relation lists on objects with
84+ multiple relation lists
85+ - Fixed bug LMB-31 - mb_relationlist_get_targettype always returns
86+ "target-type"
87+
88 Changes for libmusicbrainz 4.0.0
89 --------------------------------
90
91
92=== added file 'README.md'
93--- README.md 1970-01-01 00:00:00 +0000
94+++ README.md 2012-06-25 05:56:21 +0000
95@@ -0,0 +1,44 @@
96+============================
97+ MusicBrainz Client Library
98+============================
99+
100+Documentation
101+-------------
102+
103+To get started quickly have a look at the examples directory which
104+contains various sample programs. API documentation can be generated
105+using [Doxygen] (http://www.stack.nl/~dimitri/doxygen/). The online version of
106+the API documentation can be found at:
107+
108+ http://metabrainz.github.com/libmusicbrainz/
109+
110+Compiling and Linking
111+---------------------
112+
113+This package provides a pkg-config script that returns the necessary compiler
114+and linker flags, as well as the version number. To build a small sample
115+program one would use:
116+
117+ g++ -o test_app test_app.cpp `pkg-config libmusicbrainz4 --cflags --libs`
118+
119+If you don't want/can't use pkg-config and you are using the C API, make sure
120+you link in the C++ standard library:
121+
122+ gcc -o test_app test_app.c -lmusicbrainz4 -lm -lstdc++
123+
124+Contact
125+-------
126+
127+If you have any questions about this library, feel free to ask on the
128+MusicBrainz development mailing list:
129+
130+ http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-devel
131+
132+Please submit bug reports to the MusicBrainz bug tracking system:
133+
134+ http://tickets.musicbrainz.org/browse/LMB
135+
136+You can find out more about the MusicBrainz project by visiting its
137+site:
138+
139+ http://musicbrainz.org/
140
141=== removed file 'README.txt'
142--- README.txt 2012-02-01 17:18:10 +0000
143+++ README.txt 1970-01-01 00:00:00 +0000
144@@ -1,44 +0,0 @@
145-============================
146- MusicBrainz Client Library
147-============================
148-
149-Documentation
150-=============
151-
152-To get started quickly have a look at the examples directory which
153-contains various sample programs. API documentation can be generated
154-using Doxygen (http://www.stack.nl/~dimitri/doxygen/). Online version of
155-the API documentation can be found at:
156-
157- http://users.musicbrainz.org/~luks/docs/libmusicbrainz4/
158-
159-Compiling and Linking
160-=====================
161-
162-This package provides a pkg-config script that returns the necessary compiler
163-and linker flags, as well as the version number. To build a small sample
164-program one would use:
165-
166- g++ -o test_app test_app.cpp `pkg-config libmusicbrainz4 --cflags --libs`
167-
168-If you don't want/can't use pkg-config and you are using the C API, make sure
169-you link in the C++ standard library:
170-
171- gcc -o test_app test_app.c -lmusicbrainz4 -lm -lstdc++
172-
173-Contact
174-=======
175-
176-If you have any questions about this library, feel free to ask on the
177-MusicBrainz development mailing list:
178-
179- http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-devel
180-
181-Please submit bug reports to the MusicBrainz bug tracking system:
182-
183- http://tickets.musicbrainz.org/
184-
185-You can find out more about the MusicBrainz project by visiting its
186-site:
187-
188- http://musicbrainz.org/
189
190=== modified file 'config.h.cmake'
191--- config.h.cmake 2012-02-01 17:18:10 +0000
192+++ config.h.cmake 2012-06-25 05:56:21 +0000
193@@ -4,6 +4,4 @@
194 #define PACKAGE "${PROJECT_NAME}"
195 #define VERSION "${PROJECT_VERSION}"
196
197-#cmakedefine DISCID_FOUND
198-
199 #endif
200
201=== modified file 'debian/changelog'
202--- debian/changelog 2012-02-01 17:18:10 +0000
203+++ debian/changelog 2012-06-25 05:56:21 +0000
204@@ -1,3 +1,11 @@
205+libmusicbrainz (4.0.3-0ubuntu1) quantal; urgency=low
206+
207+ * New upstream release (LP: #1005075).
208+ * Bump Standards-Version to 3.9.3.
209+ * Bump Build-Depends for debhelper to >= 9.
210+
211+ -- Logan Rosen <logatronico@gmail.com> Mon, 25 Jun 2012 01:45:21 -0400
212+
213 libmusicbrainz (4.0.0-0ubuntu1) precise; urgency=low
214
215 * Merge from unreleased Debian git.
216
217=== modified file 'debian/control'
218--- debian/control 2012-02-01 17:18:10 +0000
219+++ debian/control 2012-06-25 05:56:21 +0000
220@@ -1,11 +1,11 @@
221 Source: libmusicbrainz
222 Priority: extra
223 Maintainer: Timo Aaltonen <tjaalton@ubuntu.com>
224-Build-Depends: debhelper (>= 8.1.3~),
225+Build-Depends: debhelper (>= 9),
226 cmake,
227 libneon27-gnutls-dev| libneon-dev,
228 doxygen,
229-Standards-Version: 3.9.2
230+Standards-Version: 3.9.3
231 Section: libs
232 Homepage: http://musicbrainz.org/doc/libmusicbrainz
233 Vcs-Git: git://git.debian.org/collab-maint/libmusicbrainz.git
234
235=== added file 'examples/.gitignore'
236--- examples/.gitignore 1970-01-01 00:00:00 +0000
237+++ examples/.gitignore 2012-06-25 05:56:21 +0000
238@@ -0,0 +1,8 @@
239+CMakeFiles/
240+Makefile
241+cdlookup
242+cdlookup_c
243+cmake_install.cmake
244+collections
245+search
246+search_c
247
248=== modified file 'examples/CMakeLists.txt'
249--- examples/CMakeLists.txt 2012-02-01 17:18:10 +0000
250+++ examples/CMakeLists.txt 2012-06-25 05:56:21 +0000
251@@ -8,10 +8,16 @@
252 ADD_EXECUTABLE(collections collections.cc)
253
254 IF(CMAKE_COMPILER_IS_GNUCXX)
255- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -pedantic-errors")
256+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic-errors")
257+ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
258+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
259+ ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
260 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
261
262 IF(CMAKE_COMPILER_IS_GNUCC)
263- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wextra -pedantic-errors")
264+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic-errors")
265+ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
266+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
267+ ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
268 ENDIF(CMAKE_COMPILER_IS_GNUCC)
269
270
271=== modified file 'examples/cdlookup.cc'
272--- examples/cdlookup.cc 2012-02-01 17:18:10 +0000
273+++ examples/cdlookup.cc 2012-06-25 05:56:21 +0000
274@@ -18,7 +18,7 @@
275 You should have received a copy of the GNU General Public License
276 along with this library. If not, see <http://www.gnu.org/licenses/>.
277
278- $Id: cdlookup.cc 13266 2011-08-25 12:56:47Z adhawkins $
279+ $Id$
280
281 ----------------------------------------------------------------------------*/
282
283
284=== modified file 'examples/cdlookup_c.c'
285--- examples/cdlookup_c.c 2012-02-01 17:18:10 +0000
286+++ examples/cdlookup_c.c 2012-06-25 05:56:21 +0000
287@@ -10,7 +10,7 @@
288 modify it under the terms of v2 of the GNU Lesser General Public
289 License as published by the Free Software Foundation.
290
291- Flactag is distributed in the hope that it will be useful,
292+ libmusicbrainz4 is distributed in the hope that it will be useful,
293 but WITHOUT ANY WARRANTY; without even the implied warranty of
294 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
295 Lesser General Public License for more details.
296
297=== modified file 'examples/collections.cc'
298--- examples/collections.cc 2012-02-01 17:18:10 +0000
299+++ examples/collections.cc 2012-06-25 05:56:21 +0000
300@@ -18,7 +18,7 @@
301 You should have received a copy of the GNU General Public License
302 along with this library. If not, see <http://www.gnu.org/licenses/>.
303
304- $Id: collections.cc 13259 2011-08-10 12:02:50Z adhawkins $
305+ $Id$
306
307 ----------------------------------------------------------------------------*/
308
309
310=== modified file 'examples/search.cc'
311--- examples/search.cc 2012-02-01 17:18:10 +0000
312+++ examples/search.cc 2012-06-25 05:56:21 +0000
313@@ -18,7 +18,7 @@
314 You should have received a copy of the GNU General Public License
315 along with this library. If not, see <http://www.gnu.org/licenses/>.
316
317- $Id: search.cc 13254 2011-08-09 09:29:20Z adhawkins $
318+ $Id$
319
320 ----------------------------------------------------------------------------*/
321
322
323=== modified file 'examples/search_c.c'
324--- examples/search_c.c 2012-02-01 17:18:10 +0000
325+++ examples/search_c.c 2012-06-25 05:56:21 +0000
326@@ -10,7 +10,7 @@
327 modify it under the terms of v2 of the GNU Lesser General Public
328 License as published by the Free Software Foundation.
329
330- Flactag is distributed in the hope that it will be useful,
331+ libmusicbrainz4 is distributed in the hope that it will be useful,
332 but WITHOUT ANY WARRANTY; without even the implied warranty of
333 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
334 Lesser General Public License for more details.
335
336=== added file 'include/musicbrainz4/.gitignore'
337--- include/musicbrainz4/.gitignore 1970-01-01 00:00:00 +0000
338+++ include/musicbrainz4/.gitignore 2012-06-25 05:56:21 +0000
339@@ -0,0 +1,1 @@
340+mb4_c.h
341
342=== modified file 'include/musicbrainz4/Alias.h'
343--- include/musicbrainz4/Alias.h 2012-02-01 17:18:10 +0000
344+++ include/musicbrainz4/Alias.h 2012-06-25 05:56:21 +0000
345@@ -18,7 +18,7 @@
346 You should have received a copy of the GNU General Public License
347 along with this library. If not, see <http://www.gnu.org/licenses/>.
348
349- $Id: Alias.h 13259 2011-08-10 12:02:50Z adhawkins $
350+ $Id$
351
352 ----------------------------------------------------------------------------*/
353
354@@ -48,13 +48,18 @@
355
356 std::string Locale() const;
357 std::string Text() const;
358+ std::string SortName() const;
359+ std::string Type() const;
360+ std::string Primary() const;
361+ std::string BeginDate() const;
362+ std::string EndDate() const;
363
364 virtual std::ostream& Serialise(std::ostream& os) const;
365 static std::string GetElementName();
366
367 protected:
368- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
369- virtual bool ParseElement(const XMLNode& Node);
370+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
371+ virtual void ParseElement(const XMLNode& Node);
372
373 private:
374 CAliasPrivate * const m_d;
375
376=== modified file 'include/musicbrainz4/AliasList.h'
377--- include/musicbrainz4/AliasList.h 2012-02-01 17:18:10 +0000
378+++ include/musicbrainz4/AliasList.h 2012-06-25 05:56:21 +0000
379@@ -18,7 +18,7 @@
380 You should have received a copy of the GNU General Public License
381 along with this library. If not, see <http://www.gnu.org/licenses/>.
382
383- $Id: AliasList.h 13254 2011-08-09 09:29:20Z adhawkins $
384+ $Id$
385
386 ----------------------------------------------------------------------------*/
387
388
389=== modified file 'include/musicbrainz4/Annotation.h'
390--- include/musicbrainz4/Annotation.h 2012-02-01 17:18:10 +0000
391+++ include/musicbrainz4/Annotation.h 2012-06-25 05:56:21 +0000
392@@ -18,7 +18,7 @@
393 You should have received a copy of the GNU General Public License
394 along with this library. If not, see <http://www.gnu.org/licenses/>.
395
396- $Id: Annotation.h 13259 2011-08-10 12:02:50Z adhawkins $
397+ $Id$
398
399 ----------------------------------------------------------------------------*/
400
401@@ -55,8 +55,8 @@
402 static std::string GetElementName();
403
404 protected:
405- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
406- virtual bool ParseElement(const XMLNode& Node);
407+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
408+ virtual void ParseElement(const XMLNode& Node);
409
410 private:
411 CAnnotationPrivate * const m_d;
412
413=== modified file 'include/musicbrainz4/AnnotationList.h'
414--- include/musicbrainz4/AnnotationList.h 2012-02-01 17:18:10 +0000
415+++ include/musicbrainz4/AnnotationList.h 2012-06-25 05:56:21 +0000
416@@ -18,7 +18,7 @@
417 You should have received a copy of the GNU General Public License
418 along with this library. If not, see <http://www.gnu.org/licenses/>.
419
420- $Id: AnnotationList.h 13254 2011-08-09 09:29:20Z adhawkins $
421+ $Id$
422
423 ----------------------------------------------------------------------------*/
424
425
426=== modified file 'include/musicbrainz4/Artist.h'
427--- include/musicbrainz4/Artist.h 2012-02-01 17:18:10 +0000
428+++ include/musicbrainz4/Artist.h 2012-06-25 05:56:21 +0000
429@@ -18,7 +18,7 @@
430 You should have received a copy of the GNU General Public License
431 along with this library. If not, see <http://www.gnu.org/licenses/>.
432
433- $Id: Artist.h 13265 2011-08-25 12:53:44Z adhawkins $
434+ $Id$
435
436 ----------------------------------------------------------------------------*/
437
438@@ -29,6 +29,7 @@
439 #include <iostream>
440
441 #include "musicbrainz4/Entity.h"
442+#include "musicbrainz4/IPIList.h"
443 #include "musicbrainz4/ReleaseList.h"
444 #include "musicbrainz4/AliasList.h"
445 #include "musicbrainz4/RecordingList.h"
446@@ -65,7 +66,20 @@
447 std::string Gender() const;
448 std::string Country() const;
449 std::string Disambiguation() const;
450- std::string IPI() const;
451+
452+ /**
453+ * @deprecated Returns one of the IPIs for this artist
454+ *
455+ * Returns one of the IPIs for this artist. To return all
456+ * IPIs, see MusicBrainz4::CArtist::IPIList
457+ *
458+ * <b>This method is deprecated, please use MusicBrainz4::CArtist::IPIList</b>
459+ *
460+ * @return One of the IPIs for this artist
461+ */
462+
463+ LIBMB4_DEPRECATED(MusicBrainz4::CArtist::IPIList) std::string IPI() const;
464+ CIPIList *IPIList() const;
465 CLifespan *Lifespan() const;
466 CAliasList *AliasList() const;
467 CRecordingList *RecordingList() const;
468@@ -73,7 +87,20 @@
469 CReleaseGroupList *ReleaseGroupList() const;
470 CLabelList *LabelList() const;
471 CWorkList *WorkList() const;
472- CRelationList *RelationList() const;
473+
474+ /**
475+ * @deprecated Returns the <b>last</b> relation list for this artist
476+ *
477+ * Returns the <b>last</b> relation list for this artist. To return all
478+ * relation lists, see MusicBrainz4::CArtist::RelationListList
479+ *
480+ * <b>This method is deprecated, please use MusicBrainz4::CArtist::RelationListList</b>
481+ *
482+ * @return The <b>last</b> relation list for this artist
483+ */
484+
485+ LIBMB4_DEPRECATED(MusicBrainz4::CArtist::RelationListList) CRelationList *RelationList() const;
486+ CRelationListList *RelationListList() const;
487 CTagList *TagList() const;
488 CUserTagList *UserTagList() const;
489 CRating *Rating() const;
490@@ -83,8 +110,8 @@
491 static std::string GetElementName();
492
493 protected:
494- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
495- virtual bool ParseElement(const XMLNode& Node);
496+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
497+ virtual void ParseElement(const XMLNode& Node);
498
499 private:
500 void Cleanup();
501
502=== modified file 'include/musicbrainz4/ArtistCredit.h'
503--- include/musicbrainz4/ArtistCredit.h 2012-02-01 17:18:10 +0000
504+++ include/musicbrainz4/ArtistCredit.h 2012-06-25 05:56:21 +0000
505@@ -18,7 +18,7 @@
506 You should have received a copy of the GNU General Public License
507 along with this library. If not, see <http://www.gnu.org/licenses/>.
508
509- $Id: ArtistCredit.h 13259 2011-08-10 12:02:50Z adhawkins $
510+ $Id$
511
512 ----------------------------------------------------------------------------*/
513
514@@ -52,8 +52,8 @@
515 static std::string GetElementName();
516
517 protected:
518- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
519- virtual bool ParseElement(const XMLNode& Node);
520+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
521+ virtual void ParseElement(const XMLNode& Node);
522
523 private:
524 void Cleanup();
525
526=== modified file 'include/musicbrainz4/ArtistList.h'
527--- include/musicbrainz4/ArtistList.h 2012-02-01 17:18:10 +0000
528+++ include/musicbrainz4/ArtistList.h 2012-06-25 05:56:21 +0000
529@@ -18,7 +18,7 @@
530 You should have received a copy of the GNU General Public License
531 along with this library. If not, see <http://www.gnu.org/licenses/>.
532
533- $Id: ArtistList.h 13254 2011-08-09 09:29:20Z adhawkins $
534+ $Id$
535
536 ----------------------------------------------------------------------------*/
537
538
539=== modified file 'include/musicbrainz4/Attribute.h'
540--- include/musicbrainz4/Attribute.h 2012-02-01 17:18:10 +0000
541+++ include/musicbrainz4/Attribute.h 2012-06-25 05:56:21 +0000
542@@ -18,7 +18,7 @@
543 You should have received a copy of the GNU General Public License
544 along with this library. If not, see <http://www.gnu.org/licenses/>.
545
546- $Id: Attribute.h 13259 2011-08-10 12:02:50Z adhawkins $
547+ $Id$
548
549 ----------------------------------------------------------------------------*/
550
551@@ -52,8 +52,8 @@
552 static std::string GetElementName();
553
554 protected:
555- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
556- virtual bool ParseElement(const XMLNode& Node);
557+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
558+ virtual void ParseElement(const XMLNode& Node);
559
560 private:
561 CAttributePrivate * const m_d;
562
563=== modified file 'include/musicbrainz4/AttributeList.h'
564--- include/musicbrainz4/AttributeList.h 2012-02-01 17:18:10 +0000
565+++ include/musicbrainz4/AttributeList.h 2012-06-25 05:56:21 +0000
566@@ -18,7 +18,7 @@
567 You should have received a copy of the GNU General Public License
568 along with this library. If not, see <http://www.gnu.org/licenses/>.
569
570- $Id: AttributeList.h 13254 2011-08-09 09:29:20Z adhawkins $
571+ $Id$
572
573 ----------------------------------------------------------------------------*/
574
575
576=== modified file 'include/musicbrainz4/CDStub.h'
577--- include/musicbrainz4/CDStub.h 2012-02-01 17:18:10 +0000
578+++ include/musicbrainz4/CDStub.h 2012-06-25 05:56:21 +0000
579@@ -18,7 +18,7 @@
580 You should have received a copy of the GNU General Public License
581 along with this library. If not, see <http://www.gnu.org/licenses/>.
582
583- $Id: CDStub.h 13259 2011-08-10 12:02:50Z adhawkins $
584+ $Id$
585
586 ----------------------------------------------------------------------------*/
587
588@@ -58,8 +58,8 @@
589 static std::string GetElementName();
590
591 protected:
592- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
593- virtual bool ParseElement(const XMLNode& Node);
594+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
595+ virtual void ParseElement(const XMLNode& Node);
596
597 private:
598 void Cleanup();
599
600=== modified file 'include/musicbrainz4/CDStubList.h'
601--- include/musicbrainz4/CDStubList.h 2012-02-01 17:18:10 +0000
602+++ include/musicbrainz4/CDStubList.h 2012-06-25 05:56:21 +0000
603@@ -18,7 +18,7 @@
604 You should have received a copy of the GNU General Public License
605 along with this library. If not, see <http://www.gnu.org/licenses/>.
606
607- $Id: CDStubList.h 13254 2011-08-09 09:29:20Z adhawkins $
608+ $Id$
609
610 ----------------------------------------------------------------------------*/
611
612
613=== modified file 'include/musicbrainz4/Collection.h'
614--- include/musicbrainz4/Collection.h 2012-02-01 17:18:10 +0000
615+++ include/musicbrainz4/Collection.h 2012-06-25 05:56:21 +0000
616@@ -18,7 +18,7 @@
617 You should have received a copy of the GNU General Public License
618 along with this library. If not, see <http://www.gnu.org/licenses/>.
619
620- $Id: Collection.h 13259 2011-08-10 12:02:50Z adhawkins $
621+ $Id$
622
623 ----------------------------------------------------------------------------*/
624
625@@ -53,8 +53,8 @@
626 static std::string GetElementName();
627
628 protected:
629- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
630- virtual bool ParseElement(const XMLNode& Node);
631+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
632+ virtual void ParseElement(const XMLNode& Node);
633
634 private:
635 void Cleanup();
636
637=== modified file 'include/musicbrainz4/CollectionList.h'
638--- include/musicbrainz4/CollectionList.h 2012-02-01 17:18:10 +0000
639+++ include/musicbrainz4/CollectionList.h 2012-06-25 05:56:21 +0000
640@@ -18,7 +18,7 @@
641 You should have received a copy of the GNU General Public License
642 along with this library. If not, see <http://www.gnu.org/licenses/>.
643
644- $Id: CollectionList.h 13254 2011-08-09 09:29:20Z adhawkins $
645+ $Id$
646
647 ----------------------------------------------------------------------------*/
648
649
650=== modified file 'include/musicbrainz4/Disc.h'
651--- include/musicbrainz4/Disc.h 2012-02-01 17:18:10 +0000
652+++ include/musicbrainz4/Disc.h 2012-06-25 05:56:21 +0000
653@@ -18,7 +18,7 @@
654 You should have received a copy of the GNU General Public License
655 along with this library. If not, see <http://www.gnu.org/licenses/>.
656
657- $Id: Disc.h 13259 2011-08-10 12:02:50Z adhawkins $
658+ $Id$
659
660 ----------------------------------------------------------------------------*/
661
662@@ -57,8 +57,8 @@
663 static std::string GetElementName();
664
665 protected:
666- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
667- virtual bool ParseElement(const XMLNode& Node);
668+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
669+ virtual void ParseElement(const XMLNode& Node);
670
671 private:
672 void Cleanup();
673
674=== modified file 'include/musicbrainz4/DiscList.h'
675--- include/musicbrainz4/DiscList.h 2012-02-01 17:18:10 +0000
676+++ include/musicbrainz4/DiscList.h 2012-06-25 05:56:21 +0000
677@@ -18,7 +18,7 @@
678 You should have received a copy of the GNU General Public License
679 along with this library. If not, see <http://www.gnu.org/licenses/>.
680
681- $Id: DiscList.h 13254 2011-08-09 09:29:20Z adhawkins $
682+ $Id$
683
684 ----------------------------------------------------------------------------*/
685
686
687=== modified file 'include/musicbrainz4/Entity.h'
688--- include/musicbrainz4/Entity.h 2012-02-01 17:18:10 +0000
689+++ include/musicbrainz4/Entity.h 2012-06-25 05:56:21 +0000
690@@ -18,7 +18,7 @@
691 You should have received a copy of the GNU General Public License
692 along with this library. If not, see <http://www.gnu.org/licenses/>.
693
694- $Id: Entity.h 13259 2011-08-10 12:02:50Z adhawkins $
695+ $Id$
696
697 ----------------------------------------------------------------------------*/
698
699@@ -36,6 +36,8 @@
700 {
701 class CEntityPrivate;
702
703+ class CRelationListList;
704+
705 class CEntity
706 {
707 public:
708@@ -46,7 +48,7 @@
709
710 virtual CEntity *Clone()=0;
711
712- bool Parse(const XMLNode& Node);
713+ void Parse(const XMLNode& Node);
714
715 std::map<std::string,std::string> ExtAttributes() const;
716 std::map<std::string,std::string> ExtElements() const;
717@@ -55,19 +57,17 @@
718 static std::string GetElementName();
719
720 protected:
721+ void ProcessRelationList(const XMLNode& Node, CRelationListList* & RetVal);
722+
723 template<typename T>
724- bool ProcessItem(const XMLNode& Node, T* & RetVal)
725+ void ProcessItem(const XMLNode& Node, T* & RetVal)
726 {
727 RetVal=new T(Node);
728-
729- return true;
730 }
731
732 template<class T>
733- bool ProcessItem(const XMLNode& Node, T& RetVal)
734+ void ProcessItem(const XMLNode& Node, T& RetVal)
735 {
736- bool Ret=true;
737-
738 std::stringstream os;
739 if (Node.getText())
740 os << (const char *)Node.getText();
741@@ -75,51 +75,39 @@
742 os >> RetVal;
743 if (os.fail())
744 {
745- Ret=false;
746 std::cerr << "Error parsing value '";
747 if (Node.getText())
748 std::cerr << Node.getText();
749 std::cerr << "'" << std::endl;
750 }
751-
752- return Ret;
753 }
754
755 template<typename T>
756- bool ProcessItem(const std::string& Text, T& RetVal)
757+ void ProcessItem(const std::string& Text, T& RetVal)
758 {
759- bool Ret=true;
760-
761 std::stringstream os;
762 os << Text;
763
764 os >> RetVal;
765 if (os.fail())
766 {
767- Ret=false;
768 std::cerr << "Error parsing value '" << Text << "'" << std::endl;
769 }
770-
771- return Ret;
772 }
773
774- bool ProcessItem(const XMLNode& Node, std::string& RetVal)
775+ void ProcessItem(const XMLNode& Node, std::string& RetVal)
776 {
777 if (Node.getText())
778 RetVal=Node.getText();
779-
780- return true;
781-
782 }
783
784- virtual bool ParseAttribute(const std::string& Name, const std::string& Value)=0;
785- virtual bool ParseElement(const XMLNode& Node)=0;
786+ virtual void ParseAttribute(const std::string& Name, const std::string& Value)=0;
787+ virtual void ParseElement(const XMLNode& Node)=0;
788
789 private:
790 CEntityPrivate *m_d;
791
792 void Cleanup();
793-
794 };
795 }
796
797
798=== modified file 'include/musicbrainz4/FreeDBDisc.h'
799--- include/musicbrainz4/FreeDBDisc.h 2012-02-01 17:18:10 +0000
800+++ include/musicbrainz4/FreeDBDisc.h 2012-06-25 05:56:21 +0000
801@@ -18,7 +18,7 @@
802 You should have received a copy of the GNU General Public License
803 along with this library. If not, see <http://www.gnu.org/licenses/>.
804
805- $Id: FreeDBDisc.h 13259 2011-08-10 12:02:50Z adhawkins $
806+ $Id$
807
808 ----------------------------------------------------------------------------*/
809
810@@ -58,8 +58,8 @@
811 static std::string GetElementName();
812
813 protected:
814- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
815- virtual bool ParseElement(const XMLNode& Node);
816+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
817+ virtual void ParseElement(const XMLNode& Node);
818
819 private:
820 void Cleanup();
821
822=== modified file 'include/musicbrainz4/FreeDBDiscList.h'
823--- include/musicbrainz4/FreeDBDiscList.h 2012-02-01 17:18:10 +0000
824+++ include/musicbrainz4/FreeDBDiscList.h 2012-06-25 05:56:21 +0000
825@@ -18,7 +18,7 @@
826 You should have received a copy of the GNU General Public License
827 along with this library. If not, see <http://www.gnu.org/licenses/>.
828
829- $Id: FreeDBDiscList.h 13254 2011-08-09 09:29:20Z adhawkins $
830+ $Id$
831
832 ----------------------------------------------------------------------------*/
833
834
835=== modified file 'include/musicbrainz4/HTTPFetch.h'
836--- include/musicbrainz4/HTTPFetch.h 2012-02-01 17:18:10 +0000
837+++ include/musicbrainz4/HTTPFetch.h 2012-06-25 05:56:21 +0000
838@@ -18,7 +18,7 @@
839 You should have received a copy of the GNU General Public License
840 along with this library. If not, see <http://www.gnu.org/licenses/>.
841
842- $Id: HTTPFetch.h 13259 2011-08-10 12:02:50Z adhawkins $
843+ $Id$
844
845 ----------------------------------------------------------------------------*/
846
847
848=== added file 'include/musicbrainz4/IPI.h'
849--- include/musicbrainz4/IPI.h 1970-01-01 00:00:00 +0000
850+++ include/musicbrainz4/IPI.h 2012-06-25 05:56:21 +0000
851@@ -0,0 +1,63 @@
852+/* --------------------------------------------------------------------------
853+
854+ libmusicbrainz4 - Client library to access MusicBrainz
855+
856+ Copyright (C) 2012 Andrew Hawkins
857+
858+ This file is part of libmusicbrainz4.
859+
860+ This library is free software; you can redistribute it and/or
861+ modify it under the terms of v2 of the GNU Lesser General Public
862+ License as published by the Free Software Foundation.
863+
864+ libmusicbrainz4 is distributed in the hope that it will be useful,
865+ but WITHOUT ANY WARRANTY; without even the implied warranty of
866+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
867+ Lesser General Public License for more details.
868+
869+ You should have received a copy of the GNU General Public License
870+ along with this library. If not, see <http://www.gnu.org/licenses/>.
871+
872+ $Id$
873+
874+----------------------------------------------------------------------------*/
875+
876+#ifndef _MUSICBRAINZ4_IPI_H
877+#define _MUSICBRAINZ4_IPI_H
878+
879+#include <string>
880+#include <iostream>
881+
882+#include "musicbrainz4/Entity.h"
883+
884+#include "musicbrainz4/xmlParser.h"
885+
886+namespace MusicBrainz4
887+{
888+ class CIPIPrivate;
889+
890+ class CIPI: public CEntity
891+ {
892+ public:
893+ CIPI(const XMLNode& Node=XMLNode::emptyNode());
894+ CIPI(const CIPI& Other);
895+ CIPI& operator =(const CIPI& Other);
896+ virtual ~CIPI();
897+
898+ virtual CIPI *Clone();
899+
900+ std::string IPI() const;
901+
902+ virtual std::ostream& Serialise(std::ostream& os) const;
903+ static std::string GetElementName();
904+
905+ protected:
906+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
907+ virtual void ParseElement(const XMLNode& Node);
908+
909+ private:
910+ CIPIPrivate * const m_d;
911+ };
912+}
913+
914+#endif
915
916=== added file 'include/musicbrainz4/IPIList.h'
917--- include/musicbrainz4/IPIList.h 1970-01-01 00:00:00 +0000
918+++ include/musicbrainz4/IPIList.h 2012-06-25 05:56:21 +0000
919@@ -0,0 +1,37 @@
920+/* --------------------------------------------------------------------------
921+
922+ libmusicbrainz4 - Client library to access MusicBrainz
923+
924+ Copyright (C) 2011 Andrew Hawkins
925+
926+ This file is part of libmusicbrainz4.
927+
928+ This library is free software; you can redistribute it and/or
929+ modify it under the terms of v2 of the GNU Lesser General Public
930+ License as published by the Free Software Foundation.
931+
932+ libmusicbrainz4 is distributed in the hope that it will be useful,
933+ but WITHOUT ANY WARRANTY; without even the implied warranty of
934+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
935+ Lesser General Public License for more details.
936+
937+ You should have received a copy of the GNU General Public License
938+ along with this library. If not, see <http://www.gnu.org/licenses/>.
939+
940+ $Id$
941+
942+----------------------------------------------------------------------------*/
943+
944+#ifndef _MUSICBRAINZ4_IPI_LIST_H
945+#define _MUSICBRAINZ4_IPI_LIST_H
946+
947+#include "musicbrainz4/ListImpl.h"
948+
949+namespace MusicBrainz4
950+{
951+ class CIPI;
952+
953+ typedef CListImpl<CIPI> CIPIList;
954+}
955+
956+#endif
957
958=== modified file 'include/musicbrainz4/ISRC.h'
959--- include/musicbrainz4/ISRC.h 2012-02-01 17:18:10 +0000
960+++ include/musicbrainz4/ISRC.h 2012-06-25 05:56:21 +0000
961@@ -18,7 +18,7 @@
962 You should have received a copy of the GNU General Public License
963 along with this library. If not, see <http://www.gnu.org/licenses/>.
964
965- $Id: ISRC.h 13259 2011-08-10 12:02:50Z adhawkins $
966+ $Id$
967
968 ----------------------------------------------------------------------------*/
969
970@@ -51,8 +51,8 @@
971 static std::string GetElementName();
972
973 protected:
974- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
975- virtual bool ParseElement(const XMLNode& Node);
976+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
977+ virtual void ParseElement(const XMLNode& Node);
978
979 private:
980 void Cleanup();
981
982=== modified file 'include/musicbrainz4/ISRCList.h'
983--- include/musicbrainz4/ISRCList.h 2012-02-01 17:18:10 +0000
984+++ include/musicbrainz4/ISRCList.h 2012-06-25 05:56:21 +0000
985@@ -18,7 +18,7 @@
986 You should have received a copy of the GNU General Public License
987 along with this library. If not, see <http://www.gnu.org/licenses/>.
988
989- $Id: ISRCList.h 13254 2011-08-09 09:29:20Z adhawkins $
990+ $Id$
991
992 ----------------------------------------------------------------------------*/
993
994
995=== added file 'include/musicbrainz4/ISWC.h'
996--- include/musicbrainz4/ISWC.h 1970-01-01 00:00:00 +0000
997+++ include/musicbrainz4/ISWC.h 2012-06-25 05:56:21 +0000
998@@ -0,0 +1,65 @@
999+/* --------------------------------------------------------------------------
1000+
1001+ libmusicbrainz4 - Client library to access MusicBrainz
1002+
1003+ Copyright (C) 2012 Andrew Hawkins
1004+
1005+ This file is part of libmusicbrainz4.
1006+
1007+ This library is free software; you can redistribute it and/or
1008+ modify it under the terms of v2 of the GNU Lesser General Public
1009+ License as published by the Free Software Foundation.
1010+
1011+ libmusicbrainz4 is distributed in the hope that it will be useful,
1012+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1013+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1014+ Lesser General Public License for more details.
1015+
1016+ You should have received a copy of the GNU General Public License
1017+ along with this library. If not, see <http://www.gnu.org/licenses/>.
1018+
1019+ $Id$
1020+
1021+----------------------------------------------------------------------------*/
1022+
1023+#ifndef _MUSICBRAINZ4_ISWC_H
1024+#define _MUSICBRAINZ4_ISWC_H
1025+
1026+#include <string>
1027+#include <iostream>
1028+
1029+#include "musicbrainz4/Entity.h"
1030+
1031+#include "musicbrainz4/xmlParser.h"
1032+
1033+namespace MusicBrainz4
1034+{
1035+ class CISWCPrivate;
1036+
1037+ class CISWC: public CEntity
1038+ {
1039+ public:
1040+ CISWC(const XMLNode& Node=XMLNode::emptyNode());
1041+ CISWC(const CISWC& Other);
1042+ CISWC& operator =(const CISWC& Other);
1043+ virtual ~CISWC();
1044+
1045+ virtual CISWC *Clone();
1046+
1047+ std::string ISWC() const;
1048+
1049+ virtual std::ostream& Serialise(std::ostream& os) const;
1050+ static std::string GetElementName();
1051+
1052+ protected:
1053+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1054+ virtual void ParseElement(const XMLNode& Node);
1055+
1056+ private:
1057+ void Cleanup();
1058+
1059+ CISWCPrivate * const m_d;
1060+ };
1061+}
1062+
1063+#endif
1064
1065=== added file 'include/musicbrainz4/ISWCList.h'
1066--- include/musicbrainz4/ISWCList.h 1970-01-01 00:00:00 +0000
1067+++ include/musicbrainz4/ISWCList.h 2012-06-25 05:56:21 +0000
1068@@ -0,0 +1,62 @@
1069+/* --------------------------------------------------------------------------
1070+
1071+ libmusicbrainz4 - Client library to access MusicBrainz
1072+
1073+ Copyright (C) 2012 Andrew Hawkins
1074+
1075+ This file is part of libmusicbrainz4.
1076+
1077+ This library is free software; you can redistribute it and/or
1078+ modify it under the terms of v2 of the GNU Lesser General Public
1079+ License as published by the Free Software Foundation.
1080+
1081+ libmusicbrainz4 is distributed in the hope that it will be useful,
1082+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1083+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1084+ Lesser General Public License for more details.
1085+
1086+ You should have received a copy of the GNU General Public License
1087+ along with this library. If not, see <http://www.gnu.org/licenses/>.
1088+
1089+ $Id$
1090+
1091+----------------------------------------------------------------------------*/
1092+
1093+#ifndef _MUSICBRAINZ4_ISWC_LIST_H
1094+#define _MUSICBRAINZ4_ISWC_LIST_H
1095+
1096+#include <string>
1097+#include <iostream>
1098+
1099+#include "musicbrainz4/ListImpl.h"
1100+
1101+#include "musicbrainz4/xmlParser.h"
1102+
1103+namespace MusicBrainz4
1104+{
1105+ class CISWC;
1106+ class CISWCListPrivate;
1107+
1108+ class CISWCList: public CListImpl<CISWC>
1109+ {
1110+ public:
1111+ CISWCList(const XMLNode& Node=XMLNode::emptyNode());
1112+ CISWCList(const CISWCList& Other);
1113+ CISWCList& operator =(const CISWCList& Other);
1114+ virtual ~CISWCList();
1115+
1116+ virtual CISWCList *Clone();
1117+
1118+ virtual std::ostream& Serialise(std::ostream& os) const;
1119+ static std::string GetElementName();
1120+
1121+ protected:
1122+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1123+ virtual void ParseElement(const XMLNode& Node);
1124+
1125+ private:
1126+ CISWCListPrivate * const m_d;
1127+ };
1128+}
1129+
1130+#endif
1131
1132=== modified file 'include/musicbrainz4/Label.h'
1133--- include/musicbrainz4/Label.h 2012-02-01 17:18:10 +0000
1134+++ include/musicbrainz4/Label.h 2012-06-25 05:56:21 +0000
1135@@ -18,7 +18,7 @@
1136 You should have received a copy of the GNU General Public License
1137 along with this library. If not, see <http://www.gnu.org/licenses/>.
1138
1139- $Id: Label.h 13265 2011-08-25 12:53:44Z adhawkins $
1140+ $Id$
1141
1142 ----------------------------------------------------------------------------*/
1143
1144@@ -29,6 +29,7 @@
1145 #include <iostream>
1146
1147 #include "musicbrainz4/Entity.h"
1148+#include "musicbrainz4/IPIList.h"
1149 #include "musicbrainz4/ReleaseList.h"
1150 #include "musicbrainz4/AliasList.h"
1151 #include "musicbrainz4/RelationList.h"
1152@@ -60,13 +61,39 @@
1153 std::string Name() const;
1154 std::string SortName() const;
1155 int LabelCode() const;
1156- std::string IPI() const;
1157+
1158+ /**
1159+ * @deprecated Returns one of the IPIs for this label
1160+ *
1161+ * Returns one of the IPIs for this label. To return all
1162+ * IPIs, see MusicBrainz4::CLabel::IPIList
1163+ *
1164+ * <b>This method is deprecated, please use MusicBrainz4::CLabel::IPIList</b>
1165+ *
1166+ * @return One of the IPIs for this label
1167+ */
1168+
1169+ LIBMB4_DEPRECATED(MusicBrainz4::CLabel::IPIList) std::string IPI() const;
1170+ CIPIList *IPIList() const;
1171 std::string Disambiguation() const;
1172 std::string Country() const;
1173 CLifespan *Lifespan() const;
1174 CAliasList *AliasList() const;
1175 CReleaseList *ReleaseList() const;
1176- CRelationList *RelationList() const;
1177+
1178+ /**
1179+ * @deprecated Returns the <b>last</b> relation list for this label
1180+ *
1181+ * Returns the <b>last</b> relation list for this label. To return all
1182+ * relation lists, see MusicBrainz4::CLabel::RelationListList
1183+ *
1184+ * <b>This method is deprecated, please use MusicBrainz4::CLabel::RelationListList</b>
1185+ *
1186+ * @return The <b>last</b> relation list for this label
1187+ */
1188+
1189+ LIBMB4_DEPRECATED(MusicBrainz4::CLabel::RelationListList) CRelationList *RelationList() const;
1190+ CRelationListList *RelationListList() const;
1191 CTagList *TagList() const;
1192 CUserTagList *UserTagList() const;
1193 CRating *Rating() const;
1194@@ -76,8 +103,8 @@
1195 static std::string GetElementName();
1196
1197 protected:
1198- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1199- virtual bool ParseElement(const XMLNode& Node);
1200+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1201+ virtual void ParseElement(const XMLNode& Node);
1202
1203 private:
1204 void Cleanup();
1205
1206=== modified file 'include/musicbrainz4/LabelInfo.h'
1207--- include/musicbrainz4/LabelInfo.h 2012-02-01 17:18:10 +0000
1208+++ include/musicbrainz4/LabelInfo.h 2012-06-25 05:56:21 +0000
1209@@ -18,7 +18,7 @@
1210 You should have received a copy of the GNU General Public License
1211 along with this library. If not, see <http://www.gnu.org/licenses/>.
1212
1213- $Id: LabelInfo.h 13259 2011-08-10 12:02:50Z adhawkins $
1214+ $Id$
1215
1216 ----------------------------------------------------------------------------*/
1217
1218@@ -55,8 +55,8 @@
1219 static std::string GetElementName();
1220
1221 protected:
1222- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1223- virtual bool ParseElement(const XMLNode& Node);
1224+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1225+ virtual void ParseElement(const XMLNode& Node);
1226
1227 private:
1228 void Cleanup();
1229
1230=== modified file 'include/musicbrainz4/LabelInfoList.h'
1231--- include/musicbrainz4/LabelInfoList.h 2012-02-01 17:18:10 +0000
1232+++ include/musicbrainz4/LabelInfoList.h 2012-06-25 05:56:21 +0000
1233@@ -18,7 +18,7 @@
1234 You should have received a copy of the GNU General Public License
1235 along with this library. If not, see <http://www.gnu.org/licenses/>.
1236
1237- $Id: LabelInfoList.h 13254 2011-08-09 09:29:20Z adhawkins $
1238+ $Id$
1239
1240 ----------------------------------------------------------------------------*/
1241
1242
1243=== modified file 'include/musicbrainz4/LabelList.h'
1244--- include/musicbrainz4/LabelList.h 2012-02-01 17:18:10 +0000
1245+++ include/musicbrainz4/LabelList.h 2012-06-25 05:56:21 +0000
1246@@ -18,7 +18,7 @@
1247 You should have received a copy of the GNU General Public License
1248 along with this library. If not, see <http://www.gnu.org/licenses/>.
1249
1250- $Id: LabelList.h 13254 2011-08-09 09:29:20Z adhawkins $
1251+ $Id$
1252
1253 ----------------------------------------------------------------------------*/
1254
1255
1256=== modified file 'include/musicbrainz4/Lifespan.h'
1257--- include/musicbrainz4/Lifespan.h 2012-02-01 17:18:10 +0000
1258+++ include/musicbrainz4/Lifespan.h 2012-06-25 05:56:21 +0000
1259@@ -18,7 +18,7 @@
1260 You should have received a copy of the GNU General Public License
1261 along with this library. If not, see <http://www.gnu.org/licenses/>.
1262
1263- $Id: Lifespan.h 13259 2011-08-10 12:02:50Z adhawkins $
1264+ $Id$
1265
1266 ----------------------------------------------------------------------------*/
1267
1268@@ -48,13 +48,14 @@
1269
1270 std::string Begin() const;
1271 std::string End() const;
1272+ std::string Ended() const;
1273
1274 virtual std::ostream& Serialise(std::ostream& os) const;
1275 static std::string GetElementName();
1276
1277 protected:
1278- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1279- virtual bool ParseElement(const XMLNode& Node);
1280+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1281+ virtual void ParseElement(const XMLNode& Node);
1282
1283 private:
1284 CLifespanPrivate * const m_d;
1285
1286=== modified file 'include/musicbrainz4/List.h'
1287--- include/musicbrainz4/List.h 2012-02-01 17:18:10 +0000
1288+++ include/musicbrainz4/List.h 2012-06-25 05:56:21 +0000
1289@@ -18,7 +18,7 @@
1290 You should have received a copy of the GNU General Public License
1291 along with this library. If not, see <http://www.gnu.org/licenses/>.
1292
1293- $Id: List.h 13254 2011-08-09 09:29:20Z adhawkins $
1294+ $Id$
1295
1296 ----------------------------------------------------------------------------*/
1297
1298@@ -51,8 +51,8 @@
1299 static std::string GetElementName();
1300
1301 protected:
1302- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1303- virtual bool ParseElement(const XMLNode& Node);
1304+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1305+ virtual void ParseElement(const XMLNode& Node);
1306
1307 void AddItem(CEntity *Item);
1308 CEntity *Item(int Item) const;
1309
1310=== modified file 'include/musicbrainz4/ListImpl.h'
1311--- include/musicbrainz4/ListImpl.h 2012-02-01 17:18:10 +0000
1312+++ include/musicbrainz4/ListImpl.h 2012-06-25 05:56:21 +0000
1313@@ -18,7 +18,7 @@
1314 You should have received a copy of the GNU General Public License
1315 along with this library. If not, see <http://www.gnu.org/licenses/>.
1316
1317- $Id: ListImpl.h 13259 2011-08-10 12:02:50Z adhawkins $
1318+ $Id$
1319
1320 ----------------------------------------------------------------------------*/
1321
1322@@ -101,26 +101,20 @@
1323 }
1324
1325 protected:
1326- bool ParseElement(const XMLNode& Node)
1327+ void ParseElement(const XMLNode& Node)
1328 {
1329- bool RetVal=true;
1330-
1331 std::string NodeName=Node.getName();
1332
1333 if (T::GetElementName()==NodeName)
1334 {
1335 T *Item=0;
1336
1337- RetVal=ProcessItem(Node,Item);
1338- if (RetVal)
1339- AddItem(Item);
1340+ ProcessItem(Node,Item);
1341+ AddItem(Item);
1342 }
1343 else
1344- RetVal=CList::ParseElement(Node);
1345-
1346- return RetVal;
1347+ CList::ParseElement(Node);
1348 }
1349-
1350 };
1351 }
1352
1353
1354=== modified file 'include/musicbrainz4/Medium.h'
1355--- include/musicbrainz4/Medium.h 2012-02-01 17:18:10 +0000
1356+++ include/musicbrainz4/Medium.h 2012-06-25 05:56:21 +0000
1357@@ -18,7 +18,7 @@
1358 You should have received a copy of the GNU General Public License
1359 along with this library. If not, see <http://www.gnu.org/licenses/>.
1360
1361- $Id: Medium.h 13259 2011-08-10 12:02:50Z adhawkins $
1362+ $Id$
1363
1364 ----------------------------------------------------------------------------*/
1365
1366@@ -60,8 +60,8 @@
1367 static std::string GetElementName();
1368
1369 protected:
1370- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1371- virtual bool ParseElement(const XMLNode& Node);
1372+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1373+ virtual void ParseElement(const XMLNode& Node);
1374
1375 private:
1376 void Cleanup();
1377
1378=== modified file 'include/musicbrainz4/MediumList.h'
1379--- include/musicbrainz4/MediumList.h 2012-02-01 17:18:10 +0000
1380+++ include/musicbrainz4/MediumList.h 2012-06-25 05:56:21 +0000
1381@@ -18,7 +18,7 @@
1382 You should have received a copy of the GNU General Public License
1383 along with this library. If not, see <http://www.gnu.org/licenses/>.
1384
1385- $Id: MediumList.h 13254 2011-08-09 09:29:20Z adhawkins $
1386+ $Id$
1387
1388 ----------------------------------------------------------------------------*/
1389
1390@@ -53,8 +53,8 @@
1391 static std::string GetElementName();
1392
1393 protected:
1394- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1395- virtual bool ParseElement(const XMLNode& Node);
1396+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1397+ virtual void ParseElement(const XMLNode& Node);
1398
1399 private:
1400 CMediumListPrivate * const m_d;
1401
1402=== modified file 'include/musicbrainz4/Message.h'
1403--- include/musicbrainz4/Message.h 2012-02-01 17:18:10 +0000
1404+++ include/musicbrainz4/Message.h 2012-06-25 05:56:21 +0000
1405@@ -18,7 +18,7 @@
1406 You should have received a copy of the GNU General Public License
1407 along with this library. If not, see <http://www.gnu.org/licenses/>.
1408
1409- $Id: Message.h 13259 2011-08-10 12:02:50Z adhawkins $
1410+ $Id$
1411
1412 ----------------------------------------------------------------------------*/
1413
1414@@ -52,8 +52,8 @@
1415 static std::string GetElementName();
1416
1417 protected:
1418- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1419- virtual bool ParseElement(const XMLNode& Node);
1420+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1421+ virtual void ParseElement(const XMLNode& Node);
1422
1423 private:
1424 CMessagePrivate * const m_d;
1425
1426=== modified file 'include/musicbrainz4/Metadata.h'
1427--- include/musicbrainz4/Metadata.h 2012-02-01 17:18:10 +0000
1428+++ include/musicbrainz4/Metadata.h 2012-06-25 05:56:21 +0000
1429@@ -18,7 +18,7 @@
1430 You should have received a copy of the GNU General Public License
1431 along with this library. If not, see <http://www.gnu.org/licenses/>.
1432
1433- $Id: Metadata.h 13259 2011-08-10 12:02:50Z adhawkins $
1434+ $Id$
1435
1436 ----------------------------------------------------------------------------*/
1437
1438@@ -112,8 +112,8 @@
1439 static std::string GetElementName();
1440
1441 protected:
1442- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1443- virtual bool ParseElement(const XMLNode& Node);
1444+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1445+ virtual void ParseElement(const XMLNode& Node);
1446
1447 private:
1448 void Cleanup();
1449
1450=== modified file 'include/musicbrainz4/NameCredit.h'
1451--- include/musicbrainz4/NameCredit.h 2012-02-01 17:18:10 +0000
1452+++ include/musicbrainz4/NameCredit.h 2012-06-25 05:56:21 +0000
1453@@ -18,7 +18,7 @@
1454 You should have received a copy of the GNU General Public License
1455 along with this library. If not, see <http://www.gnu.org/licenses/>.
1456
1457- $Id: NameCredit.h 13259 2011-08-10 12:02:50Z adhawkins $
1458+ $Id$
1459
1460 ----------------------------------------------------------------------------*/
1461
1462@@ -56,8 +56,8 @@
1463 static std::string GetElementName();
1464
1465 protected:
1466- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1467- virtual bool ParseElement(const XMLNode& Node);
1468+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1469+ virtual void ParseElement(const XMLNode& Node);
1470
1471 private:
1472 void Cleanup();
1473
1474=== modified file 'include/musicbrainz4/NameCreditList.h'
1475--- include/musicbrainz4/NameCreditList.h 2012-02-01 17:18:10 +0000
1476+++ include/musicbrainz4/NameCreditList.h 2012-06-25 05:56:21 +0000
1477@@ -18,7 +18,7 @@
1478 You should have received a copy of the GNU General Public License
1479 along with this library. If not, see <http://www.gnu.org/licenses/>.
1480
1481- $Id: NameCreditList.h 13254 2011-08-09 09:29:20Z adhawkins $
1482+ $Id$
1483
1484 ----------------------------------------------------------------------------*/
1485
1486
1487=== modified file 'include/musicbrainz4/NonMBTrack.h'
1488--- include/musicbrainz4/NonMBTrack.h 2012-02-01 17:18:10 +0000
1489+++ include/musicbrainz4/NonMBTrack.h 2012-06-25 05:56:21 +0000
1490@@ -18,7 +18,7 @@
1491 You should have received a copy of the GNU General Public License
1492 along with this library. If not, see <http://www.gnu.org/licenses/>.
1493
1494- $Id: NonMBTrack.h 13259 2011-08-10 12:02:50Z adhawkins $
1495+ $Id$
1496
1497 ----------------------------------------------------------------------------*/
1498
1499@@ -54,8 +54,8 @@
1500 static std::string GetElementName();
1501
1502 protected:
1503- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1504- virtual bool ParseElement(const XMLNode& Node);
1505+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1506+ virtual void ParseElement(const XMLNode& Node);
1507
1508 private:
1509 CNonMBTrackPrivate * const m_d;
1510
1511=== modified file 'include/musicbrainz4/NonMBTrackList.h'
1512--- include/musicbrainz4/NonMBTrackList.h 2012-02-01 17:18:10 +0000
1513+++ include/musicbrainz4/NonMBTrackList.h 2012-06-25 05:56:21 +0000
1514@@ -18,7 +18,7 @@
1515 You should have received a copy of the GNU General Public License
1516 along with this library. If not, see <http://www.gnu.org/licenses/>.
1517
1518- $Id: NonMBTrackList.h 13259 2011-08-10 12:02:50Z adhawkins $
1519+ $Id$
1520
1521 ----------------------------------------------------------------------------*/
1522
1523
1524=== modified file 'include/musicbrainz4/PUID.h'
1525--- include/musicbrainz4/PUID.h 2012-02-01 17:18:10 +0000
1526+++ include/musicbrainz4/PUID.h 2012-06-25 05:56:21 +0000
1527@@ -18,7 +18,7 @@
1528 You should have received a copy of the GNU General Public License
1529 along with this library. If not, see <http://www.gnu.org/licenses/>.
1530
1531- $Id: PUID.h 13259 2011-08-10 12:02:50Z adhawkins $
1532+ $Id$
1533
1534 ----------------------------------------------------------------------------*/
1535
1536@@ -53,8 +53,8 @@
1537 static std::string GetElementName();
1538
1539 protected:
1540- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1541- virtual bool ParseElement(const XMLNode& Node);
1542+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1543+ virtual void ParseElement(const XMLNode& Node);
1544
1545 private:
1546 void Cleanup();
1547
1548=== modified file 'include/musicbrainz4/PUIDList.h'
1549--- include/musicbrainz4/PUIDList.h 2012-02-01 17:18:10 +0000
1550+++ include/musicbrainz4/PUIDList.h 2012-06-25 05:56:21 +0000
1551@@ -18,7 +18,7 @@
1552 You should have received a copy of the GNU General Public License
1553 along with this library. If not, see <http://www.gnu.org/licenses/>.
1554
1555- $Id: PUIDList.h 13259 2011-08-10 12:02:50Z adhawkins $
1556+ $Id$
1557
1558 ----------------------------------------------------------------------------*/
1559
1560
1561=== modified file 'include/musicbrainz4/Query.h'
1562--- include/musicbrainz4/Query.h 2012-02-01 17:18:10 +0000
1563+++ include/musicbrainz4/Query.h 2012-06-25 05:56:21 +0000
1564@@ -18,13 +18,17 @@
1565 You should have received a copy of the GNU General Public License
1566 along with this library. If not, see <http://www.gnu.org/licenses/>.
1567
1568- $Id: Query.h 13266 2011-08-25 12:56:47Z adhawkins $
1569+ $Id$
1570
1571 ----------------------------------------------------------------------------*/
1572
1573 #ifndef _MUSICBRAINZ4_QUERY_H
1574 #define _MUSICBRAINZ4_QUERY_H
1575
1576+#include "defines.h"
1577+
1578+#include "Entity.h"
1579+
1580 #include "musicbrainz4/ReleaseList.h"
1581 #include "musicbrainz4/Metadata.h"
1582
1583@@ -47,6 +51,23 @@
1584 * Please report any issues with this library at
1585 * <a target="_blank" href="http://tickets.musicbrainz.org/">http://tickets.musicbrainz.org/</a>.
1586 *
1587+ * @par Compiling and Linking
1588+ *
1589+ * This package provides a pkg-config script that returns the necessary compiler
1590+ * and linker flags, as well as the version number. To build a small sample
1591+ * program one would use:
1592+ *
1593+ * @par
1594+ * <tt>g++ -o test_app test_app.cpp `pkg-config libmusicbrainz4 --cflags --libs`</tt>
1595+ *
1596+ * If you don't want/can't use pkg-config and you are using the C API, make sure
1597+ * you link in the C++ standard library:
1598+ *
1599+ * @par
1600+ * <tt>gcc -o test_app test_app.c -lmusicbrainz4 -lm -lstdc++</tt>
1601+ *
1602+ * @par Example:
1603+ *
1604 * A brief example showing how to lookup a list of releases matching a disc id
1605 *
1606 @code
1607
1608=== modified file 'include/musicbrainz4/Rating.h'
1609--- include/musicbrainz4/Rating.h 2012-02-01 17:18:10 +0000
1610+++ include/musicbrainz4/Rating.h 2012-06-25 05:56:21 +0000
1611@@ -18,7 +18,7 @@
1612 You should have received a copy of the GNU General Public License
1613 along with this library. If not, see <http://www.gnu.org/licenses/>.
1614
1615- $Id: Rating.h 13259 2011-08-10 12:02:50Z adhawkins $
1616+ $Id$
1617
1618 ----------------------------------------------------------------------------*/
1619
1620@@ -52,8 +52,8 @@
1621 static std::string GetElementName();
1622
1623 protected:
1624- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1625- virtual bool ParseElement(const XMLNode& Node);
1626+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1627+ virtual void ParseElement(const XMLNode& Node);
1628
1629 private:
1630 CRatingPrivate * const m_d;
1631
1632=== modified file 'include/musicbrainz4/Recording.h'
1633--- include/musicbrainz4/Recording.h 2012-02-01 17:18:10 +0000
1634+++ include/musicbrainz4/Recording.h 2012-06-25 05:56:21 +0000
1635@@ -18,7 +18,7 @@
1636 You should have received a copy of the GNU General Public License
1637 along with this library. If not, see <http://www.gnu.org/licenses/>.
1638
1639- $Id: Recording.h 13259 2011-08-10 12:02:50Z adhawkins $
1640+ $Id$
1641
1642 ----------------------------------------------------------------------------*/
1643
1644@@ -69,7 +69,20 @@
1645 CReleaseList *ReleaseList() const;
1646 CPUIDList *PUIDList() const;
1647 CISRCList *ISRCList() const;
1648- CRelationList *RelationList() const;
1649+
1650+ /**
1651+ * @deprecated Returns the <b>last</b> relation list for this recording
1652+ *
1653+ * Returns the <b>last</b> relation list for this recording. To return all
1654+ * relation lists, see MusicBrainz4::CRecording::RelationListList
1655+ *
1656+ * <b>This method is deprecated, please use MusicBrainz4::CRecording::RelationListList</b>
1657+ *
1658+ * @return The <b>last</b> relation list for this recording
1659+ */
1660+
1661+ LIBMB4_DEPRECATED(MusicBrainz4::CRecording::RelationListList) CRelationList *RelationList() const;
1662+ CRelationListList *RelationListList() const;
1663 CTagList *TagList() const;
1664 CUserTagList *UserTagList() const;
1665 CRating *Rating() const;
1666@@ -79,8 +92,8 @@
1667 static std::string GetElementName();
1668
1669 protected:
1670- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1671- virtual bool ParseElement(const XMLNode& Node);
1672+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1673+ virtual void ParseElement(const XMLNode& Node);
1674
1675 private:
1676 void Cleanup();
1677
1678=== modified file 'include/musicbrainz4/RecordingList.h'
1679--- include/musicbrainz4/RecordingList.h 2012-02-01 17:18:10 +0000
1680+++ include/musicbrainz4/RecordingList.h 2012-06-25 05:56:21 +0000
1681@@ -18,7 +18,7 @@
1682 You should have received a copy of the GNU General Public License
1683 along with this library. If not, see <http://www.gnu.org/licenses/>.
1684
1685- $Id: RecordingList.h 13259 2011-08-10 12:02:50Z adhawkins $
1686+ $Id$
1687
1688 ----------------------------------------------------------------------------*/
1689
1690
1691=== modified file 'include/musicbrainz4/Relation.h'
1692--- include/musicbrainz4/Relation.h 2012-02-01 17:18:10 +0000
1693+++ include/musicbrainz4/Relation.h 2012-06-25 05:56:21 +0000
1694@@ -18,7 +18,7 @@
1695 You should have received a copy of the GNU General Public License
1696 along with this library. If not, see <http://www.gnu.org/licenses/>.
1697
1698- $Id: Relation.h 13259 2011-08-10 12:02:50Z adhawkins $
1699+ $Id$
1700
1701 ----------------------------------------------------------------------------*/
1702
1703@@ -71,8 +71,8 @@
1704 static std::string GetElementName();
1705
1706 protected:
1707- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1708- virtual bool ParseElement(const XMLNode& Node);
1709+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1710+ virtual void ParseElement(const XMLNode& Node);
1711
1712 private:
1713 void Cleanup();
1714
1715=== modified file 'include/musicbrainz4/RelationList.h'
1716--- include/musicbrainz4/RelationList.h 2012-02-01 17:18:10 +0000
1717+++ include/musicbrainz4/RelationList.h 2012-06-25 05:56:21 +0000
1718@@ -18,7 +18,7 @@
1719 You should have received a copy of the GNU General Public License
1720 along with this library. If not, see <http://www.gnu.org/licenses/>.
1721
1722- $Id: RelationList.h 13259 2011-08-10 12:02:50Z adhawkins $
1723+ $Id$
1724
1725 ----------------------------------------------------------------------------*/
1726
1727@@ -53,8 +53,8 @@
1728 static std::string GetElementName();
1729
1730 protected:
1731- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1732- virtual bool ParseElement(const XMLNode& Node);
1733+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1734+ virtual void ParseElement(const XMLNode& Node);
1735
1736 private:
1737 CRelationListPrivate * const m_d;
1738
1739=== added file 'include/musicbrainz4/RelationListList.h'
1740--- include/musicbrainz4/RelationListList.h 1970-01-01 00:00:00 +0000
1741+++ include/musicbrainz4/RelationListList.h 2012-06-25 05:56:21 +0000
1742@@ -0,0 +1,63 @@
1743+/* --------------------------------------------------------------------------
1744+
1745+ libmusicbrainz4 - Client library to access MusicBrainz
1746+
1747+ Copyright (C) 2011 Andrew Hawkins
1748+
1749+ This file is part of libmusicbrainz4.
1750+
1751+ This library is free software; you can redistribute it and/or
1752+ modify it under the terms of v2 of the GNU Lesser General Public
1753+ License as published by the Free Software Foundation.
1754+
1755+ libmusicbrainz4 is distributed in the hope that it will be useful,
1756+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1757+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1758+ Lesser General Public License for more details.
1759+
1760+ You should have received a copy of the GNU General Public License
1761+ along with this library. If not, see <http://www.gnu.org/licenses/>.
1762+
1763+ $Id$
1764+
1765+----------------------------------------------------------------------------*/
1766+
1767+#ifndef _MUSICBRAINZ4_RELATIONLIST_GROUP_H
1768+#define _MUSICBRAINZ4_RELATIONLIST_GROUP_H
1769+
1770+#include <iostream>
1771+
1772+#include "musicbrainz4/xmlParser.h"
1773+
1774+namespace MusicBrainz4
1775+{
1776+ class CRelationListListPrivate;
1777+
1778+ class CRelationList;
1779+
1780+ class CRelationListList
1781+ {
1782+ public:
1783+ CRelationListList();
1784+ CRelationListList(const CRelationListList& Other);
1785+ CRelationListList& operator =(const CRelationListList& Other);
1786+ virtual ~CRelationListList();
1787+
1788+ void Add(CRelationList *RelationList);
1789+ int NumItems() const;
1790+ CRelationList *Item(int Item) const;
1791+ int Offset() const { return 0; }
1792+ int Count() const { return NumItems(); }
1793+
1794+ std::ostream& Serialise(std::ostream& os) const;
1795+
1796+ private:
1797+ void Cleanup();
1798+
1799+ CRelationListListPrivate * const m_d;
1800+ };
1801+}
1802+
1803+std::ostream& operator << (std::ostream& os, const MusicBrainz4::CRelationListList& RelationListList);
1804+
1805+#endif
1806
1807=== modified file 'include/musicbrainz4/Release.h'
1808--- include/musicbrainz4/Release.h 2012-02-01 17:18:10 +0000
1809+++ include/musicbrainz4/Release.h 2012-06-25 05:56:21 +0000
1810@@ -18,7 +18,7 @@
1811 You should have received a copy of the GNU General Public License
1812 along with this library. If not, see <http://www.gnu.org/licenses/>.
1813
1814- $Id: Release.h 13385 2012-01-15 15:19:56Z adhawkins $
1815+ $Id$
1816
1817 ----------------------------------------------------------------------------*/
1818
1819@@ -70,7 +70,20 @@
1820 std::string ASIN() const;
1821 CLabelInfoList *LabelInfoList() const;
1822 CMediumList *MediumList() const;
1823- CRelationList *RelationList() const;
1824+
1825+ /**
1826+ * @deprecated Returns the <b>last</b> relation list for this release
1827+ *
1828+ * Returns the <b>last</b> relation list for this release. To return all
1829+ * relation lists, see MusicBrainz4::CRelease::RelationListList
1830+ *
1831+ * <b>This method is deprecated, please use MusicBrainz4::CRelease::RelationListList</b>
1832+ *
1833+ * @return The <b>last</b> relation list for this release
1834+ */
1835+
1836+ LIBMB4_DEPRECATED(MusicBrainz4::CRelease::RelationListList) CRelationList *RelationList() const;
1837+ CRelationListList *RelationListList() const;
1838 CCollectionList *CollectionList() const;
1839
1840 CMediumList MediaMatchingDiscID(const std::string& DiscID) const;
1841@@ -79,8 +92,8 @@
1842 static std::string GetElementName();
1843
1844 protected:
1845- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1846- virtual bool ParseElement(const XMLNode& Node);
1847+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1848+ virtual void ParseElement(const XMLNode& Node);
1849
1850 private:
1851 void Cleanup();
1852
1853=== modified file 'include/musicbrainz4/ReleaseGroup.h'
1854--- include/musicbrainz4/ReleaseGroup.h 2012-02-01 17:18:10 +0000
1855+++ include/musicbrainz4/ReleaseGroup.h 2012-06-25 05:56:21 +0000
1856@@ -18,7 +18,7 @@
1857 You should have received a copy of the GNU General Public License
1858 along with this library. If not, see <http://www.gnu.org/licenses/>.
1859
1860- $Id: ReleaseGroup.h 13259 2011-08-10 12:02:50Z adhawkins $
1861+ $Id$
1862
1863 ----------------------------------------------------------------------------*/
1864
1865@@ -33,6 +33,7 @@
1866 #include "musicbrainz4/RelationList.h"
1867 #include "musicbrainz4/TagList.h"
1868 #include "musicbrainz4/UserTagList.h"
1869+#include "musicbrainz4/SecondaryTypeList.h"
1870
1871 #include "musicbrainz4/xmlParser.h"
1872
1873@@ -43,6 +44,7 @@
1874 class CArtistCredit;
1875 class CRating;
1876 class CUserRating;
1877+ class CSecondaryType;
1878
1879 class CReleaseGroup: public CEntity
1880 {
1881@@ -55,24 +57,51 @@
1882 virtual CReleaseGroup *Clone();
1883
1884 std::string ID() const;
1885- std::string Type() const;
1886+
1887+ /**
1888+ * @deprecated Returns the type for this release group
1889+ *
1890+ * Returns the type for this release group.
1891+ *
1892+ * <b>This method is deprecated, please use MusicBrainz4::CReleaseGroup::PrimaryType
1893+ * and MusicBrainz4::CReleaseGroup::SecondaryTypeList</b>
1894+ *
1895+ * @return The type for this release group
1896+ */
1897+
1898+ LIBMB4_DEPRECATED(MusicBrainz4::CReleaseGroup::PrimaryType) std::string Type() const;
1899+ std::string PrimaryType() const;
1900 std::string Title() const;
1901 std::string Disambiguation() const;
1902 std::string FirstReleaseDate() const;
1903 CArtistCredit *ArtistCredit() const;
1904 CReleaseList *ReleaseList() const;
1905- CRelationList *RelationList() const;
1906+
1907+ /**
1908+ * @deprecated Returns the <b>last</b> relation list for this release group
1909+ *
1910+ * Returns the <b>last</b> relation list for this release group. To return all
1911+ * relation lists, see MusicBrainz4::CReleaseGroup::RelationListList
1912+ *
1913+ * <b>This method is deprecated, please use MusicBrainz4::CReleaseGroup::RelationListList</b>
1914+ *
1915+ * @return The <b>last</b> relation list for this release group
1916+ */
1917+
1918+ LIBMB4_DEPRECATED(MusicBrainz4::CReleaseGroup::RelationListList) CRelationList *RelationList() const;
1919+ CRelationListList *RelationListList() const;
1920 CTagList *TagList() const;
1921 CUserTagList *UserTagList() const;
1922 CRating *Rating() const;
1923 CUserRating *UserRating() const;
1924+ CSecondaryTypeList *SecondaryTypeList() const;
1925
1926 virtual std::ostream& Serialise(std::ostream& os) const;
1927 static std::string GetElementName();
1928
1929 protected:
1930- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
1931- virtual bool ParseElement(const XMLNode& Node);
1932+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
1933+ virtual void ParseElement(const XMLNode& Node);
1934
1935 private:
1936 void Cleanup();
1937
1938=== modified file 'include/musicbrainz4/ReleaseGroupList.h'
1939--- include/musicbrainz4/ReleaseGroupList.h 2012-02-01 17:18:10 +0000
1940+++ include/musicbrainz4/ReleaseGroupList.h 2012-06-25 05:56:21 +0000
1941@@ -18,7 +18,7 @@
1942 You should have received a copy of the GNU General Public License
1943 along with this library. If not, see <http://www.gnu.org/licenses/>.
1944
1945- $Id: ReleaseGroupList.h 13259 2011-08-10 12:02:50Z adhawkins $
1946+ $Id$
1947
1948 ----------------------------------------------------------------------------*/
1949
1950
1951=== modified file 'include/musicbrainz4/ReleaseList.h'
1952--- include/musicbrainz4/ReleaseList.h 2012-02-01 17:18:10 +0000
1953+++ include/musicbrainz4/ReleaseList.h 2012-06-25 05:56:21 +0000
1954@@ -18,7 +18,7 @@
1955 You should have received a copy of the GNU General Public License
1956 along with this library. If not, see <http://www.gnu.org/licenses/>.
1957
1958- $Id: ReleaseList.h 13259 2011-08-10 12:02:50Z adhawkins $
1959+ $Id$
1960
1961 ----------------------------------------------------------------------------*/
1962
1963
1964=== added file 'include/musicbrainz4/SecondaryType.h'
1965--- include/musicbrainz4/SecondaryType.h 1970-01-01 00:00:00 +0000
1966+++ include/musicbrainz4/SecondaryType.h 2012-06-25 05:56:21 +0000
1967@@ -0,0 +1,65 @@
1968+/* --------------------------------------------------------------------------
1969+
1970+ libmusicbrainz4 - Client library to access MusicBrainz
1971+
1972+ Copyright (C) 2012 Andrew Hawkins
1973+
1974+ This file is part of libmusicbrainz4.
1975+
1976+ This library is free software; you can redistribute it and/or
1977+ modify it under the terms of v2 of the GNU Lesser General Public
1978+ License as published by the Free Software Foundation.
1979+
1980+ libmusicbrainz4 is distributed in the hope that it will be useful,
1981+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1982+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1983+ Lesser General Public License for more details.
1984+
1985+ You should have received a copy of the GNU General Public License
1986+ along with this library. If not, see <http://www.gnu.org/licenses/>.
1987+
1988+ $Id$
1989+
1990+----------------------------------------------------------------------------*/
1991+
1992+#ifndef _MUSICBRAINZ4_SECONDARY_TYPE_H
1993+#define _MUSICBRAINZ4_SECONDARY_TYPE_H
1994+
1995+#include <string>
1996+#include <iostream>
1997+
1998+#include "musicbrainz4/Entity.h"
1999+
2000+#include "musicbrainz4/xmlParser.h"
2001+
2002+namespace MusicBrainz4
2003+{
2004+ class CSecondaryTypePrivate;
2005+
2006+ class CSecondaryType: public CEntity
2007+ {
2008+ public:
2009+ CSecondaryType(const XMLNode& Node=XMLNode::emptyNode());
2010+ CSecondaryType(const CSecondaryType& Other);
2011+ CSecondaryType& operator =(const CSecondaryType& Other);
2012+ virtual ~CSecondaryType();
2013+
2014+ virtual CSecondaryType *Clone();
2015+
2016+ std::string SecondaryType() const;
2017+
2018+ virtual std::ostream& Serialise(std::ostream& os) const;
2019+ static std::string GetElementName();
2020+
2021+ protected:
2022+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2023+ virtual void ParseElement(const XMLNode& Node);
2024+
2025+ private:
2026+ void Cleanup();
2027+
2028+ CSecondaryTypePrivate * const m_d;
2029+ };
2030+}
2031+
2032+#endif
2033
2034=== added file 'include/musicbrainz4/SecondaryTypeList.h'
2035--- include/musicbrainz4/SecondaryTypeList.h 1970-01-01 00:00:00 +0000
2036+++ include/musicbrainz4/SecondaryTypeList.h 2012-06-25 05:56:21 +0000
2037@@ -0,0 +1,62 @@
2038+/* --------------------------------------------------------------------------
2039+
2040+ libmusicbrainz4 - Client library to access MusicBrainz
2041+
2042+ Copyright (C) 2012 Andrew Hawkins
2043+
2044+ This file is part of libmusicbrainz4.
2045+
2046+ This library is free software; you can redistribute it and/or
2047+ modify it under the terms of v2 of the GNU Lesser General Public
2048+ License as published by the Free Software Foundation.
2049+
2050+ libmusicbrainz4 is distributed in the hope that it will be useful,
2051+ but WITHOUT ANY WARRANTY; without even the implied warranty of
2052+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2053+ Lesser General Public License for more details.
2054+
2055+ You should have received a copy of the GNU General Public License
2056+ along with this library. If not, see <http://www.gnu.org/licenses/>.
2057+
2058+ $Id$
2059+
2060+----------------------------------------------------------------------------*/
2061+
2062+#ifndef _MUSICBRAINZ4_SECONDARY_TYPE_LIST_H
2063+#define _MUSICBRAINZ4_SECONDARY_TYPE_LIST_H
2064+
2065+#include <string>
2066+#include <iostream>
2067+
2068+#include "musicbrainz4/ListImpl.h"
2069+
2070+#include "musicbrainz4/xmlParser.h"
2071+
2072+namespace MusicBrainz4
2073+{
2074+ class CSecondaryType;
2075+ class CSecondaryTypeListPrivate;
2076+
2077+ class CSecondaryTypeList: public CListImpl<CSecondaryType>
2078+ {
2079+ public:
2080+ CSecondaryTypeList(const XMLNode& Node=XMLNode::emptyNode());
2081+ CSecondaryTypeList(const CSecondaryTypeList& Other);
2082+ CSecondaryTypeList& operator =(const CSecondaryTypeList& Other);
2083+ virtual ~CSecondaryTypeList();
2084+
2085+ virtual CSecondaryTypeList *Clone();
2086+
2087+ virtual std::ostream& Serialise(std::ostream& os) const;
2088+ static std::string GetElementName();
2089+
2090+ protected:
2091+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2092+ virtual void ParseElement(const XMLNode& Node);
2093+
2094+ private:
2095+ CSecondaryTypeListPrivate * const m_d;
2096+ };
2097+}
2098+
2099+#endif
2100
2101=== modified file 'include/musicbrainz4/Tag.h'
2102--- include/musicbrainz4/Tag.h 2012-02-01 17:18:10 +0000
2103+++ include/musicbrainz4/Tag.h 2012-06-25 05:56:21 +0000
2104@@ -18,7 +18,7 @@
2105 You should have received a copy of the GNU General Public License
2106 along with this library. If not, see <http://www.gnu.org/licenses/>.
2107
2108- $Id: Tag.h 13259 2011-08-10 12:02:50Z adhawkins $
2109+ $Id$
2110
2111 ----------------------------------------------------------------------------*/
2112
2113@@ -53,8 +53,8 @@
2114 static std::string GetElementName();
2115
2116 protected:
2117- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2118- virtual bool ParseElement(const XMLNode& Node);
2119+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2120+ virtual void ParseElement(const XMLNode& Node);
2121
2122 private:
2123 CTagPrivate * const m_d;
2124
2125=== modified file 'include/musicbrainz4/TagList.h'
2126--- include/musicbrainz4/TagList.h 2012-02-01 17:18:10 +0000
2127+++ include/musicbrainz4/TagList.h 2012-06-25 05:56:21 +0000
2128@@ -18,7 +18,7 @@
2129 You should have received a copy of the GNU General Public License
2130 along with this library. If not, see <http://www.gnu.org/licenses/>.
2131
2132- $Id: TagList.h 13259 2011-08-10 12:02:50Z adhawkins $
2133+ $Id$
2134
2135 ----------------------------------------------------------------------------*/
2136
2137
2138=== modified file 'include/musicbrainz4/TextRepresentation.h'
2139--- include/musicbrainz4/TextRepresentation.h 2012-02-01 17:18:10 +0000
2140+++ include/musicbrainz4/TextRepresentation.h 2012-06-25 05:56:21 +0000
2141@@ -18,7 +18,7 @@
2142 You should have received a copy of the GNU General Public License
2143 along with this library. If not, see <http://www.gnu.org/licenses/>.
2144
2145- $Id: TextRepresentation.h 13263 2011-08-25 12:38:04Z adhawkins $
2146+ $Id$
2147
2148 ----------------------------------------------------------------------------*/
2149
2150@@ -53,8 +53,8 @@
2151 static std::string GetElementName();
2152
2153 protected:
2154- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2155- virtual bool ParseElement(const XMLNode& Node);
2156+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2157+ virtual void ParseElement(const XMLNode& Node);
2158
2159 private:
2160 CTextRepresentationPrivate * const m_d;
2161
2162=== modified file 'include/musicbrainz4/Track.h'
2163--- include/musicbrainz4/Track.h 2012-02-01 17:18:10 +0000
2164+++ include/musicbrainz4/Track.h 2012-06-25 05:56:21 +0000
2165@@ -18,7 +18,7 @@
2166 You should have received a copy of the GNU General Public License
2167 along with this library. If not, see <http://www.gnu.org/licenses/>.
2168
2169- $Id: Track.h 13259 2011-08-10 12:02:50Z adhawkins $
2170+ $Id$
2171
2172 ----------------------------------------------------------------------------*/
2173
2174@@ -54,13 +54,14 @@
2175 CRecording *Recording() const;
2176 int Length() const;
2177 CArtistCredit *ArtistCredit() const;
2178+ std::string Number() const;
2179
2180 virtual std::ostream& Serialise(std::ostream& os) const;
2181 static std::string GetElementName();
2182
2183 protected:
2184- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2185- virtual bool ParseElement(const XMLNode& Node);
2186+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2187+ virtual void ParseElement(const XMLNode& Node);
2188
2189 private:
2190 void Cleanup();
2191
2192=== modified file 'include/musicbrainz4/TrackList.h'
2193--- include/musicbrainz4/TrackList.h 2012-02-01 17:18:10 +0000
2194+++ include/musicbrainz4/TrackList.h 2012-06-25 05:56:21 +0000
2195@@ -18,7 +18,7 @@
2196 You should have received a copy of the GNU General Public License
2197 along with this library. If not, see <http://www.gnu.org/licenses/>.
2198
2199- $Id: TrackList.h 13259 2011-08-10 12:02:50Z adhawkins $
2200+ $Id$
2201
2202 ----------------------------------------------------------------------------*/
2203
2204
2205=== modified file 'include/musicbrainz4/UserRating.h'
2206--- include/musicbrainz4/UserRating.h 2012-02-01 17:18:10 +0000
2207+++ include/musicbrainz4/UserRating.h 2012-06-25 05:56:21 +0000
2208@@ -18,7 +18,7 @@
2209 You should have received a copy of the GNU General Public License
2210 along with this library. If not, see <http://www.gnu.org/licenses/>.
2211
2212- $Id: UserRating.h 13259 2011-08-10 12:02:50Z adhawkins $
2213+ $Id$
2214
2215 ----------------------------------------------------------------------------*/
2216
2217@@ -51,8 +51,8 @@
2218 static std::string GetElementName();
2219
2220 protected:
2221- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2222- virtual bool ParseElement(const XMLNode& Node);
2223+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2224+ virtual void ParseElement(const XMLNode& Node);
2225
2226 private:
2227 CUserRatingPrivate * const m_d;
2228
2229=== modified file 'include/musicbrainz4/UserTag.h'
2230--- include/musicbrainz4/UserTag.h 2012-02-01 17:18:10 +0000
2231+++ include/musicbrainz4/UserTag.h 2012-06-25 05:56:21 +0000
2232@@ -18,7 +18,7 @@
2233 You should have received a copy of the GNU General Public License
2234 along with this library. If not, see <http://www.gnu.org/licenses/>.
2235
2236- $Id: UserTag.h 13259 2011-08-10 12:02:50Z adhawkins $
2237+ $Id$
2238
2239 ----------------------------------------------------------------------------*/
2240
2241@@ -52,8 +52,8 @@
2242 static std::string GetElementName();
2243
2244 protected:
2245- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2246- virtual bool ParseElement(const XMLNode& Node);
2247+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2248+ virtual void ParseElement(const XMLNode& Node);
2249
2250 private:
2251 CUserTagPrivate * const m_d;
2252
2253=== modified file 'include/musicbrainz4/UserTagList.h'
2254--- include/musicbrainz4/UserTagList.h 2012-02-01 17:18:10 +0000
2255+++ include/musicbrainz4/UserTagList.h 2012-06-25 05:56:21 +0000
2256@@ -18,7 +18,7 @@
2257 You should have received a copy of the GNU General Public License
2258 along with this library. If not, see <http://www.gnu.org/licenses/>.
2259
2260- $Id: UserTagList.h 13259 2011-08-10 12:02:50Z adhawkins $
2261+ $Id$
2262
2263 ----------------------------------------------------------------------------*/
2264
2265
2266=== modified file 'include/musicbrainz4/Work.h'
2267--- include/musicbrainz4/Work.h 2012-02-01 17:18:10 +0000
2268+++ include/musicbrainz4/Work.h 2012-06-25 05:56:21 +0000
2269@@ -18,7 +18,7 @@
2270 You should have received a copy of the GNU General Public License
2271 along with this library. If not, see <http://www.gnu.org/licenses/>.
2272
2273- $Id: Work.h 13259 2011-08-10 12:02:50Z adhawkins $
2274+ $Id$
2275
2276 ----------------------------------------------------------------------------*/
2277
2278@@ -32,6 +32,7 @@
2279 #include "musicbrainz4/RelationList.h"
2280 #include "musicbrainz4/TagList.h"
2281 #include "musicbrainz4/UserTagList.h"
2282+#include "musicbrainz4/ISWCList.h"
2283
2284 #include "musicbrainz4/xmlParser.h"
2285
2286@@ -58,21 +59,49 @@
2287 std::string Type() const;
2288 std::string Title() const;
2289 CArtistCredit *ArtistCredit() const;
2290- std::string ISWC() const;
2291+
2292+ /**
2293+ * @deprecated Returns the <b>first</b> ISWC for this work
2294+ *
2295+ * Returns the <b>first</b> ISWC for this work. To return all
2296+ * ISWCs, see MusicBrainz4::CWork::ISWCList
2297+ *
2298+ * <b>This method is deprecated, please use MusicBrainz4::CWork::ISWCList</b>
2299+ *
2300+ * @return The <b>first</b> ISWC for this work
2301+ */
2302+
2303+ LIBMB4_DEPRECATED(MusicBrainz4::CWork::ISWCList) std::string ISWC() const;
2304+
2305+ CISWCList *ISWCList() const;
2306 std::string Disambiguation() const;
2307 CAliasList *AliasList() const;
2308- CRelationList *RelationList() const;
2309+
2310+ /**
2311+ * @deprecated Returns the <b>last</b> relation list for this work
2312+ *
2313+ * Returns the <b>last</b> relation list for this work. To return all
2314+ * relation lists, see MusicBrainz4::CWork::RelationListList
2315+ *
2316+ * <b>This method is deprecated, please use MusicBrainz4::CWork::RelationListList</b>
2317+ *
2318+ * @return The <b>last</b> relation list for this work
2319+ */
2320+
2321+ LIBMB4_DEPRECATED(MusicBrainz4::CWork::RelationListList) CRelationList *RelationList() const;
2322+ CRelationListList *RelationListList() const;
2323 CTagList *TagList() const;
2324 CUserTagList *UserTagList() const;
2325 CRating *Rating() const;
2326 CUserRating *UserRating() const;
2327+ std::string Language() const;
2328
2329 virtual std::ostream& Serialise(std::ostream& os) const;
2330 static std::string GetElementName();
2331
2332 protected:
2333- virtual bool ParseAttribute(const std::string& Name, const std::string& Value);
2334- virtual bool ParseElement(const XMLNode& Node);
2335+ virtual void ParseAttribute(const std::string& Name, const std::string& Value);
2336+ virtual void ParseElement(const XMLNode& Node);
2337
2338 private:
2339 void Cleanup();
2340
2341=== modified file 'include/musicbrainz4/WorkList.h'
2342--- include/musicbrainz4/WorkList.h 2012-02-01 17:18:10 +0000
2343+++ include/musicbrainz4/WorkList.h 2012-06-25 05:56:21 +0000
2344@@ -18,7 +18,7 @@
2345 You should have received a copy of the GNU General Public License
2346 along with this library. If not, see <http://www.gnu.org/licenses/>.
2347
2348- $Id: WorkList.h 13259 2011-08-10 12:02:50Z adhawkins $
2349+ $Id$
2350
2351 ----------------------------------------------------------------------------*/
2352
2353
2354=== added file 'include/musicbrainz4/defines.h'
2355--- include/musicbrainz4/defines.h 1970-01-01 00:00:00 +0000
2356+++ include/musicbrainz4/defines.h 2012-06-25 05:56:21 +0000
2357@@ -0,0 +1,42 @@
2358+/* --------------------------------------------------------------------------
2359+
2360+ libmusicbrainz4 - Client library to access MusicBrainz
2361+
2362+ Copyright (C) 2012 Andrew Hawkins
2363+
2364+ This file is part of libmusicbrainz4.
2365+
2366+ This library is free software; you can redistribute it and/or
2367+ modify it under the terms of v2 of the GNU Lesser General Public
2368+ License as published by the Free Software Foundation.
2369+
2370+ libmusicbrainz4 is distributed in the hope that it will be useful,
2371+ but WITHOUT ANY WARRANTY; without even the implied warranty of
2372+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2373+ Lesser General Public License for more details.
2374+
2375+ You should have received a copy of the GNU General Public License
2376+ along with this library. If not, see <http://www.gnu.org/licenses/>.
2377+
2378+ $Id$
2379+
2380+----------------------------------------------------------------------------*/
2381+
2382+#ifndef _DEFINES_H
2383+#define _DEFINES_H
2384+
2385+#if defined(__GNUC__) && __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
2386+
2387+#define LIBMB4_DEPRECATED(f) __attribute__((deprecated("Use '" #f "' instead")))
2388+
2389+#elif defined(__GNUC__) && __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
2390+
2391+#define LIBMB4_DEPRECATED(f) __attribute__ ((deprecated))
2392+
2393+#else
2394+
2395+#define LIBMB4_DEPRECATED(f)
2396+
2397+#endif
2398+
2399+#endif
2400
2401=== removed directory 'schema'
2402=== removed file 'schema/musicbrainz_mmd-1.0.rng'
2403--- schema/musicbrainz_mmd-1.0.rng 2012-02-01 17:18:10 +0000
2404+++ schema/musicbrainz_mmd-1.0.rng 1970-01-01 00:00:00 +0000
2405@@ -1,585 +0,0 @@
2406-<?xml version="1.0" encoding="UTF-8"?>
2407-
2408-<!-- ==================================================================
2409- $Id: musicbrainz_mmd-1.0.rng 7511 2006-05-10 20:06:24Z matt $
2410-
2411- Relax NG Schema for MusicBrainz XML Metadata Version 1.0
2412-
2413-
2414- This XML schema has been designed to represent music metadata.
2415- Documentation and the latest revision can be found at
2416-
2417- http://musicbrainz.org/development/mmd/
2418-
2419-
2420- Copyright (c) 2006 Robert Kaye, Matthias Friedrich
2421-
2422- The schema is released under the Creative Commons
2423- Attribution-ShareAlike 2.5 license.
2424-
2425- http://creativecommons.org/licenses/by-sa/2.5/
2426-
2427- ================================================================== -->
2428-
2429-
2430-<grammar xmlns="http://relaxng.org/ns/structure/1.0"
2431- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
2432- ns="http://musicbrainz.org/ns/mmd-1.0#">
2433-
2434-
2435- <start>
2436- <ref name="def_metadata-element"/>
2437- </start>
2438-
2439-
2440- <define name="def_metadata-element">
2441- <element name="metadata">
2442- <optional>
2443- <attribute name="generator">
2444- <data type="anyURI"/>
2445- </attribute>
2446- </optional>
2447- <optional>
2448- <attribute name="created">
2449- <data type="dateTime"/>
2450- </attribute>
2451- </optional>
2452-
2453- <optional>
2454- <ref name="def_artist-element"/>
2455- </optional>
2456- <optional>
2457- <ref name="def_release-element"/>
2458- </optional>
2459- <optional>
2460- <ref name="def_track-element"/>
2461- </optional>
2462-
2463- <optional>
2464- <ref name="def_artist-list"/>
2465- </optional>
2466- <optional>
2467- <ref name="def_release-list"/>
2468- </optional>
2469- <optional>
2470- <ref name="def_track-list"/>
2471- </optional>
2472-
2473- <ref name="def_metadata-element_extension"/>
2474- </element>
2475- </define>
2476-
2477-
2478- <define name="def_artist-element">
2479- <element name="artist">
2480- <optional>
2481- <attribute name="id">
2482- <data type="anyURI"/>
2483- </attribute>
2484- </optional>
2485- <optional>
2486- <attribute name="type">
2487- <data type="anyURI"/>
2488- </attribute>
2489- </optional>
2490- <ref name="def_artist-attribute_extension"/>
2491-
2492- <optional>
2493- <element name="name">
2494- <text/>
2495- </element>
2496- </optional>
2497- <optional>
2498- <element name="sort-name">
2499- <text/>
2500- </element>
2501- </optional>
2502- <optional>
2503- <element name="disambiguation">
2504- <text/>
2505- </element>
2506- </optional>
2507- <optional>
2508- <element name="life-span">
2509- <optional>
2510- <attribute name="begin">
2511- <ref name="def_incomplete-date"/>
2512- </attribute>
2513- </optional>
2514- <optional>
2515- <attribute name="end">
2516- <ref name="def_incomplete-date"/>
2517- </attribute>
2518- </optional>
2519- </element>
2520- </optional>
2521-
2522- <optional>
2523- <ref name="def_alias-list"/>
2524- </optional>
2525- <optional>
2526- <ref name="def_release-list"/>
2527- </optional>
2528- <zeroOrMore>
2529- <ref name="def_relation-list"/>
2530- </zeroOrMore>
2531-
2532- <ref name="def_artist-element_extension"/>
2533- </element>
2534- </define>
2535-
2536-
2537- <define name="def_release-element">
2538- <element name="release">
2539- <optional>
2540- <attribute name="id">
2541- <data type="anyURI"/>
2542- </attribute>
2543- </optional>
2544- <optional>
2545- <attribute name="type">
2546- <ref name="def_URI-list"/>
2547- </attribute>
2548- </optional>
2549- <ref name="def_release-attribute_extension"/>
2550-
2551- <optional>
2552- <element name="title">
2553- <text/>
2554- </element>
2555- </optional>
2556- <optional>
2557- <element name="text-representation">
2558- <optional>
2559- <attribute name="language">
2560- <ref name="def_iso-639"/>
2561- </attribute>
2562- </optional>
2563- <optional>
2564- <attribute name="script">
2565- <ref name="def_iso-15924"/>
2566- </attribute>
2567- </optional>
2568- </element>
2569- </optional>
2570- <optional>
2571- <element name="asin">
2572- <data type="string">
2573- <param name="pattern">[A-Z0-9]{10}</param>
2574- </data>
2575- </element>
2576- </optional>
2577- <optional>
2578- <ref name="def_artist-element"/>
2579- </optional>
2580-
2581- <optional>
2582- <ref name="def_release-event-list"/>
2583- </optional>
2584- <optional>
2585- <ref name="def_disc-list"/>
2586- </optional>
2587- <optional>
2588- <ref name="def_puid-list"/>
2589- </optional>
2590- <optional>
2591- <ref name="def_track-list"/>
2592- </optional>
2593- <zeroOrMore>
2594- <ref name="def_relation-list"/>
2595- </zeroOrMore>
2596-
2597- <ref name="def_release-element_extension"/>
2598- </element>
2599- </define>
2600-
2601-
2602- <define name="def_track-element">
2603- <element name="track">
2604- <optional>
2605- <attribute name="id">
2606- <data type="anyURI"/>
2607- </attribute>
2608- </optional>
2609- <ref name="def_track-attribute_extension"/>
2610-
2611- <optional>
2612- <element name="title">
2613- <text/>
2614- </element>
2615- </optional>
2616- <optional>
2617- <element name="duration">
2618- <data type="nonNegativeInteger"/>
2619- </element>
2620- </optional>
2621- <optional>
2622- <ref name="def_artist-element"/>
2623- </optional>
2624-
2625- <optional>
2626- <ref name="def_release-list"/>
2627- </optional>
2628- <optional>
2629- <ref name="def_puid-list"/>
2630- </optional>
2631- <zeroOrMore>
2632- <ref name="def_relation-list"/>
2633- </zeroOrMore>
2634-
2635- <ref name="def_track-element_extension"/>
2636- </element>
2637- </define>
2638-
2639-
2640- <define name="def_relation-element">
2641- <element name="relation">
2642- <attribute name="type">
2643- <data type="anyURI"/>
2644- </attribute>
2645- <attribute name="target">
2646- <data type="anyURI"/>
2647- </attribute>
2648- <optional>
2649- <attribute name="direction">
2650- <ref name="def_direction"/>
2651- </attribute>
2652- </optional>
2653- <optional>
2654- <attribute name="attributes">
2655- <ref name="def_URI-list"/>
2656- </attribute>
2657- </optional>
2658- <optional>
2659- <attribute name="begin">
2660- <ref name="def_incomplete-date"/>
2661- </attribute>
2662- </optional>
2663- <optional>
2664- <attribute name="end">
2665- <ref name="def_incomplete-date"/>
2666- </attribute>
2667- </optional>
2668-
2669- <optional>
2670- <choice>
2671- <ref name="def_artist-element"/>
2672- <ref name="def_release-element"/>
2673- <ref name="def_track-element"/>
2674-
2675- <ref name="def_relation-element_extension"/>
2676- </choice>
2677- </optional>
2678- </element>
2679- </define>
2680-
2681-
2682- <define name="def_alias">
2683- <element name="alias">
2684- <optional>
2685- <attribute name="type">
2686- <data type="anyURI"/>
2687- </attribute>
2688- </optional>
2689- <optional>
2690- <attribute name="script">
2691- <ref name="def_iso-15924"/>
2692- </attribute>
2693- </optional>
2694- <text/>
2695- </element>
2696- </define>
2697-
2698-
2699- <!--
2700- This part defines the extensions elements and attributes.
2701- -->
2702-
2703- <define name="def_metadata-element_extension">
2704- <optional>
2705- <ref name="def_extension_element"/>
2706- </optional>
2707- </define>
2708-
2709-
2710- <define name="def_artist-element_extension">
2711- <zeroOrMore>
2712- <ref name="def_extension_element"/>
2713- </zeroOrMore>
2714- </define>
2715-
2716-
2717- <define name="def_release-element_extension">
2718- <zeroOrMore>
2719- <ref name="def_extension_element"/>
2720- </zeroOrMore>
2721- </define>
2722-
2723-
2724- <define name="def_track-element_extension">
2725- <zeroOrMore>
2726- <ref name="def_extension_element"/>
2727- </zeroOrMore>
2728- </define>
2729-
2730-
2731- <define name="def_relation-element_extension">
2732- <ref name="def_extension_element"/>
2733- </define>
2734-
2735-
2736- <define name="def_artist-attribute_extension">
2737- <zeroOrMore>
2738- <ref name="def_extension_attribute"/>
2739- </zeroOrMore>
2740- </define>
2741-
2742-
2743- <define name="def_release-attribute_extension">
2744- <zeroOrMore>
2745- <ref name="def_extension_attribute"/>
2746- </zeroOrMore>
2747- </define>
2748-
2749-
2750- <define name="def_track-attribute_extension">
2751- <zeroOrMore>
2752- <ref name="def_extension_attribute"/>
2753- </zeroOrMore>
2754- </define>
2755-
2756-
2757- <define name="def_extension_element">
2758- <element>
2759- <anyName>
2760- <except>
2761- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
2762- <nsName ns=""/>
2763- </except>
2764- </anyName>
2765- <zeroOrMore>
2766- <choice>
2767- <attribute>
2768- <anyName/>
2769- </attribute>
2770- <text/>
2771- <ref name="def_anything"/>
2772- </choice>
2773- </zeroOrMore>
2774- </element>
2775- </define>
2776-
2777-
2778- <define name="def_extension_attribute">
2779- <attribute>
2780- <anyName>
2781- <except>
2782- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
2783- <nsName ns=""/>
2784- </except>
2785- </anyName>
2786- </attribute>
2787- </define>
2788-
2789-
2790- <define name="def_anything">
2791- <element>
2792- <anyName>
2793- <except>
2794- <nsName ns=""/>
2795- </except>
2796- </anyName>
2797- <zeroOrMore>
2798- <choice>
2799- <attribute>
2800- <anyName/>
2801- </attribute>
2802- <text/>
2803- <ref name="def_anything"/>
2804- </choice>
2805- </zeroOrMore>
2806- </element>
2807- </define>
2808-
2809-
2810- <define name="def_artist-list">
2811- <element name="artist-list">
2812- <ref name="def_list-attributes"/>
2813- <zeroOrMore>
2814- <ref name="def_artist-element"/>
2815- </zeroOrMore>
2816- </element>
2817- </define>
2818-
2819-
2820- <define name="def_release-list">
2821- <element name="release-list">
2822- <ref name="def_list-attributes"/>
2823- <zeroOrMore>
2824- <ref name="def_release-element"/>
2825- </zeroOrMore>
2826- </element>
2827- </define>
2828-
2829-
2830- <define name="def_alias-list">
2831- <element name="alias-list">
2832- <ref name="def_list-attributes"/>
2833- <zeroOrMore>
2834- <ref name="def_alias"/>
2835- </zeroOrMore>
2836- </element>
2837- </define>
2838-
2839-
2840- <define name="def_track-list">
2841- <element name="track-list">
2842- <ref name="def_list-attributes"/>
2843- <zeroOrMore>
2844- <ref name="def_track-element"/>
2845- </zeroOrMore>
2846- </element>
2847- </define>
2848-
2849-
2850- <define name="def_release-event-list">
2851- <element name="release-event-list">
2852- <ref name="def_list-attributes"/>
2853- <zeroOrMore>
2854- <element name="event">
2855- <attribute name="date">
2856- <ref name="def_incomplete-date"/>
2857- </attribute>
2858- <optional>
2859- <attribute name="country">
2860- <ref name="def_iso-3166"/>
2861- </attribute>
2862- </optional>
2863- </element>
2864- </zeroOrMore>
2865- </element>
2866- </define>
2867-
2868-
2869- <define name="def_disc-list">
2870- <element name="disc-list">
2871- <ref name="def_list-attributes"/>
2872- <zeroOrMore>
2873- <element name="disc">
2874- <attribute name="id">
2875- <data type="string">
2876- <param name="pattern">[a-zA-Z0-9._]{27}-</param>
2877- </data>
2878- </attribute>
2879- <optional>
2880- <attribute name="sectors">
2881- <data type="nonNegativeInteger"/>
2882- </attribute>
2883- </optional>
2884- </element>
2885- </zeroOrMore>
2886- </element>
2887- </define>
2888-
2889-
2890- <define name="def_puid-list">
2891- <element name="puid-list">
2892- <ref name="def_list-attributes"/>
2893- <zeroOrMore>
2894- <element name="puid">
2895- <attribute name="id">
2896- <ref name="def_uuid"/>
2897- </attribute>
2898- </element>
2899- </zeroOrMore>
2900- </element>
2901- </define>
2902-
2903-
2904- <define name="def_relation-list">
2905- <element name="relation-list">
2906- <attribute name="target-type">
2907- <data type="anyURI"/>
2908- </attribute>
2909- <ref name="def_list-attributes"/>
2910- <zeroOrMore>
2911- <ref name="def_relation-element"/>
2912- </zeroOrMore>
2913- </element>
2914- </define>
2915-
2916-
2917- <define name="def_list-attributes">
2918- <optional>
2919- <attribute name="count">
2920- <data type="nonNegativeInteger"/>
2921- </attribute>
2922- </optional>
2923- <optional>
2924- <attribute name="offset">
2925- <data type="nonNegativeInteger"/>
2926- </attribute>
2927- </optional>
2928- </define>
2929-
2930-
2931- <!-- A space separated list of URIs, relative ones are possible, too. -->
2932- <define name="def_URI-list">
2933- <list>
2934- <oneOrMore>
2935- <data type="anyURI"/>
2936- </oneOrMore>
2937- </list>
2938- </define>
2939-
2940-
2941- <!-- A date with varying precision in format 'YYYY-MM-DD'. -->
2942- <define name="def_incomplete-date">
2943- <data type="string">
2944- <param name="pattern">[0-9]{4}(-[0-9]{2})?(-[0-9]{2})?</param>
2945- </data>
2946- </define>
2947-
2948-
2949- <!-- A two-letter country code like 'DE', 'UK', 'FR' etc. -->
2950- <define name="def_iso-3166">
2951- <data type="string">
2952- <param name="pattern">[A-Z]{2}</param>
2953- </data>
2954- </define>
2955-
2956-
2957- <!-- An ISO-639-2/T language code like 'DEU', 'ENG', 'JPN' etc. -->
2958- <define name="def_iso-639">
2959- <data type="string">
2960- <param name="pattern">[A-Z]{3}</param>
2961- </data>
2962- </define>
2963-
2964-
2965- <!-- A four-letter script code like 'Latn', 'Cyrl', etc. -->
2966- <define name="def_iso-15924">
2967- <data type="string">
2968- <param name="pattern">[A-Z][a-z]{3}</param>
2969- </data>
2970- </define>
2971-
2972-
2973- <!-- A 128 Bit UUID in its standard ASCII representation. -->
2974- <define name="def_uuid">
2975- <data type="string">
2976- <param name="pattern">[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}</param>
2977- </data>
2978- </define>
2979-
2980-
2981- <!-- Reading direction of a relation. Defaults to "both". -->
2982- <define name="def_direction">
2983- <choice>
2984- <value>both</value>
2985- <value>forward</value>
2986- <value>backward</value>
2987- </choice>
2988- </define>
2989-
2990-</grammar>
2991
2992=== removed file 'schema/musicbrainz_mmd-1.0rc1.rng'
2993--- schema/musicbrainz_mmd-1.0rc1.rng 2012-02-01 17:18:10 +0000
2994+++ schema/musicbrainz_mmd-1.0rc1.rng 1970-01-01 00:00:00 +0000
2995@@ -1,478 +0,0 @@
2996-<?xml version="1.0" encoding="UTF-8"?>
2997-
2998-<!-- ==================================================================
2999- $Id: musicbrainz_mmd-1.0rc1.rng 36 2006-01-30 10:23:03Z matt $
3000-
3001- Relax NG Schema for MusicBrainz XML Metadata Version 1.0rc1
3002-
3003-
3004- This XML schema has been designed to represent music metadata.
3005- Documentation and the latest revision can be found at
3006-
3007- http://musicbrainz.org/development/mmd/
3008-
3009-
3010- Copyright (c) 2006 Robert Kaye, Matthias Friedrich
3011-
3012- The schema is released under the Creative Commons
3013- Attribution-ShareAlike 2.5 license.
3014-
3015- http://creativecommons.org/licenses/by-sa/2.5/
3016-
3017- ================================================================== -->
3018-
3019-
3020-<grammar xmlns="http://relaxng.org/ns/structure/1.0"
3021- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
3022- ns="http://musicbrainz.org/ns/mmd-1.0#">
3023-
3024-
3025- <start>
3026- <ref name="def_metadata"/>
3027- </start>
3028-
3029-
3030- <define name="def_metadata">
3031- <element name="metadata">
3032- <optional>
3033- <attribute name="generator">
3034- <data type="anyURI"/>
3035- </attribute>
3036- </optional>
3037- <optional>
3038- <attribute name="created">
3039- <data type="dateTime"/>
3040- </attribute>
3041- </optional>
3042-
3043- <optional>
3044- <ref name="def_artist"/>
3045- </optional>
3046- <optional>
3047- <ref name="def_release"/>
3048- </optional>
3049- <optional>
3050- <ref name="def_track"/>
3051- </optional>
3052-
3053- <optional>
3054- <ref name="def_artist-list"/>
3055- </optional>
3056- <optional>
3057- <ref name="def_release-list"/>
3058- </optional>
3059- <optional>
3060- <ref name="def_track-list"/>
3061- </optional>
3062-
3063- <optional>
3064- <ref name="def_extension"/>
3065- </optional>
3066- </element>
3067- </define>
3068-
3069-
3070- <define name="def_artist">
3071- <element name="artist">
3072- <optional>
3073- <attribute name="id">
3074- <data type="anyURI"/>
3075- </attribute>
3076- </optional>
3077- <optional>
3078- <attribute name="type">
3079- <data type="anyURI"/>
3080- </attribute>
3081- </optional>
3082-
3083- <optional>
3084- <element name="name">
3085- <text/>
3086- </element>
3087- </optional>
3088- <optional>
3089- <element name="sort-name">
3090- <text/>
3091- </element>
3092- </optional>
3093- <optional>
3094- <element name="life-span">
3095- <optional>
3096- <attribute name="begin">
3097- <ref name="def_incomplete-date"/>
3098- </attribute>
3099- </optional>
3100- <optional>
3101- <attribute name="end">
3102- <ref name="def_incomplete-date"/>
3103- </attribute>
3104- </optional>
3105- </element>
3106- </optional>
3107-
3108- <optional>
3109- <ref name="def_release-list"/>
3110- </optional>
3111- <zeroOrMore>
3112- <ref name="def_relation-list"/>
3113- </zeroOrMore>
3114-
3115- <zeroOrMore>
3116- <ref name="def_extension"/>
3117- </zeroOrMore>
3118- </element>
3119- </define>
3120-
3121-
3122- <define name="def_release">
3123- <element name="release">
3124- <optional>
3125- <attribute name="id">
3126- <data type="anyURI"/>
3127- </attribute>
3128- </optional>
3129- <optional>
3130- <attribute name="type">
3131- <ref name="def_URI-list"/>
3132- </attribute>
3133- </optional>
3134-
3135- <optional>
3136- <element name="title">
3137- <text/>
3138- </element>
3139- </optional>
3140- <optional>
3141- <element name="text-representation">
3142- <optional>
3143- <attribute name="language">
3144- <ref name="def_iso-639"/>
3145- </attribute>
3146- </optional>
3147- <optional>
3148- <attribute name="script">
3149- <ref name="def_iso-15924"/>
3150- </attribute>
3151- </optional>
3152- </element>
3153- </optional>
3154- <optional>
3155- <element name="asin">
3156- <data type="string">
3157- <param name="pattern">[A-Z0-9]{10}</param>
3158- </data>
3159- </element>
3160- </optional>
3161- <optional>
3162- <ref name="def_artist"/>
3163- </optional>
3164-
3165- <optional>
3166- <ref name="def_release-info-list"/>
3167- </optional>
3168- <optional>
3169- <ref name="def_disc-list"/>
3170- </optional>
3171- <optional>
3172- <ref name="def_trmid-list"/>
3173- </optional>
3174- <optional>
3175- <ref name="def_track-list"/>
3176- </optional>
3177- <zeroOrMore>
3178- <ref name="def_relation-list"/>
3179- </zeroOrMore>
3180-
3181- <zeroOrMore>
3182- <ref name="def_extension"/>
3183- </zeroOrMore>
3184- </element>
3185- </define>
3186-
3187-
3188- <define name="def_track">
3189- <element name="track">
3190- <optional>
3191- <attribute name="id">
3192- <data type="anyURI"/>
3193- </attribute>
3194- </optional>
3195-
3196- <optional>
3197- <element name="title">
3198- <text/>
3199- </element>
3200- </optional>
3201- <optional>
3202- <element name="duration">
3203- <data type="nonNegativeInteger"/>
3204- </element>
3205- </optional>
3206- <optional>
3207- <ref name="def_artist"/>
3208- </optional>
3209-
3210- <optional>
3211- <ref name="def_release-list"/>
3212- </optional>
3213- <optional>
3214- <ref name="def_trmid-list"/>
3215- </optional>
3216- <zeroOrMore>
3217- <ref name="def_relation-list"/>
3218- </zeroOrMore>
3219-
3220- <zeroOrMore>
3221- <ref name="def_extension"/>
3222- </zeroOrMore>
3223- </element>
3224- </define>
3225-
3226-
3227- <define name="def_relation">
3228- <element name="relation">
3229- <attribute name="type">
3230- <data type="anyURI"/>
3231- </attribute>
3232- <attribute name="target">
3233- <data type="anyURI"/>
3234- </attribute>
3235- <optional>
3236- <attribute name="direction">
3237- <ref name="def_direction"/>
3238- </attribute>
3239- </optional>
3240- <optional>
3241- <attribute name="attributes">
3242- <ref name="def_URI-list"/>
3243- </attribute>
3244- </optional>
3245- <optional>
3246- <attribute name="begin">
3247- <ref name="def_incomplete-date"/>
3248- </attribute>
3249- </optional>
3250- <optional>
3251- <attribute name="end">
3252- <ref name="def_incomplete-date"/>
3253- </attribute>
3254- </optional>
3255-
3256- <optional>
3257- <choice>
3258- <ref name="def_artist"/>
3259- <ref name="def_release"/>
3260- <ref name="def_track"/>
3261-
3262- <ref name="def_extension"/>
3263- </choice>
3264- </optional>
3265- </element>
3266- </define>
3267-
3268-
3269- <define name="def_extension">
3270- <element>
3271- <anyName>
3272- <except>
3273- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
3274- <nsName ns=""/>
3275- </except>
3276- </anyName>
3277- <zeroOrMore>
3278- <choice>
3279- <attribute>
3280- <anyName/>
3281- </attribute>
3282- <text/>
3283- <ref name="def_anything"/>
3284- </choice>
3285- </zeroOrMore>
3286- </element>
3287- </define>
3288-
3289-
3290- <define name="def_anything">
3291- <element>
3292- <anyName>
3293- <except>
3294- <nsName ns=""/>
3295- </except>
3296- </anyName>
3297- <zeroOrMore>
3298- <choice>
3299- <attribute>
3300- <anyName/>
3301- </attribute>
3302- <text/>
3303- <ref name="def_anything"/>
3304- </choice>
3305- </zeroOrMore>
3306- </element>
3307- </define>
3308-
3309-
3310- <define name="def_artist-list">
3311- <element name="artist-list">
3312- <ref name="def_list-attributes"/>
3313- <zeroOrMore>
3314- <ref name="def_artist"/>
3315- </zeroOrMore>
3316- </element>
3317- </define>
3318-
3319-
3320- <define name="def_release-list">
3321- <element name="release-list">
3322- <ref name="def_list-attributes"/>
3323- <zeroOrMore>
3324- <ref name="def_release"/>
3325- </zeroOrMore>
3326- </element>
3327- </define>
3328-
3329-
3330- <define name="def_track-list">
3331- <element name="track-list">
3332- <ref name="def_list-attributes"/>
3333- <zeroOrMore>
3334- <ref name="def_track"/>
3335- </zeroOrMore>
3336- </element>
3337- </define>
3338-
3339-
3340- <define name="def_release-info-list">
3341- <element name="release-info-list">
3342- <ref name="def_list-attributes"/>
3343- <zeroOrMore>
3344- <element name="info">
3345- <attribute name="date">
3346- <ref name="def_incomplete-date"/>
3347- </attribute>
3348- <attribute name="country">
3349- <ref name="def_iso-3166"/>
3350- </attribute>
3351- </element>
3352- </zeroOrMore>
3353- </element>
3354- </define>
3355-
3356-
3357- <define name="def_disc-list">
3358- <element name="disc-list">
3359- <ref name="def_list-attributes"/>
3360- <zeroOrMore>
3361- <element name="disc">
3362- <attribute name="id">
3363- <data type="string">
3364- <param name="pattern">[a-zA-Z0-9._]{27}-</param>
3365- </data>
3366- </attribute>
3367- </element>
3368- </zeroOrMore>
3369- </element>
3370- </define>
3371-
3372-
3373- <define name="def_trmid-list">
3374- <element name="trmid-list">
3375- <ref name="def_list-attributes"/>
3376- <zeroOrMore>
3377- <element name="trmid">
3378- <attribute name="id">
3379- <ref name="def_uuid"/>
3380- </attribute>
3381- </element>
3382- </zeroOrMore>
3383- </element>
3384- </define>
3385-
3386-
3387- <define name="def_relation-list">
3388- <element name="relation-list">
3389- <attribute name="target-type">
3390- <data type="anyURI"/>
3391- </attribute>
3392- <ref name="def_list-attributes"/>
3393- <zeroOrMore>
3394- <ref name="def_relation"/>
3395- </zeroOrMore>
3396- </element>
3397- </define>
3398-
3399-
3400- <define name="def_list-attributes">
3401- <optional>
3402- <attribute name="count">
3403- <data type="nonNegativeInteger"/>
3404- </attribute>
3405- </optional>
3406- <optional>
3407- <attribute name="offset">
3408- <data type="nonNegativeInteger"/>
3409- </attribute>
3410- </optional>
3411- </define>
3412-
3413-
3414- <!-- A space separated list of URIs, relative ones are possible, too. -->
3415- <define name="def_URI-list">
3416- <list>
3417- <oneOrMore>
3418- <data type="anyURI"/>
3419- </oneOrMore>
3420- </list>
3421- </define>
3422-
3423-
3424- <!-- A date with varying precision in format 'YYYY-MM-DD'. -->
3425- <define name="def_incomplete-date">
3426- <data type="string">
3427- <param name="pattern">[0-9]{4}(-[0-9]{2})?(-[0-9]{2})?</param>
3428- </data>
3429- </define>
3430-
3431-
3432- <!-- A two-letter country code like 'DE', 'UK', 'FR' etc. -->
3433- <define name="def_iso-3166">
3434- <data type="string">
3435- <param name="pattern">[A-Z]{2}</param>
3436- </data>
3437- </define>
3438-
3439-
3440- <!-- A three-letter language code like 'GER', 'GER', etc. -->
3441- <define name="def_iso-639">
3442- <data type="string">
3443- <param name="pattern">[A-Z]{3}</param>
3444- </data>
3445- </define>
3446-
3447-
3448- <!-- A four-letter script code like 'Latn', 'Cyrl', etc. -->
3449- <define name="def_iso-15924">
3450- <data type="string">
3451- <param name="pattern">[A-Z][a-z]{3}</param>
3452- </data>
3453- </define>
3454-
3455-
3456- <!-- A 128 Bit UUID in its standard ASCII representation. -->
3457- <define name="def_uuid">
3458- <data type="string">
3459- <param name="pattern">[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}</param>
3460- </data>
3461- </define>
3462-
3463-
3464- <!-- Reading direction of a relation. Defaults to "both". -->
3465- <define name="def_direction">
3466- <choice>
3467- <value>both</value>
3468- <value>forward</value>
3469- <value>backward</value>
3470- </choice>
3471- </define>
3472-
3473-</grammar>
3474
3475=== removed file 'schema/musicbrainz_mmd-1.0rc2.rng'
3476--- schema/musicbrainz_mmd-1.0rc2.rng 2012-02-01 17:18:10 +0000
3477+++ schema/musicbrainz_mmd-1.0rc2.rng 1970-01-01 00:00:00 +0000
3478@@ -1,518 +0,0 @@
3479-<?xml version="1.0" encoding="UTF-8"?>
3480-
3481-<!-- ==================================================================
3482- $Id: musicbrainz_mmd-1.0rc2.rng 71 2006-02-14 18:56:32Z matt $
3483-
3484- Relax NG Schema for MusicBrainz XML Metadata Version 1.0rc2
3485-
3486-
3487- This XML schema has been designed to represent music metadata.
3488- Documentation and the latest revision can be found at
3489-
3490- http://musicbrainz.org/development/mmd/
3491-
3492-
3493- Copyright (c) 2006 Robert Kaye, Matthias Friedrich
3494-
3495- The schema is released under the Creative Commons
3496- Attribution-ShareAlike 2.5 license.
3497-
3498- http://creativecommons.org/licenses/by-sa/2.5/
3499-
3500- ================================================================== -->
3501-
3502-
3503-<grammar xmlns="http://relaxng.org/ns/structure/1.0"
3504- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
3505- ns="http://musicbrainz.org/ns/mmd-1.0#">
3506-
3507-
3508- <start>
3509- <ref name="def_metadata"/>
3510- </start>
3511-
3512-
3513- <define name="def_metadata">
3514- <element name="metadata">
3515- <optional>
3516- <attribute name="generator">
3517- <data type="anyURI"/>
3518- </attribute>
3519- </optional>
3520- <optional>
3521- <attribute name="created">
3522- <data type="dateTime"/>
3523- </attribute>
3524- </optional>
3525-
3526- <optional>
3527- <ref name="def_artist"/>
3528- </optional>
3529- <optional>
3530- <ref name="def_release"/>
3531- </optional>
3532- <optional>
3533- <ref name="def_track"/>
3534- </optional>
3535-
3536- <optional>
3537- <ref name="def_artist-list"/>
3538- </optional>
3539- <optional>
3540- <ref name="def_release-list"/>
3541- </optional>
3542- <optional>
3543- <ref name="def_track-list"/>
3544- </optional>
3545-
3546- <optional>
3547- <ref name="def_extension"/>
3548- </optional>
3549- </element>
3550- </define>
3551-
3552-
3553- <define name="def_artist">
3554- <element name="artist">
3555- <optional>
3556- <attribute name="id">
3557- <data type="anyURI"/>
3558- </attribute>
3559- </optional>
3560- <optional>
3561- <attribute name="type">
3562- <data type="anyURI"/>
3563- </attribute>
3564- </optional>
3565-
3566- <optional>
3567- <element name="name">
3568- <text/>
3569- </element>
3570- </optional>
3571- <optional>
3572- <element name="sort-name">
3573- <text/>
3574- </element>
3575- </optional>
3576- <optional>
3577- <element name="disambiguation">
3578- <text/>
3579- </element>
3580- </optional>
3581- <optional>
3582- <element name="life-span">
3583- <optional>
3584- <attribute name="begin">
3585- <ref name="def_incomplete-date"/>
3586- </attribute>
3587- </optional>
3588- <optional>
3589- <attribute name="end">
3590- <ref name="def_incomplete-date"/>
3591- </attribute>
3592- </optional>
3593- </element>
3594- </optional>
3595-
3596- <optional>
3597- <ref name="def_alias-list"/>
3598- </optional>
3599- <optional>
3600- <ref name="def_release-list"/>
3601- </optional>
3602- <zeroOrMore>
3603- <ref name="def_relation-list"/>
3604- </zeroOrMore>
3605-
3606- <zeroOrMore>
3607- <ref name="def_extension"/>
3608- </zeroOrMore>
3609- </element>
3610- </define>
3611-
3612-
3613- <define name="def_release">
3614- <element name="release">
3615- <optional>
3616- <attribute name="id">
3617- <data type="anyURI"/>
3618- </attribute>
3619- </optional>
3620- <optional>
3621- <attribute name="type">
3622- <ref name="def_URI-list"/>
3623- </attribute>
3624- </optional>
3625-
3626- <optional>
3627- <element name="title">
3628- <text/>
3629- </element>
3630- </optional>
3631- <optional>
3632- <element name="text-representation">
3633- <optional>
3634- <attribute name="language">
3635- <ref name="def_iso-639"/>
3636- </attribute>
3637- </optional>
3638- <optional>
3639- <attribute name="script">
3640- <ref name="def_iso-15924"/>
3641- </attribute>
3642- </optional>
3643- </element>
3644- </optional>
3645- <optional>
3646- <element name="asin">
3647- <data type="string">
3648- <param name="pattern">[A-Z0-9]{10}</param>
3649- </data>
3650- </element>
3651- </optional>
3652- <optional>
3653- <ref name="def_artist"/>
3654- </optional>
3655-
3656- <optional>
3657- <ref name="def_release-event-list"/>
3658- </optional>
3659- <optional>
3660- <ref name="def_disc-list"/>
3661- </optional>
3662- <optional>
3663- <ref name="def_trmid-list"/>
3664- </optional>
3665- <optional>
3666- <ref name="def_track-list"/>
3667- </optional>
3668- <zeroOrMore>
3669- <ref name="def_relation-list"/>
3670- </zeroOrMore>
3671-
3672- <zeroOrMore>
3673- <ref name="def_extension"/>
3674- </zeroOrMore>
3675- </element>
3676- </define>
3677-
3678-
3679- <define name="def_track">
3680- <element name="track">
3681- <optional>
3682- <attribute name="id">
3683- <data type="anyURI"/>
3684- </attribute>
3685- </optional>
3686-
3687- <optional>
3688- <element name="title">
3689- <text/>
3690- </element>
3691- </optional>
3692- <optional>
3693- <element name="duration">
3694- <data type="nonNegativeInteger"/>
3695- </element>
3696- </optional>
3697- <optional>
3698- <ref name="def_artist"/>
3699- </optional>
3700-
3701- <optional>
3702- <ref name="def_release-list"/>
3703- </optional>
3704- <optional>
3705- <ref name="def_trmid-list"/>
3706- </optional>
3707- <zeroOrMore>
3708- <ref name="def_relation-list"/>
3709- </zeroOrMore>
3710-
3711- <zeroOrMore>
3712- <ref name="def_extension"/>
3713- </zeroOrMore>
3714- </element>
3715- </define>
3716-
3717-
3718- <define name="def_relation">
3719- <element name="relation">
3720- <attribute name="type">
3721- <data type="anyURI"/>
3722- </attribute>
3723- <attribute name="target">
3724- <data type="anyURI"/>
3725- </attribute>
3726- <optional>
3727- <attribute name="direction">
3728- <ref name="def_direction"/>
3729- </attribute>
3730- </optional>
3731- <optional>
3732- <attribute name="attributes">
3733- <ref name="def_URI-list"/>
3734- </attribute>
3735- </optional>
3736- <optional>
3737- <attribute name="begin">
3738- <ref name="def_incomplete-date"/>
3739- </attribute>
3740- </optional>
3741- <optional>
3742- <attribute name="end">
3743- <ref name="def_incomplete-date"/>
3744- </attribute>
3745- </optional>
3746-
3747- <optional>
3748- <choice>
3749- <ref name="def_artist"/>
3750- <ref name="def_release"/>
3751- <ref name="def_track"/>
3752-
3753- <ref name="def_extension"/>
3754- </choice>
3755- </optional>
3756- </element>
3757- </define>
3758-
3759-
3760- <define name="def_alias">
3761- <element name="alias">
3762- <optional>
3763- <attribute name="type">
3764- <data type="anyURI"/>
3765- </attribute>
3766- </optional>
3767- <optional>
3768- <attribute name="script">
3769- <ref name="def_iso-15924"/>
3770- </attribute>
3771- </optional>
3772- <text/>
3773- </element>
3774- </define>
3775-
3776-
3777- <define name="def_extension">
3778- <element>
3779- <anyName>
3780- <except>
3781- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
3782- <nsName ns=""/>
3783- </except>
3784- </anyName>
3785- <zeroOrMore>
3786- <choice>
3787- <attribute>
3788- <anyName/>
3789- </attribute>
3790- <text/>
3791- <ref name="def_anything"/>
3792- </choice>
3793- </zeroOrMore>
3794- </element>
3795- </define>
3796-
3797-
3798- <define name="def_anything">
3799- <element>
3800- <anyName>
3801- <except>
3802- <nsName ns=""/>
3803- </except>
3804- </anyName>
3805- <zeroOrMore>
3806- <choice>
3807- <attribute>
3808- <anyName/>
3809- </attribute>
3810- <text/>
3811- <ref name="def_anything"/>
3812- </choice>
3813- </zeroOrMore>
3814- </element>
3815- </define>
3816-
3817-
3818- <define name="def_artist-list">
3819- <element name="artist-list">
3820- <ref name="def_list-attributes"/>
3821- <zeroOrMore>
3822- <ref name="def_artist"/>
3823- </zeroOrMore>
3824- </element>
3825- </define>
3826-
3827-
3828- <define name="def_release-list">
3829- <element name="release-list">
3830- <ref name="def_list-attributes"/>
3831- <zeroOrMore>
3832- <ref name="def_release"/>
3833- </zeroOrMore>
3834- </element>
3835- </define>
3836-
3837-
3838- <define name="def_alias-list">
3839- <element name="alias-list">
3840- <ref name="def_list-attributes"/>
3841- <zeroOrMore>
3842- <ref name="def_alias"/>
3843- </zeroOrMore>
3844- </element>
3845- </define>
3846-
3847-
3848- <define name="def_track-list">
3849- <element name="track-list">
3850- <ref name="def_list-attributes"/>
3851- <zeroOrMore>
3852- <ref name="def_track"/>
3853- </zeroOrMore>
3854- </element>
3855- </define>
3856-
3857-
3858- <define name="def_release-event-list">
3859- <element name="release-event-list">
3860- <ref name="def_list-attributes"/>
3861- <zeroOrMore>
3862- <element name="event">
3863- <attribute name="date">
3864- <ref name="def_incomplete-date"/>
3865- </attribute>
3866- <attribute name="country">
3867- <ref name="def_iso-3166"/>
3868- </attribute>
3869- </element>
3870- </zeroOrMore>
3871- </element>
3872- </define>
3873-
3874-
3875- <define name="def_disc-list">
3876- <element name="disc-list">
3877- <ref name="def_list-attributes"/>
3878- <zeroOrMore>
3879- <element name="disc">
3880- <attribute name="id">
3881- <data type="string">
3882- <param name="pattern">[a-zA-Z0-9._]{27}-</param>
3883- </data>
3884- </attribute>
3885- <optional>
3886- <attribute name="sectors">
3887- <data type="nonNegativeInteger"/>
3888- </attribute>
3889- </optional>
3890- </element>
3891- </zeroOrMore>
3892- </element>
3893- </define>
3894-
3895-
3896- <define name="def_trmid-list">
3897- <element name="trmid-list">
3898- <ref name="def_list-attributes"/>
3899- <zeroOrMore>
3900- <element name="trmid">
3901- <attribute name="id">
3902- <ref name="def_uuid"/>
3903- </attribute>
3904- </element>
3905- </zeroOrMore>
3906- </element>
3907- </define>
3908-
3909-
3910- <define name="def_relation-list">
3911- <element name="relation-list">
3912- <attribute name="target-type">
3913- <data type="anyURI"/>
3914- </attribute>
3915- <ref name="def_list-attributes"/>
3916- <zeroOrMore>
3917- <ref name="def_relation"/>
3918- </zeroOrMore>
3919- </element>
3920- </define>
3921-
3922-
3923- <define name="def_list-attributes">
3924- <optional>
3925- <attribute name="count">
3926- <data type="nonNegativeInteger"/>
3927- </attribute>
3928- </optional>
3929- <optional>
3930- <attribute name="offset">
3931- <data type="nonNegativeInteger"/>
3932- </attribute>
3933- </optional>
3934- </define>
3935-
3936-
3937- <!-- A space separated list of URIs, relative ones are possible, too. -->
3938- <define name="def_URI-list">
3939- <list>
3940- <oneOrMore>
3941- <data type="anyURI"/>
3942- </oneOrMore>
3943- </list>
3944- </define>
3945-
3946-
3947- <!-- A date with varying precision in format 'YYYY-MM-DD'. -->
3948- <define name="def_incomplete-date">
3949- <data type="string">
3950- <param name="pattern">[0-9]{4}(-[0-9]{2})?(-[0-9]{2})?</param>
3951- </data>
3952- </define>
3953-
3954-
3955- <!-- A two-letter country code like 'DE', 'UK', 'FR' etc. -->
3956- <define name="def_iso-3166">
3957- <data type="string">
3958- <param name="pattern">[A-Z]{2}</param>
3959- </data>
3960- </define>
3961-
3962-
3963- <!-- An ISO-639-2/T language code like 'DEU', 'ENG', 'JPN' etc. -->
3964- <define name="def_iso-639">
3965- <data type="string">
3966- <param name="pattern">[A-Z]{3}</param>
3967- </data>
3968- </define>
3969-
3970-
3971- <!-- A four-letter script code like 'Latn', 'Cyrl', etc. -->
3972- <define name="def_iso-15924">
3973- <data type="string">
3974- <param name="pattern">[A-Z][a-z]{3}</param>
3975- </data>
3976- </define>
3977-
3978-
3979- <!-- A 128 Bit UUID in its standard ASCII representation. -->
3980- <define name="def_uuid">
3981- <data type="string">
3982- <param name="pattern">[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}</param>
3983- </data>
3984- </define>
3985-
3986-
3987- <!-- Reading direction of a relation. Defaults to "both". -->
3988- <define name="def_direction">
3989- <choice>
3990- <value>both</value>
3991- <value>forward</value>
3992- <value>backward</value>
3993- </choice>
3994- </define>
3995-
3996-</grammar>
3997
3998=== removed file 'schema/musicbrainz_mmd-1.0rc3.rng'
3999--- schema/musicbrainz_mmd-1.0rc3.rng 2012-02-01 17:18:10 +0000
4000+++ schema/musicbrainz_mmd-1.0rc3.rng 1970-01-01 00:00:00 +0000
4001@@ -1,518 +0,0 @@
4002-<?xml version="1.0" encoding="UTF-8"?>
4003-
4004-<!-- ==================================================================
4005- $Id: musicbrainz_mmd-1.0rc3.rng 167 2006-03-14 18:59:45Z matt $
4006-
4007- Relax NG Schema for MusicBrainz XML Metadata Version 1.0rc3
4008-
4009-
4010- This XML schema has been designed to represent music metadata.
4011- Documentation and the latest revision can be found at
4012-
4013- http://musicbrainz.org/development/mmd/
4014-
4015-
4016- Copyright (c) 2006 Robert Kaye, Matthias Friedrich
4017-
4018- The schema is released under the Creative Commons
4019- Attribution-ShareAlike 2.5 license.
4020-
4021- http://creativecommons.org/licenses/by-sa/2.5/
4022-
4023- ================================================================== -->
4024-
4025-
4026-<grammar xmlns="http://relaxng.org/ns/structure/1.0"
4027- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
4028- ns="http://musicbrainz.org/ns/mmd-1.0#">
4029-
4030-
4031- <start>
4032- <ref name="def_metadata"/>
4033- </start>
4034-
4035-
4036- <define name="def_metadata">
4037- <element name="metadata">
4038- <optional>
4039- <attribute name="generator">
4040- <data type="anyURI"/>
4041- </attribute>
4042- </optional>
4043- <optional>
4044- <attribute name="created">
4045- <data type="dateTime"/>
4046- </attribute>
4047- </optional>
4048-
4049- <optional>
4050- <ref name="def_artist"/>
4051- </optional>
4052- <optional>
4053- <ref name="def_release"/>
4054- </optional>
4055- <optional>
4056- <ref name="def_track"/>
4057- </optional>
4058-
4059- <optional>
4060- <ref name="def_artist-list"/>
4061- </optional>
4062- <optional>
4063- <ref name="def_release-list"/>
4064- </optional>
4065- <optional>
4066- <ref name="def_track-list"/>
4067- </optional>
4068-
4069- <optional>
4070- <ref name="def_extension"/>
4071- </optional>
4072- </element>
4073- </define>
4074-
4075-
4076- <define name="def_artist">
4077- <element name="artist">
4078- <optional>
4079- <attribute name="id">
4080- <data type="anyURI"/>
4081- </attribute>
4082- </optional>
4083- <optional>
4084- <attribute name="type">
4085- <data type="anyURI"/>
4086- </attribute>
4087- </optional>
4088-
4089- <optional>
4090- <element name="name">
4091- <text/>
4092- </element>
4093- </optional>
4094- <optional>
4095- <element name="sort-name">
4096- <text/>
4097- </element>
4098- </optional>
4099- <optional>
4100- <element name="disambiguation">
4101- <text/>
4102- </element>
4103- </optional>
4104- <optional>
4105- <element name="life-span">
4106- <optional>
4107- <attribute name="begin">
4108- <ref name="def_incomplete-date"/>
4109- </attribute>
4110- </optional>
4111- <optional>
4112- <attribute name="end">
4113- <ref name="def_incomplete-date"/>
4114- </attribute>
4115- </optional>
4116- </element>
4117- </optional>
4118-
4119- <optional>
4120- <ref name="def_alias-list"/>
4121- </optional>
4122- <optional>
4123- <ref name="def_release-list"/>
4124- </optional>
4125- <zeroOrMore>
4126- <ref name="def_relation-list"/>
4127- </zeroOrMore>
4128-
4129- <zeroOrMore>
4130- <ref name="def_extension"/>
4131- </zeroOrMore>
4132- </element>
4133- </define>
4134-
4135-
4136- <define name="def_release">
4137- <element name="release">
4138- <optional>
4139- <attribute name="id">
4140- <data type="anyURI"/>
4141- </attribute>
4142- </optional>
4143- <optional>
4144- <attribute name="type">
4145- <ref name="def_URI-list"/>
4146- </attribute>
4147- </optional>
4148-
4149- <optional>
4150- <element name="title">
4151- <text/>
4152- </element>
4153- </optional>
4154- <optional>
4155- <element name="text-representation">
4156- <optional>
4157- <attribute name="language">
4158- <ref name="def_iso-639"/>
4159- </attribute>
4160- </optional>
4161- <optional>
4162- <attribute name="script">
4163- <ref name="def_iso-15924"/>
4164- </attribute>
4165- </optional>
4166- </element>
4167- </optional>
4168- <optional>
4169- <element name="asin">
4170- <data type="string">
4171- <param name="pattern">[A-Z0-9]{10}</param>
4172- </data>
4173- </element>
4174- </optional>
4175- <optional>
4176- <ref name="def_artist"/>
4177- </optional>
4178-
4179- <optional>
4180- <ref name="def_release-event-list"/>
4181- </optional>
4182- <optional>
4183- <ref name="def_disc-list"/>
4184- </optional>
4185- <optional>
4186- <ref name="def_puid-list"/>
4187- </optional>
4188- <optional>
4189- <ref name="def_track-list"/>
4190- </optional>
4191- <zeroOrMore>
4192- <ref name="def_relation-list"/>
4193- </zeroOrMore>
4194-
4195- <zeroOrMore>
4196- <ref name="def_extension"/>
4197- </zeroOrMore>
4198- </element>
4199- </define>
4200-
4201-
4202- <define name="def_track">
4203- <element name="track">
4204- <optional>
4205- <attribute name="id">
4206- <data type="anyURI"/>
4207- </attribute>
4208- </optional>
4209-
4210- <optional>
4211- <element name="title">
4212- <text/>
4213- </element>
4214- </optional>
4215- <optional>
4216- <element name="duration">
4217- <data type="nonNegativeInteger"/>
4218- </element>
4219- </optional>
4220- <optional>
4221- <ref name="def_artist"/>
4222- </optional>
4223-
4224- <optional>
4225- <ref name="def_release-list"/>
4226- </optional>
4227- <optional>
4228- <ref name="def_puid-list"/>
4229- </optional>
4230- <zeroOrMore>
4231- <ref name="def_relation-list"/>
4232- </zeroOrMore>
4233-
4234- <zeroOrMore>
4235- <ref name="def_extension"/>
4236- </zeroOrMore>
4237- </element>
4238- </define>
4239-
4240-
4241- <define name="def_relation">
4242- <element name="relation">
4243- <attribute name="type">
4244- <data type="anyURI"/>
4245- </attribute>
4246- <attribute name="target">
4247- <data type="anyURI"/>
4248- </attribute>
4249- <optional>
4250- <attribute name="direction">
4251- <ref name="def_direction"/>
4252- </attribute>
4253- </optional>
4254- <optional>
4255- <attribute name="attributes">
4256- <ref name="def_URI-list"/>
4257- </attribute>
4258- </optional>
4259- <optional>
4260- <attribute name="begin">
4261- <ref name="def_incomplete-date"/>
4262- </attribute>
4263- </optional>
4264- <optional>
4265- <attribute name="end">
4266- <ref name="def_incomplete-date"/>
4267- </attribute>
4268- </optional>
4269-
4270- <optional>
4271- <choice>
4272- <ref name="def_artist"/>
4273- <ref name="def_release"/>
4274- <ref name="def_track"/>
4275-
4276- <ref name="def_extension"/>
4277- </choice>
4278- </optional>
4279- </element>
4280- </define>
4281-
4282-
4283- <define name="def_alias">
4284- <element name="alias">
4285- <optional>
4286- <attribute name="type">
4287- <data type="anyURI"/>
4288- </attribute>
4289- </optional>
4290- <optional>
4291- <attribute name="script">
4292- <ref name="def_iso-15924"/>
4293- </attribute>
4294- </optional>
4295- <text/>
4296- </element>
4297- </define>
4298-
4299-
4300- <define name="def_extension">
4301- <element>
4302- <anyName>
4303- <except>
4304- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
4305- <nsName ns=""/>
4306- </except>
4307- </anyName>
4308- <zeroOrMore>
4309- <choice>
4310- <attribute>
4311- <anyName/>
4312- </attribute>
4313- <text/>
4314- <ref name="def_anything"/>
4315- </choice>
4316- </zeroOrMore>
4317- </element>
4318- </define>
4319-
4320-
4321- <define name="def_anything">
4322- <element>
4323- <anyName>
4324- <except>
4325- <nsName ns=""/>
4326- </except>
4327- </anyName>
4328- <zeroOrMore>
4329- <choice>
4330- <attribute>
4331- <anyName/>
4332- </attribute>
4333- <text/>
4334- <ref name="def_anything"/>
4335- </choice>
4336- </zeroOrMore>
4337- </element>
4338- </define>
4339-
4340-
4341- <define name="def_artist-list">
4342- <element name="artist-list">
4343- <ref name="def_list-attributes"/>
4344- <zeroOrMore>
4345- <ref name="def_artist"/>
4346- </zeroOrMore>
4347- </element>
4348- </define>
4349-
4350-
4351- <define name="def_release-list">
4352- <element name="release-list">
4353- <ref name="def_list-attributes"/>
4354- <zeroOrMore>
4355- <ref name="def_release"/>
4356- </zeroOrMore>
4357- </element>
4358- </define>
4359-
4360-
4361- <define name="def_alias-list">
4362- <element name="alias-list">
4363- <ref name="def_list-attributes"/>
4364- <zeroOrMore>
4365- <ref name="def_alias"/>
4366- </zeroOrMore>
4367- </element>
4368- </define>
4369-
4370-
4371- <define name="def_track-list">
4372- <element name="track-list">
4373- <ref name="def_list-attributes"/>
4374- <zeroOrMore>
4375- <ref name="def_track"/>
4376- </zeroOrMore>
4377- </element>
4378- </define>
4379-
4380-
4381- <define name="def_release-event-list">
4382- <element name="release-event-list">
4383- <ref name="def_list-attributes"/>
4384- <zeroOrMore>
4385- <element name="event">
4386- <attribute name="date">
4387- <ref name="def_incomplete-date"/>
4388- </attribute>
4389- <attribute name="country">
4390- <ref name="def_iso-3166"/>
4391- </attribute>
4392- </element>
4393- </zeroOrMore>
4394- </element>
4395- </define>
4396-
4397-
4398- <define name="def_disc-list">
4399- <element name="disc-list">
4400- <ref name="def_list-attributes"/>
4401- <zeroOrMore>
4402- <element name="disc">
4403- <attribute name="id">
4404- <data type="string">
4405- <param name="pattern">[a-zA-Z0-9._]{27}-</param>
4406- </data>
4407- </attribute>
4408- <optional>
4409- <attribute name="sectors">
4410- <data type="nonNegativeInteger"/>
4411- </attribute>
4412- </optional>
4413- </element>
4414- </zeroOrMore>
4415- </element>
4416- </define>
4417-
4418-
4419- <define name="def_puid-list">
4420- <element name="puid-list">
4421- <ref name="def_list-attributes"/>
4422- <zeroOrMore>
4423- <element name="puid">
4424- <attribute name="id">
4425- <ref name="def_uuid"/>
4426- </attribute>
4427- </element>
4428- </zeroOrMore>
4429- </element>
4430- </define>
4431-
4432-
4433- <define name="def_relation-list">
4434- <element name="relation-list">
4435- <attribute name="target-type">
4436- <data type="anyURI"/>
4437- </attribute>
4438- <ref name="def_list-attributes"/>
4439- <zeroOrMore>
4440- <ref name="def_relation"/>
4441- </zeroOrMore>
4442- </element>
4443- </define>
4444-
4445-
4446- <define name="def_list-attributes">
4447- <optional>
4448- <attribute name="count">
4449- <data type="nonNegativeInteger"/>
4450- </attribute>
4451- </optional>
4452- <optional>
4453- <attribute name="offset">
4454- <data type="nonNegativeInteger"/>
4455- </attribute>
4456- </optional>
4457- </define>
4458-
4459-
4460- <!-- A space separated list of URIs, relative ones are possible, too. -->
4461- <define name="def_URI-list">
4462- <list>
4463- <oneOrMore>
4464- <data type="anyURI"/>
4465- </oneOrMore>
4466- </list>
4467- </define>
4468-
4469-
4470- <!-- A date with varying precision in format 'YYYY-MM-DD'. -->
4471- <define name="def_incomplete-date">
4472- <data type="string">
4473- <param name="pattern">[0-9]{4}(-[0-9]{2})?(-[0-9]{2})?</param>
4474- </data>
4475- </define>
4476-
4477-
4478- <!-- A two-letter country code like 'DE', 'UK', 'FR' etc. -->
4479- <define name="def_iso-3166">
4480- <data type="string">
4481- <param name="pattern">[A-Z]{2}</param>
4482- </data>
4483- </define>
4484-
4485-
4486- <!-- An ISO-639-2/T language code like 'DEU', 'ENG', 'JPN' etc. -->
4487- <define name="def_iso-639">
4488- <data type="string">
4489- <param name="pattern">[A-Z]{3}</param>
4490- </data>
4491- </define>
4492-
4493-
4494- <!-- A four-letter script code like 'Latn', 'Cyrl', etc. -->
4495- <define name="def_iso-15924">
4496- <data type="string">
4497- <param name="pattern">[A-Z][a-z]{3}</param>
4498- </data>
4499- </define>
4500-
4501-
4502- <!-- A 128 Bit UUID in its standard ASCII representation. -->
4503- <define name="def_uuid">
4504- <data type="string">
4505- <param name="pattern">[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}</param>
4506- </data>
4507- </define>
4508-
4509-
4510- <!-- Reading direction of a relation. Defaults to "both". -->
4511- <define name="def_direction">
4512- <choice>
4513- <value>both</value>
4514- <value>forward</value>
4515- <value>backward</value>
4516- </choice>
4517- </define>
4518-
4519-</grammar>
4520
4521=== removed file 'schema/musicbrainz_mmd-1.0rc4.rng'
4522--- schema/musicbrainz_mmd-1.0rc4.rng 2012-02-01 17:18:10 +0000
4523+++ schema/musicbrainz_mmd-1.0rc4.rng 1970-01-01 00:00:00 +0000
4524@@ -1,539 +0,0 @@
4525-<?xml version="1.0" encoding="UTF-8"?>
4526-
4527-<!-- ==================================================================
4528- $Id: musicbrainz_mmd-1.0rc4.rng 188 2006-03-22 16:54:20Z matt $
4529-
4530- Relax NG Schema for MusicBrainz XML Metadata Version 1.0rc4
4531-
4532-
4533- This XML schema has been designed to represent music metadata.
4534- Documentation and the latest revision can be found at
4535-
4536- http://musicbrainz.org/development/mmd/
4537-
4538-
4539- Copyright (c) 2006 Robert Kaye, Matthias Friedrich
4540-
4541- The schema is released under the Creative Commons
4542- Attribution-ShareAlike 2.5 license.
4543-
4544- http://creativecommons.org/licenses/by-sa/2.5/
4545-
4546- ================================================================== -->
4547-
4548-
4549-<grammar xmlns="http://relaxng.org/ns/structure/1.0"
4550- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
4551- ns="http://musicbrainz.org/ns/mmd-1.0#">
4552-
4553-
4554- <start>
4555- <ref name="def_metadata"/>
4556- </start>
4557-
4558-
4559- <define name="def_metadata">
4560- <element name="metadata">
4561- <optional>
4562- <attribute name="generator">
4563- <data type="anyURI"/>
4564- </attribute>
4565- </optional>
4566- <optional>
4567- <attribute name="created">
4568- <data type="dateTime"/>
4569- </attribute>
4570- </optional>
4571-
4572- <optional>
4573- <ref name="def_artist"/>
4574- </optional>
4575- <optional>
4576- <ref name="def_release"/>
4577- </optional>
4578- <optional>
4579- <ref name="def_track"/>
4580- </optional>
4581-
4582- <optional>
4583- <ref name="def_artist-list"/>
4584- </optional>
4585- <optional>
4586- <ref name="def_release-list"/>
4587- </optional>
4588- <optional>
4589- <ref name="def_track-list"/>
4590- </optional>
4591-
4592- <optional>
4593- <ref name="def_extension"/>
4594- </optional>
4595- </element>
4596- </define>
4597-
4598-
4599- <define name="def_artist">
4600- <element name="artist">
4601- <optional>
4602- <attribute name="id">
4603- <data type="anyURI"/>
4604- </attribute>
4605- </optional>
4606- <optional>
4607- <attribute name="type">
4608- <data type="anyURI"/>
4609- </attribute>
4610- </optional>
4611- <zeroOrMore>
4612- <ref name="def_any_attribute"/>
4613- </zeroOrMore>
4614-
4615- <optional>
4616- <element name="name">
4617- <text/>
4618- </element>
4619- </optional>
4620- <optional>
4621- <element name="sort-name">
4622- <text/>
4623- </element>
4624- </optional>
4625- <optional>
4626- <element name="disambiguation">
4627- <text/>
4628- </element>
4629- </optional>
4630- <optional>
4631- <element name="life-span">
4632- <optional>
4633- <attribute name="begin">
4634- <ref name="def_incomplete-date"/>
4635- </attribute>
4636- </optional>
4637- <optional>
4638- <attribute name="end">
4639- <ref name="def_incomplete-date"/>
4640- </attribute>
4641- </optional>
4642- </element>
4643- </optional>
4644-
4645- <optional>
4646- <ref name="def_alias-list"/>
4647- </optional>
4648- <optional>
4649- <ref name="def_release-list"/>
4650- </optional>
4651- <zeroOrMore>
4652- <ref name="def_relation-list"/>
4653- </zeroOrMore>
4654-
4655- <zeroOrMore>
4656- <ref name="def_extension"/>
4657- </zeroOrMore>
4658- </element>
4659- </define>
4660-
4661-
4662- <define name="def_release">
4663- <element name="release">
4664- <optional>
4665- <attribute name="id">
4666- <data type="anyURI"/>
4667- </attribute>
4668- </optional>
4669- <optional>
4670- <attribute name="type">
4671- <ref name="def_URI-list"/>
4672- </attribute>
4673- </optional>
4674- <zeroOrMore>
4675- <ref name="def_any_attribute"/>
4676- </zeroOrMore>
4677-
4678- <optional>
4679- <element name="title">
4680- <text/>
4681- </element>
4682- </optional>
4683- <optional>
4684- <element name="text-representation">
4685- <optional>
4686- <attribute name="language">
4687- <ref name="def_iso-639"/>
4688- </attribute>
4689- </optional>
4690- <optional>
4691- <attribute name="script">
4692- <ref name="def_iso-15924"/>
4693- </attribute>
4694- </optional>
4695- </element>
4696- </optional>
4697- <optional>
4698- <element name="asin">
4699- <data type="string">
4700- <param name="pattern">[A-Z0-9]{10}</param>
4701- </data>
4702- </element>
4703- </optional>
4704- <optional>
4705- <ref name="def_artist"/>
4706- </optional>
4707-
4708- <optional>
4709- <ref name="def_release-event-list"/>
4710- </optional>
4711- <optional>
4712- <ref name="def_disc-list"/>
4713- </optional>
4714- <optional>
4715- <ref name="def_puid-list"/>
4716- </optional>
4717- <optional>
4718- <ref name="def_track-list"/>
4719- </optional>
4720- <zeroOrMore>
4721- <ref name="def_relation-list"/>
4722- </zeroOrMore>
4723-
4724- <zeroOrMore>
4725- <ref name="def_extension"/>
4726- </zeroOrMore>
4727- </element>
4728- </define>
4729-
4730-
4731- <define name="def_track">
4732- <element name="track">
4733- <optional>
4734- <attribute name="id">
4735- <data type="anyURI"/>
4736- </attribute>
4737- </optional>
4738- <zeroOrMore>
4739- <ref name="def_any_attribute"/>
4740- </zeroOrMore>
4741- <optional>
4742- <element name="title">
4743- <text/>
4744- </element>
4745- </optional>
4746- <optional>
4747- <element name="duration">
4748- <data type="nonNegativeInteger"/>
4749- </element>
4750- </optional>
4751- <optional>
4752- <ref name="def_artist"/>
4753- </optional>
4754-
4755- <optional>
4756- <ref name="def_release-list"/>
4757- </optional>
4758- <optional>
4759- <ref name="def_puid-list"/>
4760- </optional>
4761- <zeroOrMore>
4762- <ref name="def_relation-list"/>
4763- </zeroOrMore>
4764-
4765- <zeroOrMore>
4766- <ref name="def_extension"/>
4767- </zeroOrMore>
4768- </element>
4769- </define>
4770-
4771-
4772- <define name="def_relation">
4773- <element name="relation">
4774- <attribute name="type">
4775- <data type="anyURI"/>
4776- </attribute>
4777- <attribute name="target">
4778- <data type="anyURI"/>
4779- </attribute>
4780- <optional>
4781- <attribute name="direction">
4782- <ref name="def_direction"/>
4783- </attribute>
4784- </optional>
4785- <optional>
4786- <attribute name="attributes">
4787- <ref name="def_URI-list"/>
4788- </attribute>
4789- </optional>
4790- <optional>
4791- <attribute name="begin">
4792- <ref name="def_incomplete-date"/>
4793- </attribute>
4794- </optional>
4795- <optional>
4796- <attribute name="end">
4797- <ref name="def_incomplete-date"/>
4798- </attribute>
4799- </optional>
4800-
4801- <optional>
4802- <choice>
4803- <ref name="def_artist"/>
4804- <ref name="def_release"/>
4805- <ref name="def_track"/>
4806-
4807- <ref name="def_extension"/>
4808- </choice>
4809- </optional>
4810- </element>
4811- </define>
4812-
4813-
4814- <define name="def_alias">
4815- <element name="alias">
4816- <optional>
4817- <attribute name="type">
4818- <data type="anyURI"/>
4819- </attribute>
4820- </optional>
4821- <optional>
4822- <attribute name="script">
4823- <ref name="def_iso-15924"/>
4824- </attribute>
4825- </optional>
4826- <text/>
4827- </element>
4828- </define>
4829-
4830-
4831- <define name="def_extension">
4832- <element>
4833- <anyName>
4834- <except>
4835- <nsName ns="http://musicbrainz.org/ns/mmd-1.0#"/>
4836- <nsName ns=""/>
4837- </except>
4838- </anyName>
4839- <zeroOrMore>
4840- <choice>
4841- <attribute>
4842- <anyName/>
4843- </attribute>
4844- <text/>
4845- <ref name="def_anything"/>
4846- </choice>
4847- </zeroOrMore>
4848- </element>
4849- </define>
4850-
4851-
4852- <define name="def_anything">
4853- <element>
4854- <anyName>
4855- <except>
4856- <nsName ns=""/>
4857- </except>
4858- </anyName>
4859- <zeroOrMore>
4860- <choice>
4861- <attribute>
4862- <anyName/>
4863- </attribute>
4864- <text/>
4865- <ref name="def_anything"/>
4866- </choice>
4867- </zeroOrMore>
4868- </element>
4869- </define>
4870-
4871-
4872- <define name="def_any_attribute">
4873- <attribute>
4874- <anyName>
4875- <except>
4876- <nsName ns=""/>
4877- </except>
4878- </anyName>
4879- </attribute>
4880- </define>
4881-
4882-
4883- <define name="def_artist-list">
4884- <element name="artist-list">
4885- <ref name="def_list-attributes"/>
4886- <zeroOrMore>
4887- <ref name="def_artist"/>
4888- </zeroOrMore>
4889- </element>
4890- </define>
4891-
4892-
4893- <define name="def_release-list">
4894- <element name="release-list">
4895- <ref name="def_list-attributes"/>
4896- <zeroOrMore>
4897- <ref name="def_release"/>
4898- </zeroOrMore>
4899- </element>
4900- </define>
4901-
4902-
4903- <define name="def_alias-list">
4904- <element name="alias-list">
4905- <ref name="def_list-attributes"/>
4906- <zeroOrMore>
4907- <ref name="def_alias"/>
4908- </zeroOrMore>
4909- </element>
4910- </define>
4911-
4912-
4913- <define name="def_track-list">
4914- <element name="track-list">
4915- <ref name="def_list-attributes"/>
4916- <zeroOrMore>
4917- <ref name="def_track"/>
4918- </zeroOrMore>
4919- </element>
4920- </define>
4921-
4922-
4923- <define name="def_release-event-list">
4924- <element name="release-event-list">
4925- <ref name="def_list-attributes"/>
4926- <zeroOrMore>
4927- <element name="event">
4928- <attribute name="date">
4929- <ref name="def_incomplete-date"/>
4930- </attribute>
4931- <optional>
4932- <attribute name="country">
4933- <ref name="def_iso-3166"/>
4934- </attribute>
4935- </optional>
4936- </element>
4937- </zeroOrMore>
4938- </element>
4939- </define>
4940-
4941-
4942- <define name="def_disc-list">
4943- <element name="disc-list">
4944- <ref name="def_list-attributes"/>
4945- <zeroOrMore>
4946- <element name="disc">
4947- <attribute name="id">
4948- <data type="string">
4949- <param name="pattern">[a-zA-Z0-9._]{27}-</param>
4950- </data>
4951- </attribute>
4952- <optional>
4953- <attribute name="sectors">
4954- <data type="nonNegativeInteger"/>
4955- </attribute>
4956- </optional>
4957- </element>
4958- </zeroOrMore>
4959- </element>
4960- </define>
4961-
4962-
4963- <define name="def_puid-list">
4964- <element name="puid-list">
4965- <ref name="def_list-attributes"/>
4966- <zeroOrMore>
4967- <element name="puid">
4968- <attribute name="id">
4969- <ref name="def_uuid"/>
4970- </attribute>
4971- </element>
4972- </zeroOrMore>
4973- </element>
4974- </define>
4975-
4976-
4977- <define name="def_relation-list">
4978- <element name="relation-list">
4979- <attribute name="target-type">
4980- <data type="anyURI"/>
4981- </attribute>
4982- <ref name="def_list-attributes"/>
4983- <zeroOrMore>
4984- <ref name="def_relation"/>
4985- </zeroOrMore>
4986- </element>
4987- </define>
4988-
4989-
4990- <define name="def_list-attributes">
4991- <optional>
4992- <attribute name="count">
4993- <data type="nonNegativeInteger"/>
4994- </attribute>
4995- </optional>
4996- <optional>
4997- <attribute name="offset">
4998- <data type="nonNegativeInteger"/>
4999- </attribute>
5000- </optional>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: