Merge pull request #563 from openseadragon/dzi

Fixed: DZI tilesource was broken
This commit is contained in:
Ian Gilman 2015-01-12 14:19:43 -08:00
commit 4af47ad905

View File

@ -107,9 +107,11 @@ $.extend( $.DziTileSource.prototype, $.TileSource.prototype, /** @lends OpenSead
var ns; var ns;
if ( data.Image ) { if ( data.Image ) {
ns = data.Image.xmlns; ns = data.Image.xmlns;
} else if ( data.documentElement && "Image" == data.documentElement.localName ) { } else if ( data.documentElement) {
if ("Image" == data.documentElement.localName || "Image" == data.documentElement.tagName) {
ns = data.documentElement.namespaceURI; ns = data.documentElement.namespaceURI;
} }
}
return ( "http://schemas.microsoft.com/deepzoom/2008" == ns || return ( "http://schemas.microsoft.com/deepzoom/2008" == ns ||
"http://schemas.microsoft.com/deepzoom/2009" == ns ); "http://schemas.microsoft.com/deepzoom/2009" == ns );
@ -221,7 +223,7 @@ function configureFromXML( tileSource, xmlDoc ){
} }
var root = xmlDoc.documentElement, var root = xmlDoc.documentElement,
rootName = root.localName, rootName = root.localName || root.tagName,
ns = xmlDoc.documentElement.namespaceURI, ns = xmlDoc.documentElement.namespaceURI,
configuration = null, configuration = null,
displayRects = [], displayRects = [],
@ -234,7 +236,10 @@ function configureFromXML( tileSource, xmlDoc ){
if ( rootName == "Image" ) { if ( rootName == "Image" ) {
try { try {
sizeNode = root.getElementsByTagName("Size" )[ 0 ];
if (sizeNode === undefined) {
sizeNode = root.getElementsByTagNameNS(ns, "Size" )[ 0 ]; sizeNode = root.getElementsByTagNameNS(ns, "Size" )[ 0 ];
}
configuration = { configuration = {
Image: { Image: {
@ -257,11 +262,17 @@ function configureFromXML( tileSource, xmlDoc ){
); );
} }
dispRectNodes = root.getElementsByTagNameNS(ns, "DisplayRect" ); dispRectNodes = root.getElementsByTagName("DisplayRect" );
if (dispRectNodes === undefined) {
dispRectNodes = root.getElementsByTagNameNS(ns, "DisplayRect" )[ 0 ];
}
for ( i = 0; i < dispRectNodes.length; i++ ) { for ( i = 0; i < dispRectNodes.length; i++ ) {
dispRectNode = dispRectNodes[ i ]; dispRectNode = dispRectNodes[ i ];
rectNode = dispRectNode.getElementsByTagName("Rect" )[ 0 ];
if (rectNode === undefined) {
rectNode = dispRectNode.getElementsByTagNameNS(ns, "Rect" )[ 0 ]; rectNode = dispRectNode.getElementsByTagNameNS(ns, "Rect" )[ 0 ];
}
displayRects.push({ displayRects.push({
Rect: { Rect: {