네임스페이스 접두사를 제어하는 방법(LINQ to XML)
이 문서에서는 C# 및 Visual Basic에서 XML 트리를 직렬화할 때 네임스페이스 접두사를 제어하는 방법을 설명합니다.
대부분의 경우에는 네임스페이스 접두사를 제어할 필요가 없습니다. 그러나 특정 XML 프로그래밍 도구에서는 이를 필요로 합니다. 예를 들어, XSLT 스타일시트나 특정 네임스페이스 접두사를 참조하는 포함된 XPath 식이 포함된 XAML 문서를 조작할 수 있습니다. 이러한 경우 해당 접두사를 사용하여 문서를 직렬화해야 합니다. 이는 네임스페이스 접두사를 제어해야 하는 일반적인 경우입니다.
또 다른 이유는 사용자가 XML 문서를 수동으로 편집할 수 있도록 하고 사용자가 입력하기 편리한 네임스페이스 접두사를 만들려고 하기 때문입니다. 예를 들어, XSD 문서를 생성할 수 있습니다. 스키마 규칙에서는 스키마 네임스페이스의 접두사로 xs
또는 xsd
를 사용하도록 제안합니다.
네임스페이스 접두사를 제어하려면 네임스페이스를 선언하는 특성을 삽입합니다. 특정 접두사가 있는 네임스페이스를 선언하면 LINQ to XML은 직렬화할 때 네임스페이스 접두사를 적용하려고 시도합니다.
접두사가 포함된 네임스페이스를 선언하는 특성을 만들려면 특성 이름의 네임스페이스가 Xmlns이고 특성의 이름이 네임스페이스 접두사인 특성을 만듭니다. 특성 값은 네임스페이스의 URI입니다.
예: 접두사가 있는 두 개의 네임스페이스 만들기
이 예제에서는 두 네임스페이스를 선언한 다음 이는 http://www.adventure-works.com
네임스페이스에 접두사 aw
를 지정하고, www.fourthcoffee.com
네임스페이스에 접두사 fc
를 지정합니다.
XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XElement root = new XElement(aw + "Root",
new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
new XAttribute(XNamespace.Xmlns + "fc", "www.fourthcoffee.com"),
new XElement(fc + "Child",
new XElement(aw + "DifferentChild", "other content")
),
new XElement(aw + "Child2", "c2 content"),
new XElement(fc + "Child3", "c3 content")
);
Console.WriteLine(root);
Imports <xmlns:aw="http://www.adventure-works.com">
Imports <xmlns:fc="www.fourthcoffee.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>
Console.WriteLine(root)
End Sub
This example produces the following output:
```xml
<aw:Root xmlns:aw="http://www.adventure-works.com" xmlns:fc="www.fourthcoffee.com">
<fc:Child>
<aw:DifferentChild>other content</aw:DifferentChild>
</fc:Child>
<aw:Child2>c2 content</aw:Child2>
<fc:Child3>c3 content</fc:Child3>
</aw:Root>
참고 항목
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기