CultureAndRegionInfoBuilder.CreateFromLdml(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用一个包含对象表示形式的指定 XML 文件重构 CultureAndRegionInfoBuilder 对象。
public:
static System::Globalization::CultureAndRegionInfoBuilder ^ CreateFromLdml(System::String ^ xmlFileName);
public static System.Globalization.CultureAndRegionInfoBuilder CreateFromLdml (string xmlFileName);
static member CreateFromLdml : string -> System.Globalization.CultureAndRegionInfoBuilder
Public Shared Function CreateFromLdml (xmlFileName As String) As CultureAndRegionInfoBuilder
参数
- xmlFileName
- String
一个包含 CultureAndRegionInfoBuilder 对象的 XML 表示形式的文件名。
返回
等效于 xmlFileName
参数中存储的信息的新对象。
例外
xmlFileName
为 null
。
xmlFileName
是一个空字符串 ("") 或者是无效的文件或路径名。
xmlFileName
中的数据不是有效的 LDML 格式。
示例
以下示例演示 Save 和 CreateFromLdml 方法。
// This example demonstrates the CultureAndRegionInfoBuilder.Save and
// CreateFromLdml methods.
// Compile this example with a reference to sysglobl.dll.
using System;
using System.Globalization;
using System.IO;
using System.Xml;
class Sample
{
public static void Main()
{
string savedCARIB = "mySavedCARIB.xml";
string msg1 = "The name of the original CultureAndRegionInfoBuilder" +
" is \"{0}\".";
string msg2 = "Reconstituting the CultureAndRegionInfoBuilder object " +
"from \"{0}\".";
string msg3 = "The name of the reconstituted CultureAndRegionInfoBuilder" +
" is \"{0}\".";
// Construct a new, privately used culture that extends the en-US culture
// provided by the .NET Framework. In this sample, the CultureAndRegion-
// Types.Specific parameter creates a minimal CultureAndRegionInfoBuilder
// object that you must populate with culture and region information.
CultureAndRegionInfoBuilder cib1 = null;
CultureAndRegionInfoBuilder cib2 = null;
try {
cib1 = new CultureAndRegionInfoBuilder(
"x-en-US-sample", CultureAndRegionModifiers.None);
}
catch (ArgumentException ae)
{
Console.WriteLine(ae);
return;
}
// Populate the new CultureAndRegionInfoBuilder object with culture information.
CultureInfo ci = new CultureInfo("en-US");
cib1.LoadDataFromCultureInfo(ci);
// Populate the new CultureAndRegionInfoBuilder object with region information.
RegionInfo ri = new RegionInfo("US");
cib1.LoadDataFromRegionInfo(ri);
// Display a property of the new custom culture.
Console.Clear();
Console.WriteLine(msg1, cib1.CultureName);
// Save the new CultureAndRegionInfoBuilder object in the specified file in
// LDML format. The file is saved in the same directory as the application
// that calls the Save method.
Console.WriteLine("Saving the custom culture to a file...");
try {
cib1.Save( savedCARIB );
}
catch (IOException exc)
{
Console.WriteLine("** I/O exception: {0}", exc.Message);
return;
}
// Create a new CultureAndRegionInfoBuilder object from the persisted file.
Console.WriteLine(msg2, savedCARIB);
try {
cib2 = CultureAndRegionInfoBuilder.CreateFromLdml( savedCARIB );
}
catch (XmlException xe)
{
Console.WriteLine("** XML validation exception: {0}", xe.Message);
return;
}
// Display a property of the resonstituted custom culture.
Console.WriteLine(msg3, cib2.CultureName);
// At this point you could call the Register method and make the reconstituted
// custom culture available to other applications. The mySavedCARIB.xml file
// remains on your computer.
}
}
/*
This code example produces the following results:
The name of the original CultureAndRegionInfoBuilder is "x-en-US-sample".
Saving the custom culture to a file...
Reconstituting the CultureAndRegionInfoBuilder object from "mySavedCARIB.xml".
The name of the reconstituted CultureAndRegionInfoBuilder is "x-en-US-sample".
*/
' This example demonstrates the CultureAndRegionInfoBuilder.Save and
' CreateFromLdml methods.
' Compile this example with a reference to sysglobl.dll.
Imports System.Globalization
Imports System.IO
Imports System.Xml
Class Sample
Public Shared Sub Main()
Dim savedCARIB As String = "mySavedCARIB.xml"
Dim msg1 As String = "The name of the original CultureAndRegionInfoBuilder" & _
" is ""{0}""."
Dim msg2 As String = "Reconstituting the CultureAndRegionInfoBuilder object " & _
"from ""{0}""."
Dim msg3 As String = "The name of the reconstituted CultureAndRegionInfoBuilder" & _
" is ""{0}""."
' Construct a new, privately used culture that extends the en-US culture
' provided by the .NET Framework. In this sample, the CultureAndRegion-
' Types.Specific parameter creates a minimal CultureAndRegionInfoBuilder
' object that you must populate with culture and region information.
Dim cib1 As CultureAndRegionInfoBuilder = Nothing
Dim cib2 As CultureAndRegionInfoBuilder = Nothing
Try
cib1 = New CultureAndRegionInfoBuilder("x-en-US-sample", _
CultureAndRegionModifiers.None)
Catch ae As ArgumentException
Console.WriteLine(ae)
Return
End Try
' Populate the new CultureAndRegionInfoBuilder object with culture information.
Dim ci As New CultureInfo("en-US")
cib1.LoadDataFromCultureInfo(ci)
' Populate the new CultureAndRegionInfoBuilder object with region information.
Dim ri As New RegionInfo("US")
cib1.LoadDataFromRegionInfo(ri)
' Display a property of the new custom culture.
Console.Clear()
Console.WriteLine(msg1, cib1.CultureName)
' Save the new CultureAndRegionInfoBuilder object in the specified file in
' LDML format. The file is saved in the same directory as the application
' that calls the Save method.
Console.WriteLine("Saving the custom culture to a file...")
Try
cib1.Save(savedCARIB)
Catch exc As IOException
Console.WriteLine("** I/O exception: {0}", exc.Message)
Return
End Try
' Create a new CultureAndRegionInfoBuilder object from the persisted file.
Console.WriteLine(msg2, savedCARIB)
Try
cib2 = CultureAndRegionInfoBuilder.CreateFromLdml(savedCARIB)
Catch xe As XmlException
Console.WriteLine("** XML validation exception: {0}", xe.Message)
Return
End Try
' Display a property of the resonstituted custom culture.
Console.WriteLine(msg3, cib2.CultureName)
' At this point you could call the Register method and make the reconstituted
' custom culture available to other applications. The mySavedCARIB.xml file
' remains on your computer.
End Sub
End Class
'This code example produces the following results:
'
'The name of the original CultureAndRegionInfoBuilder is "x-en-US-sample".
'Saving the custom culture to a file...
'Reconstituting the CultureAndRegionInfoBuilder object from "mySavedCARIB.xml".
'The name of the reconstituted CultureAndRegionInfoBuilder is "x-en-US-sample".
'
注解
参数 xmlFileName
指定包含 对象的 XML 表示形式的 CultureAndRegionInfoBuilder 文件名。 XML 文件的格式称为区域设置数据标记语言 (LDML) 版本 1.1。 将创建一个新 CultureAndRegionInfoBuilder 对象,并使用 中的数据 xmlFileName
进行初始化。 方法 Save 执行 方法的 CreateFromLdml 反向操作。
在 LDML 文件中,区域性的属性指定为 节中 <identity>
元素的<special>
子元素。 属性值通常由元素的 type
属性指定。 例如,LDML 文件中的以下摘录将区域性的父级定义为英语中性区域性。
<identity>
<version number="1.1">ldml version 1.1</version>
<generation date="2012-05-16" />
<special xmlns:msLocale="http://schemas.microsoft.com/globalization/2004/08/carib/ldml">
<!-content removed -->
<msLocale:parentName type="en" />
<!-content removed -->
</special>
</identity>
有关 LDML 标准的详细信息,请参阅 Unicode 联盟网站上的“区域设置数据标记语言 (LDML) ”的 Unicode Technical Standard #35 。