title: How do XML namespaces work without a working network connection?
body: <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:context="http://www.springframework.org/schema/context"
  
         xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd
             http://www.springframework.org/schema/aop
             http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
             http://www.springframework.org/schema/context
             http://www.springframework.org/schema/context/spring-context-2.1.xsd"&gt;
  
    &lt;context:component-scan
        base-package="com.springinaction.chapter01.knight" /&gt;
  
  &lt;/beans&gt;
  </code></pre>
  
  <p>The above example shows an example of an XML file with several namespaces. What is the purpose of these namespaces and most importantly why do they work even where there is no Internet connection? </p>
  
  <p>I think the second bit that starts with <code>xsi:schemaLocation</code> contains the XML schema files which are used to validate the structure of the XML document. How come these still work if I run the application that uses this configuration file on a machine that is not on a network? Are the URLs somehow aliases to JAR files?</p>