XmlSchemaSet.Add Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje schemat języka definicji schematu XML (XSD) do elementu XmlSchemaSet.
Przeciążenia
| Nazwa | Opis |
|---|---|
| Add(XmlSchema) |
Dodaje daną XmlSchema wartość do elementu XmlSchemaSet. |
| Add(XmlSchemaSet) |
Dodaje wszystkie schematy języka definicji schematu XML (XSD) w danym XmlSchemaSet do elementu XmlSchemaSet. |
| Add(String, String) |
Dodaje schemat języka definicji schematu XML (XSD) pod adresem URL określonym w pliku XmlSchemaSet. |
| Add(String, XmlReader) |
Dodaje schemat języka definicji schematu XML (XSD) zawarty w elemecie XmlReaderXmlSchemaSet. |
Add(XmlSchema)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje daną XmlSchema wartość do elementu XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::Xml::Schema::XmlSchema ^ schema);
public System.Xml.Schema.XmlSchema? Add(System.Xml.Schema.XmlSchema schema);
public System.Xml.Schema.XmlSchema Add(System.Xml.Schema.XmlSchema schema);
member this.Add : System.Xml.Schema.XmlSchema -> System.Xml.Schema.XmlSchema
Public Function Add (schema As XmlSchema) As XmlSchema
Parametry
- schema
- XmlSchema
Obiekt XmlSchema , który ma zostać dodany do obiektu XmlSchemaSet.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler jest określony, null zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie XmlSchemaException zostanie wyrzucony.
Wyjątki
Schemat jest nieprawidłowy.
Obiekt XmlSchema przekazany jako parametr to null.
Uwagi
XmlSchema Jeśli obiekt już istnieje w XmlSchemaSetobiekcie , Add metoda nic nie robi.
Funkcjonalność tej metody jest identyczna z funkcją Add metody .
Dotyczy
Add(XmlSchemaSet)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje wszystkie schematy języka definicji schematu XML (XSD) w danym XmlSchemaSet do elementu XmlSchemaSet.
public:
void Add(System::Xml::Schema::XmlSchemaSet ^ schemas);
public void Add(System.Xml.Schema.XmlSchemaSet schemas);
member this.Add : System.Xml.Schema.XmlSchemaSet -> unit
Public Sub Add (schemas As XmlSchemaSet)
Parametry
- schemas
- XmlSchemaSet
Obiekt XmlSchemaSet.
Wyjątki
Schemat w obiekcie XmlSchemaSet jest nieprawidłowy.
Obiekt XmlSchemaSet przekazany jako parametr to null.
Przykłady
Poniższy przykład kodu ilustruje dodawanie schematów do XmlSchemaSetelementu , a następnie dodawanie XmlSchemaSet elementu do nowego XmlSchemaSet przy użyciu Add metody .
Dim schemaSet1 As XmlSchemaSet = New XmlSchemaSet
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd")
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd")
Dim schemaSet2 As XmlSchemaSet = New XmlSchemaSet
schemaSet2.Add(schemaSet1)
XmlSchemaSet schemaSet1 = new XmlSchemaSet();
schemaSet1.Add("http://www.contoso.com/retail", "http://www.contoso.com/retail.xsd");
schemaSet1.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
schemaSet1.Add("http://www.contoso.com/music", "http://www.contoso.com/music.xsd");
XmlSchemaSet schemaSet2 = new XmlSchemaSet();
schemaSet2.Add(schemaSet1);
Uwagi
Aby można było dodać schemat do XmlSchemaSetelementu , należy go pomyślnie przetworzyć wstępnie. Przetwarzanie wstępne wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, również są dodawane do elementu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
IsCompiled Jeśli właściwość do dodania XmlSchemaSet to true, wszystkie schematy w XmlSchemaSet pliku do dodania zostaną dodane do elementu XmlSchemaSet.
IsCompiled Jeśli właściwość do dodania XmlSchemaSet to false, przed dodaniem każdy dodany schemat jest wstępnie przetworzony. Jeśli którykolwiek ze schematów nowo dodanych XmlSchemaSet nie może zostać wstępnie przetworzony, nie zostaną dodane żadne schematy. Zamiast tego XmlSchemaException zostanie zgłoszony błąd. W związku z tym następujące dwa przykłady kodu nie są równoważne.
' First example
schemaSet.Add(schemaSet1)
' Second example
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
schemaSet.Add(schema)
Next
// First example
schemaSet.Add(schemaSet1);
// Second example
foreach(XmlSchema schema in schemaSet.Schemas())
{
schemaSet.Add(schema);
}
Poprzednie dwa przykłady kodu nie są równoważne. W pierwszym przykładzie, jeśli istnieje nieprawidłowy schemat i schemaSet1 jego IsCompiled właściwość jest ustawiona na false, żadne schematy nie są dodawane do schemaSetelementu . W drugim przykładzie można dodać wiele schematów przed schemaSet napotkaniem nieprawidłowego schematu i zgłaszany jest wyjątek.
Dotyczy
Add(String, String)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje schemat języka definicji schematu XML (XSD) pod adresem URL określonym w pliku XmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::String ^ schemaUri);
public System.Xml.Schema.XmlSchema? Add(string? targetNamespace, string schemaUri);
public System.Xml.Schema.XmlSchema Add(string targetNamespace, string schemaUri);
member this.Add : string * string -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaUri As String) As XmlSchema
Parametry
- targetNamespace
- String
Właściwość schematu targetNamespace lub null do użycia targetNamespace określonego w schemacie.
- schemaUri
- String
Adres URL określający schemat do załadowania.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler jest określony, null zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie XmlSchemaException zostanie wyrzucony.
Wyjątki
Schemat jest nieprawidłowy.
Adres URL przekazany jako parametr to null lub Empty.
Przykłady
Poniższy przykład kodu dodaje http://www.contoso.com/books.xsd schemat z docelową przestrzenią nazw http://www.contoso.com/books do obiektu XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", "http://www.contoso.com/books.xsd");
W przykładzie użyto books.xsd pliku jako danych wejściowych.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="first-name" type="xs:string" />
<xs:element minOccurs="0" name="last-name" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:unsignedShort" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Uwagi
Aby można było dodać schemat do XmlSchemaSetelementu , należy go pomyślnie przetworzyć wstępnie. Przetwarzanie wstępne wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, również są dodawane do elementu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z Add metody .
Dodanie schematu do obiektu XmlSchemaSet z tą samą docelową przestrzenią nazw i adresem URL lokalizacji schematu co schemat znajdujący się już w XmlSchemaSet obiekcie spowoduje zwrócenie oryginalnego obiektu schematu.
Po pomyślnym dodaniu nowego schematu do XmlSchemaSetobiektu IsCompiled właściwość XmlSchemaSet jest ustawiona na
false.Wszystkie elementy dołączania lub importowania napotkane w schemacie XML są rozpoznawane podczas wywoływanej Add metody. Nie można rozpoznać elementów dołączania i importowania powoduje wyświetlenie ostrzeżenia o weryfikacji schematu, a jeśli nie ValidationEventHandler określono XmlSchemaSet żadnego obiektu, to ostrzeżenie nie zostanie zgłoszone.
Jeśli schemat z tą samą docelową przestrzenią nazw co schemat, który już istnieje w XmlSchemaSet obiekcie , zostanie dodany do XmlSchemaSetprogramu , oba schematy zostaną dodane.
Uwaga / Notatka
To zachowanie różni się od przestarzałego XmlSchemaCollection obiektu.
Metoda Add obiektu XmlSchemaSet ma możliwość używania docelowej przestrzeni nazw zdefiniowanej w schemacie, zamiast wymagać określenia docelowej przestrzeni nazw jako parametru podczas wywoływanej Add metody. Określenie
nullw parametrzetargetNamespaceAdd metody powoduje XmlSchemaSet użycie docelowej przestrzeni nazw zdefiniowanej w schemacie, jak pokazano w poniższym przykładzie kodu.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add(Nothing, "books.xsd")
Dim schema As XmlSchema
For Each schema In schemaSet.Schemas("http://www.contoso.com/books")
schema.Write(Console.Out)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, "books.xsd");
foreach(XmlSchema schema in schemaSet.Schemas("http://www.contoso.com/books"))
{
schema.Write(Console.Out);
}
W powyższym null przykładzie kodu parametr jest określony jako targetNamespace parametr Add metody . W związku z tym targetNamespace jest używany zdefiniowany w pliku books.xml. W takim przypadku wynik wywołania Add metody byłby identyczny, gdyby http://www.contoso.com/books został określony jako targetNamespace parametr.
- Schemat XML W3C umożliwia schematy bez docelowej przestrzeni nazw, która ma być uwzględniona w schematach ze zdefiniowaną docelową przestrzenią nazw. W takim przypadku schemat bez zdefiniowanej docelowej przestrzeni nazw jest coerced do docelowej przestrzeni nazw w tym schemacie. Uwzględniony schemat jest traktowany tak, jakby miał zdefiniowaną docelową przestrzeń nazw. Podobnie schematy bez docelowej przestrzeni nazw można dodawać do XmlSchemaSet przestrzeni nazw docelowych i współwłaszczone do docelowej przestrzeni nazw określonej przez Add metodę, jak pokazano w poniższym przykładzie.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="A" type="xs:string" />
</xs:schema>
Jeśli powyższy schemat zostanie dodany do XmlSchemaSet przestrzeni nazw http://www.contoso.com/new/targetnamespace docelowej (jak pokazano w poniższym kodzie), jest traktowany tak, jakby docelowa przestrzeń nazw zadeklarowana w schemacie to http://www.contoso.com/new/targetnamespace.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd")
Dim schema As XmlSchema
For Each schema in schemaSet.Schemas()
Console.WriteLine(schema.TargetNamespace)
Next
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/new/targetnamespace", "http://www.contoso.com/targetnamespace.xsd");
foreach(XmlSchema schema in schemaSet.Schemas())
{
Console.WriteLine(schema.TargetNamespace);
}
Dotyczy
Add(String, XmlReader)
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
- Źródło:
- XmlSchemaSet.cs
Dodaje schemat języka definicji schematu XML (XSD) zawarty w elemecie XmlReaderXmlSchemaSet.
public:
System::Xml::Schema::XmlSchema ^ Add(System::String ^ targetNamespace, System::Xml::XmlReader ^ schemaDocument);
public System.Xml.Schema.XmlSchema? Add(string? targetNamespace, System.Xml.XmlReader schemaDocument);
public System.Xml.Schema.XmlSchema Add(string targetNamespace, System.Xml.XmlReader schemaDocument);
member this.Add : string * System.Xml.XmlReader -> System.Xml.Schema.XmlSchema
Public Function Add (targetNamespace As String, schemaDocument As XmlReader) As XmlSchema
Parametry
- targetNamespace
- String
Właściwość schematu targetNamespace lub null do użycia targetNamespace określonego w schemacie.
Zwraca
XmlSchema Obiekt, jeśli schemat jest prawidłowy. Jeśli schemat jest nieprawidłowy i ValidationEventHandler jest określony, null zostanie zwrócone i zostanie zgłoszone odpowiednie zdarzenie weryfikacji. W przeciwnym razie XmlSchemaException zostanie wyrzucony.
Wyjątki
Schemat jest nieprawidłowy.
Obiekt XmlReader przekazany jako parametr to null.
Przykłady
Poniższy przykład kodu dodaje schemat books.xsd zawarty w XmlTextReader obiekcie z docelową przestrzenią nazw http://www.contoso.com/books do obiektu XmlSchemaSet.
Dim schemaSet As XmlSchemaSet = New XmlSchemaSet()
schemaSet.Add("http://www.contoso.com/books", New XmlTextReader("books.xsd")
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add("http://www.contoso.com/books", new XmlTextReader("books.xsd");
Uwagi
Aby można było dodać schemat do XmlSchemaSetelementu , należy go pomyślnie przetworzyć wstępnie. Przetwarzanie wstępne wykonuje następujące podstawowe zadania.
Schemat jest sprawdzany pod kątem poprawności strukturalnej zgodnie z regułami schematu XML W3C, ale schemat nie jest w pełni weryfikowany.
Odwołania do składników schematu wewnętrznego i zewnętrznego są rozwiązywane. Wszystkie zaimportowane lub dołączone schematy, które zostały pomyślnie pobrane, również są dodawane do elementu XmlSchemaSet. Zaimportowane schematy są dodawane jako oddzielne XmlSchema obiekty, a dołączone schematy są częścią dołączania XmlSchema.
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z Add metody .
Pomyślnie pobrano schematy zaimportowane lub dołączone przez schematy zawarte w elemecie XmlReader są również dodawane do elementu XmlSchemaSet.
Jeśli element XmlReader nie jest umieszczony na elemencie głównym, jest zgłaszany, XmlSchemaException chyba że bieżący element jest elementem. Jeśli bieżący element jest elementem
xs:schema, dokument schematu jest odczytywany w XmlSchemaSetelemencie ; w przeciwnym razie jest zgłaszany, XmlSchemaException ponieważ schemat jest nieprawidłowy.XmlReader Jeśli element znajduje się w sekwencji węzłów XML, dodawany jest tylko pierwszy węzeł w sekwencji.
Jeśli schemat został utworzony na podstawie XmlReader.Create wywołania metody, wartość ProcessInlineSchema właściwości jest ignorowana, ponieważ wbudowane przetwarzanie schematu nie jest stosowane dla dokumentów schematu XML W3C.
Właściwość XmlResolver elementu XmlReader nie jest używana do rozpoznawania odwołań do przestrzeni nazw ani lokalizacji schematu w elementach dołączania i importowania. XmlResolver Zamiast tego jest używana właściwość .XmlSchemaSet
Metoda Add obiektu XmlSchemaSet ma możliwość używania docelowej przestrzeni nazw zdefiniowanej w schemacie, zamiast wymagać określenia docelowej przestrzeni nazw jako parametru podczas wywoływanej Add metody. Określenie
nullmetody lub String.EmptyAdd do metody powoduje XmlSchemaSet użycie docelowej przestrzeni nazw zdefiniowanej w schemacie. Aby zapoznać się z przykładem tego zachowania, zobacz metodę Add .
Pozostałe funkcje tej metody są identyczne z funkcją Add metody .