XML 요소에 대한 표준 명명 규칙이 있습니까? [닫은]


96

XML 문서에 대한 표준, 사실상 또는 다른 것이 있습니까? 예를 들어 태그를 작성하는 "가장 좋은"방법은 무엇입니까?

<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />

마찬가지로 더 나은 속성에 대한 열거 값이 있다면

<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>

2
기술적으로 말하면 <my.tag />를 사용할 수도 있습니다. 일부 상황에서는 좋은 생각이 아닐 수도 있습니다 ...
PhiLho


몇 가지 "표준".. 온라인이 발견
user2864740

답변:


46

가장 일반적인 값은 camelCased-즉

<myTag someAttribute="someValue"/>

특히, 많은 언어가 공백이있는 열거 형을 허용하지 않기 때문에 (둘 사이의 매핑을 요구하는) 코드 생성기와 혼합하면 공백이 몇 가지 결함을 유발합니다 (즉, XML을 객체로 [비 직렬화]).


35
흠 ... 베스트 답변 ... 괜찮은 대답이라고 생각하지만 의견 일뿐입니다. 일종의 참조가 있으면 좋을 것입니다.
Hamish Grubijan

4
동의하지 않습니다. 저는 카멜 케이스로 XML을 보는 데 익숙하지 않습니다.
Rafa 2013 년

나는 이것이 오래된 대답이라는 것을 알고 있지만 내가 본 대부분의 최신 Microsoft XML은이 형식 선택에 동의하지 않는 경향이 있습니다. 하지만 IIS는 dot.naming을 좋아하므로 ..
user2246674 2013-04-29

4
모두가 개인적이라고 언급했듯이 항상 XMLSchema를 사용하여 XML을 정의하고 XMLSchema는이 접근 방식을 따르므로 귀하의 접근 방식을 따릅니다. w3.org/2001/XMLSchema.xsd . 나에게 그것은 프로그래밍 언어와 관련이 없습니다. 상호 운용 가능한 인터페이스 표준이기 때문에 XML을 사용합니다. 프로그래밍 언어는 구현 세부 사항 일 뿐이며 각 언어에는 고유 한 규칙이 있습니다.
댄 카터

내 2 센트-CamelCase와 모두 소문자를 보았습니다. 거의 모두 대문자 (이전 HTML)이며 소문자를 본 적이 있습니다. 나는 camelBack을 본 적이 없다. 저는 CamelCase 또는 소문자를 선호합니다. 그러나 속성은 모두 소문자로 표시되는 경향이 있습니다.
Kit10 2015 년

30

XML 명명 규칙

XML 요소는 다음 이름 지정 규칙을 따라야합니다.

    - Element names are case-sensitive 
    - Element names must start with a letter or underscore
    - Element names cannot start with the letters xml(or XML, or Xml, etc) 
    - Element names can contain letters, digits, hyphens, underscores, and periods 
    - Element names cannot contain spaces

모든 이름을 사용할 수 있으며 단어는 예약되지 않습니다 (xml 제외).

최상의 명명 방법

    - Create descriptive names, like this: <person>, <firstname>, <lastname>.
    - Create short and simple names, like this: <book_title> not like this: <the_title_of_the_book>.
    - Avoid "-". If you name something "first-name", some software may think you want to subtract "name" from "first".
    - Avoid ".". If you name something "first.name", some software may think that "name" is a property of the object "first".
    - Avoid ":". Colons are reserved for namespaces (more later).
    - Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software doesn't support them.

이름 지정 스타일

XML 요소에 대해 정의 된 이름 지정 스타일이 없습니다. 그러나 다음은 일반적으로 사용되는 몇 가지입니다.

    - Lower case    <firstname> All letters lower case
    - Upper case    <FIRSTNAME> All letters upper case
    - Underscore    <first_name>    Underscore separates words
    - Pascal case   <FirstName> Uppercase first letter in each word
    - Camel case    <firstName> Uppercase first letter in each word except the first

참조 http://www.w3schools.com/xml/xml_elements.asp


13

저에게 이것은 프로그래밍 언어의 코드 스타일에 대해 논의하는 것과 같습니다. 일부는 스타일을 주장하고 다른 일부는 대안을 옹호합니다. 내가 본 유일한 합의는 "하나의 스타일을 선택하고 일관성을 유지하라"는 것입니다!

많은 XML 방언이 소문자 이름 (SVG, Ant, XHTML ...)을 사용한다는 점에 주목합니다.

"속성 값에 공백 없음"규칙이 없습니다. 어떻게 든, 그것은 "속성에 무엇을 넣고 무엇을 텍스트로 넣을 것인가?"라는 토론에 보냅니다.
이것이 최선의 예는 아니지만 속성에 공백을 사용하는 잘 알려진 XML 형식이 있습니다.

  • XHTML, 특히 클래스 속성 (두 개 이상의 클래스를 넣을 수 있음)과 물론 alt 및 title 속성.
  • 예를 들어 경로 태그의 d 속성이있는 SVG.
  • 둘 다 스타일 속성 ...

나는 관행에 대한 주장을 완전히 이해하지 못하지만 (일부 용도에만 적용되는 것처럼 보임) 적어도 합법적이며 상당히 널리 사용됩니다. 분명히 단점이 있습니다.

아, 그리고 자동으로 닫히는 슬래시 앞에 공백이 필요하지 않습니다. :-)


공백에 대한 논증은 질문에서 구체적으로 질문했기 때문입니다. , 또는 Java (내가 사용하지만 이에 국한되지 않는 언어)는 종종 속성 값을 열거 형에 매핑합니다. 그런 다음 리터럴을 맵 / 사전으로 간단히 구문 분석 할 수 있습니다 (또는 Java 및 C #의 경우 더 쉬움). 궁극적으로 나는 그것이 표준 이라기보다 열성적인 문제로 보인다는 데 동의합니다. 나는 단순히 "When in Rome"철학을 따른다.
Kit10 2015 년

12

요소 이름에는 TitleCase를, 속성에는 camelCase를 선호합니다. 둘 다 공백이 없습니다.

<AnElement anAttribute="Some Value"/>

제쳐두고, 저는 XML의 Best Practices를 빠르게 검색 한 후 다소 흥미로운 링크 인 XML schemas : Best Practices를 찾았습니다 .


8

나는 소문자 또는 카멜 케이스 태그 를 선호하는 경향이 있으며 속성은 일반적으로 콘텐츠가 아닌 데이터 값을 반영해야하기 때문에 관심이있는 플랫폼 / 언어에서 변수 이름으로 사용할 수있는 값을 고수합니다. 즉, 공백을 피하고 다른 두 가지 형태 괜찮을 있습니다


변수 / 함수 이름에 대한 생각에 +1
Ates Goral

@downvoter : 자신을 설명해주세요.
annakata

8

주관적이지만 요소 태그에 두 단어가있는 경우 <my_tag>구분 기호를 사용하지 않고 단어 사이에 밑줄 (예 :)을 추가하여 가독성을 높일 수 있습니다 . 참조 : http://www.w3schools.com/xml/xml_elements.asp . 따라서 w3schools에 따르면 대답은 다음과 같습니다.

<my_tag attribute="some value">

속성 값에는 공백이 허용되지만 요소 태그 이름에는 허용되지 않으므로 값에는 밑줄이나 구분 기호를 사용할 필요가 없습니다.


2
"Best Naming Practices"섹션이있는 참조를 인용했기 때문에 +1 (단순한 의견이 아님)
Fuhrmanator 2014

2
@Fuhrmanator 그 "참조"는 정당성을 제공하지만 그 자체가 의견입니다. 그것은 어떤 방법으로도 표준이 아닙니다. 그리고 (그것보다 훨씬 덜 끔찍하더라도) 나는 "참조"로 w3schools를 추천하거나 사용 하지 않습니다 . 훨씬 더 독창적이고 포괄적 인 소스가 있습니다.
user2864740

@ user2864740 같은? 보다 독창적이고 포괄적 인 소스를 제공하기 전에 댓글을 완료했습니다. 내 +1의 요점은 OP가 표준을 요청했지만 대부분의 답변이 의견을 제공한다는 것입니다.
Fuhrmanator

이 답변 은 의견 만을 제공 하며 w3schools에 대한 링크는 관련이 없으며 그러한 것을 제거하지 않습니다. 표준에 관해서는 구현 규칙 ( RSS 에서와 같이 ) 또는 조직 규칙 ( OAGi 에서와 같이 )을 참조하십시오. "표준"은 특정 애플리케이션 / 비즈니스 수준에서만 적용됩니다. w3schools 링크 는 매우 모호한 의미 에서 자신의 의견 / 모범 사례 만을 제공합니다 (몇 가지 팁을 제공하고 "여기에 몇 가지 방법이 있습니다"라고 말합니다).
user2864740

즉, 링크를 포함하는 것만으로는 답변 (또는 링크 된 리소스)을 신뢰할 수 없습니다.
user2864740 dec.

7

많은 문서 중심 XML 방언은 소문자 기본 라틴어와 대시를 사용합니다. 나는 그것과 함께가는 경향이있다.

XML을 프로그래밍 언어 식별자에 직접 매핑하는 코드 생성기는 취약하며 (XAML과 같은 순진한 개체 직렬화를 제외하고) 이식 가능한 문서 형식에서는 피해야합니다. 최상의 재사용 및 정보 수명을 위해 XML은 구현이 아닌 도메인과 일치해야합니다.


3

rss는 아마도 세계에서 가장 많이 사용되는 xml 스키마 중 하나이며 camelCased입니다.

사양은 다음과 같습니다. http://cyber.law.harvard.edu/rss/rss.html

스키마에 노드 속성이 없지만 모든 노드 요소 이름은 camelCased입니다. 예를 들면 :

lastBuildDate managedEditor pubDate


2

일반적으로 XML 명명 규칙을 코드의 다른 부분에서 동일한 명명 규칙에 맞 춥니 다. 그 이유는 XML을 Object에로드 할 때 해당 속성과 요소 이름이 현재 프로젝트에서 사용되는 동일한 명명 규칙으로 참조 될 수 있기 때문입니다.

예를 들어 자바 스크립트가 camelCase를 사용하는 경우 XML도 camelCase를 사용합니다.


1
프로젝트 내 작업에 유용하지만 XML이 언어에 구애받지 않는 교환 형식으로 사용될 때 빠르게 분류됩니다.
user2864740

따라서 프로젝트의 구성 요소는 일관성이 있지만 프로젝트가 준수하는 초기 표준을 어떻게 설계합니까?
Gqqnbig

2

Microsoft는 다음 두 가지 규칙을 채택합니다.

  1. 구성을 위해 Microsoft는 camelCase를 사용 합니다. . Visual Studio 구성 파일을 살펴보십시오. VS2013의 경우 다음 위치에 저장됩니다.

    C : \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe.config

예:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
  1. Microsoft는 또한 XAML에 UpperCase 를 사용합니다 . 나는 그것이 소문자를 사용하는 HTML과 구별되는 것이라고 생각합니다.

예:

<MenuItem Header="Open..." Command="ApplicationCommands.Open">
    <MenuItem.Icon>
        <Image Source="/Images/folder-horizontal-open.png" />
    </MenuItem.Icon>
</MenuItem>

1

명시적인 권장 사항이 없습니다. XHTML 에 대한 W3C의 다른 권장 사항 에 따라 소문자를 선택했습니다.

4.2. 요소 및 속성 이름은 소문자 여야합니다.

XHTML 문서는 모든 HTML 요소 및 속성 이름에 소문자를 사용해야합니다. XML은 대소 문자를 구분하기 때문에이 차이가 필요합니다. 예를 들어 <li>와 <LI>는 다른 태그입니다.


0

XML 명명 규칙

XML 요소는 다음 이름 지정 규칙을 따라야합니다.

  • 이름에는 문자, 숫자 및 기타 문자가 포함될 수 있습니다.
  • 이름은 숫자 또는 구두점 문자로 시작할 수 없습니다.
  • 이름은 xml (또는 XML 또는 Xml 등) 문자로 시작할 수 없습니다.
  • 이름은 공백을 포함 할 수 없습니다. 모든 이름을 사용할 수 있으며 단어는 예약되지 않습니다.

출처 : W3 School


어떤 종류의 이름이 가능한지에 대한 모호한 설명은 어떤 이름을 사용해야하는지에 대한 지침을 거의 제공하지 않습니다.
Samuel Edwin Ward

가능한 것의 기준선을 정의하지만-맞습니까?
petermeissner 2013

10
물론입니다.하지만 누군가 "내 아이의 이름을 어떻게 지어야 학교에서 뽑히지 않도록해야하는지"라고 물었을 때 "음, 여기에 인간이 생성 할 수있는 소리 목록이 있습니다."라고 답한 것과 같습니다.
Samuel Edwin Ward

그래,하지만 사실은 질문이 아니 었지? 질문은 "XML 요소에 대한 표준 명명 규칙이 있습니까?"였습니다. 그리고 "XML 문서에 대한 표준이 실제로 있든 그렇지 않든?" 그래서이게 대답이 맞죠? 질문에 대한 하나의 공통적 인 해석 흐름 만이 아니라 질문에 답하는 것.
petermeissner 2013 년

3
이 두 문장 뒤에 나머지 질문을 무시하면 답이됩니다. 당신은 '어떤 것이 "최고"인가'또는 '어떤 것이 더 낫다'고 대답하려고하지 않았습니다.
Samuel Edwin Ward

0

나는 좋은 접근 방식을 많이 찾고 있었고이 스레드와 다른 스레드를 읽고 하이픈 사용에 투표 할 것 입니다.

ARIA ( https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA ) 에서 광범위하게 사용 되며 많은 소스 코드에서 볼 수 있으므로 일반적입니다. 여기에서 이미 지적했듯이 확실히 허용되며 여기에서도 설명합니다. Using-in XML element name

또한 부수적 인 이점 : CSS와 함께 HTML을 작성할 때 이름이 기본적으로 구분 기호로 하이픈을 사용하는 클래스도 있습니다. 이제 CSS 클래스를 사용하는 사용자 정의 태그가 있거나 CSS 클래스를 사용하는 태그에 대한 사용자 정의 속성이있는 경우 다음과 같습니다.

<custom-tag class="some-css-class">

더 일관되고 읽습니다-내 겸손한 의견으로는-다음보다 훨씬 좋습니다.

<customTag class="some-css-class">

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.