Maak een xml-bestand online. XML-gegevensbestand en XML-schemabestand maken van werkbladgegevens

De taak om een ​​XML-bestand te maken op basis van een XSD-schema is verschenen. Zoeken op de forums leidde tot veel discussie over het verkeerd begrijpen van het proces, en slechts een paar artikelen waarin de essentie werd uitgelegd. Mensen stelden vragen, vochten om een ​​oplossing, maar nadat het probleem voor hen was bezweken, verdwenen ze gewoon zonder het mechanisme te beschrijven. Dit leidde tot het maken van een eenvoudige procesbeschrijving.
PS Zweer niet te hard, mijn doel was niet om een ​​soort wetenschappelijk artikel te maken, strikt met de juiste terminologie, maar gewoon om je te helpen de eerste stap te zetten naar het begrijpen van een zeer krachtig uitwisselingsmechanisme via XML.
P.S. Ik moet meteen voorbehoud maken dat het uploadbestand dat bij het artikel is gevoegd slechts een blanco is die slechts een deel van de vereiste XML-bestandsstructuur creëert, aangezien mijn werk met dit lossen was nogal educatief van aard (kopiëren van het vorige document over export op de FCS-website en laden vanuit Excel "alleen het tabelgedeelte van de goederen werd gepresenteerd als een effectievere oplossing), en het gebrek aan tijd liet het niet toe me om de creatie van de hele structuur toe te voegen, alleen gebaseerd op overwegingen van perfectionisme ...

Dus, na registratie op de FCS-website, werd het duidelijk dat om documenten voor de statistische rapportage over export te creëren, het nodig is om gegevens te downloaden van de documenten Implementatie van goederen en diensten van de Trade Administration en een bestand te maken om te uploaden.

Er zijn twee opties voor het laden.

Ten eerste: het inladen van de tabelsectie met de Goederen uit het Excel-bestand (deze optie is als werkende gekozen, omdat het de voordelen had dat er niet gerommeld hoefde te worden met de verwerking van de "Header" van het document, maar je kon kopieer eenvoudig de vorige door in de "Header" te wijzigen wat nodig was).

Ten tweede: creatie van een XML-bestand volgens het schema gedownload van de FCS-website in de vorm van een "Album van elektronische formulieren van documenten". Op het album staat een vrij groot aantal XSD-schema's. Ze vonden een schema voor de "Statistische vorm van boekhouding van goederenbewegingen" en aanvullende bestanden met beschrijvingen van soorten ervoor. De schema's worden met bewerking bij het artikel in het archief gevoegd.

Gratis Microsoft XML Notepad 2007 werd gebruikt om XSD-schema's te bekijken.

De afbeelding toont het hoofdbestand met het XSD-schema "Statistische vorm van boekhouding van goederenbewegingen". De afbeelding benadrukt de belangrijkste blokken van het XSD-schema die we nodig hebben om het te begrijpen.

Uit het diagram kun je zien dat we een XML-bestand nodig hebben dat gevuld is met de structuur die is gespecificeerd in de tak "xs: element" van het type StaticFormType.

De structuur kan behoorlijk complex zijn (zoals in ons geval). Met typebeschrijvingen die direct in de branche aanwezig zijn, naar een aparte branche zijn verplaatst of zelfs in een ander bestand staan.

Deze structuur is van het type StaticFormType, dat op zijn beurt bestaat uit het basistype BaseDocType, een reeks objecten van verschillende typen en tekstattributen.

Het basistype BaseDocStyle wordt beschreven in een ander bestand (en namespace)
.

Dit bestand bevat veel meer typen die in ons geval niet worden gebruikt.

Laten we nu verder gaan met werken in 1C. In een notendop, wat we moeten doen komt neer op het volgende:

1. De XDTO-fabriek is gemaakt

OurXDTOFactory = CreateXDTOFactory (ArrayFullFileNamesWithXSD-schema's);

2. Alle complexe datatypes worden aangemaakt in de XDTO-fabriek, die we verder invullen in het gegenereerde XML-bestand:

StaticFormType = MyFabrikaXDTO.Type ("urn: douane.ru: Informatie: CustomsDocuments: StaticForm: 5.4.0", "StaticFormType");

De gegevenstypen die in een bepaald type zijn opgenomen, kunnen worden verkregen uit de verzameling van zijn eigenschappen:

CUOrganizationType = StaticFormType.Properties.Get ("Geadresseerde"). Type; NameType = CUOrganizationType.Properties.Get ("OrganizationName"). Type; ShortNameType = CUOrganizationType.Properties.Get ("ShortName"). Type; LanguageCodeType = CUOrganizationType.Properties.Get ("OrganizationLanguage"). Type;

3. Wanneer alle complexe gegevenstypen zijn gemaakt, maakt u op basis daarvan een XML-bestandsstructuur aan, bestaande uit XDTO Factory-objecten:

StaticFormType_XDTOObject = MijnXDTOFactory.Create (StaticFormType); // collectie met documenten NewDocuments = MyXDTOFactory.Create (DocumentsType); NewDocuments.PrDocumentName = MyXDTOFactory.Create (PrDocumentNameType, "Factuur"); NewDocuments.PrDocumentNumber = MyXDTOFactory.Create (PrDocumentNumberType, "123-nummer"); NewDocuments.PrDocumentDate = MyXDTOFactory.Create (PrDocumentDateType, "2014-10-05"); StaticFormType_XDTO.Documents.Add (NewDocuments);

Tegelijkertijd vullen we elementaire (eenvoudige typen) gegevens in.

4. Ten slotte lossen we alles uit de XDTO Factory op in een bestand:

XMLFile = Nieuw XMLRecord (); XML-bestand.OpenFile (Bestandsnaam); XML-bestand.WriteXMLDeclaration (); MyXDTOFactory.WriteXML (XMLFile, StaticFormType_XDTOObject); XML-bestand.Sluiten ();

PS Het archief bevat een bestand van de ontlaadsjabloon in XML (er worden slechts enkele details gemaakt die alle gevallen van het vullen van het bestand weergeven) en XSD-schema's.

Pak alle bestanden uit in een map.

Hierin wordt XML aangemaakt.

Overweeg de procedure voor het converteren van een databaseobject naar XML:

  1. Selecteer in het databasevenster het gewenste object door met de linkermuisknop te klikken en selecteer het commando Bestand, Exporteren(Bestand, Export) of klik met de rechtermuisknop op het object en selecteer de opdracht Exporteren(Exporteren).
  2. Er verschijnt een dialoogvenster Object exporteren(Exporteren naar). Laten vallen Soorten(Opslaan als type) markeer het item XML-documenten(XML-documenten). In veld Bestandsnaam(Bestandsnaam) voer de naam van het HTML-document in en klik op de knop Exporteren(Exporteren).
  3. Er verschijnt een dialoogvenster XML-export(XML exporteren) (Figuur 12.9).
  4. Dit dialoogvenster bevat drie selectievakjes voor de drie componenten van een XML-document: gegevens, gegevensschema en gegevenspresentatie (zie hierover de sectie "XML-formaat in Microsoft Office 2002" van dit hoofdstuk). Schakel de selectievakjes in voor de delen van het XML-document die u wilt exporteren. Als u bijvoorbeeld de vakjes tegelijkertijd aanvinkt gegevens (XML)(Gegevens (XML)) en gegevensschema(Schema van de gegevens), wordt het gegevensschema geëxporteerd en apart van het XML-gegevensbestand in het XSD-bestand opgeslagen. Voor tabellen kunt u alleen gegevens of de structuur ervan exporteren, of gegevens en structuur samen, en de tabelweergave niet exporteren als een webpagina: selectievakje data presentatie(XSL) (Presentatie van uw gegevens (XSL)) kan worden verwijderd.

Rijst. 12.9. Dialoogvenster XML-export

Commentaar

Schakel het selectievakje Gegevens (XML) alleen uit als u alleen een nieuwe weergave van het databaseobject wilt exporteren en de gegevens eerder naar een XML-bestand zijn geëxporteerd. Anders, wanneer u de resulterende webpagina opent, ontvangt u een bericht over een fout bij het verbinden met de gegevensbron en is de pagina zelf bijna leeg.

  1. Om extra conversie-opties in te stellen, klikt u op de knop aanvullend(Geavanceerd) (fig.12.10).

Rijst. 12.10. Tab Gegevens dialoog venster XML-export

  1. Bovendien bevat dit dialoogvenster nog twee tabbladen voor de resterende twee delen van het XML-document: Gegevensschema en Gegevensweergave. Op elk van deze tabbladen kunt u een selectievakje selecteren waarmee u het corresponderende deel van het XML-document kunt exporteren, het pad en de bestandsnaam kunt specificeren waarin dit deel van het document wordt opgeslagen, en enkele aanvullende parameters kunt instellen:
    • op het tabblad Gegevens(Gegevens) met behulp van de vervolgkeuzelijst codering(Codering) u kunt de codering selecteren om de pagina-inhoud op te slaan;
    • op het tabblad Schema(Schema) keuzerondjes kunnen worden gebruikt om te kiezen of de gegevensstructuur als een afzonderlijk XSD-bestand moet worden geëxporteerd of samen met de gegevens in een XML-bestand moet worden ingesloten;

Rijst. 12.11. Accountrapport geopend in de database

  • op het tabblad Presentatie(Presentatie) U kunt de keuzerondjes gebruiken om het presentatieformaat van de webpagina te selecteren: HTML client-side rendering of ASP server-side rendering. Als het geëxporteerde object afbeeldingen bevat die u in het resulterende document wilt opnemen, kunt u de naam opgeven van de map waarin ze zich bevinden. Op hetzelfde tabblad is er een veld voor het invoeren van de naam van het XSL-bestand met een beschrijving van het paginaontwerp. Als het opgegeven bestand niet bestaat, maakt Access 2002 een XSL-bestand dat de externe representatie van het document beschrijft (een ontwikkelaar kan het later gebruiken als basis voor het ontwikkelen van een XSLT-bestand om een ​​XML-document om te zetten in een andere indeling).

Als u meer informatie nodig heeft over hoe XML-gegevens worden weergegeven, klikt u op referentie(Helpen). Informatie over het ontwikkelen en transformeren van XML-documenten is te vinden op de Microsoft Developer-website: http://msdn.microsoft.com/.

Rijst. 12.12. Factuurrapport geconverteerd naar XML geformatteerd in Internet Explorer

  1. Klik OK.
  2. Als de voorgestelde transformatieparameters niet zijn gewijzigd, is het resultaat drie bestanden: XML - met gegevens, XSL - met stijlen en HTM - met een weergave van het getransformeerde object. Om de resulterende webpagina te openen, moet u een HTM- of ASP-bestand openen in Internet Explorer, afhankelijk van welk presentatieformaat is geselecteerd.

Helaas worden subformulieren en rapporten en bijbehorende afbeeldingen niet toegevoegd aan het XML-document dat is opgehaald uit het databaseobject. Eenvoudige objecten met ingesloten afbeeldingen die in XML-indeling zijn geëxporteerd, zien er echter bijna precies hetzelfde uit als de oorspronkelijke objecten in Access. U kunt dit verifiëren door bijvoorbeeld het originele en XML-geconverteerde Factuurrapport uit de Northwind-database te vergelijken (Figuur 12.11 en 12.12).

Als de gegevensbron van het geselecteerde object veel gegevens bevat, kan het veel tijd kosten om de webpagina in een internetviewer te laden.

Commentaar

Aangezien de gegevens zelf in zo'n webdocument volledig zijn opgeslagen "in een XML-bestand, is het niet nodig om toegang te krijgen tot de database waaruit de gegevens oorspronkelijk zijn gehaald (zoals bijvoorbeeld in het geval van het converteren van een rapport naar XML) Dit betekent dat om toegang te krijgen tot een dergelijk document het voldoende is om alleen de genoemde set bestanden met de beschrijving van dit document op een webserver te plaatsen.Aan de andere kant betekent dit dat het wijzigen van de gegevens in een dergelijk document is alleen mogelijk met toepassingen die toegang hebben tot het XML-bestand en dit formaat hebben.

instructies:

Bepaal welk type XML-document u wilt maken. Of het nu gaat om een ​​welgevormd of geldig document. De keuze van het type document is direct afhankelijk van de inhoud en het gebruiksdoel. Als het document nodig is om willekeurige gegevens op te slaan en geen verdere publicatie of standaardisatie van de structuur impliceert, kunt u een goed gevormd document maken. Dergelijke documenten moeten voldoen aan alle XML-syntaxisregels. Een geldig XML-document moet goed gevormd zijn en bovendien voldoen aan de regels die zijn gedefinieerd door een bepaald Document Type Definition (DTD)-schema. Als u de structuur en mogelijke relaties tussen elementen duidelijk wilt vastleggen, moet u daarom een ​​geldig XML-document maken.

Pak of ontwerp een documenttype (DTD). Voor algemene taken kunt u een van de bestaande XML-toepassingen gebruiken waarvan de specificaties zijn gepubliceerd op de W3C-site op w3.org of op sites van derden. Het is dus handig om vectortekeningen - in SVG en e-books - in FictionBook te beschrijven in MathML-indeling. Het voordeel van deze aanpak is dat documenten die al voldoen aan de goedgekeurde specificaties kunnen worden verwerkt door bestaande software.Als u besluit om uw eigen DTD te ontwikkelen, raadpleeg dan de W3C regelgevende documenten. Als het document dat u aan het maken bent, niet voldoet aan een van de DTD's, overweeg dan en documenteer de ruwe structuur ervan voor toekomstig gebruik.

Selecteer de codering voor het XML-document. In XML kunnen verschillende coderingen worden gebruikt. Bij het kiezen is het echter de moeite waard om rekening te houden met de mogelijkheden van de gebruikte teksteditor, evenals met de vereisten voor de tekenset van de documentgegevens. Vanwege ASCII-compatibiliteit, variabele tekenlengte en volledige ondersteuning voor de hele UNICODE-set, is het in de meeste gevallen logisch om UTF-8-codering te gebruiken.

Maak een XML-document. Start een teksteditor. Open een nieuw documentvenster. Voer op de eerste regel een XML-declaratie van het formulier in:

waarbij de waarde van het version-attribuut de versie is van de taalspecificatie die moet worden toegepast, en de waarde van het encoding-attribuut de codering van het document aangeeft. Als u een documenttypedefinitie gebruikt, voert u de DTD-tekst of bronlink in met een geldige DTD. Maak vervolgens de documentgegevensstructuur beginnend bij het root-element. Sla het document op in een bestand op uw harde schijf.

Een inleiding tot correcte opmaak

XML middelen Uitbreidbare opmaaktaal, met een focus op opmaak(opmaak). U kunt tekst maken en deze markeren met grenstags, waardoor elk woord, elke zin of passage wordt omgezet in identificeerbare, sorteerbare informatie. Bestanden die u aanmaakt, of kopieën van het document, bestaan ​​uit elementen (tags) en tekst, en de elementen helpen om het document correct te begrijpen wanneer het op papier wordt gelezen of zelfs elektronisch wordt verwerkt. Hoe meer beschrijvende elementen er zijn, hoe meer delen van het document kunnen worden geïdentificeerd. Vanaf de eerste dagen dat de opmaak bestaat, is een van de voordelen dat in geval van verlies van een computersysteem, afgedrukt gegevens zijn nog steeds leesbaar dankzij de tags.

Opmaaktalen zijn van de eerste formulieren die door bedrijven en overheidsinstanties zijn gemaakt, gegaan naar Standard Generalized Markup Language (SGML), Hypertext Markup Language (HTML) en uiteindelijk naar XML. SGML klinkt misschien ingewikkeld, en HTML (dat in wezen slechts een verzameling elementen was) was niet krachtig genoeg om informatie te identificeren. XML is ontworpen als een gebruiksvriendelijke en uitbreidbare opmaaktaal.

U kunt uw eigen elementen in XML maken om brokken gegevens nauwkeurig weer te geven. Documenten kunnen niet alleen worden onderverdeeld in alinea's en koppen, maar ook fragmenten in het document selecteren. Om dit effectief te laten zijn, moet u de definitieve lijst van uw elementen bepalen en u eraan houden. Elementen kunnen worden gedefinieerd in een Document Type Definition (DTD) of schema, zoals hieronder kort wordt besproken. Als je XML eenmaal onder de knie hebt en bent gaan gebruiken, kun je experimenteren met elementnamen door echte bestanden te maken.

Een XML-document maken

Zoals vermeld, zijn XML-bestanden samengesteld uit tekst en opmaak. De meeste tekst wordt geplaatst in elementen waarin de tekst is omgeven door tags. Stel dat u bijvoorbeeld een XML-kookboek wilt maken. We hebben een recept genaamd Sundae ijsje te converteren naar XML. Om de naam van het recept te markeren, plaatsen we de tekst ervan in een element dat begint en eindigt met tags. Dit element kan de naam receptnaam krijgen. Om de starttag van een element te markeren, zet u de naam tussen punthaken<>), soortgelijk: ... Laten we dan de tekst Ice Cream Sundae invoeren. Plaats na de tekst een afsluitende tag, de naam van het element tussen punthaken, plus een schuine streep (/) vóór de naam van het element, zoals dit:... Deze tags vormen element, waarin u tekst en zelfs andere elementen kunt invoeren.

Itemnamen kunnen zowel voor afzonderlijke documenten als voor groepen documenten worden gemaakt. Afhankelijk van uw vereisten kunt u de regels specificeren die moeten worden gevolgd voor de elementen. Elementen kunnen strikt ad hoc of algemeen genoeg zijn. De regels moeten ook definiëren wat acceptabel is voor elk element. Ze kunnen streng, los of intermediair zijn. Maak gewoon elementen die de delen van uw document definiëren die u belangrijk vindt.

Aanmaken van XML-bestanden starten

De eerste regel van een XML-document kan een XML-declaratie zijn. Dit optionele deel van het bestand definieert het als een XML-bestand, wat automatische tools en mensen kan helpen het bestand als XML te herkennen in plaats van als SGML of een andere opmaak.

De verklaring kan er eenvoudig uitzien als: of voeg de XML-versie toe ( ) en zelfs karaktercodering zoalsvoor Unicode. Aangezien deze declaratie helemaal aan het begin van het bestand moet staan, kunt u dit optionele element het beste overslaan als u van plan bent om kleine XML-bestanden te combineren tot een groter bestand.

Aanmaken van basiselementen

De begin- en eindtags van het root-element omringen de volledige tekst van het XML-document. Er mag slechts één root-element in het bestand zijn, en dit is de vereiste "skin" ervoor. toont een fragment van het voorbeeld dat ik hier gebruik met een root-element (recept). (Zie het volledige XML-bestand in.)

Lijst 1. Basiselement

Terwijl u uw document opbouwt, plaatst u tekst en extra tags tussen en .

Artikelnamen

Hoofdlettergevoelige tags

Bij het genereren van XML moeten de hoofdletters van de begin- en eindtags overeenkomen. Anders krijgt u mogelijk een foutbericht wanneer u XML gebruikt of bekijkt. Internet Explorer geeft bijvoorbeeld geen tekst weer als hoofdletters niet overeenkomen. In plaats daarvan geeft het berichten weer over een mismatch tussen de begin- en eindtags.

We hebben dus een wortelelement ... In XML worden eerst elementnamen geselecteerd en vervolgens wordt op basis van die namen de bijbehorende DTD of het bijbehorende schema bepaald. Namen kunnen letters, cijfers en speciale tekens bevatten, zoals het onderstrepingsteken (_). Hier zijn enkele naamgevingsregels om te onthouden:

  • Spaties zijn niet toegestaan ​​in elementnamen.
  • Namen moeten beginnen met een letter, niet met een cijfer of teken. (Elke combinatie van letters, cijfers en geldige symbolen kan na deze eerste letter worden gebruikt.)
  • Case is niet relevant, maar respecteer het om verwarring te voorkomen.
Lijst 2. Andere elementen
Sundae ijsje 5 minuten

Een XML-document kan lege tags bevatten, waarbinnen niets is, en die kunnen worden uitgedrukt als een enkele tag, in plaats van een paar begin- en eindtags. Het kan bijvoorbeeld een op zichzelf staande tag in HTML-stijl zijn ... Het bevat geen kinderen of tekst, dus het is een leeg element en kan worden geschreven als (met een spatie en de bekende schuine streep aan het einde).

Nestelementen

De bijlage Is de plaatsing van elementen binnen andere elementen. Deze nieuwe elementen heten dochteronderneming elementen, en de elementen die hen omringen zijn hun ouderlijk elementen. In naar het root-element meerdere items genest. Dit zijn geneste kinderen , en Binnenelement er zijn meerdere identieke kinderen ... Nesten kan een XML-document vastleggen.

Een veelvoorkomende syntaxisfout is gerelateerd aan het nesten van bovenliggende en onderliggende items. Elk onderliggend element moet volledig tussen de begin- en eindtags van zijn bovenliggende element worden geplaatst. Onderliggende elementen moeten eindigen voor het begin van het volgende kind.

Een voorbeeld van correct nesten wordt gegeven in. Tags beginnen en eindigen zonder verwevenheid met andere labels.

Listing 3. XML-elementen correct nesten.
Sundae ijsje 3 chocoladesiroop of chocoladefudge 1 noten 1 kers- 5 minuten

Attributen toevoegen

Er worden soms elementen toegevoegd attributen... Attributen bestaan ​​uit een naam-waardepaar, waarbij de waarde tussen dubbele aanhalingstekens staat ("), zoals dit: typ =" dessert ". Met attributen kunt u extra parameters bij het element opslaan, waarbij de waarden van deze parameters worden gewijzigd van element naar element in hetzelfde document ...

Een attribuut — of zelfs meerdere attributen — wordt gespecificeerd binnen de starttag van een element: ... Bij het toevoegen van meerdere attributen worden deze gescheiden door spaties: ... het XML-bestand wordt weergegeven zoals het er nu uitziet.

Listing 4. Ons XML-bestand met elementen en attributen
Sundae ijsje 5 minuten

Een willekeurig aantal attributen kan worden gebruikt. Denk na over de details die u aan uw document kunt toevoegen. Attributen zijn vooral handig als documenten worden opgeslagen, bijvoorbeeld op type recept. Attribuutnamen kunnen dezelfde tekens bevatten als elementnamen, met dezelfde regels voor het uitsluiten van spaties en voornamen met een letter.

Correct en onjuist geconstrueerde XML

Als u de regels volgt die in uw structuur zijn gedefinieerd, kunt u eenvoudig goed gevormde XML genereren. XML corrigeren Is XML-code gecompileerd in overeenstemming met alle XML-regels: correcte naamgeving van elementen, nesting, naamgeving van attributen, enz.

Afhankelijk van wat u met de XML doet, moet u mogelijk met welgevormde XML werken. Beschouw het bovenstaande voorbeeld van sorteren op recepttype. Het is noodzakelijk dat de elementen bevatte het type attribuut. Het is erg belangrijk om de code met succes te kunnen valideren en ervoor te zorgen dat de waarde van dit attribuut altijd aanwezig is.

Onder validatie betekent het controleren van de structuur van het document op naleving van de regels die ervoor zijn opgesteld en de definitie van onderliggende elementen voor elk bovenliggend element. Deze regels zijn gedefinieerd in Beschrijving documenttype(DTD) of in een schema. Voor deze validatie moet u een DTD of schema maken en vervolgens verwijzen naar het DTD- of schemabestand in uw XML-bestanden.

Om validatie mogelijk te maken, moet u een documenttypedeclaratie (DOCTYPE) dichter bij het begin van uw XML-documenten plaatsen. Deze regel bevat een link naar een DTD of schema (lijst met elementen en regels) die zal worden gebruikt om dit document te valideren. De DOCTYPE-regel kan zoiets zijn als de.

Lijst 5. DOCTYPE

Dit voorbeeld betekent dat uw lijst met items met de naam bestandsnaam.dtd bevindt zich op uw computer (dat wil zeggen, de SYSTEM-directory, niet de PUBLIC-share).

Entiteiten gebruiken

Entiteit kunnen tekstfragmenten of speciale tekens zijn. Ze kunnen binnen of buiten het document worden gespecificeerd. Entiteiten moeten correct worden aangegeven en uitgedrukt om fouten te voorkomen en correct weer te geven.

U kunt speciale tekens niet rechtstreeks in tekst invoeren. Om speciale tekens in de tekst te gebruiken, moet je ze entiteiten maken en de codes van deze tekens gebruiken. U kunt zinnen, zoals een bedrijfsnaam, definiëren als entiteiten en deze vervolgens in de hele tekst gebruiken. Om een ​​entiteit te maken, geeft u deze een naam en voegt u die naam in en voegt u die naam in de tekst in na het ampersand (&) en eindigend met een puntkomma - bijvoorbeeld (of een andere naam). Voeg vervolgens deze code toe aan uw DOCTYPE-regel tussen vierkante haken (), zoals in. Deze code definieert de tekst die de entiteit vervangt.

Vermelding 6. Entiteit

Het gebruik van entiteiten helpt voorkomen dat dezelfde zin of informatie steeds opnieuw wordt herhaald. Het kan het ook gemakkelijker maken om tekst op veel plaatsen tegelijk te bewerken (bijvoorbeeld als het bedrijf de naam verandert) door simpelweg de tekenreeks voor de entiteitsdefinitie aan te passen.

Hoe fouten te voorkomen?

Terwijl u leert hoe u XML-bestanden maakt, kunt u ze openen in een XML-editor om er zeker van te zijn dat ze formeel correct zijn en om ervoor te zorgen dat de XML-regels worden gevolgd. Als u bijvoorbeeld Windows® Internet Explorer® heeft, kunt u uw XML-bestand eenvoudig in een browser openen. Als uw elementen, attributen en tekst worden weergegeven, is het XML-bestand goed gevormd. Als er fouten zijn, heb je waarschijnlijk iets in de syntaxis verprutst en moet je je document zorgvuldig controleren op typefouten of ontbrekende tags en leestekens.

Gevolgtrekking

Als u eenmaal een paar eenvoudige regels begrijpt, heeft u de flexibiliteit om uw eigen XML-elementen en hun attributen te ontwerpen. XML-regels zijn niet ingewikkeld. Een XML-document typen is ook eenvoudig. De sleutel is om te begrijpen wat u van documenten wilt in termen van sorteer- en zoekmogelijkheden, en vervolgens elementen en attributen te ontwerpen om aan die vereisten te voldoen.

Wanneer u het doel goed begrijpt en weet hoe u uw tekst moet markeren, kunt u effectieve elementen en attributen maken. Vanuit dit perspectief is zorgvuldige opmaak alles wat nodig is om een ​​goed gevormd en bruikbaar XML-document te maken.

In een organisatie kan de boekhouding niet alleen worden bijgehouden in oplossingen op basis van het 1C: Enterprise platform, maar ook in andere softwaresystemen (Galaxy, Parus, SAP, etc.). In dit geval verschijnen de taken van het integreren van twee applicaties.

Bijvoorbeeld, in een applicatie (laten we het "X" noemen) wil je een lijst met configuratiedocumenten lezen. We zullen het niet hebben over de praktische voordelen van het oplossen van een dergelijk probleem, ik zal alleen opmerken dat de handigste en meest universele manier in een dergelijke situatie is om een ​​lijst met documenten in XML-indeling te verwijderen.

Uitwisseling met dit formaat is universeel omdat de meeste toepassingen ermee kunnen werken. Laten we eens kijken hoe het mogelijk is om de lijst met configuratiedocumenten te ontladen in een XML-bestand van 1C: Enterprise.

Exporteren naar XML

En dus, laten we verder gaan met het belangrijkste. We moeten de lijst met metagegevens van het document doorkruisen en de lijst in een XML-bestand vormen. De volgende schermafbeelding toont het algoritme voor het genereren van een XML-bestand:

Nieuwe XML () Export-functie // Haal de naam van het tijdelijke bestand op Pad = GetTemporaryFileName (); // Initialiseer de XMLWriter-klasse Record = Nieuw XML-record; // Open een tijdelijk bestand om te schrijven- 8 " ) ; // Schrijf de XML-bestandsdeclaratie Opname. WriteXMLDeclaration (); // Dossier. WriteItemStart (" DocumentenConfiguraties" ) ; // Eerste item // Attribuut van het eerste element met de datum van de bestandsformatie Opname. WriteAttribute ("gegenereerd", Formaat (CurrentDate (), "DF = jjjj- MM- ddThh: mm: ss; DLF = DT" ) ) ; // Schrijf een item voor elk configuratiedocument. Plaats de naam van het document in de tekst. Voor elk dock van metadata. Documenten Cyclus Opname. WriteElementStart ("Document"); Opname. WriteText (Doc. Naam); Opname. WriteEndElement (); Einde van cyclus; // Voltooi het schrijven van het eerste item Opname. WriteEndElement (); Opname. Dichtbij (); // Sluit het bestand // Haal de binaire gegevens van het bestand op en plaats het in tijdelijke opslag BinaryData = Nieuwe BinaryData (Pad); Adres = PlaceTemporaryStorage (BinaryData, nieuwe UniqueIdentifier); Retouradres; // Retourneer het adres van het bestand in de repository Eindfunctie

Elk aangemaakt element moet correct worden ingevuld. Na het uitvoeren van de methode "WriteElementBeginning ()" moet de methode "WriteElementEnd" worden uitgevoerd, anders is de structuur van het XML-bestand onjuist.

Het algemene patroon voor het maken van XML-bestanden is de volgende volgorde:

// 1. Initialiseer de klasse "XML Writer" Record = Nieuw XML-record; // 2. Open een tijdelijk bestand voor opname Opname. OpenFile (Pad, "UTF - 8 " ) ; // 3. Schrijf de declaratie van het XML-bestand Opname. WriteXMLDeclaration (); // // 4. ++ De inhoud van het XML-bestand schrijven Opname. WriteElementStart ("XML-element"); Opname. WriteEndElement (); // - Schrijf de inhoud van het XML-bestand // 5. Sluit het bestand Opname. Dichtbij ();

Met deze vijf stappen wordt bijna elk XML-bestand gemaakt.

In ons voorbeeld wordt het gegenereerde bestand geconverteerd naar binaire gegevens en teruggestuurd naar de plaats waar de GenerateXML-functie werd aangeroepen. Dit bestand kan vervolgens naar het bestandssysteem worden geschreven.

U kunt een voorbeeld van een geüpload bestand zien in de bovenstaande schermafbeelding.

Toepassing van derden

Als voorbeeld heb ik een .NET Framework-toepassing gemaakt om te demonstreren hoe een XML-bestand in een toepassing van derden kan worden gelezen.

Het programma leest het aangemaakte bestand en toont de documenten in de vorm van een lijst:

Je kunt het zelf proberen, de applicatie is beschikbaar om te downloaden via de link aan het einde van het artikel.

Veelzijdigheid

Het XML-formaat wordt in de meeste configuraties gebruikt voor gegevensuitwisseling tussen applicatieoplossingen op het 1C: Enterprise-platform. Een andere veelgebruikte uitwisselingsmethode is een COM-verbinding. XML stelt je in staat om met bijna elke applicatie uit te wisselen, en dat is wat het verdient om universeel te worden genoemd.

Bestanden om te downloaden:

XML-bestandslezertoepassing.

Verwerking van het genereren van XML-bestanden.