[91] XML における名前 (生成規則 Name
)
は、要素、属性、その他の構造を識別する文字列です。
[92] 名前で使える文字はXMLにおける文字の部分集合です。これを名前文字といいます。また、 名前の先頭に使える文字は更に制限されており、これを名前開始文字といいます。
名前 := (Letter / "_" / ":") *名前文字 ;; XML 1.0 [5]
名前文字 := Letter / 数字 / "." / "-" / "_" / ":" / 結合文字 / 拡張子 ;; XML 1.0 [4]
[65] 定義は XML 1.1 および XML 1.0 第5版で大きく改められました。
[12] コロン :
を含む名前
は、
普通は XML名前空間仕様書に従って解釈されます。
しかしながら、 XML 1.0 仕様書は、
XML 名前空間的に不正な名前
も扱えることを
XML 処理系に要求しています。
[64]
実際、稀ではありますが XML 名前空間に従わない
:
を含む名前
が使われることがあります。そのほとんどは過去の遺物。
[127] XML名前空間で定義されている NCName は、 XML の名前 (Name
)
から :
を除外したものです。
[130] XML 1.0 と XML 1.1 の Name の定義がそれぞれ XML名前空間1.0 とXML名前空間1.1の定義の違いとなっています。また XML 1.0 4e 以前と XML 1.0 5e の定義の違いが XML名前空間1.0 2e と XML名前空間1.0 3e の定義の違いになっています。
[129] XML 名前空間では、名前の中で :
は名前空間接頭辞と局部名を区切る働きを持っています。従って決った位置にしか出現できません。
[131] XLink の xlink:label
属性の値のように XML 名前空間 (1.0) NCName
を参照している規格、
XML 1.1 用に訂正しなくていいのですかねぇ。
(名無しさん 2004-03-21 09:03:35 +00:00)
[132] RIF Basic Logic Dialect ( 版) http://www.w3.org/TR/2010/REC-rif-bld-20100622/#EBNF_Grammar_for_the_Presentation_Syntax_of_RIF-BLD_.28Informative.29
XML名前空間1.1の NCName
を使っています。
[133] W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes ( ( 版)) http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#NCName
[124] 属性名がXML互換であるとは、
XML 1.0 Name であり、 :
を含まないことをいいます >>105。
XML
で始まる名前[97] XML 1.0 5e の正誤表 S01 によると、
... はXML中核作業部会またはその後継者による、現行または将来の版の仕様によって予約されています。
[10] XML 1.0 の第1版と第5版と XML 1.1 は「XML
」
(大文字、小文字の任意の組み合わせ) で始まる名前を当該版または将来の版の
XML 仕様により予約するとしていました。
[101] この古い予約は後述の通り実際には無視されていました。また、XML中核作業部会自体が、
XML 本体仕様とは別のXML名前空間仕様や xml:base
仕様によって予約名を使ったものを定義していました。
正誤表はこうした矛盾を解消するものとなっています。
"XML"
と丁度一致するものを除く名前
と定義されています。
よって、大文字・小文字を問わず <?XML?>
のような処理指令に見えるものが XML 宣言以外で文書中にあれば、
その文書は整形式ですらありません。
ですから、 XML 的には XML宣言は処理指令ではないのです。[13] xml で始まる名前 - 2003年12月 - マーク付けノート http://www.satoshii.org/markup/notes/2003/12#date12-4: >>10 の話
[14] >>13 には
と書かれていますけど、どちらも駄目ではありませんか。id="XML-foo"
は OK, id="XML"
は NG
[15]
XMLspec DTD では xml
で始まる引数実体が使われています。
(名無しさん [sage])
[16]
XMPP (RFC 3920) では
xml-not-well-formed
という要素型が定義されており、
名前空間接頭辞なしで使われています。
[17]
要素には p:master
xmlhref
属性があります。
PP11
(名無しさん [sage])
[18]
NCName や QName を流用している XML名前空間以外の規格は多々ありますが、そこにも
という規則が継承されているかどうかは、ほとんどの場合極めて微妙なところです。xml
で始まるものは予約
例として XML Schema データ型における定義を見てみましょう。
XML Schema Part 2: Datatypes Second Edition http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#QName
[Definition:] QName represents XML qualified names. The ·value space· of QName is the set of tuples {namespace name, local part}, where namespace name is an anyURI and local part is an NCName. The ·lexical space· of QName is the set of strings that ·match· the QName production of [Namespaces in XML].
Note: The mapping between literals in the ·lexical space· and values in the ·value space· of QName requires a namespace declaration to be in scope for the context in which QName is used.
QName represents XML qualified names
の XML qualified names
の部分が引用元では XML名前空間 1.0
の qualified name
という語にリンクされています。
そのリンク先の説明は
some names (constructs corresponding to the nonterminal Name) may be given as qualified names
で、 Name
の部分が XML 1.0 の生成規則の定義へのリンクになっています。
XML 1.0 によれば names
は件の予約がなされています。
と結論づけるのが妥当だと思うのですが、普通に XML Schema データ型を利用しようと思い立った人は絶対こんなところまでたどりつけませんって(w
同じようなことはたとえば XSLT 1.0 にもいえます。
でも XSLT 1.0 で QName を使う場所で
xml
から始まる名前を使っていることは普通にしばしば見かけたりします。
(名無しさん [sage])
[19] ちょっと微妙なところというのは、予約に関する規定が XML名前空間 1.0 の仕様書では名前空間の宣言のところ http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-decl に書いてあって、 QName とかの定義のところにではないというところです。 XML 文書で名前空間を使ってる限りは問題ないのですが、 それ以外の似たような名前空間の仕組みがあるところで使うとなると、 予約に関する規定は適用範囲外だという主張もできなくはありません。。。
[20]
JAXB の javaType
要素には
xmlType
属性があります。
[24]
属性も xml:lang
と xml:base
を除いて同様です。
RDF/XML Syntax Specification (Revised) http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#eventterm-element-attributes (名無しさん [sage])
[25]
OPML の outline
要素に
xmlurl
属性があります。
(名無しさん)
[26]
XML の名前じゃなくて N3 の名前なのであれですが、
Evaluation and Report Language (EARL) 1.0 Schema
http://www.w3.org/TR/2005/WD-EARL10-Schema-20050909/#schema-n3
では XML Schema のデータ型の名前空間URI
に xmls:
という名前空間接頭辞をあてています。
(名無しさん [sage])
[27]
MXML では XML
という局所名の要素型があります。
MXML タグ http://www.macromedia.com/support/documentation/jp/flex/1_5/asdocs_jp/xml.html
(名無しさん [sage])
[28]
xml.apache.org
なる要素型名が使われています。。。
(名無しさん [sage])
[29] Burlap 1.0 Draft V9 http://www.caucho.com/burlap/burlap-draft-spec.xtp#xml
BurlapのXMLデータ型に対応する要素型名がxml
になっています。
(名無しさん)
[30]
urn:ietf:params:xml:ns:xmpp-streams
に
という要素型があります。
(名無しさん [sage])xml-not-well-formed
[42]
XMLの仕様書自体もXHTML版でもXML版でもxml
から始まる名前を識別子や実体名に使っています。
(名無しさん [sage])
[43] DASEのDTDでは引数実体の名前としてXMLNS
やxmlns.attrib
が使われています。
[44]
XML11 には xml11
という要素型があります。
(名無しさん [sage])
[45]
DC-XML には局所名が XMLRepresentation
という要素型があります。
(名無しさん [sage])
[46]
xmlFileAdapter
Element http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipsdk/html/xsfelmxmlFileAdapter_HV01021518.asp
(名無しさん)
[47]
xmlToEdit
Element http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipsdk/html/xsfelmxmlToEdit_HV01021519.asp
(名無しさん)
[48]
xmlToEdit
Attribute http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ipsdk/html/xsfatrxmlToEdit_HV01021626.asp
(名無しさん)
[49]
XFA
(名無しさん)xmlConnection
[51]
「XMLのXML要素」@水無月ばけらのえび日記 (2007-09-07 16:11:57 +09:00
版) http://bakera.jp/ebi/topic/2991
(名無しさん)
[52]
XMLCatalog の xmlcatalog
要素。
(名無しさん)
[53]
DTD for XML Schemas: Part 1: Structures (2008-03-01 22:09:23 +09:00
版) https://suika.suikawiki.org/gate/2007/schema/schema/f3c68550ab309738bfbca89d9dee34cc/cache.html#line-321
(名無しさん)
[54]
DTD for XML Schemas: Part 1: Structures (2008-03-02 11:45:18 +09:00
版) https://suika.suikawiki.org/gate/2007/schema/schema/47a7ad8e9435f71d8354e514109b7382/cache.html#line-399
(名無しさん)
[55]
yhtml 2.1 (80 著, 2008-03-23 19:05:58 +09:00
版) http://www.yhtml.net/yhtml21.html
%xmlattrs;
という引数実体が使われています。
(名無しさん)
[56]
Representing Content in RDF (2008-09-06 00:14:30 +09:00
版) http://www.w3.org/TR/Content-in-RDF/#xmlContentClass
(名無しさん)
[57]
Ant には xmlproperty
要素があります。
(名無しさん)
[58]
Cisco Enhanced Device Interface Programmer's Guide, 2.0 - XML Programmatic Interface [Cisco Enhanced Device Interface] - Cisco Systems (2008-04-11 03:34:06 +09:00
版) http://www.cisco.com/en/US/docs/net_mgmt/enhanced_device_interface/2.0/developer/guide/xml_pi.html
<rpc-reply message-id="123"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<data>
cpi:xml-config-data
xmlns:cpi="http://www.cisco.com/cpi_10/schema">
<DeviceConfiguration
xmlns="http://www.cisco.com/edi_20/Cisco1700/12.2(15)T14/1.2/"
xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
(名無しさん)
[59]
OSTwoDevManJavaConfigurationFile - OpenSAML - Internet2 Wiki (2008-10-13 12:34:17 +09:00
版) https://spaces.internet2.edu/display/OpenSAML/OSTwoDevManJavaConfigurationFile
<XMLTooling xmlns="http://www.opensaml.org/xmltooling-config" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
(名無しさん)
[60] DOM XML filter pipeline configuration ( 版) http://www.indexdata.dk/zebra/doc/record-model-domxml-pipeline.tkl
[85] XML3D 0.4 Specification ( 版) http://www.xml3d.org/xml3d/specification/current/#xml3d
[84] IRC logs: freenode / #whatwg / 20091106 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20091106#l-305
[110] XML事象の DTD http://www.w3.org/TR/xml-events#a_DTD_definition には xml-events で始まる実体名が大量に使われています。
[112] rdf:XMLLiteral
という RDF の資源があります。
RDF/XML で要素型に使うこともできますが、一般的ではありません。
[50] Code Style Scheme には XML
要素があるようです。
[62] Metadata Requirements And Preparing Content For Digital Preservation - Metadata-1.7.2.pdf, , https://digitalpreservation.fi/files/Metadata-1.7.2.pdf#page=37
[66] zml-report.pdf, , https://www2.seas.gwu.edu/~bell/publications/zml-report.pdf#page=10
[21] JAXB 1.0 (JSR#31) の C.2 では XML の名前を Java の名前に変換する方法が規定されています。
[6] この文字分類と次の表に基づき、改語位置 (word break) を探します。
前 | 分離子 | 後 | 例 |
---|---|---|---|
句読点以外 | 1つ以上の句読点 | 句読点以外 | foo--bar → foo, bar |
数字 | 数字以外 | foo22bar → foo22, bar | |
数字以外 | 数字 | foo22 → foo, 22 | |
小文字 | 小文字以外 | fooBar → foo, Bar | |
大文字 | 大文字の後に小文字 | fooBar → FOO, Bar | |
letter | letter 以外 | Foo〜 → Foo, 〜 | |
letter 以外 | letter | 〜Foo → 〜, Foo | |
uncased | uncased 以外 | あFoo → あ, Foo | |
uncased 以外 | uncased | Fooあ → Foo, あ |
(前は前の語、後は後ろの語に属しますが、 分離子はどちらにも属しません。)
語分割して、各語頭が小文字なら大文字に替えます。
こうして得られた語をそのまま連結すれば Java
のクラス名にできますし、適宜 get
や set
を付けてメソッド名にできますし、
すべて大文字化して _
で連結すれば定数名にもできます。
[115] SOAP 1.2 はプログラム言語の変数や欄などの名前を XML の名前に変換する方法として、次の方法を推奨 (>>5) しています。
[116] 注意: SOAP RPC表現で名前を写像する方法として使うべきであるとされています SOAP 1.2 Part 2。
[117] DOMとXML情報集合の項を参照。
[134] Basic XML Schema Patterns for Databinding Version 1.0 ( 版) http://www.w3.org/TR/2009/NOTE-xmlschema-patterns-20090505/#pattern-IdentifierName
では多くの実装が対応している NCName の部分集合として
^[A-Za-z_]([A-Za-z0-9_]{0,31})$
を示しています。
[1] W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes ( ( 版)) http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#Name
[109] IRC logs: freenode / #whatwg / 20140407 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20140407
[121] Bug 25290 – [Custom]: Ban uppercase and leading "xml" in custom element names? ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=25290
[135] Centralize validation/extraction of namespace/qualifiedName. Fixes https... · 7333798 · whatwg/dom ( ( 版)) https://github.com/whatwg/dom/commit/7333798b4bb4a0c08beb44a1ca677618f771f53e