목차
네임스페이스 선언의 일반적인 형식은 다음과 같습니다. 첫 번째 부분은 키워드 xmlns입니다. 두 번째 부분은 네임스페이스의 접두사, 세 번째 부분은 등호, 네 번째 부분은 큰따옴표, 다섯 번째 부분은 네임스페이스 식별자 URI가 포함될 수 없다는 점에 유의해야 합니다. , 이 문자열 은 XML에서 특별한 목적으로 예약되어 있기 때문입니다. 예: " > 네임스페이스 선언의 일반적인 형식은 다음과 같습니다. 첫 번째 부분은 키워드 xmlns입니다. 두 번째 부분은 네임스페이스의 접두사, 세 번째 부분은 등호, 네 번째 부분은 큰따옴표, 다섯 번째 부분은 네임스페이스 식별자 URI가 포함될 수 없다는 점에 유의해야 합니다. , 이 문자열 은 XML에서 특별한 목적으로 예약되어 있기 때문입니다. 예:
(1) 스키마 " > (1) 스키마
     3、XML文档中命名空间" >     3、XML文档中命名空间
     (1).名称空间限定整个XML文档" >     (1).名称空间限定整个XML文档
     (2)名称空间只针对XML文档中的一部分" >     (2)名称空间只针对XML文档中的一部分
     (3)嵌套的命名空间" >     (3)嵌套的命名空间
     (4)schemaLocation" >     (4)schemaLocation
   (5)noNamespaceSchemaLocation " >   (5)noNamespaceSchemaLocation 
백엔드 개발 XML/RSS 튜토리얼 XML 및 스키마 네임스페이스에 대한 자세한 소개

XML 및 스키마 네임스페이스에 대한 자세한 소개

Apr 01, 2017 pm 01:51 PM

XML과 스키마는 플랫폼 독립적, 기술 공급업체 독립적, 단순성, 사양 통일성이라는 특징을 갖고 있으며 매우 개방적이어서 널리 사용되고 사용하기 쉽습니다. . XML, 스키마 및 개인에서 이해하기 어려운 것 중 하나는 네임스페이스 입니다.

네임스페이스는 W3C 권장 표준에서 제공하는 통합 명명 요소입니다. 및 속성 메커니즘 . 이름 충돌을 피하면서 XML 문서의 다양한 마크업 어휘의 요소와 속성을 명확하게 식별하고 결합하려면 DTD는 이름 충돌이 DTD의 주요 문제라는 점을 알아야 하며, 스키마에 네임스페이스 개념을 도입하면 이 문제가 매우 잘 해결됩니다.

1. 네임스페이스 선언

네임스페이스 선언의 일반적인 형식은 다음과 같습니다. 첫 번째 부분은 키워드 xmlns입니다. 두 번째 부분은 네임스페이스의 접두사, 세 번째 부분은 등호, 네 번째 부분은 큰따옴표, 다섯 번째 부분은 네임스페이스 식별자 URI가 포함될 수 없다는 점에 유의해야 합니다. , 이 문자열 은 XML에서 특별한 목적으로 예약되어 있기 때문입니다. 예:

xmlns:tns="http://www.whtest.com/"    
//其中tns为前缀。
로그인 후 복사
또한 암시적으로 네임스페이스를 선언합니다. 즉, 콜론과 네임스페이스 접두사를 생략합니다. 예:

xmlns="http://www.whtest.com/"   //注意在一个文档中只能有一个隐式声明的命名空间
로그인 후 복사

2. 스키마 네임스페이스 위치:

(1) 스키마

의 전역 구성 요소는 xsd 요소의 직접 하위 노드를 참조합니다. 요소 선언, 속성 선언, 복합/단순 유형 정의, 그룹 정의 및 속성 그룹 정의를 포함한 스키마. >
<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“>
   // Schema的目标名称空间用属性targetNamespace在根元素上定义。
   //Schema的全局成分被放在名称空间http://www.test.com/ns/ns_test里。
로그인 후 복사

(2)

스키마의 비전역 구성 요소
때로는 비전역 구성 요소를 정의하고 싶을 때가 있습니다. 대상 공간에서 다음 방법을 사용할 수 있습니다

<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“
elementFormDefault=“qualified“>
로그인 후 복사
elementFormDefault 속성의 기본값은 unqualified입니다. 이는 공백의 대상 이름에 전역 구성 요소만 정의된다는 의미입니다. 대상 네임스페이스에 비전역 요소 정의가 포함되도록 elementFormDefault 값을qualified에 할당합니다. 마찬가지로, attributeFormDefault 값을qualified에 할당하면 대상 네임스페이스에 비전역 특성

정의가 포함됩니다. 다음과 같습니다.

<?xml version=”1.0”>
<xsd:schema xmlns:xsd=”http://www.w3.org/XML_Schema”
targetNamespace=“http://www.test.com/ns/ns_test“
attributeFormDefault=“qualified“>
로그인 후 복사

일부 비전역 구성 요소가 네임스페이스에 포함되지 않도록 특성 양식의 값을 수정할 수도 있습니다. 다음과 같습니다.

<xsd:element name=”name” type=”xsd:string” form=”unqualified”/>
로그인 후 복사

(3)targetNamespace

xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找。

targetNamespace定义了Schema定义的新元素与属性的名称空间。而"www.w3.org/2001/XMLSchema"名称空间则定义了element, attribute, complexType, group, simpleType等元素。

若自身并不使用重用组件,仅供外部使用的话,则只定义targetNameSpace就可以,不用指定别名。

3、XML文档中命名空间

在XML中,名称空间的使用涉及范畴的概念,范畴即名称空间的覆盖范围,它指的是哪些元素和属性在该名称空间中,哪些不在该名称空间中。名称空间既可以限定整个XML文档,也可以只针对XML文档中的一部分。

(1).名称空间限定整个XML文档

<?xml version=”1.0”?>
<member_details xmlns=”http://www.testns.com/ns.xsd”>
   <name>Tom</name>
   <age>12</age>
   <sex>male</sex>
</member_details>
로그인 후 복사

(2)名称空间只针对XML文档中的一部分

<?xml version=”1.0”?>
<member_details>
   <name xmlns=”http://www.testns.com/ns.xsd”>Tom</name>
   <age>12</age>
   <sex>male</sex>
</member_details>
로그인 후 복사

(3)嵌套的命名空间

<?xml version=”1.0”?>
<member_details xmlns=”http://www.testns.com/ns.xsd”
xmlns:newns=”http://www.testns/newns.xsd”>
   <name>Tom</name>
   <age>12</age>
   <newns:sex>male</sex>
</member_details>
// 此例中,除了元素sex被定义在新的名称空间中外,其余的元素仍然使用原来的名称空间。
로그인 후 복사

(4)schemaLocation

schemaLocation 属性引用具有目标名称空间的 XML 架构文档(.xsd)。该xml文件中用到的所有新创的元素、属性等的.xsd文件都必须在这里声明。

<xsi:schemaLocation="list of anyURI" >
로그인 후 복사

其中的anyURI是一个架构位置,该架构包含限定的(具有名称空间的架构)架构构造。每一对中的第一个 URI 引用是名称空间名称,第二个则是描述名称空间的架构的位置。

将具有目标名称空间的架构文档与实例文档相关联。可以列出多对 URI 引用,每一对都有不同的名称空间名称部分。
根据万维网联合会 (W3C) XML 架构建议,XML 实例文档可以同时指定 xsi:schemaLocation 和 xsi:noNamespaceSchemaLocation 属性。此外,还可以多次列出同一个命名空间。

以下示例显示如何使用 xsi:schemaLocation 属性为多个 XML 架构文档提供位置信息。

<p:Person
   xmlns:p="http://contoso.com/People"
   xmlns:v="http://contoso.com /Vehicles"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation=
     "http://contoso.com/People 
      http://contoso.com/schemas/people.xsd 
      http://contoso.com/schemas/Vehicles
      http://contoso.com/schemas/vehicles.xsd
      http://contoso.com/schemas/People
      http://contoso.com/schemas/people.xsd">
   <name>John</name>
   <age>28</age>
   <height>59</height>
   ....
</p:Person>
로그인 후 복사

(5)noNamespaceSchemaLocation

noNamespaceSchemaLocation 属性引用没有目标名称空间的 XML 架构文档。

    <xsi:noNamespaceSchemaLocation="anyURI" >
로그인 후 복사

与SchemaLocation相同anyURI是一个架构位置,该架构包含非限定的(没有名称空间的架构)架构构造。

不要求 XML 架构有名称空间。若要为没有目标名称空间的 XML 架构指定位置,请使用 noNamespaceSchemaLocation 属性。此属性中引用的 XML 架构不能有目标名称空间。因为此属性不接受 URL 列表,所以只能指定一个架构位置。
根据万维网联合会 (W3C) XML 架构建议,XML 实例文档可以同时指定 xsi:schemaLocation 和 xsi:noNamespaceSchemaLocation 属性。

以下示例显示如何对包含非限定元素的实例文档使用 xsi:noNamespaceSchemaLocation 属性。

<?xml version="1.0" encoding="UTF-8"?>
<book:books xmlns:book="http://www.example.org/02"
	  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	  xsi:noNamespaceSchemaLocation="02.xsd">
	<book:book id="1">
		<book:title>Java in action</book:title>
		<book:content>Java is good</book:content>
		<book:author>Bruce</book:author>
	</book:book>
</book:books>
로그인 후 복사


     通过上边的分析,我们可以看到,XML和Schema的命名空间标签使用格式是相同的(这也是Schema相对与DTD的优势),但XML和Schema都有各自的独特的属性,这也是由他们不同的功能决定的,Schema主要给XML提供服务,所以会规定好targetNameSpace来声明命名空间的名字,而XML需要使用schema的服务,所以需要SchemaLocation来声明使用的命名空间。

위 내용은 XML 및 스키마 네임스페이스에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PowerPoint를 사용하여 XML 파일을 열 수 있나요? PowerPoint를 사용하여 XML 파일을 열 수 있나요? Feb 19, 2024 pm 09:06 PM

XML 파일을 PPT로 열 수 있나요? XML, Extensible Markup Language(Extensible Markup Language)는 데이터 교환 및 데이터 저장에 널리 사용되는 범용 마크업 언어입니다. HTML에 비해 XML은 더 유연하고 자체 태그와 데이터 구조를 정의할 수 있으므로 데이터 저장과 교환이 더 편리하고 통합됩니다. PPT 또는 PowerPoint는 프레젠테이션 작성을 위해 Microsoft에서 개발한 소프트웨어입니다. 이는 포괄적인 방법을 제공합니다.

C# 개발에서 XML 및 JSON 데이터 형식을 처리하는 방법 C# 개발에서 XML 및 JSON 데이터 형식을 처리하는 방법 Oct 09, 2023 pm 06:15 PM

C# 개발에서 XML 및 JSON 데이터 형식을 처리하려면 특정 코드 예제가 필요합니다. 최신 소프트웨어 개발에서는 XML과 JSON이 널리 사용되는 두 가지 데이터 형식입니다. XML(Extensible Markup Language)은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어인 반면, JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. C# 개발에서는 XML 및 JSON 데이터를 처리하고 조작해야 하는 경우가 많습니다. 이 기사에서는 C#을 사용하여 이 두 가지 데이터 형식을 처리하고 첨부하는 방법에 중점을 둘 것입니다.

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

PHP 함수를 사용하여 XML 데이터를 처리하는 방법은 무엇입니까? PHP 함수를 사용하여 XML 데이터를 처리하는 방법은 무엇입니까? May 05, 2024 am 09:15 AM

PHPXML 함수를 사용하여 XML 데이터 처리: XML 데이터 구문 분석: simplexml_load_file() 및 simplexml_load_string()은 XML 파일 또는 문자열을 로드합니다. XML 데이터에 액세스: SimpleXML 개체의 속성과 메서드를 사용하여 요소 이름, 속성 값 및 하위 요소를 가져옵니다. XML 데이터 수정: addChild() 및 addAttribute() 메서드를 사용하여 새 요소와 속성을 추가합니다. 직렬화된 XML 데이터: asXML() 메서드는 SimpleXML 객체를 XML 문자열로 변환합니다. 실제 예: 제품 피드 XML을 구문 분석하고, 제품 정보를 추출하고, 변환하여 데이터베이스에 저장합니다.

C++ 구문 오류: 정의되지 않은 네임스페이스가 사용되었습니다. 어떻게 처리하나요? C++ 구문 오류: 정의되지 않은 네임스페이스가 사용되었습니다. 어떻게 처리하나요? Aug 21, 2023 pm 09:49 PM

C++는 널리 사용되는 고급 프로그래밍 언어로 유연성과 확장성이 뛰어나지만 오류를 방지하려면 개발자가 문법 규칙을 엄격하게 숙지해야 합니다. 일반적인 오류 중 하나는 "정의되지 않은 네임스페이스 사용"입니다. 이 문서에서는 이 오류의 의미, 발생 이유, 해결 방법에 대해 설명합니다. 1. 정의되지 않은 네임스페이스의 용도는 무엇입니까? C++에서 네임스페이스는 모듈화되고 읽기 쉬운 상태로 유지하기 위해 재사용 가능한 코드를 구성하는 방법입니다. 네임스페이스를 사용하여 동일한 이름을 가진 함수를 만들 수 있습니다.

Java에서 Jackson 라이브러리를 사용하여 POJO를 XML로 변환하시겠습니까? Java에서 Jackson 라이브러리를 사용하여 POJO를 XML로 변환하시겠습니까? Sep 18, 2023 pm 02:21 PM

Jackson은 Java 개체를 JSON으로, JSON을 Java 개체로 변환하는 데 유용한 Java 기반 라이브러리입니다. JacksonAPI는 다른 API보다 빠르고 메모리 공간이 덜 필요하며 대형 개체에 적합합니다. XmlMapper 클래스의 writeValueAsString() 메서드를 사용하여 POJO를 XML 형식으로 변환하고 해당 POJO 인스턴스를 이 메서드에 매개 변수로 전달해야 합니다. 구문 publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingExceptionExampleimp

XML 구문 분석을 위한 Java 라이브러리 비교: 최상의 솔루션 찾기 XML 구문 분석을 위한 Java 라이브러리 비교: 최상의 솔루션 찾기 Mar 09, 2024 am 09:10 AM

소개 XML(Extensible Markup Language)은 데이터 저장 및 전송에 널리 사용되는 형식입니다. Java에서 XML을 구문 분석하는 것은 데이터 교환에서 문서 처리에 이르기까지 많은 응용 프로그램에 필요한 작업입니다. XML을 효율적으로 구문 분석하기 위해 개발자는 다양한 Java 라이브러리를 사용할 수 있습니다. 이 기사에서는 가장 널리 사용되는 XML 구문 분석 라이브러리 중 일부를 특징, 기능 및 성능에 중점을 두고 비교하여 개발자가 현명한 선택을 할 수 있도록 돕습니다. DOM(문서 개체 모델) 구문 분석 라이브러리 JavaXMLDOMAPI: Oracle에서 제공하는 표준 DOM 구현입니다. 개발자가 XML 문서에 액세스하고 조작할 수 있는 개체 모델을 제공합니다. DocumentBuilderFactoryfactory=D

PHP의 HTML/XML 파서 소개 및 사용법 PHP의 HTML/XML 파서 소개 및 사용법 Sep 10, 2023 pm 08:49 PM

PHP에서 HTML/XML 파서 소개 및 사용 소개 웹 애플리케이션을 개발할 때 HTML 또는 XML 문서를 처리해야 하는 경우가 많습니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 강력한 HTML/XML 파서를 제공하여 이러한 문서를 보다 쉽고 효율적으로 처리할 수 있도록 해줍니다. 이 기사에서는 PHP에서 일반적으로 사용되는 HTML/XML 파서와 사용법을 소개합니다. PHP의 HTML 파서: DOMDocumentDOMDocument는 PHP에 내장된 클래스입니다.

See all articles