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ó:
.xsdel documento es el artefacto / .jararchivo
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 .xsdarchivo, para un nuevo esquema.
targetNamespacees el nombre del artefacto que crea. Como puede averiguarlo usted mismo, targetNamespacese usa al crear un esquema, en un .xsdarchivo.
Una vez que .xsdse 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 -
xmlnsse utiliza tanto como una packagedeclaración, así como la importdeclaración en Java. En el .xsdarchivo, xmlnsactúa como la packagedeclaración " ", mientras que en los .xmlarchivos, actúa como la importdeclaración " ".