Erro validação XML com XSD

Tenho o seguinte XML:

<?xml version="1.0" encoding="UTF-8"?>
<carro>
  <nome>Fusca</nome>
  <portas>2</portas>
  <motoristas>
    <motorista>
      <nome>Guilherme</nome>
    </motorista>
    <motorista>
      <nome>Leonardo</nome>
    </motorista>
  </motoristas>
</carro>

e o seguinte XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="carro" type="Carro" />
  <xsd:complexType name="Carro">
    <xsd:sequence>
      <xsd:element name="nome" type="xsd:string" minOccurs="1"
        maxOccurs="1" nillable="false"/>
      <xsd:element name="portas" type="xsd:int" minOccurs="1"
        maxOccurs="1" nillable="false"/>
      <xsd:element name="motoristas" type="Motorista" minOccurs="0"
        maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Motorista">
    <xsd:sequence>
      <xsd:element name="nome" minOccurs="1" maxOccurs="1"
        type="xsd:string" nillable="false"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

Faço a validação assim:

public class Validador {

    public void valida(File xml, File xsd) throws Exception {
        Source schemaFile = new StreamSource(xsd);
        Source xmlFile = new StreamSource(xml);
        SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema schema = schemaFactory.newSchema(schemaFile);
        Validator validator = schema.newValidator();
        validator.validate(xmlFile);
    }
}

Validador validador = new Validador();
try {
     validador.valida(new File("C:\\Users\\User\\Desktop\\xml\\xml.xml"),
             new File("C:\\Users\\User\\Desktop\\xml\\xsd.xsd"));
 } catch (Exception ex) {
     Logger.getLogger(TesteXML.class.getName()).log(Level.SEVERE, null, ex);
 }

Dá o seguinte erro:

org.xml.sax.SAXParseException; systemId: file:/C:/Users/Rodrigo/Desktop/xml/xml.xml; lineNumber: 6; columnNumber: 16; cvc-complex-type.2.4.a: Foi detectado um conteúdo inválido começando com o elemento 'motorista'. Era esperado um dos '{nome}'.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1796)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:746)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:379)

Logo depois da tag <motoristas> ele espera uma tag <nome>, mas quero inserir uma lista de motoristas e não apenas um motorista, preciso mudar o xsd para aceitar uma lista de acordo com meu xml?

Fiz direto aqui mas deverá ser assim:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="carro" type="Carro" />
  <xsd:complexType name="Carro">
    <xsd:sequence>
      <xsd:element name="nome" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
      <xsd:element name="portas" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
      <xsd:element name="motoristas" type="Motoristas" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>
 <xsd:complexType name="Motoristas">
    <xsd:sequence>
      <xsd:element name="motorista" minOccurs="1" maxOccurs="unbounded"  type="Motorista"/>
    </xsd:sequence>
   </xsd:complexType>
  <xsd:complexType name="Motorista">
    <xsd:sequence>
      <xsd:element name="nome" minOccurs="1" maxOccurs="1"  type="xsd:string" nillable="false"/>
    </xsd:sequence>
   </xsd:complexType>
</xsd:schema>

Deu certo, mas poderia me explicar?

Estou começando agora com XML, sei pouca coisa…

Eu só adicionei o elemento motoristas que tu tens no teu xml mas não tinhas no xsd.