Другие ответы здесь хороши, поэтому я не буду повторять их объяснения здесь. Тем не менее, если кто-то из Java-фона, найти его проще, вот аналогия, которую я придумал -
.xsd
документ является артефактом / .jar
файл
xmlns
является
package com.example
заявление, вы объявляете в верхней части Java классов.
Рассмотрим (для аналогии), если в вашем проекте Java был один пакет, и все классы объявлены и определены в одном внешнем классе .
Например,
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;
...
}
}
Так различные элементы группируются в один файл .xsd
для новой схемы.
targetNamespace
- это имя артефакта, который вы создаете. Как вы сами можете это выяснить, targetNamespace
используется при создании схемы, в .xsd
файле.
После создания артефакта (или файла .xsd
) его можно использовать в других проектах следующим образом -
В проекте Java вы импортируете библиотеку, используя файл pom.xml
(или build.gradle
), как показано ниже -
<dependency>
<groupId>com.furniture</groupId>
<artifactId>furniture-apis</artifactId>
<version>1.1.1</version>
</dependency>
В XML вы бы "импортировали" схему, используя
<furniture xmlns="http://furniture.com"/>
=== ПРИЛОЖЕНИЕ ===
Разъяснение -
xmlns
используется как оператор package
, а также оператор import
в Java. В .xsd
файле xmlns
действует как оператор "package
", тогда как в .xml
файлах он действует как оператор "import
".