2010-04-07 3 views
2
<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="abc" targetNamespace="http://schemas.businessNameHere.com/SoftwareNameHere" 
      elementFormDefault="qualified" 
      xmlns="http://schemas.businessNameHere.com/SoftwareNameHere" 
      xmlns:mstns="http://schemas.businessNameHere.com/SoftwareNameHere" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="..." type="..." /> 
<xs:complexType name="..."> 

저는 XSD를 사용하여 .cs 파일을 생성하는 프로젝트를 진행하고 있습니다. 내 질문에 관한 문자열 "http://schemas.businessNameHere.com/SoftwareNameHere"내가 그것을 변경하면, 그것은 작동하지 않습니다. 그러나 http : //는 유효한 것이 아닙니다 ... 뒤에있는 논리는 무엇이며 어디에 놓을 것인지 또는 어떻게 바꿀 것인지에 대한 정보는 어디서 얻을 수 있습니까?XSD 파일, xmlns 인수를 가져올 위치는 어디입니까?

답변

11

XSD 네임 스페이스가 유효한 URI 일 필요는 없습니다. URL 인 네임 스페이스 문자열을 갖는 것이 URL에서 가져온 것이거나 웹에서 할 일이 전혀 없다는 것을 의미하지는 않습니다. 이것은 단순히 다른 문자열과 같습니다. 따라서 URL이 실제로는 아무 것도 가리 키지 않는다는 의미에서 유효하지 않을 수도 있지만 여전히 유효한 네임 스페이스 선언입니다.

일부는 reasoning behind namespace identifiers being in this format here에서 읽을 수 있습니다.

URL을 네임 스페이스 식별자로 사용하는 데는 여러 가지 이유가 있지만 주로 편의를 위해 사용됩니다. 이는 일반적으로 Java 네임 스페이스가 "com"으로 시작하는 방식과 마찬가지로 사용자가 일반적으로 의미를 부여하는 고유 식별자입니다. ","org "또는"net ".

네임 스페이스가 URI 형식 (기술적으로 IRI) 인 이유에 대해 W3C's standards for XML namespaces을 읽을 수 있습니다. XML 네임 스페이스가 RFC3986에 정의 된 IRI (국제 자원 식별자) 형식으로 지정합니다.

네임 스페이스를 올바르게 사용하는 방법에 대한 자세한 내용은 많은 유용한 연습 사례가 있습니다 (like this one). 네임 스페이스를 변경할 때 작동하지 않는 것은 무엇입니까?

+0

아마도 "네임 스페이스가 유효한 URI 일 필요는 없습니다"라는 오타가있을 수 있습니다. 평균 URL? – xcut

+0

@xcut : 네임 스페이스는 URL을 포함하는 URI입니다. –

+3

나는 그 사실을 잘 알고 있습니다. 그래서 네임 스페이스 식별자가 유효한 URI 일 필요는 없다고 말하는 것은 잘못입니다. 그들은 해결할 수있는 URL 일 필요는 없습니다. – xcut

2

네임 스페이스는 고유해야한다는 것 이상의 의미 의미가 없습니다. 사람들은 일반적으로 문서를 가리킬 수있는 URI 형식을 사용하지만 이는 필수 사항은 아닙니다.

이 경우 기본 네임 스페이스이며 .cs 파일을 생성하는 데 사용중인 응용 프로그램을 사용하기 위해 하드 코드 된 것이 가능합니다.

잘 작성된 응용 프로그램에서 네임 스페이스 문자열을 변경하면 아무 문제가 없습니다.

2
xmlns="http://schemas.businessNameHere.com/SoftwareNameHere" 

하지 일부 문서가 존재하는 유효한 URL - 그것은 (System.Data 또는 무엇이든라는 C# 응용 프로그램의 네임 스페이스 같이) XML 네임 스페이스를 나타내는 문자열을합니다.

쉽게 문자열을 변경할 수 있습니다. 은 없습니다.은 여기서 참조됩니다. (하지만 그건 일반적인 오해입니다.)

당신이나 당신의 회사에 등록 된 도메인이 전세계에서 유일하기 때문에 사람들은 종종 URL 구문을 사용합니다 -> 따라서 여러분이 파생 한 XML 네임 스페이스도 전 세계적으로 고유 할 것입니다.

관련 문제