Otras respuestas son buenas aquí, por lo que no repetiré sus explicaciones aquí. Sin embargo, si alguien con experiencia en Java encuentra que es más simple, aquí está la analogía que se me ocurrió:
.xsd
el documento es el artefacto / .jar
archivo
xmlns
es el
package com.example
declaración, declara en la parte superior de sus clases de Java .
Considere (por analogía), si tuviera un solo paquete en su proyecto Java, y todas las clases están declaradas y definidas dentro de una sola clase externa.
Por ejemplo,
package com.furniture.models
public class FurnitureShop {
int noOfTables;
int noOfChairs;
int noOfBeds;
List<Table> tables;
List<Chair> chairs;
List<Bed> beds;
// and now instead of declaring and defining a class for table/chair/bed in a
// separate file, you just add it here
public static class Table {
int height;
int width;
int length;
...
}
public static class Chair {
String color;
ChairType chairType;
...
}
public static class Sofa {
int price;
String color;
...
}
}
Así es como se agrupan diferentes elementos en un solo .xsd
archivo, para un nuevo esquema.
targetNamespace
es el nombre del artefacto que crea. Como puede averiguarlo usted mismo, targetNamespace
se usa al crear un esquema, en un .xsd
archivo.
Una vez que .xsd
se crea el artefacto (o archivo), lo usaría en otros proyectos de la siguiente manera:
En un proyecto de Java, importaría la biblioteca, usando pom.xml
(o build.gradle
) el archivo de la siguiente manera:
<dependency>
<groupId>com.furniture</groupId>
<artifactId>furniture-apis</artifactId>
<version>1.1.1</version>
</dependency>
En XML, "importaría" el esquema usando
<furniture xmlns="http://furniture.com"/>
=== APÉNDICE ===
Aclaración -
xmlns
se utiliza tanto como una package
declaración, así como la import
declaración en Java. En el .xsd
archivo, xmlns
actúa como la package
declaración " ", mientras que en los .xml
archivos, actúa como la import
declaración " ".