목차
예시 1: 핵심 사항 네임스페이스 관련 개념 이해" > 예시 1: 핵심 사항 네임스페이스 관련 개념 이해
백엔드 개발 XML/RSS 튜토리얼 XML 및 스키마 네임스페이스의 특정 예제 코드 공유

XML 및 스키마 네임스페이스의 특정 예제 코드 공유

Apr 01, 2017 pm 01:55 PM

위에서 언급한 XML과 Schema의 네임스페이스와 관련된 내용을 예시를 통해 자세히 소개합니다.

예시 1: 핵심 사항 네임스페이스 관련 개념 이해

다음 예는 "note.xsd"라는 XML 스키마 파일입니다.

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xsd:element name="note">
      <xsd:complexType>
         <xsd:sequence>
           <xsd:element name="to" type="xs:string"/>
           <xsd:element name="from" type="xs:string"/>
           <xsd:element name="heading" type="xs:string"/>
           <xsd:element name="body" type="xs:string"/>
        </xsd:sequence>
      </xsd:complexType>
</xsd:element>
</xsd:schema>
로그인 후 복사

아래의 XML 문서와 위에 제공된 문서입니다. "note.xml"이라는 XML 스키마와 연관되어 있으며 다음 논의에서는 이 두 문서에 중점을 둘 것입니다. "www.w3.org/2001/XMLSchema", 이 스키마가 사용됨을 나타냅니다. 요소와

데이터 유형

은 "www.w3.org/2001/에서 옵니다. XMLSchema" 네임스페이스("www.w3.org"에서 가져온 것으로 명시되어 있음). /2001/XMLSchema"네임스페이스 요소 및 데이터 유형은 "xsd: " 접두사. 네임스페이스 식별자(요소 또는 속성 에 대한 접두사로 선언에서)로 xsd 또는 xsi 없이 사용할 수도 있습니다. 이 xmlns 속성에는 요소, attribute, complexType, group, simpleType 등


모든 XML 스키마 정의 문서(XSD)에는 최상위 스키마(XSD) 요소가 있습니다. 정의에는 이 네임스페이스가 포함되어야 합니다. : www.w3.org/2001/XMLSchema. 즉, 이 네임스페이스는 XML 스키마 사양에 의해 정의된 표준 네임스페이스입니다. 모든 XML 스키마 요소는 이 네임스페이스에 속해야 합니다. targetNamespace=" www.w3schools.com"은 이 스키마를 나타냅니다. (note, to, from, Heading, body)로 정의된 요소는 "www.w3schools.com" 네임스페이스에서 나옵니다. targetNamespace 속성은 스키마에 해당하는 네임스페이스의 URI를 나타냅니다. 즉, 네임스페이스는 스키마를 참조하는 다른 문서(자체 문서 포함)에서 선언되어야 하며 해당 URI는 targetNamespace의 속성 값이어야 합니다. 예를 들어 여기서는 note.xsd에 의해 정의된 확장 데이터 유형을 사용해야 합니다(참고, to, from, header, body)이므로 네임스페이스 xmlns="www.w3schools.com"도 선언됩니다. 그리고 네임스페이스는 기본 네임스페이스입니다(접두사 없음). targetNamespace 특성은 스키마에서 명시적으로 생성된 모든 새 유형에 대한 XML 네임스페이스를 선언합니다.

이 스키마로 지정된 XML 문서 note.xml의 시작 부분이 어떻게 보이는지 살펴보겠습니다.

<note xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
로그인 후 복사

其中缺省名称空间声明xmlns="www.w3schools.com"就是和刚刚声明的XML Schema的名称空间相结合来规定该XML文档。(即该文档用到了此名称空间中定义的数据) xmlns:xsi="www.w3.org/2001/XMLSchema-instance" 是任何XML实例文档固有的XML模式实例名称空间,它由XML模式规范定义。而xsi:schemaLocation="www.w3schools.com note.xsd"则规定了该名称空间所对应的schema的位置,即在相同路径的note.xsd文件。

例二:重点理解Schema文档使用自身定义类型

xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找。修改一下note.xsd,去除默认名称空间的声明,并添加一个复杂类型:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
elementFormDefault="qualified">
<xsd:element name="note">
      <xsd:complexType>
        <xsd:sequence>
       <xsd:element name="to" type="xs:string"/>
       <xsd:element name="from" type="xs:string"/>
<xsd:element name="heading" type="xs:string"/>
       <xsd:element name="body" type="xs:string"/>
       </xsd:sequence>
      </xsd:complexType>
</xsd:element>
<xsd:element name="Student" type="stu"/> 
  <xsd:complexType name="stu"> 
  <xsd:sequence> 
   <xsd:element name="Name" type="xs:string"/> 
   <xsd:element name="Class" type="xs:string"/> 
  </xsd:sequence> 
 </xsd:complexType> 
</xsd:schema>
로그인 후 복사

上述代码中,复杂类型stu是找不到的,因为你定义了一个名称空间"www.w3schools.com",该复杂类型存在于"www.w3schools.com"中,因此应该修改代码如下:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns:student="http://www.w3schools.com"
elementFormDefault="qualified">
<xsd:element name="note">
      <xsd:complexType>
        <xsd:sequence>
       <xsd:element name="to" type="xs:string"/>
       <xsd:element name="from" type="xs:string"/>
<xsd:element name="heading" type="xs:string"/>
       <xsd:element name="body" type="xs:string"/>
       </xsd:sequence>
      </xsd:complexType>
</xsd:element>
<xsd:element name="Student" type="student:stu"/> 
  <xsd:complexType name="stu"> 
  <xsd:sequence> 
   <xsd:element name="Name" type="xs:string"/> 
   <xsd:element name="Class" type="xs:string"/> 
  </xsd:sequence> 
 </xsd:complexType> 
</xsd:schema>
로그인 후 복사

        若自身并不使用重用组件,仅供外部使用的话,则只定义targetNameSpace就可以,不用指定别名。
        通过上面的例子,我们可以很深刻的理解targetNameSpace。targetNamespace定义了Schema定义的新元素与属性的名称空间。而"www.w3.org/2001/XMLSchema"名称空间则定义了element, attribute, complexType, group, simpleType等元素。

    理解了上面的两个例子,Schema的命名空间的内容应该就明了了。



위 내용은 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++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에서 개발한 소프트웨어입니다. 이는 포괄적인 방법을 제공합니다.

Python에서 XML 데이터를 CSV 형식으로 변환 Python에서 XML 데이터를 CSV 형식으로 변환 Aug 11, 2023 pm 07:41 PM

Python의 XML 데이터를 CSV 형식으로 변환 XML(ExtensibleMarkupLanguage)은 데이터 저장 및 전송에 일반적으로 사용되는 확장 가능한 마크업 언어입니다. CSV(CommaSeparatedValues)는 데이터 가져오기 및 내보내기에 일반적으로 사용되는 쉼표로 구분된 텍스트 파일 형식입니다. 데이터를 처리할 때, 간편한 분석과 처리를 위해 XML 데이터를 CSV 형식으로 변환해야 하는 경우가 있습니다. 파이썬은 강력하다

PHP 오류 해결: 지정된 네임스페이스 클래스를 찾을 수 없습니다. PHP 오류 해결: 지정된 네임스페이스 클래스를 찾을 수 없습니다. Aug 18, 2023 pm 11:28 PM

PHP 오류 해결: 지정된 네임스페이스 클래스를 찾을 수 없습니다. PHP를 사용하여 개발할 때 다양한 오류 메시지가 자주 발생합니다. 일반적인 오류 중 하나는 "지정된 네임스페이스 클래스를 찾을 수 없습니다"입니다. 이 오류는 일반적으로 가져온 클래스 파일이 제대로 네임스페이스를 참조하지 않기 때문에 발생합니다. 이 문서에서는 이 문제를 해결하는 방법을 설명하고 몇 가지 코드 예제를 제공합니다. 먼저 일반적인 오류 메시지의 예를 살펴보겠습니다. Fatalerror:UncaughtError:C

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#을 사용하여 이 두 가지 데이터 형식을 처리하고 첨부하는 방법에 중점을 둘 것입니다.

Python을 사용하여 XML로 데이터 확인 구현 Python을 사용하여 XML로 데이터 확인 구현 Aug 10, 2023 pm 01:37 PM

Python을 사용하여 XML로 데이터 검증 구현 소개: 실생활에서 우리는 종종 다양한 데이터를 처리하며, 그중 XML(Extensible Markup Language)이 일반적으로 사용되는 데이터 형식입니다. XML은 가독성과 확장성이 좋아 데이터 교환, 구성 파일 등 다양한 분야에서 널리 사용됩니다. XML 데이터를 처리할 때 데이터의 무결성과 정확성을 보장하기 위해 데이터를 확인해야 하는 경우가 많습니다. 이 기사에서는 Python을 사용하여 XML로 데이터 검증을 구현하는 방법을 소개하고 그에 상응하는 결과를 제공합니다.

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

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

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

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을 구문 분석하고, 제품 정보를 추출하고, 변환하여 데이터베이스에 저장합니다.

See all articles