我想知道如何用XML和XSD正確定義名稱空間。我有以下XML的文件:XML-XSD:如何正確定義名稱空間?
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<application
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:app="ms.xsd"
xsi:schemaLocation="ms.xsd">
<app:contactPerson>
<app:name>Florian</app:name>
<app:countryCode>FR</app:countryCode>
</app:contactPerson>
<app:contactPerson>
<app:name>Gabi</app:name>
<app:countryCode>DE,EE,EL,FI,FR,IE,UK</app:countryCode>
</app:contactPerson>
<app:contactPerson>
<app:name>Gert</app:name>
<app:countryCode>GB</app:countryCode>
</app:contactPerson>
<app:origin/>
</application>
和架構是由文件定義在同一文件夾ms.xsd:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="0.2"
targetNamespace="ms.xsd"
xmlns:app="ms.xsd">
<xs:element name="application" type="app:applicationType"/>
<xs:complexType name="applicationType">
<xs:sequence>
<xs:element name="contactPerson" type="app:contactPersonType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="origin" type="app:originType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="contactPersonType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="countryCode" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="originType">
<xs:sequence minOccurs="0">
<xs:element name="street" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="further_details" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
我已經嘗試了很多東西。我用這個(當前)最終版本得到的錯誤是
錯誤:元素「應用程序」:沒有匹配的全局聲明可用於驗證根目錄。
這是因爲xml文件中的xsd-reference位於應用程序標籤內,因此它太遲了?當我添加一個「信封」標籤並在其中放置xsd定義時,我收到消息
錯誤:元素'信封':沒有匹配的全局聲明可用於驗證根目錄。
所以現在我真的很困惑如何正確地做到這一點。我正在使用Notepadd ++中的XML-Tools驗證XML和XSD。
確實。非常感謝! –